Loxone – tipy&triky – jak získat UUID kteréhokoli prvku

Loxone – tipy&triky – jak získat UUID kteréhokoli prvku

Dneska (vlastně před chvilkou, a rovnou to píšu, protože jsem z toho fakt nadšen) se mi povedlu vskutku parádní kousek…. (a jestli mi někdo řekne, že jste to znali, nebo že to je někde popsáno, tak budu fakt naštvanej 😉 ).

Řešil jsem, jak propojit dohromady Roombu, MQTT, NodeRed, mé vlastní RoombaWalls a do toho Loxone. Cílem je, aby si Roomba uměla sama rozsvítit v dané místnosti a uměla si i sama zapnout virtuální zdi v okamžiku, kdy jsou potřeba.

Na rozsvěcení jsem se stále snažil zprovoznit Websockets (marně), Node-lox-mqtt-gateway (marně), případně pak nějak jednoduše přes virtuální HTTP vstupy/výstupy (lze, ale dost opruzoidně).

Až jsem se rozhodl trochu “blíž” podívat na Loxone webovou aplikaci, abych se podíval, jak vlastně oni komunikují s Loxonem. A tady jsem oběvil (alespoň pro mne) zlatý grál ;-).

Ačkoli v dokumentaci píší, že musíte definovat virtuální vstupy/výstupy pro komunikaci s venkem, není tomu tak úplně pravda. Stejně tak není pravda, že přes HTTP požadavek nelze zapnout napřímo dané světlo, aniž by člověk simuloval HW vstup Loxonu.

Je to totiž o tom, že každý prvek v LoxConfigu má vlastní Uuid. Tenhle Uuid zřejmě nejde zjistit v Loxone configu, teoreticky by asi šlo najít ho v Loxone programu v XML souboru, ale mnohem snáž to jde právě přes jejich web aplikaci.

Stačí otevřít aplikaci v Chrome, přes developer tools (F12) se podívat do záložky “Console” a zmáčknout tlačítko dle potřeby (nebo třeba kliknout na žaluzie, nebo cokoli jiného. A hle. Máte kompletní URL adresu s požadavkem, UUIDem tak, abyste daný příkaz mohli vykonat i odkudkoli jinde.

Tohle jsou třeba žaluzie. A není potřeba žádný debilní virtuální vstup navíc, není potřeba nic donastavovat v LoxConfigu a není potřeba se ani prosit na naprosto nekompetentní Loxone podpoře, kde jen tak mimochodem o adrese /jdev/sps/io nemají ani tušení, jelikož znají jen /dev/sps/io, pomocí které šahají jen na fyzické vstupy/výstupy HW, což je ale k programování dost nešikovné.

A takhle vypadá primitivní NodeRED program na rozsvícení světla. To šedé vlevo je prvek “Inject”, který generuje msg se zprávou “status”:”on”

A takhle pak vypadá HTTP request, pomocí kterého se posílá zpráva on/off do loxonu

A to je vše. A takto tím pádem jde ovládat cokoli uvnitř Loxone, aniž by se museloy na vše dělat virtuální vstupy tak, jak to doporučují EXPERTI z Loxone podpory.

PS: Jen tak mimochodem, NodeRED je masakr. Pokud by v Loxonu vytáhli hlavy ze svých pr*** a nabídli by NodeRED nativně jako nadstavbu, neměli by jejich systém naprosto konkurenci.

Díky kombinaci UUID bloků v LoxoneConfigu a programovacím možnostem NodeRED jdou efektivně naprogramovat věci, které by byly jinak nemožné (viz rozsvěcení místností dle průjezdy Roomby, ovládání virtuální zdí roomby jen když roomba jede,….)

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

Výborně Luďku, sice sám vůbec nerozumím tomu, co si tvořil a programoval (tedy obsahu, ne myšlence 🙂 ), ale mám obrovskou radost i za Tebe. Je vidět, že systém má obrovský potenciál a jen díky schopným lidem, myšleno TEBE, nikoli podporu, se my, budoucí stavebníci, nemáme bát vůbec o Loxonu do domu uvažovat. Těším se, až nastane doba fyzické instalace do našeho budoucího domova, a s články od Tebe čím dál tím víc. 😀

Pavel
3 years ago

Loxone asi neunesl prozrazení svého know-how a raději vypnul web 😀 Od 19h se mi nedá zobrazit.

Dawe
Dawe
Reply to  L
3 years ago

A na tuto dokumentaci jste narazil?

Tam neco o jdev pisou, ale zatim jsem to nejak vic nestudoval

https://www.loxone.com/cscz/wp-content/uploads/sites/7/2016/09/loxone-api-communicating-with-the-miniserver.pdf?x47893

Dawe
Dawe
Reply to  L
3 years ago

Takze klasika, clovek at si to dal zjisti sam. 🙂

Ale jinak, dobra prace, zas je to posun dal. 😉

Dawe
Dawe
3 years ago

A na tento navod uz jste narazil?

Tam se neco o jdev pise, ale zatim jsem to nejak vic nestudoval.

https://www.loxone.com/cscz/wp-content/uploads/sites/7/2016/09/loxone-api-communicating-with-the-miniserver.pdf?x47893

Pavel
3 years ago

Jj, už to jede.
To je teda objev jako sviňa 🙂
Už to čtu podruhé a chápu to dobře, že fakt stačí znát UUID a cokoliv co mám v aplikaci dokážu zapnout/vypnout “prach-obyčejným HTTP” požadavkem?

Dawe
Dawe
Reply to  L
3 years ago

A kdyz se za to uuid da /state

Dela to neco?

Ja ted nejsem u PC, tak to nemuzu otestovat.

Dawe
Dawe
Reply to  L
3 years ago

Zajimave, jak budu moct, tak si to taky vyzkousim a treba na neco prijdu 🙂

Aspon dle toho navodu jsem vycetl, jaky je rozdil mezi jdev a dev.

Dawe
Dawe
Reply to  L
3 years ago

A to UUID odpovidalo cemu? Primo vystupu, vstupu nebo bloku tlacitka, ovladani osvetleni?

Dawe
Dawe
Reply to  L
3 years ago

Ok, tak jak se k tom dostanu, tak to vyzkousim taky na tom bloku. A uvidim 😉

David
David
Reply to  L
3 years ago

Tak jsem si s tím teďka chvílí hrál a zkoušel jsem jak blok tlačítko, blok ovládání osvětlení, tak odkazovat se přímo na výstup.

tak u tlačítka vyčítání stavu funguje, když se pošle příkaz
/jdev/sps/io/uuid_bloku_tlačítka/all

jinak jak měli psané na netu, tak /state ani /astate vůbec nefungoval

Ale když jsem to stejné chtěl vyzkoušet u bloku ovládání osvětlení, tak tam mi nefungovalo vůbec nic.

Jenom příkazy
/on / off /AI1/on AI2/off
nebo
/1-8 pro konkrétní scénu

Tak jsem to začal zkoušet vyčítání stavů přímo z výstupu (připojeného na výstup AQ1-AQ12 bloku ovládání osvětlení)

A abych zjistil UUID toho HW výstupu nebo např. značky, tak jsem to musel použít do vizualizace

a pak teprv přes /data/loxAPP3.json se to UUID dalo najít.

A potom přes /jdev/sps/io/uuid_výstupu

už se hodnovy “value” ukazují správně.

Ale zas se mi nelíbilo, že pak takto všechny výstupy co chci vyčítat, tak je musím použít do vizualiace.

Ale místo UUID jde i použít jen název výstupu v Loxone configu a funguje to stejně. 😉

Dawe
Dawe
Reply to  L
3 years ago

Tak to už jsem nezkoušel, ale mělo by to tak být, dokud se to nevymaže z programu, tak by to UUID mělo zůstat stejné.

Taky to můžu otestovat až večer, teď už se k tomu nedostanu.

Dawe
Dawe
Reply to  L
3 years ago

Takže to funguje 😉

použil jsem UUID výstupu, který jsem nedal použít do vizualizace a hodnoty to vyčítá.

Dawe
Dawe
Reply to  L
3 years ago

Je to tak ja vycital az HW vystup nebo znacku, kterou jsem pripojil na ty vystupy bloku ovladani osvetleni.

Na tom bloku se mi vubec nic nedarilo i pri /all to pri zapnuti ruznych svetel(vystupu AQ) tak hodnota byla “otaznik”

Dawe
Dawe
Reply to  L
3 years ago

Je to zajimave, ja zitra rano na to budu mit chvili cas, tak se jeste na to podivam, ale uz me moc nenapad ceho bych se mel jeste chytit, aby to fungovalo 🙂

Dawe
Dawe
Reply to  L
3 years ago

Ja zitra zkusim i jine bloky, jestli nemaji chybu jen v tom jednom bloku nebo ve vice blocich, ktere maji vice ovladatelnych vystupu

Dawe
Dawe
Reply to  L
3 years ago

Tak jsem zkusil bloky Alarm a IRPT a po příkazu /all to hodnoty výstupů ukazuje.

Pavel
3 years ago

Není to i tak trochu nebezpečné? Záleží teda jak se generují jednotlivé UUID a jestli můžu posílat pokusy kolikrát chci, pak stačí aby mi někdo hacknul domácí wifi a z ulice mi třeba zatopí na 30°C. A to se Loxone ohání jak to mají bezpečné…

Dusan
Dusan
Reply to  Pavel
3 years ago

Vzhladom na “zabezpecenie” celeho Loxone podla mna nema miniserver na verejne *1 dostupnej sieti vobec co robit a ked tak jedine za routerom s firewallom.

*1 myslim tym aj domacu wifi

Michal Verner
Michal Verner
Reply to  L
3 years ago

No, ale to neni zdaleka vsechno. Pokud mas zapnuty loxone updaty, tak davas loxone handshake, ze ti tam muze poslat co chce, treba I cusom firmware, kterej po nabootovani odemkne vsechny zamky a rozsviti na chodbe – resil jsem s nima v zime nejaky crashe, ktery byly nakonec zpusobeny spatnou implementaci dns klienta v miniserveru. V prubehu tohohle cviceni, mi bez toho, aniz by mi to rekli vzdalene prekonfigurovali DNS servery (tim updaterem). Takze od ty doby si nedelam iluze a vzdalene jedine pres VPNku a miniserver ma zakaz komunikovat s cimkoliv na internetu.
Na Roombu jsem se jeste nedostal, ale taky ji to ceka 🙂

michalverner
Reply to  L
3 years ago

presne slo o to, ze updaty maji loxonaci na nejakym amazonackym boxu.
Normalni DNS odpovi na otazku

update.loxone.com –> s3-website.eu-central-1.amazonaws.com

coz miniserver (nevim jestli uz to neopravili) nerozdychal, protoze ocekaval primo IP adresu cile (tak vraci vysledek napr. google DNS 8.8.4.4)

Doma jsem mel peklo od drahe polovicky, protoze kazdych 20 minut se zhasly a rozsvitily svetla 🙂

reseni bylo vypnout automaticky updaty. Zafirewalloval jsem jen proto, ze se mi nelibilo, ze loxonaci muzou to zarizeni ovladat na dalku kdyz budou chtit.

msk
msk
Reply to  michalverner
3 years ago

Ja myslim ze zablokovat Loxone akukolvek komunikaciu von a z vonku dnu je uplne prve co musi clovek spravit pred produkcnym nasadenim. Pretoze u mna by to zhadzovalo este aj zasuvky – a to by WAF klesol do zapornych cisiel 😀 …

koldavideo
3 years ago

Super práce !!! No ale podle mě to bude fungovat do prvního upgrade od loxone. Toto by se dalo využít do vlastního grafického webového rozhraní – Room plan. 🙂

koldavideo
3 years ago

Myslel jsem floor plan 🙂

Dáda
3 years ago

Floorplan mám hotovy a funguje snad dobře. Hodím sem nekdy ukázku

Dáda
Reply to  L
3 years ago
koldavideo
Reply to  Dáda
3 years ago

Nějak ten odkaz nefunguje.

Dawe
Dawe
Reply to  koldavideo
3 years ago

Když si ten odkaz zkopíruješ a otevřeš v novém okně webového prohlížeče, tak to funguje 🙂

Dáda
Reply to  koldavideo
3 years ago

comment image

zkus

koldavideo
3 years ago

Prosím Tě v čem jsi ten floor plan dělal?

Pavel
3 years ago

Tak jsem si večer řek, že zkusím pomoci s tím vyčítáním stavů a prd, čuměl jsem do Wiresharka, kdy jsem měl otevřenou aplikaci v prohlížeči a na mobilu rozsvěcoval a zhasínal a jediný na co jsem přišel bylo to, že při změně stavu probíhá komunikace Loxone vs. web aplikace, takže Loxone dá prohlížeči vědět změnu stavu a ten to pozná (-což víme), ale nic kloudnýho jsem z těch paketů nevyčetl 🙁

Pavel
3 years ago

Tak proto jsem nic nevykoukal…

Dáda
3 years ago

Založil jsem topik na foru https://www.vodnici.net/community/loxone-a-arduino/loxone-a-externi-komunikace-s-miniserverem/
Mohli bychom tu komunikaci přenést tam ? Aktuálně řeším několik problémů, které by se mohly hodit i ostatním.

Dáda
Reply to  L
3 years ago

Jasny, spis jsem chtel, aby komujikace byla na fóru a ne tady v blogu.
Děláme integraci s Control4, kde to je extra ohýbání 🙂

Milan Čížek
Milan Čížek
3 years ago

Další možnost je podívat se do vytvořené souborové zálohy – je to xmlko a uudi jsou tam také.

fundy
fundy
3 years ago

S rozchodenim node-lox-mqtt-gateway nebol problem. Napoji sa cez websocket na miniserver a umoznuje obojstrannu komunikaciu cez MQTT kamkolvek do sveta node-red nevynimajuc. Parada.

elpaso
1 year ago

da se skrz toto API vycitat i teplota senzoru? nejak mi nedochazi jak ziskat UID senzoru 🙂 ovladani tlacitka funguje, ale senzor?

thx

62
0
Would love your thoughts, please comment.x
()
x