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"}]
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”.
To je hrozne jednoduche ;-). NodeRED pouzivam na hromadu jinych veci, takze ho stejne potrebuju.
Kdyz uz mam vse rozchozeno, chci tam tu dalsi vec vzdycky “jen pridat”. Obcas se holt na necem zaseknu, ale mam to vse v jednom miste.
Loxberry zatim rozchozeno nemam, ale znama to dalsi hromada systemu, ktere budu muset nastavit a rozchodit. A dalsi tristeni logiky na nove misto.
Ted mam logiku v Loxone + NodeRED. Takto by bylo jeste v Loxberry. Do toho zas neprenesu vsechny ostatni veci (napriklad na MQTT mam postavene i zavlazovaci ventily a tam je logika slozitejsi nez jen propojeni – automaticke vypinani po case, hlidani nekterych stavu, atd).
Je mozne, ze casem i Loxbery rozchodim, ale stejne pro Zigbee uz zustane NodeRed, protoze to mam jednotne a muzu si upravovat veci dle potreby. Loxberry mi zas bude nutit jeho postupy, ktere bych stoprocentne zas musel obcas nejak ohybat.
Ten NodeRED je proste vic o svobode udelat si veci jak chces podle sebe 😉
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.
Diky za tip s tim last_seen, to sem nejak prehledl, kdyz sem koukal co vsechno jde nastavit.
Uz mi to jede:
Ohledne toho infa zobrazovaneho v Loxone, tam se bojim, ze to dostat nepujde. protoze je to interni vec loxone, ktera neumoznuje nastaveni z venku. Ale mas pravdu, ze by to bylo fajn videt tyhle infa primo tam.
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.
To sem rovnez nevedel ;-). NodeRED je same prekvapeni, diky.
OT: Vypadá to, že nechodí notifikace na posty pod články. Ale možná jen mně. Z fóra mi chodí.
zalezi, jake kategorie odberu mas zaregistrovane. Nemas treba jen clanky o dome ale ne o IoT? mrknu do DB
hele tak jestli mas email pl***@seznam, tak ti napriklad notifikace na clanek “NodeRED a Zigbee2MQTT podruhé” odesel a dokonce se to tvari, ze si tam na to i klikl a otevrel z toho ten clanek 😉
Notifikace na články i příspěvky ve fóru to funguje, ale nechodí info o odpovědi nebo postu v diskuzi.
aha, tak to sem spatne pochopil. mrknu na to
Test notifikace. (Udelal sem nejake updaty a na testovacim uzivateli mi to chodi).
Tak ted uz snad notifikace opravdu funguji. diky za info.
jj, fungují. Díky za opravu
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
grrr, diky. to zas udelal nejakej update
snad uz taky opraveno, opet dik za info 😉
@L 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ě
nedokazu rict na 100%, ale myslim, ze by to s dosahem vyjit mohlo. kdyz ne, holt nekam na pul cesty pridas chytrou zarovku nebo zasuvku ;-).
Pripadne se delaji i zigbee rele moduly, ktere taky opakuji signal.
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?
chce to dat do cesty nejaky aktivni prvek na 230V, ktery ti bude delat ten zesilovac. Porotze ten USB stick sam o sobe moc vykon nema a ikea tlacitko je na baterky a setri co muze.
kup nejakou zarovku nebo zasuvku, ta ti udela velky dosah. Ja sem si treba do pracovny pichnul jednu xiaomi zasuvku (zatim nevyuzitou) a od te doby mi dosahne zigbee pres cely dum 😉
AHA, diky
teoretick by mohli jit pouzit ted ty nove zigbee zasuvky z Lidlu za 250kc ;-). Ale nemame to jeste vyzkouseno.
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… 😉
Rakusak mi muze polibit ;-). Staci neupgradovat a nemuze ti nic. Ja neupgraduju nekolik let a sem spokojenej ;-).
Jinak zitra je 11.11. a budou na Ali slevy. promysli, jestli to jeste nezrusit a neposunout na zitra 😉
Odpoledne chci zas updatnout seznam linku na AliExpress se vsim co sem tam kde vystoural a nakoupil
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.
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?
Mate pravdu, nepatri sem tento dotaz ;-). Postnete ho na forum do prislusne sekce, kde Vam urcite nekdo pomuze nebo poradi. Tady je vlakno jen o Zigbee+Loxone. Diky
https://www.vodnici.net/community/
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.
Ja jsem C++, takze pro mne JS je taky castecne spanelska vesnice ;-))).
Ohledne toho svetla, to je zajimave. Muzes udelat screenshot, jak to u tebe vypada? Mozna je to tim, ze mam stary Loxconfig a ze ten to mel jinak.
To prepnuti svetla neni toggle, na to bacha. soudruzi v NDR tomu rikaji pulse.
problem je, ze ja kdyz otevru blok osvetleni, tak vidim jen cely blok a pak jednotlive zadane sceny (viz obrazek), ale ne primo ty AQ vystupy
JJ, to bude ono, ja tam mam i jednotlive vystupy…
to je rozhodne lepsi. Ale upgradovat kvuli tomu na tu cernou potvoru nebudu 😉
Mam 11.1.9.14 Gen 1
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)
cau, je to primo u loxone. hledej Loxone a websockets, napr tusim tady, ale je tech dokumetnaci vic (mam je i nekde prolinkovane v nekterem clanku)
https://www.loxone.com/cscz/kb/api/
A koukam, zemaji dokonce na githubu loxone primo nodeJs pro komunikaci:
https://github.com/Loxone/lxcommunicator
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)
nejsem si jist, ze mas pravdu v tom co delam ;-). Naopak, veskera logika veci zustava stale v loxone a to i za cenu vyssi komplexity reseni.
user-case logika je vzdy v loxone, propojeni tlacitek na akce, casovace, logika dle rocniho obdobi, atd.
Vse do loxone leze pres znacky, maximalne zigbee tlacitko je napojeno na prvek “tlacitko” v Loxone. Ale nikdy zadny blackbox.
Osobne mi ten WS dava vetsi smysl nez UDP. Uz jen proto, ze je to hotove reseni a ja jen proppojuju zigbee tlacitko->WS->Loxone a nemusim jeste resit UDP logiku.
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 🙂
Jasně, chápu. Tady to mám napojeno přímo na prvek žaluzie. Ale nevidím v tom problém, protože prvek žaluzie je přístupný i samostatně přes appku. Tzn logika věci je v loxconfigu a jen je to další trigger toho prvku. Myslím, že přidáni nějaké značky nebo samostatného tlačítka by to už moc nezprehlednilo (ale bylo by vidět, že to ovládá ještě někdo další z venku).
Pro mne je důležité mit hlavně tu rozhodovací logiku pohromadě v loxone. Aby část logiky nebyla v MQTT a část v loxconfigu.
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.
jj, do celeho bloku ovladani lze poslat i “plus” na prepnuti treba.
zaroven, do konkretniho vystupu lze poslat i “on” a “off”, to mi taky funguje.
co ale nefunguje, tak nejde “pulse”, tzn aby se preplo mezi on a off a ja nemusel vycitat posledni stav.
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ě).
ahoj, prosim procti si vice blog, vse je tu popsano. i muj vztah k loxone, i k chytremu domu.