Ikea TRÅDFRI+ Zigbee + Loxone

Ikea TRÅDFRI+ Zigbee + Loxone

Dnes trochu atypicky jeden krátký (nakonec se mi to celkem protáhlo :)) post na přání z publika :). Byla tu prosba o návod na propojení Ikea tlačítka TRÅDFRI z Ikea do Loxone pomocí Zigbee2Mqtt.

A protože další připravené články se zabývají trochu jinými tématy, rozhodl jsem se návod sepsat teď narychlo ve formě nového článku.

Celé schéma aktuálně vypadá takto. Ten horní pravý control-out je příprava na ovládání výsuvné pergoly, ale protože pořád prší, ještě jsem to raději nezapojoval a netestoval :).

V levé části grafu je Zigbee2Mqtt IN prvek pojmenovaný IkeaRoundButton01 dle názvu zařízení v konfiguraci Zigbee2Mqtt.

Jeho nastavení je Server (Zigbee2MQTT server), device(což je toto tlačítko) a jako výstup si z prvku bereme kompletní payload, tzn celý JSON objekt s daty ze zigbee.

Druhý z leva je prvek SWITCH. V něm lze zadat jeden až n podmínek, které když jsou pravdivé, tak vyšle na odpovídající výstup daného znovu celý svůj vstup.

Tzn prvek nikterak neupravuje vstup, jen ho přepošle na jeden z výstupu dle toho, která podmínka je platná.

Poslední parametr určuje, zda se vyhodnocuje do prvního platného pravidla, nebo vždy všechny. Tzn pokud se nastaví “všechny”, může se aktivovat více než jeden výstup. V mém případě je to jedno, je platná vždy jen jedna podmínka.

K rozhodování, která akce byla na tlačítku provedena testuji JSON atribut msg.payload.action (nastaveno v “property” prvku switch). Pro získání těchto hodnot je nejjednodušší si na začátku napojit DEBUG prvek (ten zelný) přímo na Zigbee2MQTT IN prvek a sledovat co z něj chodí.

Jak jde vidět v debug výstupu, z Zigbee2MQTT IN prvku leze JSON, ve kterém je properta action, battery a linkquality. Nás pro toto rozhodování zajíma jen ta akce, proto msg.payload.action.

 

Třetím prvkem z leva je prvek EXCHANGE. Ten je trochu nešikovně pojmenovaný, protože je to defakto přiřazení do proměnné (připadně změna, smazání či prohození).

 

Lze opět nastavit jeden či více kroků, ale pro naše účely nyní stačí jen jeden. Do přijatého msg.payload (ve kterém se ve chvíli vstupu nachází ještě JSON objekt ze Z2M) přiřadíme úplně jiná data (konkrétně textový řetezec). A to konkrétně taková, kterým bude pro změnu rozumět node-red-contrib-Loxone (dokumentace k Loxone WS třeba zde).

Na screenshotu je příkaz “up”, který posílám do bloku žaluzií. Tím říkám Loxone, aby začal vytahovat žaluzie. Dále pak na základě tlačítka posílám také UpOff, kterým se vytahování vypíná (při uvolnění tlačítka), a down a DownOff na spuštění dolů.

Zároveň zasílám up/down také po kliku na tlačítka. Zatím testuju co je pohodlnější a rozhodně je to jen kliknout a dalším klikem případně vypnout. Takže dlouhé podržení bude pravděpodobně vysunutí pergoly, které nechci, aby se spustilo jen náhodným/omylným kliknutím.

Po kliknutí na prostřední tlačítko pak posílám příkaz “plus”, kterým se přepínají scény v prvku ovládání osvětlení. Kdyby to bylo klasické tlačítko, příkaz by byl “toggle”. Bohužel se mi nepodařilo u bloky ovládání osvětlení vynutit zapnutí/vypnutí konkrétního světla, funguje mi jen přepínání scén.

Posledním prvkem v pravo je pak samotné napojení na WebSocket Loxone. V tomto prvku se nastavuje cílový miniserver, místnost/kategorie a prvek, do kterého se příkaz má poslat.

Do tohoto prvku musíte poslat příkaz, který splňuje podmínky Loxone WS. Ten jsme si připravili v předchozím kroku v prvku Exchange. Vstup vypadá například takto: msg.payload = “plus”. (Jde o obyčejný string zaslaný na cílový prvek).

A to je vše. Pokud jste postupovali podle tohoto návodu, právě jste přijali kliknutí Ikea TRÅDFRI tlačkítka přes Zigbee síť transportovanou přes MQTT protokol do NodeRED, který pak data zkonvertoval do WebSocket příkazu poslaného do Loxone. Snadné, ne? :)).

Pro případné zájemce, zde je NodeRED projekt na celou tuto logiku (stačí dát import a přes clipboard vložit):

[{"id":"c333e3da.bfcd3","type":"zigbee2mqtt-in","z":"4e77380b.b5af18","name":"","server":"4dd4dc36.2cc704","friendly_name":"IkeaButtonRound01","device_id":"0x842e14fffea3ff09","state":"0","outputAtStartup":true,"x":210,"y":240,"wires":[["20102bbc.6f9cb4","9fb1f206.7c05c"]]},{"id":"20102bbc.6f9cb4","type":"switch","z":"4e77380b.b5af18","name":"","property":"payload.action","propertyType":"msg","rules":[{"t":"eq","v":"brightness_up_click","vt":"str"},{"t":"eq","v":"brightness_up_hold","vt":"str"},{"t":"eq","v":"brightness_up_release","vt":"str"},{"t":"eq","v":"brightness_down_click","vt":"str"},{"t":"eq","v":"brightness_down_hold","vt":"str"},{"t":"eq","v":"brightness_down_release","vt":"str"},{"t":"eq","v":"toggle","vt":"str"}],"checkall":"false","repair":false,"outputs":7,"x":450,"y":240,"wires":[["be2577c2.997838"],["be2577c2.997838"],["3373d424.306ccc"],["c3e9d441.d0f198"],["c3e9d441.d0f198"],["9ce742fe.a0b25"],["97d7dcbb.f8e2a","fe05d856.cb7ef8"]],"outputLabels":["","","","","","","toggle"]},{"id":"c3e9d441.d0f198","type":"change","z":"4e77380b.b5af18","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"down","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":200,"wires":[["f96c30e8.7c3f2"]]},{"id":"9ce742fe.a0b25","type":"change","z":"4e77380b.b5af18","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"DownOff","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":240,"wires":[["f96c30e8.7c3f2"]]},{"id":"be2577c2.997838","type":"change","z":"4e77380b.b5af18","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"up","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":120,"wires":[["f96c30e8.7c3f2"]]},{"id":"3373d424.306ccc","type":"change","z":"4e77380b.b5af18","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"UpOff","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":160,"wires":[["f96c30e8.7c3f2"]]},{"id":"f96c30e8.7c3f2","type":"loxone-control-out","z":"4e77380b.b5af18","name":"","miniserver":"33d50a38.be2cc6","control":"160f9394-0337-d464-ffff3b22d8e2f329","x":910,"y":180,"wires":[]},{"id":"97d7dcbb.f8e2a","type":"change","z":"4e77380b.b5af18","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"plus","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":280,"wires":[["38ab62ac.e8c79e","68c1752.9451b8c"]]},{"id":"38ab62ac.e8c79e","type":"loxone-control-out","z":"4e77380b.b5af18","name":"","miniserver":"33d50a38.be2cc6","control":"0e6f3276-00d7-0359-ffff01c79402a3b1","x":910,"y":280,"wires":[]},{"id":"c8d1c8cf.917108","type":"comment","z":"4e77380b.b5af18","name":"Ikea 5-ovladac pracovna","info":"","x":210,"y":80,"wires":[]},{"id":"d7dee6f.2f79718","type":"loxone-control-out","z":"4e77380b.b5af18","name":"","miniserver":"33d50a38.be2cc6","control":"160f9394-0337-d464-ffff3b22d8e2f329","x":910,"y":80,"wires":[]},{"id":"9fb1f206.7c05c","type":"debug","z":"4e77380b.b5af18","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":460,"y":360,"wires":[]},{"id":"fe05d856.cb7ef8","type":"debug","z":"4e77380b.b5af18","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":720,"y":360,"wires":[]},{"id":"68c1752.9451b8c","type":"debug","z":"4e77380b.b5af18","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":960,"y":360,"wires":[]},{"id":"4dd4dc36.2cc704","type":"zigbee2mqtt-server","z":"","name":"zigbee","host":"host-mosquitto","mqtt_port":"1883","mqtt_username":"","mqtt_password":"","tls":"","usetls":false,"base_topic":"zigbee2mqtt"},{"id":"33d50a38.be2cc6","type":"loxone-miniserver","z":"","host":"x.x.x.x","port":"80","enctype":"2","active":true,"keepalive":"30000"}]

 

Pomohl Vám náš blog? Chcete nás podpořit? I málo udělá radost 😉
0 0 votes
Hodnocení články
Subscribe
Notify of
guest
44 Komentáře
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
smotek7
10 months ago

Len postreh z poslednych dni.
Ikea tlacitka (vysielace) maju horsi signal ako Xiaomi (Aquara, cube).
Inak stale neviem pochopit, ze sa ti chce travit tolko casu nad tym NodeRed. S tym pluginom MQTT Gateway v Loxberry to robi zamna “SAMO”.

_Petr_
10 months ago

Díky za dokonalý popis. Zajímalo mě využití switche. Času na čtení dokumentace málo a tohle je dobrá inspirace.
Díky připojování nových zařízení jsem se trochu víc podíval na konfiguraci zigbee2mqtt a našel jsem tam nastavení last_seen. V datech je pak vidět, kdy zařízení naposled komunikovalo a když se to nastaví na epoch, tak nodered ukazuje info pod blokem IN. Mohlo by se to dát využít i přímo v Loxone, aby se zjistilo, že čidlo dlouho nekomunikuje. Bylo by fajn, kdyby se daly informace o slabé baterce a výpadku komunikace zobrazit podobně jako u nativních zařízení.

A k tomu Loxberry, o kterém píše smotek. Naklikat se tam taky musí hromada virtuálních vstupů a výstupů. Navíc u zigbee2mqtt pluginu se mi nepodařilo nastavit last_seen. Služba kvůli tomu nenastartuje a uložení konfigurace v pluginu nastavení maže.

_Petr_
Reply to  L
10 months ago

Myslím, že dřív se dočkáme nové verze Touch Grill než možnosti zobrazovat statusy.
Díky tomu last_seen jsem zjistil, že si můžu v nodered pod funkcí zobrazovat i svoje info přes node.status. To je taky fajn.

_Petr_
Reply to  L
9 months ago

OT: Vypadá to, že nechodí notifikace na posty pod články. Ale možná jen mně. Z fóra mi chodí.

_Petr_
Reply to  L
9 months ago

Notifikace na články i příspěvky ve fóru to funguje, ale nechodí info o odpovědi nebo postu v diskuzi.

_Petr_
Reply to  L
9 months ago

jj, fungují. Díky za opravu

_Petr_
Reply to  L
9 months ago

Ještě mám pocit, že jsi vytunil menu a u článků překrývá čast nadpisu (na užší obrazovce i kus textu). Používám FF

dalibor
10 months ago

hmm to vypadá opravdu DD ( Dost Dobře ) takže nejspíš objednám to ZB bránu a tlačítko Ikea… RPi mám pro NodeRed takže bych tu ZB bránu mohl jen přidat….
Co můžu očekávat z dosah uvnitř baráku ? TM je zhruba uprostřed do obyváku to je přes dvě zdi a cca 17 m ?
P.S. u AirBase jsme měl signál v pohodě na III ve stejném místě

gisbern
Reply to  dalibor
8 months ago

Tak jsem to zkusil, vcera konecne nakonfiguroval na NAS, stejny USB stick, jak objednal L (i stejna antena), Jakmile dojdu za dvere, nebo libovolnou 1 zed, uz na to neni spolehnuti 🙁 uvntir obyvaku, kde je USB to funguje 100%)

Tak nevim, jestli je chyba v malem dosahu toho USB nebo malem vykonu vysilace na IKEA tlacitku, nemam zkusenosti s jinym ZIGBEE produktem, jak je to u Vas s dosahy?

gisbern
Reply to  L
8 months ago

AHA, diky

gisbern
Reply to  L
8 months ago

Pozde, objednal sem Cinskej lestenej prd 🙂 Zasuvku a teplomer, at si mam s cim hrat. Az na to pijde rakusak z Kollerschlagu, fsechno nam to v configu ojebe a zatrhne… to bude pak na bazarech plno… 😉

_Petr_
8 months ago

Snažil jsem se napojit na blok střešních oken, ale žádný z příkazů z dokumentace nic nedělá. Kdyby někdo tušil, jak příkazy zjistit, tak prosím o info. Zatím si dokážu představit jedině použití vistuálních vstupů, ale upřednostnil bych přímé ovládání bloku.

Václav
Václav
8 months ago

Zdravím,
nevím jestli můj dotaz patří sem, ale částečně to myslím souvisí. S Loxone teprve začínám a již nějakou dobu si lámu hlavu nad jedním problémem. Mám žárovku, ovládanou přes WiFi pomocí virtuálního výstupu. Chtěl bych ji integrovat do místnosti aby mi spolupracovala s ostatními originálními světly Loxone. Stále se mi však nepodařilo přijít na způsob, jak ji propojit s blokem ovládání světel. Když se podívám, co je na výstupu, tak jsou tam buď hodnoty R G B, ale chybí mi informace o intenzitě, a nebo když jej nastavím jako SmartAktor, tak je tam informace třeba WW(50%), ale zase mi tam chybí poměr teplé a studené složky.
Nevíte, jak dostanu informaci o intenzitě a poměru teplá / studená? Případně RGB+intenzitu?

gisbern
8 months ago

Ahoj, tak jsem se zase kousek poposunul ve studiu tveho navodu na zigbee. Jde mi to pomalu 🙂 ale prokousavam se. Postupne zjistuju, ze novodobi programatori se znalostmi Javy a JSON jsou zvyhodneni (my co jsme skoncili satanžel u PHP jsme proste pozadu..)
No, ale musim rici, ze diky Tvemu casu stravenemu nad psanim clanku se to trochu dorovnava. Uz jsem schopen tlacitkem vypnout a zapnout svetlo – tady odbocim , v clanku jsi psal, ze nejses schopen zapnout a vypnout konkretni svetlo, nevim, jestli myslime ten samy klik, ale ja pres contrib-lox na urceny AQx poslu ON nebo OFF a svetlo se zapina a vypina. Naopak zkoumam, kterak ho tim samym tlacitkem vypnu a zapnu, jako klas. tlacitko (toggle nefunguje). Pokud je svetlo prvek dmx, tak to jde, poslu tam jakykoliv rezezec a svetlo vypina a zapina klikem na totez tlacitko.

Dale jsem koupil Danalock a hodlam ho napojit na venkovni fingerprint (wiegand) a zprovoznit ho pres zigbee s loxone.. Tak se jdu zase ponorit do clankuuu, jak odeslat do zigbee zarizeni retezec, kdyz mi na loxone sepne nejaky dig. vstup.

Pa, G.

gisbern
Reply to  L
8 months ago

JJ, to bude ono, ja tam mam i jednotlive vystupy…

nodered.jpg
gisbern
Reply to  L
8 months ago

Mam 11.1.9.14 Gen 1

elpaso
7 months ago

Ahoj, kde beres dokumentaci k formatu, ktery akceptuji jednotlive funkcni bloky. premyslim, ze bych komplet svou UDP implementaci ConBee na senzory a tlacitka zmenil na websockets (u svetlem to funguje pekne a fakt by se to tim zjednodusilo)

elpaso
Reply to  L
7 months ago

Okej. Mrknu. čím víc nad tím přemýšlím tím víc mi vlastně UDP vyhovuje – i tady mi ty tlačítka.prijdou vlastně nerozumne

Já se snažím držet veškerou logiku/action v loxonu. Ty přesouvás ovládání mimo loxone což je IMHO ne úplně rozumně a zvyšuje to komplexitu.

U zigbee svetelel je websocket rozhodně skvělí
U tlačítek imho lepší UDP a drzet actions v loxonu
U senzoru si nejsem.jistej. Teplota je asi fuk. Ale u door senzory je možna websockets lepší kvůli ztrátě packetu (ač se mi to vlastně nikdy nestalo a to mám na zigbee dveřní senzor/pir mnoooho světel)

elpaso
Reply to  L
7 months ago

No a ten control-in Žaluzie je funkční blok žaluzie nebo tlačítko? Pokud tlačítko tak pak máš samozřejmě pravdu. Ale.i tak máš pevne spojeny univerzální tlačítko s “žaluzií” kdybys měl loxone control-in kteréj se jmenuje ikea-tlacitko1 tak bych to chápal 🙂

_Petr_
6 months ago

Píšeš, že se ti nepodařilo ovládat konrétní světlo. Když jsem vybral konkrétní actor a byl to stmívač, tak hodnoty 0 až 100 nastavovaly intenzitu. Když jsem do bloku ovládání světel poslat číslo od jedničky nahoru, tak se zvolila příslušná scéna tak, jak jsou seřazené v LoxConfigu.

Nedaří se mi ale ovládat blok pro střešní okna. V jiném článku je odkaz na Websocket API, ale nenašel jsem tam jak najít možné příkazy.

nathalen
nathalen
Reply to  L
4 months ago

AHOJ Při stavbě domu, začínám plánovat co za řízení “smart home” budu používat – nelitoval si, že jsi vsadil na loxone? Nebylo by lepší zvolit nějáké průmyslové řešení siemens S7 1200 např – dnes jsem objevil node red a řikám si, že to je pecka věc na získávání dat z /ovládání plc a zobrazení bez nutnosti složitě vytvářet apk (např pro android)…a po zadání do googlu mi to vyhodí Vodníky 😀 – taky začínám stavět z VPC a tvůje stránky jsem chvilu listoval(už nějáký rok zpět-průběžně).

Last edited 4 months ago by nathalen
44
0
Would love your thoughts, please comment.x
()
x