Which controller do you have?

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

KB-104 - Z-Wave Enhedsparametre - hex, dec, binær, bits, bytes ..... hvad?!?!

Når du læser manualer til udstyr eller vores egne vejledninger igennem, vil du måske støde på begreber, du ikke er helt fortrolig med, såsom binær, hexadecimal, bit, byte osv.

Dette er en hurtig oversigt over de mest almindelige udtryk, så vi taler samme sprog.

Introduktion til binære, decimale og hexadecimale tal

Selvom det måske umiddelbart kan virke forvirrende, er binære, decimale og hexadecimale tal grundlæggende blot forskellige måder at skrive et tal på.

Lad os se nærmere på forskellene mellem dem.

Decimal

Der er ikke meget nyt at sige om decimalsystemet, da det er det mest anvendte talsystem i dag.

Det kaldes et ”10-talsystem”, fordi der er 10 symboler til rådighed: 0–9.

Når du når til 9, er der ikke flere symboler, så du tilføjer 1 ciffer til venstre og starter forfra ved 0.

Binær

Et binært tal består udelukkende af 0-er og 1-er. Af den grund kaldes det et ”2-talsystem”.

Det betyder, at et enkelt binært ciffer kun kan repræsentere 2 forskellige værdier i stedet for de sædvanlige 10 cifre.

Den generelle regel for tælling i det binære system er den samme som i decimalsystemet: tæl op til lige før basen, start derefter forfra ved 0, men læg først 1 til tallet til venstre.


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

Hexadecimale tal er ganske interessante, da det er et ”16-talsystem”.

De ser ud som decimaltallene op til 9, men derefter anvendes bogstaverne (”A”, ”B”, ”C”, ”D”, ”E”, ”F”) i stedet for decimaltallene 10 til 15.

Et enkelt hexadecimalt ciffer kan repræsentere 16 forskellige værdier i stedet for de normale 10 cifre, vi er vant til.

Igen: når vi ikke har flere symboler (når vi når til F), starter vi forfra ved 0 og lægger 1 til den næste position til venstre.


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 910 11 12 13 14 15

Se det i praksis

Vælg et af systemerne nedenfor og se det tælle:

Konvertering mellem systemer

Hvis du er matematisk interesseret, kan du lære hvordan man konverterer tal mellem forskellige talsystemer.

Den nemmeste metode er dog at anvende en online Number Converter.

Bits vs. Bytes

Bits og bytes forveksles ofte, men der er i virkeligheden stor forskel på dem.

En bit er den mindste informationsenhed, der kan lagres eller behandles på en computer. Når den repræsenteres som et tal, kan en bit have værdien enten "1" (ét) eller "0" (nul).

En byte er derimod meget større – den indeholder otte bits. Matematisk set giver n bits 2 ^ n mønstre, så en byte kan indeholde et tal mellem 0 og 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ærdi 0 2 4 8 16 32 64 128

Det er vigtigt at bemærke, at bytes forkortes med et stort B, hvorimod bits forkortes med et lille b. Derfor er Mbps megabits pr. sekund, og MBps er megabytes pr. sekund.

Sammenfatning

Du undrer dig måske over, hvorfor vi har talt om bits, bytes og alle disse forskellige talsystemer.

Når du tilføjer en enhedsparameter (Parameter), skal du vælge dens Data Size. Mellem 1, 2 eller 4 bytes samt Hex eller Dec er der 6 muligheder at vælge imellem.

Man kan være fristet til blot at vælge den første mulighed og fortsætte, men en forkert Data Size Parameter vil slet ikke fungere, og i visse tilfælde kan det forhindre selve enheden i at fungere korrekt.

Datastørrelse

Det første, man skal vide, er, at medmindre andet er angivet, er alle parametre 1 byte decimal.

Der findes dog visse enheder, som kræver andre datastørrelser. Af den grund er det yderst vigtigt at læse enhedens manual grundigt igennem, før der foretages ændringer.

Vi gør vores bedste for at holde alle produktsider opdateret med opdaterede manualer.

I de sjældne tilfælde, hvor vi mangler en manual, eller oplysningerne heri ikke er tilstrækkeligt tydelige, anbefaler vi at søge efter din enhed i pepper1 Z-wave-databasen eller på Z-Wave Alliance-webstedet.

Negative værdier

Det er almindelig praksis at bruge et minustegn til at angive et negativt heltal. Computere kan dog kun lagre oplysninger i bits, som, som vi har set, kun kan have værdierne nul eller et. Derfor kræver lagring af negative heltal i en parameter en anden tilgang.

Uden at gå i detaljer er én metode til lagring af negative værdier at anvende to's komplement-konventionen, hvor negative værdier repræsenteres ved to's komplement af deres egen værdi. Dette betyder grundlæggende, at tal, der har et "1" i den mest betydende bit (længst til venstre), er negative.

For at indstille negative værdier på en parameter tages den maksimale værdi (afhængigt af parameterstørrelsen, dvs. 1, 2 eller 4 bytes), hvorefter den ønskede værdi trækkes fra.

Eksempler

Alt er lettere at forstå med et eksempel, så lad os se på nogle almindelige enheder, der kræver lidt bit-matematik, før deres parametre indstilles.

Philio Multisensor GEN5

Et hurtigt kig i Philio Multisensor-manualen, og man bemærker straks, at de fleste af parameterværdierne ikke er den sædvanlige 1 byte decimal.

Lad os tage Parameter 7 som eksempel. Bemærk: I dette eksempel anvender vi PST02-1A-parametrene.

Vi skal aktivere Binary Sensor Report Command Class og få enheden til at rapportere "clear" efter en bevægelseshændelse for at få både bevægelses- og magnetsensorer til at fungere i de fleste Z-Wave-controllere.

For at gøre dette skal vi aktivere bit 1 og bit 4 og lægge det til bit 2, som allerede er aktiveret som standard.

Dette svarer til: (2 ^ 1) + (2 ^ 2) + (2 ^ 4) = 22

Så vores 1 byte decimal-parameter skal indstilles til 22.

Aeon Clamp Meter

De 4 byte decimal-parametre, der anvendes af Aeon Clamp Meter, kan være komplicerede sammenlignet med en 1 byte decimal-parameter.

Som et eksempel antager vi, at vi vil konfigurere en Single Clamp-version af denne enhed. Vi har lært her, at Parameter 103 skal indstilles til 2304, men hvorfor er det sådan?

Hvis vi kigger i manualen, kan vi på side 7 se en tabel, der viser alle de mulige indstillinger for Værdi 1 til 4.

Den oplyser også, at Værdi 1 er MSB (Most Significant Bit), og Værdi 4 er LSB (Least Significant Bit).

Med denne viden kan vi anvende den samme logik som tidligere, idet vi starter fra LSB-bitten (Værdi 4). Dette kan omregnes til:


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

For at få Watt- og kWh-rapporter skal vi aktivere bit 0 og bit 3 på Value 3.

Dette giver os: 2048 + 256 = 2304

Så vores 4 byte decimal-parameter skal indstilles til 2304.

Aeon Siren GEN5

Vores 2 byte decimal Aeon Siren GEN5 Parameter 37 kan, som vi ved, lagre to bytes eller 16 bits.

Dette gør det muligt for os at indstille forskellige lyde og justere lydstyrken samlet i én enkelt parameter.

Ser vi i manualen, kan vi se, at Value 1 har 6 mulige indstillinger, mens Value 2 har 4. Dette kan oversættes til:

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

Aeon har imidlertid anvendt en anden logik på denne parameter, hvilket kan gøre det lidt sværere at forstå. Hvis vi kigger i manualen, fremgår følgende:

  • Value 1
    • 0 - rediger ikke den aktuelle sirenetone
    • 1 - sirenetone 1 er valgt
    • 2 - sirenetone 2 er valgt
    • 3 - sirenetone 3 er valgt
    • 4 - sirenetone 4 er valgt
    • 5 - sirenetone 5 er valgt
  • Value 2
    • 0 - rediger ikke den aktuelle lydstyrke
    • 1 - indstil lydstyrken til 88 dB
    • 2 - indstil lydstyrken til 100 dB
    • 3 - indstil lydstyrken til 105 dB

Disse er decimalværdierne, men de anvendes med udgangspunkt i at være fordelt over en 2 byte-værdi.

Eftersom værdierne for lyd og lydstyrke anvendes som en enkelt 2 byte-parameter, er vi nødt til at konvertere bitmønstrene tilsvarende.

Det er sandsynligvis nemmere at forstå med et eksempel:

  • Se på sirenetone Sound 4; manualen angiver, at dens værdi er 4
  • Se nu på ovenstående 8-bit værdimønster – hvilken "bit" skal vi markere for at give en værdi på 4? Svaret er bit 2
  • Og hvilken værdi har bit 2 i den 2. byte af en 2-byte-værdi? Svaret er 1024

Hvis dette lyder kompliceret, så kan det også sagtens være det :-)

Lad os se på et andet eksempel:

  • Se på sirene Sound 3 med værdi 3
  • Hvilken "bit" skal vi markere for at give en værdi på 3? Vi skal aktivere bit 0 og 1 (1 + 2)
  • Hvad er summen af værdien for bit 0 og 1 i et standard 8-bit værdimønster? Svaret er 768 (512 + 256)

Bemærk: for en komplet liste over decimalværdierne, der skal anvendes til Aeon Siren, henvises til denne vejledning

Fibaro Swipe

Parameter 31-36 giver brugeren mulighed for at oprette sekvenser af to eller tre gestus for at udvide antallet af mulige handlinger.

Disse er 2-byte decimalparametre, hvor hver gestus optager 4 bit.

Hver gestus kan identificeres som følger:

Værdi 4 bit Gestus
0 0000 tom
1 0001 ^
2 0010 v
3 0011 <
4 0100 >

Sekvensens bitmønster kan oversættes således:

Værdi 1 (MSB) - reserveret
Bit 3 2 1 0
Værdi 32768 16384 8192 4096
Værdi 2 - første gestus
Bit 3 2 1 0
Værdi 20481024 512 256
Værdi 3 - anden gestus
Bit 3 2 1 0
Værdi 128 64 32 16
Værdi 4 (LSB) - tredje gestus
Bit 3 2 1 0
Værdi 8 4 2 1

For at oprette en ^ (op) > (højre) < (venstre) sekvens:

  • Værdi 1 er reserveret, så dens værdi er 0
  • Værdi 2 er "op", så vi aktiverer bit 0 (0001) = 256
  • Værdi 3 er "højre", så vi aktiverer bit 2 (0100) = 64
  • Værdi 4 er "venstre", så vi aktiverer bit 0 og 1 (0011) = 2 + 1

Hvis vi lægger alle værdier sammen, får vi 323.

Fibaro Motion Sensor GEN5

Den 2 byte decimale Fibaro Motion Sensor GEN5 Parameter 66 kan lagre to bytes eller 16 bits, hvilket giver mulighed for at indstille en temperaturforskel fra -100 til 100 ºC i trin på 0.1ºC.

For at indstille en temperaturforskel på -2.0 ºC trækker du den ønskede absolutte værdi (20) fra den maksimale værdi, parameteren kan antage (2^16).

Dette svarer til (2^16) – 20 = 65516.

Så vores 2 byte decimale parameter skal indstilles til 65516.

Relaterede oplysninger


Copyright Vesternet 2017

Opdateret: 07/11/2017