En introduktion til Z-Wave protokollen

7. december, 2009 af Henrik Leidecker Jørgensen Skriv en kommentar »

I første artikel om Z-Wave programmering i C# kunne programmet enten tænde eller slukke for en Z-Wave enhed. I denne artikel bliver nogle af de basale principper i Z-Wave protokollen beskrevet. Dette danner grundlag for at ændre koden i en senere artikel så den kan tænde og derefter slukke enheden. Det lyder ikke af meget, men det kræver, at Z-Wave protokollen overholdes.

Z-Wave protokollen bygger på følgende princip.

Messaging1

Hver besked (request/response) efterfølges af en kvittering for modtagelse (‘acknowledge’). Hele beskedsekvensen over seriel porten ser derfor således ud.

Messaging2

I den indledende artikel blev kun den første request, for at tænde enheden, sendt afsted og seriel porten derefter lukket. Havde programmet efterfølgende sendt en ny request for at slukke enheden, så havde Z-Wave controlleren afvist beskeden – protokollen ville ikke være overholdt, da ‘acknowledge’ (ACK) ikke var afsendt på de rigtige tidspunkter.

En korrekt beskedsekvens, i forbindelse med at node ‘6′  tændes, ser således ud.

/*
    Message sent: 01 09 00 13 06 03 20 01 FF 05 3B
    Message received: 06
    Message received: 01 04 01 13 01 E8
    Message sent: 06
*/

 

Formålet med de enkelt beskeder er beskrevet i det følgende.

  1. C# klienten sender en request til Z-Wave controlleren – tænd node ‘6′
  2. Z-Wave controlleren sender en ACK besked til C# klienten – kvittering for request
  3. Z-Wave controlleren sender et response til C# klienten – besked fra controller til node sendt
  4. C# klienten sender en ACK besked til Z-Wave controlleren – kvittering for request

Næste artikel ser på, hvordan dette kan udnyttes til at lave et program i C#, der først tænder og derefter slukker for en enhed.

Annoncer

Kommentarer er lukket.