Raspberry Pi, z-wave a domoticz

  Počítač v krabičce do dlaně – malý a konečně s rozumným výkonem. Tento drobek je dnes hojně skloňován a slouží jako výborný pomocník v mnoha oblastech – od profesionálních dílen přes hobby domácnosti až po mobilní využití. Rozhodně se nepovažuji za průkopníka v oblasti, a tak tento úryvek přichází po mnoha dalších na webu, ale je zde proto, aby spíše motivoval, či pomohl při řešení případných problémů dalším případným uživatelům.

  Tedy před časem jsem pořídil tento modulární počítač RaspberryPI verze 3B(RPI) s příslušenstvím – základní desku s CPU čip ARM, chladič na CPU, krabičku, HDMI kabel, SD kartu a napájecí zdroj (3A nutnost)! Píši 3A, protože jsem zkoušel 1A i 2A a ač se RPI rozjelo a předstíralo funčnost – občas se restartovalo, nebo na HDMI výstupu byly zobrazeny artefakty. Dále jsem pořídil modul Z-Wave do sběrnice GPIO (existují i USB verze). RPI se tedy přeměnil na Z-Wave Controller, který komunikuje s dalšími elementy v domácnosti. Přidal jsem Aeotec MultiSensor6 – jak název napovídá jde o kombinaci několika čidel v jedné kostičce (pohyb, vibrace, teplota, vlhkost, UV záření a světlo). Jde o malou kostku ~4cm napájenou z USB nebo bateriemi (uvnitř čidla).

  Z-Wave (ZW) je bezdrátový komunikační protokol. Standardně se k Z-wave dá připojit tedy mnoho dalších zařízení z kategorie označované jako SmartHome. Většinou se jedná o různá čidla (teplota, hluk, vlhkost, pohyb, otevření dveří nebo kamera) a operace s nimi (intenzita světla, teplota, on/off, a další). Zkrátka v dnešní době hromadně nazýváno jako inteligentní domácnost – SmartHome.
  Parametry dosahu uváděné výrobcem jsou fantastické – dosah až 150m ve volné krajině. Nezkoušel jsem na volném prostranství, protože chci měřit teplotu v domě a né na zahradě u souseda. Zde je skutečnost poněkud jiná – přes betonový strop (s armaturou a železným roštem); jednou dřevěnou policí – má GPIO problém se spojením. Avšak při návrhu ZW se zamysleli a celé řešení využívá Mesh topologii sítě, tedy každý prvek je uzel spojený s dalšími uzly napřímo – tedy právě pro případ výpadku spojení mezi některými uzly. V praxi to znamená, že není potřeba aby všechny elementy byly napřímo v dosahu Controlleru. A to je i můj případ – jedno ze dvou čidel využívá pro komunikaci s Controllerem výhradně jiného uzlu. Co může také být příčinou zhoršeného signálu je rušení jiným zařízením. Ač ZW funguje v jiném pásmu než WiFi – přesto se může rušit s různými zařízeními jako bezdrátové domácí telefony, sluchátka, PC myši, atp.

  Z-Wave instalace.
Po samotné instalaci Raspbianu (upravená Linuxová distribuce Debian pro RPI)  jsem si dle dodaného návodu nainstaloval základní SW pro ovládání, nastavení a další pokročilejší funkce jako je např. update firmware.

wget -q -O – http://razberry.z-wave.me/install|sudo bash

Přidal čidla a nějakou dobu je takto provozoval. Dostupná je i aplikace pro iOS a tedy mobilní zařízení. Bohužel se mi nezamlouvala historie/reporting hodnot. Standardní SW nabízel velmi omezenou možnost prakticky s jednodenní historií a také pluginy ve formě externího zobrazení dat přes intchart (inchart.com), ale tato možnost se mi vůbec nezamlouvala. Z-Wave server službu jsem proto vypnul a pokračoval ve zkoušení dále.

sudo curl -L install.domoticz.com | sudo bash

  Domoticz
Tento OpenSource projekt je poměrně zdařilým se spoustou vychytávek. Kromě udržování historie a možností připojení mnoha Smart elementů třetích stran, umí také pracovat s ne úplně typickými – tyto je možné připojit pomocí jejich vlastních API. Takže není problém například ovládat televizor nebo třeba monitorovat PC (jeho teplotu/CPU) – či cokoli jiného. Také je k dispozici mnoho příkladů kterak si napsat vlastní konektor.

  Vše začalo přidáním OpenZWaveUSB hardware, kdy jsem jako ‘Serial Port’ použil ‘/dev/ttyAMA0’, který mi již připravila instalace ZW serveru. V případě manuálního nastavení, je potřeba upravit pravidla jádra. Vytvoříme soubor ‘/etc/udev/rules.d/99-com.rules’ a přidáme obsah níže:

SUBSYSTEM==”input”, GROUP=”input”, MODE=”0660″
SUBSYSTEM==”i2c-dev”, GROUP=”i2c”, MODE=”0660″
SUBSYSTEM==”spidev”, GROUP=”spi”, MODE=”0660″
SUBSYSTEM==”bcm2835-gpiomem”, GROUP=”gpio”, MODE=”0660″

SUBSYSTEM==”gpio*”, PROGRAM=”/bin/sh -c ‘\
        chown -R root:gpio /sys/class/gpio && chmod -R 770 /sys/class/gpio;\
        chown -R root:gpio /sys/devices/virtual/gpio && chmod -R 770 /sys/devices/virtual/gpio;\

        chown -R root:gpio /sys$devpath && chmod -R 770 /sys$devpath\
‘”

KERNEL==”ttyAMA[01]”, PROGRAM=”/bin/sh -c ‘\
        ALIASES=/proc/device-tree/aliases; \
        if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \
                echo 0;\
        elif cmp -s $ALIASES/uart0 $ALIASES/serial1; then \
                echo 1; \
        else \
                exit 1; \
        fi\
‘”, SYMLINK+=”serial%c”

KERNEL==”ttyS0″, PROGRAM=”/bin/sh -c ‘\
        ALIASES=/proc/device-tree/aliases; \
        if cmp -s $ALIASES/uart1 $ALIASES/serial0; then \
                echo 0; \
        elif cmp -s $ALIASES/uart1 $ALIASES/serial1; then \
                echo 1; \
        else \
                exit 1; \
        fi \
‘”, SYMLINK+=”serial%c”

Po restartu RPi se již objeví zařízení ‘/dev/ttyAMA0’ a toto může být použito v Domoticz.

  Na stránce se seznamem Hardware = “http://<fqdn>:<port>/#/Hardware” se objeví. Pro detailní nastaveni jednotlivých systémů (v mém případě multifunkční čidla) stačí kliknout na tlačítka ‘Setup’ za jednotlivými typy hardware/systémů. Pro zmíněné čidla se nabízí více než 20 možných nastavení (od reportování stavu baterie v čidle samotném, přes nastavení spánku, přes korekci citlivosti až trebas blikání LED diody…). Nastavení spouštěčů při různých akcích (teplota nad/pod, priority atp) se nastavují pak v jiné části admin rozhraní.

 

  Dvě čidla teploty na obrázku výše informují o základních údajích.

 

Historické údaje jsou mnohem zajímavější (k dispozici dny/měsíc/rok).

  Po všech těch měsících, stále považuji toto prostředí ve fázi testování a pomalu přidádávám další elementy. Celé řešení přišlo poměrně levně při porovnání s jinými řešeními. Rozšiřitelnost řešení je úžasná, variabilita samotného RPI také – lze ho využít k dalším účelům (domácí kino založené na Kodi).

RPI (krabička, chladiče, zdroj, SD karta): 1900,-
RaZberry2 (GPIO modul): 1600,-
AeonLabs MultiSenzor6: 1600,-