KB-104 - Z-WAVE-enhetsparametrar - Hex, Dec, Binär, Bits, Bytes ..... Vad?!?!

Medan du läser igenom enhetshandböcker eller våra egna guider kan du komma över några villkor du kanske inte känner till som binär, hexadecimal, bit, byte etc.

Det här är en snabb guide till de vanliga termer som används så att vi alla pratar om samma saker.

Introduktion till binär, decimal och hexadecimala siffror

Även om detta kan låta förvirrande först, binär, decimal och hexadecimal är väsentligen bara olika sätt att skriva ner ett nummer.

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

Decimal

Det är inte mycket att säga om det decimala systemet som är det vanligaste systemet idag.

Det kallas en "Bas 10"System eftersom det finns 10 symboler som kan användas: 0 - 9.

När du når 9 går du ut ur symboler så att du lägger till 1 siffror till vänster och börjar igen på 0.

Binär

Ett binärt tal består av endast 0s och 1s. Av den anledningen kallas det en "Bas 2" systemet.

Det betyder att en enda binär siffra endast kan visa 2 olika värden istället för de vanliga 10 siffrorna.

Den allmänna regeln att räkna med att använda binärt system är detsamma som decimalsystemet: räkna upp till strax före "basen" och börja sedan 0 igen, men först lägger du till 1 till numret till vänster.


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

Hexadecimal

Hexadecimalt antal är ganska intressanta med tanke på att det är en "Bas 16" systemet.

De ser på samma sätt som decimaltal upp till 9, men då finns det bokstäverna ("a", "b", "c", "d", "e", "f") i stället för decimaltalet 10 till 15.

En enda hexadecimal siffra kan visa 16 olika värden istället för de vanliga 10 siffrorna är vi vana vid.

Igen när vi slutar med symboler (när vi når F) Vi börjar tillbaka till 0, och vi lägger till 1 till nästa position till vänster.


Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F
Decimal: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Se det i aktion

Välj ett av systemen Bellow och titta på det räknas:

Konvertering mellan system

Om du verkligen är i matte kan du lära dig själv Hur man konverterar siffror mellan olika bassystem.

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

Bits vs bytes

Bitar och byte är ofta förvirrade men det finns faktiskt en stor skillnad mellan dem.

A bit är den minsta informationen som kan lagras eller manipuleras på en dator. När det är representerat som ett nummer kan bitar ha ett värde av antingen "1" (ett) eller "0" (noll).

Å andra sidan en byte är mycket större, det innehåller åtta bitar. Matematiskt n bitar avkastning 2 ^ n mönster så en byte kan hå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 en huvudstad B, där bitar använder en liten bokstav b. Därför är Mbps megabit per sekund, och Mbps är megabyte per sekund.

Binder allt tillsammans

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

När du lägger till en enhetsparameter måste du välja det 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 fortsätta med det, men en fel datastorleksparameter fungerar inte alls och i vissa tillfällen kan det förhindra att enheten själv fungerar korrekt.

Datastorlek

Första sak att veta är om inte annat anges. Alla parametrar är 1 byte decimal.

Det finns dock vissa enheter som kräver andra datastorlekar. Av den anledningen är det oerhört viktigt att noga läsa dina enhetshandbok innan du gör några ändringar.

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

På det sällsynta tillfället som vi saknar en manual eller den information som presenteras finns det inte tillräckligt med vårt förslag är att söka efter din enhet på Pepper1 Z-Wave Database eller den Z-WAVE-allians hemsida.

Negativa värden

Det är sunt förnuft att använda ett minustecken för att ange ett negativt heltal. Datorer kan dock bara lagra information i bitar, som som vi har sett kan bara ha värdena noll eller en. Därför kommer lagringen av negativa heltal i en parameter att kräva ett annat tillvägagångssätt.

Utan att gå in i detaljer är ett sätt att lagra negativa värden att använda Två komplement Konvention där negativa värden representeras av två komplement av eget värde. Detta innebär i grunden att siffror som har en "1" i vänster största bit är negativa.

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

Exemplar

Allt är lättare att förstå med ett exempel så låt oss titta på några dagliga enheter som kräver lite matte innan de ställs in parametrarna.

Philio Multisensor Gen5

En snabb titt på Philio Multisensor Manual Och en omedelbart märker de flesta av dess parametervärden är inte den vanliga 1 byte decimal.

Låt oss ta Parameter 7 som ett exempel. Notera: För det här exemplet använder vi PST02-1A-parametrarna.

Vi måste aktivera Binary Sensor Report Command Class och göra enhetsrapporten "CLEAR" efter en rörelsehändelse för att få både rörliga och magnet sensorer som arbetar i de flesta Z-vågkontroller.

För att göra detta måste vi aktivera bit 1 och bit 4 och lägg till det till den redan aktiverade som standard bit 2.

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

Så vår 1 byte decimal Parameter bör ställas in på 22.

Aeon klämmätare

De 4 byte decimal Parametrar som används av Aeon-klämmätaren kan vara knepigt jämfört med en 1 byte decimalparameter.

Som ett exempel kan vi säga att vi vill konfigurera en enda klämversion av den här enheten. Vi har lärt oss här den där Parameter 103 bör ställas in på 2304 Men varför är det?

Om vi ​​tittar på manuell Vi kan se på sidan 7 ett bord som visar alla möjliga alternativ för Värde 1 till 4.

Det berättar också att värdet 1 är Ms (Mest betydande bit) och värde 4 Lsb (Minst betydande biten).

Att veta detta kan vi tillämpa samma logik som vi har använt innan vi börjar från LSB-biten (värde 4). Detta översätter till:


Värde 1 (MSB)
Bit 7 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

Att ha watt och kWh rapporter vi behöver aktivera bit 0 och Bit 3Värde 3.

Detta ger oss: 2048 + 256 = 2304

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

Aeon siren gen5

De 2 byte decimal Aeon siren gen5 Parameter 37 kan lagra två byte eller 16 bitar som vi vet.

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

Tittar på manuell vi kan se Värde 1 har 6 möjliga inställningar medan Värde 2 har 4. Detta översätter till:

Värde 1 (MSB)
Ljud 5 Ljud 4 Ljud 3 Ljud 2 Ljud 1
Bit 4 3 2 1 0
Värde 4096 2048 1024 512 256
Värde 2 (LSB)
Volym 3 Volym 2 Volym 1
Bit 2 1 0
Värde 4 2 1

En annan logik har dock använts av Aeon på denna parameter som kan göra saker lite svårare att förstå. Om vi ​​tittar på handboken har vi:

  • Värde 1
    • 0 - Ändra inte det aktuella sirenljudet
    • 1 - Siren Ljud 1 är vald
    • 2 - Siren Sound 2 är valt
    • 3 - Siren Ljud 3 är valt
    • 4 - Siren Ljud 4 är valt
    • 5 - Siren Ljud 5 är valt
  • Värde 2
    • 0 - Ändra inte den aktuella volymen
    • 1 - Ställ volymen till 88 dB
    • 2 - Ställ volymen till 100 dB
    • 3 - Ställ volymen till 105 dB

Dessa är De decimala värdena men de är applicerad med avseende på att spridas över ett 2 byte-värde.

Eftersom värdena för ljud och volym appliceras som en Enstaka 2 byte parameter Vi behöver konvertera bitmönstren på lämpligt sätt.

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

  • Titta på sirenljud 4, manuell säger det Värdet är 4
  • Nu titta på ovanstående 8 bitvärde mönster - vilken "bit" skulle vi kolla för att ge värde av 4? Svaret är bit 2
  • Och vilket värde är bit 2 i 2: a byte av ett 2 byte-värde? Svaret är 1024

Om det här låter komplicerat kan det vara :-)

Låt oss ta en titt på ett andra exempel:

  • Titta på sirenljud 3 med värde 3
  • Vilken "bit" skulle vi kolla för att ge värde av 3? Vi skulle behöva aktivera bit 0 och 1 (1 + 2)
  • Vad är summan av bit 0 och 1 värde på ett standard 8 bits värde mönster? Svaret är 768 (512 + 256)

Notera: För en fullständig lista över de decimala värdena som ska användas med Aeon Siren ta en titt på det här guide

FIBARO SWIPE

Parameter 31-36 Tillåter en användare att skapa sekvenser av två eller tre gester för att expandera antalet möjliga åtgärder.

Dessa är 2 byte decimal Parametrar där varje gest tar 4 bitar.

Varje gest kan identifieras enligt följande:

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

Sekvensbitmönstret kan översättas som:

Värde 1 (MSB) - Reserverat
Bit 3 2 1 0
Värde 32768 16384 8192 4096
Värde 2 - Första gesten
Bit 3 2 1 0
Värde 2048 1024 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

Att skapa en ^ (upp)> (höger) <(vänster) sekvens:

  • Värde 1 är reserverat så dess värde är 0
  • Värde 2 är "upp" så vi skulle aktivera bit 0 (0001) = 256
  • Värde 3 är "rätt" så vi skulle aktivera bit 2 (0100) = 64
  • Värde 4 är "vänster" så vi skulle aktivera bit 0 och 1 (0011) = 2 + 1

Om vi ​​lägger till alla värden får vi 323.

FIBARO Motion Sensor Gen5

De 2 byte decimal FIBARO Motion Sensor Gen5 Parameter 66 Kan lagra två byte eller 16 bitar som tillåter oss att ställa in en temperaturförskjutning från -100 till 100 ºC i 0,1ºC steg.

För att ställa in en temperaturförskjutning på -2,0 ºC skulle du subtrahera det önskade absoluta värdet (20) till det maximala värdet som parametern kan ta (2 ^ 16).

Detta översätter till (2 ^ 16) - 20 = 65516.

Så vår 2 byte decimalparameter bör ställas in på 65516.

Relaterad information


upphovsrätt Vesternet 2017

Uppdaterad: 07/11/2017