Which controller do you have?

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

KB-104 - Z-Wave Apparaatparameters - hex, dec, binair, bits, bytes ..... wat?!?!

Tijdens het doornemen van apparaathandleidingen of onze eigen handleidingen kunt u termen tegenkomen die u mogelijk niet bekend voorkomen, zoals binair, hexadecimaal, bit, byte, enz.

Dit is een beknopte handleiding voor veelgebruikte termen, zodat we altijd over hetzelfde spreken.

Inleiding tot binaire, decimale en hexadecimale getallen

Hoewel dit in eerste instantie misschien verwarrend klinkt, zijn binair, decimaal en hexadecimaal in wezen simpelweg verschillende manieren om een getal te noteren.

Laten we de onderlinge verschillen kort bekijken.

Decimaal

Over het decimale stelsel valt niet veel toe te lichten, aangezien dit tegenwoordig het meest gebruikte stelsel is.

Het wordt een „talstelsel met grondtal 10” genoemd, omdat er 10 symbolen kunnen worden gebruikt: 0 – 9.

Zodra u 9 bereikt, zijn de beschikbare symbolen op; u voegt dan links 1 cijfer toe en begint weer bij 0.

Binair

Een binair getal bestaat uitsluitend uit 0-en en 1-en. Om die reden wordt het een „talstelsel met grondtal 2” genoemd.

Dit betekent dat een enkel binair cijfer slechts 2 verschillende waarden kan weergeven in plaats van de gebruikelijke 10 cijfers.

De algemene regel voor tellen in het binaire stelsel is gelijk aan die van het decimale stelsel: tel op tot net voor het „grondtal”, begin vervolgens weer bij 0, maar tel eerst 1 op bij het getal aan de linkerzijde.


Binair: 0 1 10 11 100 101 110 111 1000 1001 1010
Decimaal: 0 1 2 3 4 5 6 7 8 9 10

Hexadecimaal

Hexadecimale getallen zijn bijzonder interessant, aangezien dit een „talstelsel met grondtal 16” betreft.

Ze zien er tot en met 9 hetzelfde uit als decimale getallen, maar daarna worden de letters ("A", "B", "C", "D", "E", "F") gebruikt in plaats van de decimale getallen 10 tot en met 15.

Een enkel hexadecimaal teken kan 16 verschillende waarden weergeven in plaats van de normale 10 cijfers die we gewend zijn.

Wanneer de symbolen weer op zijn (zodra we F bereiken), beginnen we opnieuw bij 0 en tellen we 1 op bij de volgende positie aan de linkerzijde.


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

Bekijk het in actie

Kies een van de onderstaande systemen en zie hoe het telt:

Conversie tussen talstelsels

Als u echt van wiskunde houdt, kunt u uzelf aanleren hoe u getallen converteert tussen verschillende talstelsels.

De eenvoudigste manier is echter het gebruik van een online Number Converter.

Bits versus bytes

Bits en bytes worden vaak met elkaar verward, maar er is wel degelijk een groot verschil tussen beide.

Een bit is de kleinste eenheid van informatie die op een computer kan worden opgeslagen of verwerkt. Weergegeven als een getal kunnen bits een waarde hebben van "1" (één) of "0" (nul).

Een byte daarentegen is veel groter en bevat acht bits. Wiskundig levert n bits 2 ^ n patronen op, waardoor een byte een getal tussen 0 en 255 kan bevatten.


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
waarde 0 2 4 8 16 32 64 128

Het is belangrijk om te weten dat bytes worden afgekort met een hoofdletter B, terwijl bits een kleine letter b gebruiken. Mbps staat daarom voor megabit per seconde en MBps voor megabyte per seconde.

Alles samenbrengen

U vraagt zich wellicht af waarom we het over bits, bytes en al die verschillende talstelsels hebben gehad.

Bij het toevoegen van een apparaatparameter moet u de Data Size selecteren. Tussen 1, 2 of 4 bytes en Hex of Dec zijn er 6 opties om uit te kiezen.

Het kan verleidelijk zijn om simpelweg de eerste optie te kiezen en door te gaan, maar een onjuiste Data Size-parameter zal helemaal niet werken en kan in sommige gevallen zelfs voorkomen dat het apparaat zelf correct functioneert.

Gegevensgrootte

Het eerste wat u moet weten, is dat, tenzij anders aangegeven, alle Parameters 1 byte decimaal zijn.

Er zijn echter apparaten die andere gegevensgroottes vereisen. Daarom is het van groot belang om de handleiding van uw apparaten zorgvuldig door te nemen voordat u wijzigingen aanbrengt.

Wij doen ons uiterste best om alle productpagina's te voorzien van actuele handleidingen.

In het zeldzame geval dat er een handleiding ontbreekt of de verstrekte informatie onvoldoende duidelijk is, raden wij aan uw apparaat op te zoeken in de pepper1 Z-wave database of op de website van de Z-Wave Alliance.

Negatieve waarden

Het is gebruikelijk om een minteken te gebruiken om een negatief geheel getal aan te duiden. Computers kunnen informatie echter alleen opslaan in bits, die zoals bekend alleen de waarde nul of één kunnen hebben. Daarom vereist de opslag van negatieve gehele getallen in een Parameter een andere benadering.

Zonder al te diep in detail te treden, is een methode om negatieve waarden op te slaan het gebruik van de Two’s Complement-conventie (tweescomplement), waarbij negatieve waarden worden weergegeven door het tweescomplement van hun eigen waarde. Dit betekent in feite dat getallen met een “1” in de meest linkse bit negatief zijn.

Om negatieve waarden in te stellen voor een Parameter neemt u de maximale waarde (afhankelijk van de parametergrootte, d.w.z. 1, 2 of 4 bytes) en trekt u de gewenste waarde daarvan af.

Voorbeelden

Alles is eenvoudiger te begrijpen aan de hand van een voorbeeld; laten we daarom kijken naar enkele gangbare apparaten die wat bitberekeningen vereisen voordat de bijbehorende Parameters kunnen worden ingesteld.

Philio Multisensor GEN5

Een snelle blik op de Philio Multisensor handleiding laat direct zien dat de meeste van de bijbehorende Parameter-waarden afwijken van de gebruikelijke 1 byte decimaal.

Laten we Parameter 7 als voorbeeld nemen. Opmerking: voor dit voorbeeld gebruiken we de PST02-1A Parameters.

We moeten Binary Sensor Report Command Class inschakelen en het apparaat na een bewegingsgebeurtenis de status “clear” laten rapporteren om zowel de bewegings- als de magneetsensoren werkend te krijgen in de meeste Z-Wave-controllers.

Hiervoor moeten we bit 1 en bit 4 inschakelen en optellen bij de standaard al ingeschakelde bit 2.

Dit vertaalt zich naar: (2 ^ 1) + (2 ^ 2) + (2 ^ 4) = 22

Onze 1 byte decimaal Parameter moet dus worden ingesteld op 22.

Aeon Clamp Meter

De 4 byte decimaal Parameters die door de Aeon Clamp Meter worden gebruikt, kunnen complex zijn in vergelijking met een 1 byte decimaal Parameter.

Stel dat we als voorbeeld een Single Clamp-versie van dit apparaat willen configureren. We hebben hier geleerd dat Parameter 103 moet worden ingesteld op 2304, maar waarom is dat zo?

Als we kijken naar de handleiding, zien we op pagina 7 een tabel met alle mogelijke opties voor Value 1 tot en met 4.

Hierin wordt ook vermeld dat Value 1 de MSB (Most Significant Bit) is en Value 4 de LSB (Least Significant Bit).

Met deze informatie kunnen we dezelfde logica toepassen als voorheen, beginnend vanaf de LSB-bit (Value 4). Dit vertaalt zich naar:


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

Om rapportages voor Watt en kWh te ontvangen, moeten we bit 0 en bit 3 op Value 3 inschakelen.

Dit levert op: 2048 + 256 = 2304

Onze 4 byte decimal Parameter moet dus worden ingesteld op 2304.

Aeon Siren GEN5

De 2 byte decimal Aeon Siren GEN5 Parameter 37 kan, zoals bekend, twee bytes oftewel 16 bits opslaan.

Hierdoor kunnen we verschillende geluiden instellen en het volume aanpassen, alles binnen één enkele Parameter.

In de handleiding zien we dat Value 1 6 mogelijke instellingen heeft en Value 2 4. Dit vertaalt zich naar:

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 heeft voor deze Parameter echter een andere logica gehanteerd, wat het begrijpen ervan iets complexer kan maken. In de handleiding staat het volgende:

  • Value 1
    • 0 - huidig sirenegeluid niet wijzigen
    • 1 - sirenegeluid 1 is geselecteerd
    • 2 - sirenegeluid 2 is geselecteerd
    • 3 - sirenegeluid 3 is geselecteerd
    • 4 - sirenegeluid 4 is geselecteerd
    • 5 - sirenegeluid 5 is geselecteerd
  • Value 2
    • 0 - huidig volume niet wijzigen
    • 1 - volume instellen op 88 dB
    • 2 - volume instellen op 100 dB
    • 3 - volume instellen op 105 dB

Dit zijn de decimale waarden, maar ze worden toegepast met inachtneming van de verdeling over een 2-bytewaarde.

Omdat de waarden voor geluid en volume worden toegepast als een enkele 2-byte parameter, moeten we de bitpatronen op de juiste wijze converteren.

Dit is waarschijnlijk duidelijker aan de hand van een voorbeeld:

  • Kijk naar sirenegeluid Sound 4; volgens de handleiding is de waarde 4
  • Kijk nu naar het bovenstaande 8-bits waardepatroon: welke "bit" zouden we moeten controleren voor een waarde van 4? Het antwoord is bit 2
  • En welke waarde heeft bit 2 in de 2e byte van een 2-bytewaarde? Het antwoord is 1024

Als dit ingewikkeld klinkt: dat kan het zeker zijn :-)

Laten we naar een tweede voorbeeld kijken:

  • Kijk naar sirenegeluid 3 met waarde 3
  • Welke "bit" zouden we moeten controleren voor een waarde van 3? We zouden bit 0 en 1 moeten inschakelen (1 + 2)
  • Wat is de som van de waarde van bit 0 en 1 in een standaard 8-bits waardepatroon? Het antwoord is 768 (512 + 256)

Opmerking: raadpleeg deze handleiding voor een volledige lijst van de decimale waarden die moeten worden gebruikt met de Aeon Siren

Fibaro Swipe

Parameter 31-36 stelt een gebruiker in staat om sequenties van twee of drie gebaren te creëren om het aantal mogelijke acties uit te breiden.

Dit zijn decimale 2-byteparameters waarbij elk gebaar 4 bits in beslag neemt.

Elk gebaar kan als volgt worden geïdentificeerd:

Waarde 4 bits Gebaar
0 0000 leeg
1 0001 ^
2 0010 v
3 0011 <
4 0100 >

Het bitpatroon van de sequentie kan als volgt worden vertaald:

Waarde 1 (MSB) - gereserveerd
Bit 3 2 1 0
Waarde 32768 16384 8192 4096
Waarde 2 - eerste gebaar
Bit 3 2 1 0
Waarde 20481024 512 256
Waarde 3 - tweede gebaar
Bit 3 2 1 0
Waarde 128 64 32 16
Waarde 4 (LSB) - derde gebaar
Bit 3 2 1 0
Waarde 8 4 2 1

Om een sequentie van ^ (omhoog) > (rechts) < (links) te creëren:

  • Waarde 1 is gereserveerd, dus de waarde hiervan is 0
  • Waarde 2 is "omhoog", dus activeren we bit 0 (0001) = 256
  • Waarde 3 is "rechts", dus activeren we bit 2 (0100) = 64
  • Waarde 4 is "links", dus activeren we bit 0 en 1 (0011) = 2 + 1

Als we alle waarden bij elkaar optellen, krijgen we 323.

Fibaro Motion Sensor GEN5

De 2-byte decimale Fibaro Motion Sensor GEN5 Parameter 66 kan twee bytes of 16 bits opslaan, waarmee een temperatuuroffset van -100 tot 100 ºC in stappen van 0.1ºC kan worden ingesteld.

Om een temperatuuroffset van -2.0 ºC in te stellen, trekt u de gewenste absolute waarde (20) af van de maximale waarde die de Parameter kan aannemen (2^16).

Dit vertaalt zich naar (2^16) – 20 = 65516.

Onze decimale parameter van 2 bytes moet dus worden ingesteld op 65516.

Gerelateerde informatie


Copyright Vesternet 2017

Bijgewerkt: 07/11/2017