Browsed by
Tag: zigbee

Zigbee brána pomocí Raspbery PI

Zigbee brána pomocí Raspbery PI

Tak, úvod o Zigbee spolu s důvody, proč je tak úžasný, máme za sebou z minula  a dneska se pojďme podívat na samotné rozchození.

Co budem potřebovat

Na provoz vlastní Zigbee brány budete potřebovat buď Raspberry (doporučuju RaspPI novější než v1. Na té to sice běží, ale dost pomalu). A nebo nějaký NAS nebo linuxový stroj, kde Vám pojede například Docker.

Dále pak komponenty na výrobu Zigbee brány:

A případně nějaká čidla na vyzkoušení

Já jsem se nakonec vydal cestou Raspberry 3 B+ , protože se mi nepovedla Zigbee USB rozchodit pod ESXI (ten ho chybně identifikoval jako USB drive a celý tuhnul). Zatím mi na Raspberry běží jen zigbee2mqtt, ale výhledově ho chci zkusit rozchodit spolu s Loxberry.

Flashnutí CC2531 USB snifferu

Jako první krok je potřeba stáhnout Flash Programmer (verzi 1, nikoli v2). Je nutná registrace, která je ale zdarma. Dále pak nainstalovat CC Debugger driver (zatím jen instalujte, nic nezapojujte do PC).

Nyní propojte všechny tři zakoupené komponenty z prvního seznamu mezi sebou (CC Debugger – Downloader Cable — USB Sniffer). Z USB Snifferu je potřeba vyndat chráničku, která je na pinech nastrčená. Měli byste získat celek, který má na obou koncích USB koncovku.

Propojku na USB sniffer připojte tak, že červená linka na kabelech je na straně, kde není USB zásuvka.

Nyní připojte USB kabel z CC Debugeru a ověřte, že zařízení vidíte ve správci zařízení. Mně tento krok sám o sobe nefungoval a bylo potřeba ještě ručně nainstalovat driver ze souboru swrc212a.zip z podsložky cebal\win_64bit_x64.

Pokud ve správci zařízení vidíte CC Debugger, připojte i USB Sniffer. Takže budete mít oba USB porty zapojené.

Nyní na CC Debugeru zmáčněte tlačítko Reset, čímž by se měla kontrolka rozsvítit zeleně.

Spusťte aplikaci Flash Programmer, kde byste v horním seznamu měli vidět CC Debuger zařízení. Pokud nevidíte, znamená to, že Vám nefunguje výše zmíněný driver. Zkontrolujte ho a případně nainstalujte.

Stáhněte custom firmware pro USB Sniffer https://raw.githubusercontent.com/Koenkk/Z-Stack-firmware/master/coordinator/CC2531/bin/CC2531ZNP-Prod.hex (přes klik pravým tlačitkem a save as).

V aplikaci zvolte custom firmware a vyberte soubor stažený v předchozím kroku.

Odškrtněte “Retain IEEE address when reprogramming the chip” a stiskněte “Perform flash”.

Počkejte, než se USB sniffer zase rozsvítí zeleně. Tím poznáte, že je přeprogramování hotovo.

Aplikaci můžete ukončit a sniffer vyndat z Vašeho PC:

Pokud používáte Linux, nebo se chcete podívat na původní návod, tak ten je k dispozici zde: https://github.com/Koenkk/zigbee2mqtt/wiki/Getting-started

Instalace na Raspberry

Tady je postup vcelku primitivní a funguje přesně jak je popsáno zde: https://github.com/Koenkk/zigbee2mqtt/wiki/Running-the-bridge

Jako první krok odpojte CC Debugger a Downloader kabel a připojte USB Sniffer do Raspberry. Pak zjistěte, zda Vaše Raspberry vidí USB Sniffer. To zjistíte tak, že ve složce /dev uvidíte ttyACM0. Takže zkuste například

ls -l /dev/ttyACM0

Pro samotnou instalaci postupně spusťte kroky popsané na výše zmíněné stránce. Tzn:

sudo curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs git make g++ gcc
sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
npm install

Pokud se něco nepovede, zkuste zkontrolovat verze npm a verzi node dle popisu v gihubu. Mně vše fungovalo napoprvé.

Když budete mít nainstalováno, je potřeba ještě zigbee2mqtt nakonfigurovat. To se dělá v souboru /opt/zigbee2mqtt/data/configuration.yaml.

Konfiguraci proveďtě pomocí nástroje nano:

nano /opt/zigbee2mqtt/data/configuration.yaml

upravte MQTT bránu dle Vašeho nastavení a soubor uložte (CTRL+O a ukončete pomocí pomocí CTRL+X).

Nyní zigbee2mqtt spusťte a otestujte, že vše jede.

cd /opt/zigbee2mqtt
npm start

Měli byste vidět něco jako:

2018-12-04 17:12:03 INFO Starting zigbee-shepherd
2018-12-04 17:12:04 INFO zigbee-shepherd started
2018-12-04 17:12:04 INFO Currently 0 devices are joined:
2018-12-04 17:12:04 INFO Connecting to MQTT server at mqtt://mqtt.dum
2018-12-04 17:12:04 INFO zigbee-shepherd ready
2018-12-04 17:12:04 INFO Connected to MQTT server

Automatické spouštění po startu

Pokud chcete, aby se brána spouštěla automaticky při restartu Raspberry, je potřeba ještě zaregistrovat zigbee2mqtt jako service.

sudo nano /etc/systemd/system/zigbee2mqtt.service

Vložit:

[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

A opět uložit a ukončit (CTRL+O, CTRL+X).

Nyní službu nahoďtte a podívejte se, že běží

sudo systemctl start zigbee2mqtt
systemctl status zigbee2mqtt.service

a pak ji povolte jako automatickou

# Start zigbee2mqtt
sudo systemctl start zigbee2mqtt

# Show status
systemctl status zigbee2mqtt.service

A tady ještě několik užitečných příkazů, především pak ten poslední, pomocí kterého se můžete podívat na log zigbee2mqtt i když běží na pozadí (hodí se při párování dalších zařízení).

# Stopping zigbee2mqtt
sudo systemctl stop zigbee2mqtt

# Starting zigbee2mqtt
sudo systemctl start zigbee2mqtt

# View the log of zigbee2mqtt
sudo journalctl -u zigbee2mqtt.service -f

Celý návod je opět dostupný zde:https://github.com/Koenkk/zigbee2mqtt/wiki/Running-the-bridge . Stačí následovat krok za krokem.

Při prvním testování doporučuji zigbee2mqtt spustit jen z příkazové řádky (ne jako service). Lépe uvidíte, co se uvnitř děje.

Párování zařízení

Párování samotné je občas vcelku věda. Každé zařízení má totiž vlastní postup, jak vyvolat párovací proces. Zatím mám vyzkoušené jen výše uvedená zařízení, ale ostatní snad už budou podobné.

Na zigbee2mqtt wiki je opět článek o párování, ale ten mi pomohl jen částečně.

Samotný zigbee2mqtt provádí párování cca jednou za minutu. Je proto potřeba se jednak trefit do tohoto časového okna (info o párování vidíte v logu) a udržet párované zařízení online.

V případe Xiaomi teploměru šlo všechno hladce. Stačilo podržet tlačítko teploměru po dobu cca 5 sekund a nacházet se v blízkosti USB sniferu.

V případě Xiaomi cube to byl boj. Co totiž na webu nepíšou je, že zařízení usíná. Je tedy potřeba opravdu trefit párovací okno, nejprve držet párovací tlačítko cca 5sekund, kdy se 3x rozbliká modře dioda. Pak párovací tlačítko pustit a dioda blikne ještě jednou (tím pravděpodobně potvrzuje, že se rozjel párovací proces). A nyní je potřeba cca jednou za sekundu jen krátce zmáčknout tlačítko. Tím kostku udržujete vzhůru. Jakmile se kostka přihlásí v logu zigbee2mqtt, můžete zběsilého mačkání nechat.

A na závěr Ikea žárovka. Tam se pro změnu párování dělá střídavým zapínáním a vypínáním, navíc je potřeba mít USB Zigbee sniffer jen pár cm od žárovky, ideálně úplně na ní.

Na tyhle účely jsem si vyrobil kabel s vypínačem a objímkou, abych mohl žárovku pustit přímo vedle Raspberry. Poté, co žárovku umístíte k Zigbee Snifferu, je potřeba 6x zapnout a vypnout žárovku tak, že ji vždy jen na chviličku zapnete, aby se téměř nestihla rozsvítit a pak na delší dobu vypnete (cca 0.5s zapnout a třeba 1s vypnout). Po těchto šesti ji nechte buď zaplou, nebo dál blikejte.

Závěrem

Jak vidíte, párování není úplně snadné :). Ale s trochou cviku to už jde.

A to je pro dnešek vše. Návod už je docela dlouhý, ale přitom je myslím vcelku snadný. Příště pak bude následovat ukázka, jak z MQTT dostat data přes NodeRED až do Loxone.

PS:

Ještě jen doplním pár vět ohledně diskuze před minulým článkem. Co by se mi opravdu líbilo, je PLC Zigbee na DIN lištu. Aby to bylo zase hloupé a nahraditelné zařízení, stejně jako třeba Quido nebo jiná seriovka. Něco málo jsem našel, ale ceny nejsou moc příjemné. Pokud by někdo věděl, dejte vědět.

Představení Zigbee

Představení Zigbee

Představte si bezdrátovou technologii, kterou lze ovládat světla, zásuvky, přijímat pomocí ní teploty, vlhkosti, kontakty oken a mnoho dalšího. Představte si technologii, kdy se spousta velkých výrobců konečně shodla na jednotném komunikačním formátu. Představte si Zigbee.

Asi takhle nějak by mohla znít reklama na Zigbee, kdyby se ovšem výrobci rozhodli, že chtějí, abyste to věděli. Jenže, věci se mají trošku jinak, a tak to nikdo takto nehlásá.

Spousta výrobců už dnes  totiž Zigbee podporuje, ale už moc nešíří, že to, co používají, je Zigbee. Každý totiž chce nabízet k jeho zařízením jen jeho vlastní bránu. A to proto, že brána pak krom samotného ovládání zařízení odesílá data o tom, jaká zařízení používáte, jak často je používáte, kolik jich máte, kde bydlíte a celkově vás takto šmíruje (a například Xiaomi gateway údajně otevírá na IPv6 protokolu dokonce root přístup pro internet do vašeho domu).

A kdo Zigbee podporuje? Například právě zmíněný Xiaomi, Philips, Osram, Ikea,… a spoustu dalších. Většinou se Vám je ale oficiální cestou nepodaří propojit mezi sebou.

Naštěstí je tu ale pak i ta neoficiální cesta. A to ta, kde si vytvoříte vlastní univerzální bránu.

Díky tomu zařízení nemohou nijak komunikovat s internetem, nikdo Vás tak nešpehuje a vy můžete připojit všechna zařízení do jedné Zigbee sítě. Takto připojená zařízení pak můžete ovládat z nějakého home-automation systému. V našem případě z Loxone.

A co teda Zigbee vlastně je a jak funguje?

Zigbee je komerční protokol, který si výrobci licencují a integrují do svých zařízení. Díky tomu pak můžete jejich světla ovládat dálkovým ovladačem, občas i mobilní aplikací. Proto Ikea může nabízet chytrá světla, Xiomi třeba čidla teploty. A nikdo z nich se nemusí starat o vývoj protokolu ani hardware nutnému k těmto funkcím.

Zigbee je bezdrátová technologie vytvořená tak, aby měla co nejmenší spotřebu. Vzduchem se přenáší jen ID zařízení a pár hodnot. A je na příjemci, aby tyto hodnoty zpracoval.

Navíc, ta zařízení, která jsou nonstop připojeny k elektrické síti, pak většinou fungují také jako opakovače, takže krom příjmu či odesílání informací ještě samy dále šíří Zigbee signál. Díky tomu lze signál dostat kamkoli po domě. Stačí pár chytrých žárovek nebo zásuvek a celý dům máte pokrytý.

A teď trochu negativ. Tím prvním je, že si to musíte zbastlit sami. Neexistuje totiž univerzální brána, která by toto vše uměla. Každý výrobce má bránu uzamčenou jen na vlastní zařízení a ovládat ji lze jen z jeho aplikace.

V praxi to tak znamená, že i když máte v domě vše zigbee, musíte stejně používat deset různých ovladačů nebo aplikací. Geniální, že ? 🙂

Takže je potřeba si koupit USB Zigbee stick, který umí přijímat a vysílat Zigbee a pak někde na RasperyPi, nebo třeba v Dockeru na NASu rozchodit Zigbee2mqtt software, který překládá Zigbee z/do MQTT transportního protokolu. A z něj pak pomocí NodeRED data překládat a posílat do Loxone a zpět z Loxone do MQTT.

Ale, není to nic hrozného. Když víte jak na to, je to vcelku snadné. Jen to chce trochu času a trochu práce :).

V současnosti mám rozběhanou Xiaomi kostku, Xiaomi teploměr s vlhkoměrem a Ikea žárovku se stmíváním.

Zatím mám vše rozchozeno v polních podmínkách na stole, ale postupně budu vše integrovat do domu. Spolu s tím budu i odstraňovat některé technologie z domu pryč.

Tou první jsou DMX Triaky. I když fungují supr, zabírájí v rozvaděči hodně místa a přijde mi zbytečné mixovat více různých technologií. Proto DMX Triaky nahradím chytrými žárovkami.

Triak stojí cca 800kč, chytrá žárovka 300kč. I když vyjde žárovka o něco dráž, ušetřím místo v rozvaděči a trochu ho zjednoduším. Takže snadná volba (pokud by někdo mé triaky chtěl, mám 3ks, z toho jeden používaný, dva zatím nezapojeny. Nechám je za 600kč za ks).

Další, co zjednoduším, budou zásuvky. OSRAM SmartPlug vypadá moc pěkně a lze ho zapojit kamkoli. Narozdíl od komplikovaného zapojování více okruhů v rámci místnosti a relátek v rozvaděči zařízení jen píchnu do hloupé zásuvky a je z ní chytrá zásuvka.

Využiju to všude tam, kde se zapínají drobné spotřebiče. Například zvlhčovačka vzduchu v ložnicích, zabiják komárů, nebo třeba vánoční osvětlení.

Co se týká čidel, tak teploměry mám pod vypínači na 1-wire a ty tam i nechám. Tam, kde ale teploměry nemám, využiju Xiaomi čidla. Například na půdě, v zahradní boudě a jinde, kde mne zajímá jaká je teplota, ale nemám tam nataženo dost kabelů, nebo by už 1-wire byl zbytečně dlouhý.

Tahle lednička za 3,000USD údajně už Zigbee podporuje (Samsung)

Věřím, že zařízeních bude do budoucna přibývat a třeba se objeví i složitejší spotřebiče, jako třeba trouba nebo lednička, která bude přes Zigbee ukazovat své stavy a půjde tím třeba i nějak ovládat. Zatím to vypadá, že výrobci Zigbee docela věří a stále přibývají jak další produkty, tak noví výrobci, kteří Zigbee podporují.

Oficiální prohlášení Loxone o Zigbee z roku 2015.

Je jen škoda, že Loxone jakožto technologie chytrého domu už delší dobu úmyslně ignoruje veškeré nové technologie jako je IoT, MQTT, Zigbe,… jen proto, aby mohlo prodávat svůj předražený LoxoneAir a tím tak zákazníky drželo ve své moci.

A to bude v dnešním představení vše. Jak vidíte, Zigbee vypadá jako nadějná technologie, nad kterou lze postavit nekritické systémy v domě a zároveň ušetřit nějaké to místo v rozdvaděči.

Článek o konfiguraci a rozchození Zigbee očekávejte záhy 🙂

PS: Pro ty co Vás to zaujalo, zatím si objednejte tyto věci na AliExpressu.

Pro výrobu Zigbee brány:

Čidla na vyzkoušení