Which controller do you have?

We'll show what works with it on every page.

My smart home

Help me choose

KB-104 - Z-Wave Enhetsparametrar - hex, dec, binär, bitar, byte ..... vadå?!?!

När du läser igenom enhetsmanualer eller våra egna guider kan du stöta på termer som du kanske inte är bekant med, såsom binär, hexadecimal, bit, byte osv.

Detta är en snabbguide till de vanligaste termerna så att vi talar samma språk.

Introduktion till binära, decimala och hexadecimala tal

Även om det kan verka förvirrande till en början, är binära, decimala och hexadecimala tal i grunden bara olika sätt att representera ett tal på.

Låt oss ta en snabb titt på skillnaderna mellan dem.

Decimalt

Det finns inte mycket att tillägga om det decimala talsystemet, eftersom det är det system som används mest i dag.

Det kallas ett ”bas 10”-system eftersom det finns 10 symboler som kan användas: 0–9.

När du når 9 tar symbolerna slut, så du lägger till 1 siffra till vänster och börjar om från 0.

Binärt

Ett binärt tal består endast av 0:or och 1:or. Av den anledningen kallas det ett ”bas 2”-system.

Detta innebär att en enskild binär siffra endast kan representera 2 olika värden istället för de vanliga 10 siffrorna.

Den generella regeln för att räkna i det binära systemet är densamma som i det decimala systemet: räkna upp till precis innan ”basen”, börja sedan om på 0, men lägg först till 1 till siffran till vänster.


Binärt: 0 1 10 11 100 101 110 111 1000 1001 1010
Decimalt: 0 1 2 3 4 5 6 7 8 9 10

Hexadecimalt

Hexadecimala tal är särskilt intressanta med tanke på att det är ett ”bas 16”-system.

De ser ut som de decimala talen upp till 9, men därefter följer bokstäverna ("A", "B", "C", "D", "E", "F") istället för de decimala talen 10 till 15.

En enskild hexadecimal siffra kan representera 16 olika värden istället för de vanliga 10 siffror vi är vana vid.

Återigen, när symbolerna tar slut (när vi når F) börjar vi om på 0 och lägger till 1 på nästa position till vänster.


Hexadecimalt: 0 1 2 3 4 5 6 7 8 9 A B C D E F
Decimalt: 0 1 2 3 4 5 6 7 8 910 11 12 13 14 15

Se det i praktiken

Välj ett av systemen nedan och se hur det räknar:

Konvertering mellan system

Om du är intresserad av matematik kan du lära dig hur man konverterar tal mellan olika baser.

Det enklaste sättet är dock att använda en talkonverterare online.

Bitar kontra byte

Bitar och byte förväxlas ofta, men i själva verket är det stor skillnad mellan dem.

En bit är den minsta informationsenheten som kan lagras eller hanteras på en dator. När bitar representeras som ett tal kan de ha ett värde på antingen ”1” (ett) eller ”0” (noll).

En byte å andra sidan är mycket större och innehåller åtta bitar. Matematiskt ger n bitar upphov till 2 ^ n kombinationer, vilket innebär att en byte kan innehålla ett tal mellan 0 och 255.


bit 0 1 2 3 4 5 6 7
  2 ^ 0 2 ^ 1 2 ^ 2 2 ^ 3 2 ^ 4 2 ^ 5 2 ^ 6 2 ^ 7
värde 0 2 4 8 16 32 64 128

Det är viktigt att veta att byte förkortas med ett stort B, medan bitar förkortas med ett litet b. Därför är Mbps megabit per sekund, och MBps är megabyte per sekund.

Sammanfattning

Du kanske undrar varför vi har pratat om bitar, byte och alla dessa olika talsystem.

När du lägger till en enhetsparameter måste du välja dess datastorlek. Mellan 1, 2 eller 4 byte och Hex eller Dec finns det 6 alternativ att välja mellan.

Du kan känna dig frestad att bara välja det första alternativet och gå vidare, men en felaktig datastorleksparameter kommer inte att fungera alls och kan i vissa fall förhindra att själva enheten fungerar korrekt.

Datastorlek

Det första man bör veta är att om inget annat anges är alla parametrar 1 byte decimalt.

Det finns dock vissa enheter som kräver andra datastorlekar. Av den anledningen är det ytterst viktigt att noggrant läsa igenom enhetens manual innan några ändringar utförs.

Vi gör vårt bästa för att hålla alla produktsidor uppdaterade med aktuella manualer.

I de sällsynta fall då vi saknar en manual eller informationen i den inte är tillräckligt tydlig rekommenderar vi att söka efter din enhet i databasen pepper1 Z-wave database eller på webbplatsen för Z-Wave Alliance.

Negativa värden

Det faller sig naturligt att använda ett minustecken för att ange ett negativt heltal. Datorer kan dock endast lagra information i bitar, vilka som bekant endast kan anta värdena noll eller ett. Därför kräver lagring av negativa heltal i en parameter en annan metod.

Utan att gå in på tekniska detaljer är ett sätt att lagra negativa värden att använda konventionen för tvåkomplement, där negativa värden representeras av tvåkomplementet av sitt eget värde. Detta innebär i praktiken att tal som har en ”1” i den mest signifikanta biten längst till vänster är negativa.

För att ställa in negativa värden på en parameter tar man det maximala värdet (beroende på parameterns storlek, dvs. 1, 2 eller 4 byte) och subtraherar det önskade värdet.

Exempel

Allt blir lättare att förstå med ett exempel, så låt oss titta på några vanliga enheter som kräver lite bitberäkning innan deras parametrar ställs in.

Philio Multisensor GEN5

En snabb titt i manualen för Philio Multisensor visar omedelbart att de flesta av dess parametervärden inte är den vanliga datatypen 1 byte decimalt.

Låt oss ta Parameter 7 som ett exempel. Observera: i detta exempel använder vi parametrarna för PST02-1A.

Vi behöver aktivera Binary Sensor Report Command Class och få enheten att rapportera ”clear” efter en rörelsehändelse för att få både rörelse- och magnetsensorerna att fungera i de flesta Z-Wave-styrenheter.

För att göra detta behöver vi aktivera bit 1 och bit 4 och addera det till bit 2, som redan är aktiverad som standard.

Detta översätts till: (2 ^ 1) + (2 ^ 2) + (2 ^ 4) = 22

Vår parameter på 1 byte decimalt ska alltså ställas in på 22.

Aeon Clamp Meter

De parametrar på 4 byte decimalt som används av Aeon Clamp Meter kan vara knepiga jämfört med en parameter på 1 byte decimalt.

Låt oss som ett exempel säga att vi vill konfigurera Single Clamp-versionen av denna enhet. Vi har lärt oss här att Parameter 103 bör sättas till 2304, men varför är det så?

Om vi tittar i manualen kan vi på sidan 7 se en tabell som visar alla tillgängliga alternativ för Value 1 till 4.

Den visar också att Value 1 är MSB (Most Significant Bit) och Value 4 är LSB (Least Significant Bit).

Med vetskap om detta kan vi tillämpa samma logik som vi använde tidigare, med början från LSB-biten (Value 4). Detta översätts till:


Value 1 (MSB)
Bit7 6 5 4 3 2 1 0
Värde 2147483648 1073741824 536870912 268435456 134217728 67108864 33554432 16777216
Värde 2
Bit 7 6 5 4 3 2 1 0
Värde 8388608 4194304 2097152 1048576 524288 262144 131072 65536
Värde 3
Bit 7 6 5 4 3 2 1 0
Värde 32768 16384 8192 4096 2048 1024 512 256
Värde 4 (LSB)
Bit 7 6 5 4 3 2 1 0
Värde 128 64 32 16 8 4 2 1

För att få rapporter för Watt och kWh behöver vi aktivera bit 0 och bit 3 på Value 3.

Detta ger oss: 2048 + 256 = 2304

Så vår 4 byte decimal-parameter bör ställas in på 2304.

Aeon Siren GEN5

Den 2 byte decimal Aeon Siren GEN5 Parameter 37 kan lagra två byte eller 16 bitar som bekant.

Detta gör att vi kan ställa in olika ljud och justera volymen i en och samma parameter.

Om vi tittar i manualen ser vi att Value 1 har 6 möjliga inställningar medan Value 2 har 4. Detta motsvarar:

Value 1 (MSB)
Sound 5 Sound 4 Sound 3 Sound 2 Sound 1
Bit 4 3 2 1 0
Value 4096 2048 1024 512 256
Value 2 (LSB)
Volume 3 Volume 2 Volume 1
Bit 2 1 0
Value 4 2 1

Aeon har dock tillämpat en annan logik för denna parameter, vilket kan göra det något mer komplicerat att förstå. Om vi tittar i manualen har vi:

  • Value 1
    • 0 – ändra inte aktuellt sirenljud
    • 1 – sirenljud 1 är valt
    • 2 – sirenljud 2 är valt
    • 3 – sirenljud 3 är valt
    • 4 – sirenljud 4 är valt
    • 5 – sirenljud 5 är valt
  • Value 2
    • 0 – ändra inte aktuell volym
    • 1 – ställ in volymen på 88 dB
    • 2 – ställ in volymen på 100 dB
    • 3 – ställ in volymen på 105 dB

Dessa är decimalvärdena, men de tillämpas med hänsyn till att de är fördelade över ett 2-bytevärde.

Eftersom värdena för ljud och volym tillämpas som en enda 2-byteparameter måste vi konvertera bitmönstren på lämpligt sätt.

Det är förmodligen lättare att förstå med ett exempel:

  • Titta på sirenljud Sound 4; manualen anger att dess värde är 4
  • Titta nu på 8-bitars värdemönstret ovan – vilken "bit" skulle vi markera för att få ett värde på 4? Svaret är bit 2
  • Och vilket värde har bit 2 i den andra byten av ett 2-bytesvärde? Svaret är 1024

Om detta låter komplicerat så kan det vara det :-)

Låt oss titta på ett andra exempel:

  • Titta på sirenens Sound 3 med värde 3
  • Vilken "bit" skulle vi markera för att få ett värde på 3? Vi behöver aktivera bit 0 och 1 (1 + 2)
  • Vad är summan av värdet för bit 0 och 1 i ett standard 8-bitars värdemönster? Svaret är 768 (512 + 256)

Obs! För en fullständig lista över decimalvärdena som ska användas med Aeon Siren, se denna guide

Fibaro Swipe

Parameter 31-36 gör det möjligt för användaren att skapa sekvenser av två eller tre gester för att utöka antalet möjliga åtgärder.

Dessa är decimalparametrar på 2 byte där varje gest tar 4 bitar.

Varje gest kan identifieras enligt följande:

Värde 4 bitar Gest
0 0000 tom
1 0001 ^
2 0010 v
3 0011 <
4 0100 >

Sekvensens bitmönster kan översättas enligt följande:

Value 1 (MSB) – reserverad
Bit 3 2 1 0
Värde 32768 16384 8192 4096
Value 2 – första gesten
Bit 3 2 1 0
Värde 20481024 512 256
Värde 3 – andra gesten
Bit 3 2 1 0
Värde 128 64 32 16
Värde 4 (LSB) – tredje gesten
Bit 3 2 1 0
Värde 8 4 2 1

För att skapa sekvensen ^ (uppåt) > (höger) < (vänster):

  • Värde 1 är reserverat, så dess värde är 0
  • Värde 2 är "uppåt", så vi aktiverar bit 0 (0001) = 256
  • Värde 3 är "höger", så vi aktiverar bit 2 (0100) = 64
  • Värde 4 är "vänster", så vi aktiverar bit 0 och 1 (0011) = 2 + 1

Om vi summerar alla värden får vi 323.

Fibaro Motion Sensor GEN5

Det 2-byte decimala parametervärdet för Fibaro Motion Sensor GEN5 Parameter 66 kan lagra två byte eller 16 bitar, vilket gör det möjligt att ställa in en temperaturkalibrering (offset) från -100 till 100 ºC i steg om 0,1 ºC.

För att ställa in en temperaturkalibrering på -2,0 ºC subtraherar du det önskade absolutvärdet (20) från det maximala värdet som parametern kan anta (2^16).

Detta motsvarar (2^16) – 20 = 65516.

Så vår 2-byte decimala parameter ska ställas in på 65516.

Relaterad information


Copyright Vesternet 2017

Uppdaterad: 07/11/2017

Your quote

Loading your cart…

Edit cart