3.7 Rozhraní ZigBee

Tato funkcionalita je dostupná pouze pro verzi 2N® SmartCom PRO vybavenou ZigBee rozhraním. Parametry ZigBee rozhraní se mohou lišit podle osazeného modulu (např. rádiová frekvence). V konfiguraci je možné definovat až 16 koncových zařízení, která tvoří jednu síť a komunikují s 2N® SmartCom PRO, který v této síti tvoří koordinátor. Komunikační technologie ZigBee popsaná standardem IEEE 802.15.4 – ZigBee patří do skupiny bezdrátových sítí PAN (Personal Area Networks). Do této skupiny sítí patří i velmi rozšířený IEEE 802.15.1 – Bluetooth, jež nalézá hlavní uplatnění převážně ve spotřební elektronice. Existuje však celá škála průmyslových aplikací, pro které Bluetooth není vhodný. Z tohoto důvodu byla založena ZigBee jako nový bezdrátový komunikační standard vhodný i pro účely průmyslové automatizace. V současné době se na vývoji a rozvoji tohoto standardu podílí více než šedesát firem, mezi nimi jsou i přední světové firmy z oboru automatizace. ZigBee je navržen jako jednoduchá a flexibilní technologie pro tvorbu i rozsáhlejších bezdrátových sítí, u nichž není požadován přenos velkého objemu dat. K jejím hlavním přednostem patří spolehlivost, jednoduchá a nenáročná implementace, velmi nízká spotřeba energie a v neposlední řadě též příznivá cena. Díky použití multiskokového ad-hoc směrování umožňuje komunikaci i na větší vzdálenosti bez přímé radiové viditelnosti jednotlivých zařízení. Primární určení směřuje do aplikací v průmyslu a senzorových sítích. Pracuje v bezlicenčních pásmech (generální povolení) na 2,4 GHz. Přenosová rychlost činí 20, 40, 250 kbit/s. Díky těmto vlastnostem nalezne uplatnění v celé škále aplikací. Pro naše účely si popíšeme její využití v implementovaných funkcích. Seznam všech parametrů včetně jejich vysvětlení naleznete níže v této kapitole.

Poznámka

  • Zda je Váš 2N® SmartCom PRO vybaven ZigBee modulem, zjistíte z přední samolepky, výrobního štítku na zadní straně nebo pomocí některého základního SCZB AT příkazu, například AT^SCZB?. Terminály, které nemají modul osazen, odpoví na takový příkaz ERROR.

V současné době se 2N® SmartCom PRO chová jako Master, tedy hlavní koordinátor sítě a ostatní zařízení se k němu připojují. V zařízení je implementováno takové množství clusterů, které v současnosti umožní ovládání klimatizačních jednotek, ZigBee klávesnic, zásuvek, vlhkoměrů ale i všech měřičů obecně, pouličního osvětlení a mnoha dalších zařízení. 

Poznámka

  • Pokud Vás zajímají přesné typy integrovaných zařízení, nebo pokud chcete nějaké nové integrovat, kontaktujte nás na sales@2n.cz.

Nyní si v krátkosti popíšeme vlastnosti protokolu ZigBee. Každé zařízení je identifikováno svou IEEE adresou. V každém zařízení jsou potom definovány takzvané endpointy. Dále jen EP. Těchto EP může být více. V každém EP jsou potom definovány clustery jednotlivých funkcí. Přičemž v každém EP se může daný cluster vyskytovat pouze jednou. Vysvětlíme si to na jednoduchém příkladu. Mějme zařízení, které dokáže měřit teplotu a má v sobě implementována 3 relé, která spínají další zařízení. V takovém případě bude mít zařízení 3 EP, v každém z nich bude cluster ONOFF a v jednom z nich bude ještě cluster DEVTEMP. V tabulce zařízení by jeho záznam (velmi zjednodušeně) vypadal následovně:

^SCZB: ID: 6, STATE: ONLINE, IEEE_ADDR: 00:12:4B:00:04:26:35:C1, SIG: 43%, UPDATED: 307332129283893

EP2: ONOFF: 0, DEVTEMP: 25,00, 

EP3: ONOFF: 1,

EP4: ONOFF: 0,

2N® SmartCom PRO vytváří bezdrátovou síť PAN, do které se zařízení přihlašují. Jednotlivé měřiče se ukládají do tabulky, ve které je možné mít větší množství nezávislých měřičů. Jejich počet je dán verzí firmwaru. Obecně lze provozovat na zařízení. Můžete se tak setkat s verzemi s 10 ale i 32 zařízeními. Záleží na konkrétním zákaznickém řešení. Prvním krokem je nastavit správně bezdrátovou síť. Proto se první sada příkazů týká nastavení této sítě a přidání nových zařízení. V další části budou potom stručně popsány jednotlivé clustery a funkce, kterých se týkají. Detailní popis naleznete ve specifikacích na stránkách ZigBee aliance. Nyní si popíšeme význam jednotlivých AT příkazů konfigurace PAN.

 

Nastavení sítě

AT^SCZB="ADD",<16 HEX>[,<dev_id>]
  • Přidá zařízení do tabulky. „<16 HEX>" jedná se o šestnáctiznakovou IEEE adresu. Tyto parametry Vám sdělí výrobce měřiče.
    • <dev_id> – nepovinný parametr udává číslo pozice v tabulce měřičů. Pokud se nepoužije, nové zařízení se přidá do tabulky na první volné pozici. 

Tip

  • IEEE ZigBee adresy mají následující tvar: 00:12:4B:00:04:26:35:C1. AT příkaz pro přidání zařízení s touto adresou bude vypadat následovně. 
T^SCZB="ADD",00124B00042635C1,6
  • Příkaz přidá zařízení s touto adresou na 6 pozici v tabulce.
  • Počet pozic tabulky zařízení je dán verzí FW a je zákaznicky přizpůsobitelný.
AT^SCZB?
  • Vyčte tabulku měřičů. Odpověď může vypadat následovně:
AT^SCZB?<br>
^SCZB: ID: 1, STATE: CONFIGURED, IEEE_ADDR: 00:12:4B:00:05:18:E7:42, SIG: 0%, CAP: UNKNOWN<br>
^SCZB: ID: 2, STATE: CONFIGURED, IEEE_ADDR: 00:12:4B:00:04:26:35:C1, SIG: 0%, CAP: UNKNOWN<br>
^SCZB: ID: 3, STATE: SLOT_FREE, IEEE_ADDR: 00:00:00:00:00:00:00:00, SIG: 0%, CAP: UNKNOWN<br>
^SCZB: ID: 4, STATE: SLOT_FREE, IEEE_ADDR: 00:00:00:00:00:00:00:00, SIG: 0%, CAP: UNKNOWN<br>
^SCZB: ID: 5, STATE: SLOT_FREE, IEEE_ADDR: 00:00:00:00:00:00:00:00, SIG: 0%, CAP: UNKNOWN<br>
^SCZB: ID: 6, STATE: CONFIGURED, IEEE_ADDR: 00:12:4B:00:04:26:35:C1, SIG: 0%, CAP: UNKNOWN<br>
^SCZB: ID: 7, STATE: SLOT_FREE, IEEE_ADDR: 00:00:00:00:00:00:00:00, SIG: 0%, CAP: UNKNOWN<br>
^SCZB: ID: 8, STATE: SLOT_FREE, IEEE_ADDR: 00:00:00:00:00:00:00:00, SIG: 0%, CAP: UNKNOWN<br>
^SCZB: ID: 9, STATE: SLOT_FREE, IEEE_ADDR: 00:00:00:00:00:00:00:00, SIG: 0%, CAP: UNKNOWN<br>
^SCZB: ID: 10, STATE: SLOT_FREE, IEEE_ADDR: 00:00:00:00:00:00:00:00, SIG: 0%, CAP: UNKNOWN<br>
OK

AT^SCZB="DEL",<dev_id>
  • Příkaz odebere zvolené zařízení z tabulky. Možnost nastavení parametru je dle počtu záznamů v tabulce. Maže vždy jen jeden záznam.
AT^SCZB="CLEAR"
  • Příkaz smaže všechna zařízení z tabulky. 
AT^SCZB="PANID"[<4 HEX>]
  • Příkaz nastaví identifikátor sítě na hodnotu zadanou v parametru. 
    • <4 HEX> – udává název nové sítě. Možnost nastavení jsou 4 hexadecimální znaky (0–F).

Tip

  • V případě, že se nepovinný parametr nezadá, příkaz pouze vyčte aktuální nastavenou hodnotu. To platí u všech příkazů!

Poznámka

  • Pokud je v dosahu jiná síť se stejným názvem a kanálem, vybere modul volnější kanál, případně změní automaticky název sítě na nastavenou hodnotu +1. Je proto dobré si nastavení ověřit vyčtením aktuální hodnoty.
AT^SCZB="PANID_READ"
  • Vyčte aktuální hodnotu parametru PANID. 
AT^SCZB="CHANNEL"[<8 HEX>]

Příkaz nastaví používaný kanál na hodnotu zadanou v parametru. 

  • <8 HEX> – udává název nové sítě. Možnost nastavení jsou je 8 hexadecimálních znaků (0–F). Zadávají se hodnoty posledních 8 pozic bez 0x.
  • Jedná se o bitovou masku jednotlivých kanálů. Defaultní hodnota je 0x00000800–channel 11.
KanálMaska KanálMaska
NONE0x00000000Channel 180x00040000
ALL_CHANNELS0x07FFF800Channel 190x00080000
Channel 110x00000800Channel 200x00100000
Channel 120x00001000Channel 210x00200000
Channel 130x00002000Channel 220x00400000
Channel 140x00004000Channel 230x00800000
Channel 150x00008000Channel 240x01000000
Channel 160x00010000Channel 250x02000000
Channel 170x00020000Channel 260x04000000
  • V případě, že se nepovinný parametr nezadá, příkaz pouze vyčte aktuální nastavenou hodnotu. Nevrací masku, ale již string se zvoleným číslem kanálu

AT^SCZB="CHANNEL_READ"
  • Příkaz pouze vyčte aktuální nastavenou hodnotu. Nevrací masku, ale již string se zvoleným číslem kanálu. 

AT^SCZB="PRECFGKEY"[<32 HEX>]
  • Příkaz nastaví používaný předsdílený klíč pro šifrovanou komunikaci.
    • <32 HEX> – šifrovací string obsahující 16 ASCII znaků, které se zadávají v hexadecimálním tvaru. Tedy 32 znaků 0–F.
AT^SCZB="PRECFGKEY_ENABLE"[<0-1>]
  • Příkaz zapne nebo vypne odesílání šifrovacího klíče.
    • V případě, že je klíč nastaven na obou stranách komunikujících zařízení, není třeba jej posílat při zahájení komunikace. 
AT^SCZB="TCLK"[<32 HEX>]
  • Příkaz nastaví šifrovací klíč pro vyjednávání a přenos komunikačního klíče. Použije se pro zašifrování výměny klíčů.
    • <32 HEX> – šifrovací string obsahující 16 ASCII znaků, které se zadávají v hexadecimálním tvaru. Tedy 32 znaků 0–F.

Tip

  • Klíč musí být nastaven na obou stranách komunikace stejně, a to ještě před zahájením komunikace. Ve všech ZigBee zařízeních je tento klíč nastaven na defaultní hodnotu z výroby, která je u všech zařízení stejná. Pokud chcete zajistit kompatibilitu, ponechte výchozí nastavení. Chcete-li zvýšit bezpečnost, změňte tento klíč. Potom budou fungovat jen zařízení se správně nastaveným klíčem. Defaultní klíč je následující:
    • ASCII – ZigBeeAlliance09
    • HEX – 5A6967426565416C6C69616E63653039

AT^SCZB="IEEE_ADDR"
  • Vyčte a zobrazí vlastní IEEE adresu ZigBee rozhraní.  
AT^SCZB="MODULE_TYPE"
  • Vyčte a zobrazí informace o modulu.
AT^SCZB="RESTART"
  • Provede restart rozhraní a vytvoří novou síť PAN. Nová síť se nevytváří v případě, že nedošlo ke změně v hlavních parametrech.

AT^SCZB="POLL",<dev_id>
  • Vyčte a aktualizuje data v tabulce zařízení pro definované dev_id (pozice zařízení v tabulce).
    • Aktualizuje se pouze jedno zařízení. Vyčtou se veškeré dostupné informace včetně hodnot jednotlivých clusterů ve všech endpointech.
AT^SCZB="POLL_TIME",<time>
  • Vyčte a aktualizuje data v tabulce zařízení automaticky. Po nastavené době se provede vyčtení údajů. Timer je držen pro každé zařízení zvlášť.
    • <time> – nastavuje se v sekundách. Možnost nastavení je 0–10000, přičemž 0 znamená vypnuto.
AT^SCZB="PERMIT_JOIN",<dev_id>,<time>
  • Zvolenému zařízení povolí přijímat nová zařízení do sítě.
    • <dev_id> – určuje, které zařízení bude mít povoleno přijímat další zařízení. Nastavením 0 v tomto parametru povolíte permit_join přímo na 2N® SmartCom PRO. 
    • <time> – nastavuje se v sekundách. Možnost nastavení je 0–255.
      • 0 – vypnuto
      •  1–254 zapnuto po nastavený čas
      • 255 – zapnuto stále 

Tip

  • Chcete-li přidávat další zařízení do sítě přes Next Hop, je potřeba, aby byl permit join povolen na 2N® SmartCom PRO a na bodu, který je nejbližší nově přidávanému zařízení.
AT^SCZB="PERMIT_JOIN_ALL",<time>
  • Povolí všem zařízením v tabulce přijímat nová zařízení do sítě.
    • <time> – nastavuje se v sekundách. Možnost nastavení je 0–255.
      • 0 – vypnuto
      •  1–254 zapnuto po nastavený čas
      • 255 – zapnuto stále

Popis jednotlivých příkazů funkcí

V každém příkazu je nutné uvést dev_id zařízení, kterému chcete příkaz odeslat. Dalším důležitým parametrem je end_point (EP), kterým v daném zařízení identifikujete příslušný cluster. Default EP je vždy 2, ale může teoreticky nabývat jakékoliv hodnoty. Nejčastěji se vyskytují ale 2, 3 a 4. Tyto dva parametry jsou nezbytnou součástí všech následujících příkazů, a tak jejich význam v každém příkazu popisovat nebudeme.

Na každý odeslaný příkaz dostanete odpověď. Ta může nabývat následujících 4 stavů:

  1. <DATA> <OK> – parametr data, zobrazí popis nastavených nebo změřených hodnot a příkaz se ukončí sekvencí OK. Vše proběhlo v pořádku.
  2. <ERROR> – byl odeslán neplatný parametr nebo při zpracování došlo k chybě.
  3. <TIMEOUT> – příkaz byl odeslán do zařízení, ale to neodpovědělo v nastavené době.
  4. <ZCLERROR:[code]> – došlo k chybě v ZigBee protokolu. Je zobrazen číselný chybový kód, jehož význam je možné nalézt v ZigBee datasheetu. 

Poznámka

  • Zařízení na odeslaný příkaz odpoví, pokud je v něm cluster s daným parametrem implementován. Ne všechna zařízení musí podporovat všechny clustery. Využívají jen takové, které ke své správné funkci potřebují.
AT^SCZB="ANLGVAL",<dev_id>,<EP>
  • Vyčte hodnotu analogového vstupu v zařízení na zvoleném end_pointu.
AT^SCZB="BASIC",<dev_id>,<EP>
  • Vyčte všechny hodnoty uvedené v BASIC clusteru.
    • Jeho součástí mohou být například následující informace: (BASIC_ZCL_VER, BASIC_APP_VER, BASIC_STACK_VER, BASIC_HW_VER, BASIC_MAN_NAME, BASIC_MODEL_ID, BASIC_PWR_SRC, BASIC_LOC_DESC, ONOFF, POWCFG_MAINS_VOLTAGE, POWCFG_BATTERY_VOLTAGE)
AT^SCZB="DEVTEMP",<dev_id>,<EP>
  • Vyčte aktuální teplotu zařízení.
AT^SCZB="FAN",<dev_id>,<EP>
  • Vrátí aktuální stav větráku.
AT^SCZB="FAN_MODE",<dev_id>,<EP>,<hodnota>
  • Nastaví mód větráku na nastavenou hodnotu.
AT^SCZB="HMDT",<dev_id>,<EP>
  • Vrátí hodnotu vlhkosti v % s přesností na 2 desetinná místa. 
AT^SCZB="LC",<dev_id>,<EP>
  • Vrátí úroveň Level Control parametru (pozice aerodynamického usměrňovače toku vzduchu, "klapky").
AT^SCZB="LC_MOVE_TO_LEVEL",<dev_id>,<EP>,<úroveň>[,<transition_time>]
  • Nastavuje se úroveň parametru Level Control (pozici klapky). Nepovinný je parametr čas, během kterého se do této pozice má nastavit. Čas se zadává v desetinách sekundy. Pokud se časovač nenastaví, provede se změna okamžitě.
AT^SCZB="METER",<dev_id>,<EP>
  • Vypíše okamžité hodnoty spotřeby. Výstupem jsou dvě čísla, kdy první udává okamžitý výkon a druhé sumu, tedy celkový odebraný výkon (parametr je upraven pro potřeby elektrických měřičů, a proto zobrazuje jednotky [W, Wh]. Obecně lze ale použít jakýkoliv měřič a hodnoty pak můžou udávat například energii [J] nebo průtok [m3/h]).
AT^SCZB="MSTVAL",<dev_id>,<EP>
  • Vyčte hodnotu takzvaného Multi State Value. Nejčastěji se využívá pro chybové kódy.
AT^SCZB="ONOFF",<dev_id>,<EP>
  • Vrátí hodnotu 1/0 v závislosti na okamžitém nastavení.
AT^SCZB="ONOFF_SET",<dev_id>,<EP>,<stav>
  • Nastaví spínač na hodnotu uvedenou v parametru stav. Možnost nastavení je 1 – zapnuto, 0 – vypnuto.
AT^SCZB="TEMP",<dev_id>,<EP>
  • Vrátí hodnotu teploty ve ° C s přesností na dvě desetinná místa. 
AT^SCZB="THERM",<dev_id>,<EP>
  • Vyčte a zobrazí nastavený mód termostatu.
AT^SCZB="THERM_MODE",<dev_id>,<EP>,<hodnota>
  • Nastaví mód termostatu dle nastavené hodnoty. Jde o 2 hexadecimální znaky, dle následující tabulky.
HodnotaPopis
00Off
01Auto
03Cool
04Heat
05Emergency heating
06Precooling
07Fan only
02, 08, feReserved
AT^SCZB="THERM_TEMP_HEAT",<dev_id>,<EP>,<hodnota>
  • Nastaví teplotu, na kterou se má ohřívat. Zadává se ve ° C s přesností na dvě desetinná místa.
AT^SCZB="THERM_TEMP_COOL",<dev_id>,<EP>,<hodnota>

  • Nastaví teplotu, na kterou se má chladit. Zadává se ve ° C s přesností na dvě desetinná místa.
AT^SCZB="TIME",<dev_id>,<EP>

  • Vrátí aktuální nastavenou hodnotu času a status času.
AT^SCZB="TIME_SET",<dev_id>,<EP>,<utc_time>

Příkaz nastaví čas v zařízení na hodnotu nastavenou v parametru utc_time. Zadává se ve 32bitovém formátu. 

AT^SCZB="GROUP_ADD",<dev_id>,<EP>,<group_id>[,<group_name>]

Přidá zařízení se zvoleným dev_id do skupiny definované v group_id. Jako volitelný parametr při zakládání nové skupiny je možné využít ještě group_name, kde lze přidělit nové skupině název o maximální délce 15 znaků. 

AT^SCZB="GROUP_MEMBERSHIP",<dev_id>,<EP>,<group_id>

Vrátí řetězec YES, pokud je zařízení definované v dev_id součástí skupiny definované v group_id. Pokud není její součástí, vrátí řetězec NO. 

AT^SCZB="GROUP_REMOVE",<dev_id>,<EP>,<group_id>

Vymaže zařízení specifikované v dev_id ze skupiny dané v group_id. 

AT^SCZB="GROUP_REMOVE_ALL",<dev_id>,<EP>

Vymaže zařízení specifikované v dev_id ze všech skupin. 

AT^SCZB="SCENE_RECALL_ALL",<group_id>,<scene_id>

Ve všech zařízeních ve skupině definované v group_id vyvolá příkaz spuštění scénáře definovaného ve scene_id. 

  • Tento scénář již musí být v zařízeních implementován. Příkaz ho pouze spouští.