X
Forum

Forum

Xiaomi Smart Home i...
 
Notifications
Clear all

Xiaomi Smart Home integrace do Loxonu

338 Posts
39 Users
28 Likes
77.7 K Views
jirin.sv
(@jirin-sv)
Member
Joined: 7 years ago
Posts: 123
Topic starter  

Jak jsem přislíbil ve vlákně „Levné Loxone senzory“ pokusím se dodat info, jak zaintegrovat sensory od Xiaomi do Loxone. Je to víceméně plnohodnotná alternativa za Loxone Air.

Asi není potřeba rozepisovat, jak si výrobky od Xiaomi pořídit. Osobně nakupuji přes AliExpress, ale dají se pořídit i v ČR ( https://www.istage.cz/chytra-domacnost-a-doplnky/xiaomi-smart-home-gateway-alarm-chytra-brana-senzor-dveri/ ), cena je ale samozřejmě vyšší.

Pro správnou funkci je nutné zakoupit Smart Home Gateway, která umožní komunikaci se senzory přes Wifi. Bohužel se prodává jen s čínskou zásuvkou, tak je nutné si také pořídit redukci na EU zástrčky či rovnou čínskou zásuvku (můj případ :)).

Senzory jsou na každém, co bude potřebovat. Mám ozkoušené a zaintegrované:

  • Teploměr / vlhkoměr
  • Magnet na dveře / okno
  • PIR detektory pohybu
  • Tlačíko
  • Detektor zaplavení
  • Detektor kouře
  • „Kostku“

Zde je postup pro zapnutí „debug“ módu, který umožní komunikaci po lokání síti (implicitně komunikace probíhá pouze přes Xiaomi servery). Používám iOS, pro Android by to mělo být ale podobné.

  1. Nainstalovat si Mi Home App
  2. Po nainstalování si zkontrolovat, že používáte „obchod“ Mainland China, jinde totiž oficiálně nelze Smart Home používat.
  3. Postupujte podle offic. návodu pro spárování s Home Gateway a následně přidejte senzory. Jedno z videí, které jsem namátkou našel:
  4. Nyní nastává ta zajímavá část – zapnutí debug módu.
  5. Na hlavní stránce s přehledem zařízení zvolte Gateway:
    IMG 0053
  6. Klikněte na 3 tečky v pravém horním rohu:
    IMG 0054
  7. Zvolte About:
    IMG 0055
  8. Teď přichází trocha magie, je potřeba odemčít volbu, která je schovaná. Ťukejte zhruba do vyznačeného pole, až se to podaří v menu se objeví další volby.
    IMG 0056
  9. Zvolte označenou položku:
    IMG 0057
  10. Na následují obrazovce povolte první volbu a poznamenejte si hexadecimální znak, který je identifikátor vaší gateway. Slouží třeba k tomu, když chcete do Xiaomi posílat příkazy, ale tuto volbu jsem zatím nepotřeboval.
    IMG 0058
  11. Vše potvrďte a vraťte se na domácí stránku
  12. V tuto chvíli Home Gateway posílá do podsítě, kam je připojena multicasové packety na adresu 224.0.0.50
    Multicast

Pokud si nakonfigurujete router či přidáte nějaké další zařízení, které packety bude sbírat, tak je možné již tyto přímo používat v Loxone. Ukázka posílaných dat:

{'data': '{"voltage":2995,"temperature":"2040","humidity":"6571"}', 'sid': '158d000182df90', 'cmd': 'read_ack', 'model': 'sensor_ht', 'short_id': 29375}
{'data': '{"voltage":3015,"status":"open"}', 'sid': '158d0001636415', 'cmd': 'read_ack', 'model': 'magnet', 'short_id': 19705}
{'data': '{"voltage":3015,"status":"close"}', 'sid': '158d00016c2045', 'cmd': 'read_ack', 'model': 'magnet', 'short_id': 18966}
{'data': '{"voltage":3035,"status":"motion"}', 'sid': '158d00015f1d63', 'cmd': 'read_ack', 'model': 'motion', 'short_id': 28469}
{'data': '{"voltage":3015,"temperature":"2156","humidity":"6231"}', 'sid': '158d0001a2bf6a', 'cmd': 'read_ack', 'model': 'sensor_ht', 'short_id': 31102}
{'data': '{"voltage":3082}', 'sid': '158d00018b409d', 'cmd': 'read_ack', 'model': 'switch', 'short_id': 33225}
{'data': '{"voltage":3045,"status":"motion"}', 'sid': '158d00015e8db3', 'cmd': 'read_ack', 'model': 'motion', 'short_id': 30648}
{'data': '{"voltage":3245}', 'sid': '158d00015b15f4', 'cmd': 'read_ack', 'model': 'smoke', 'short_id': 58788}

Tento JSON je celkem jednoduše čitelný a parsovatelný. Každé zařízení má svůj identifikátor (sid), takže je lze velmi snadno rozlišit.

Já ale používám jiný způsob, který nastíním v dalším příspěvku.


   
Aleq, radek and smotek7 reacted
Quote
jirin.sv
(@jirin-sv)
Member
Joined: 7 years ago
Posts: 123
Topic starter  

Osobně pro dolování a přípravu dat z Smart Gateway používám jednoduchý Python program, který jsem si připravil a celé to běží na Orange Pi Zero (je možné použít cokoliv jiného). Stejný miniPC mi obsluhuje i vysavač od Xiaomi či překódovává video z IP kamer do MJPEG.

Je nutné mít Xiaomi Home Gateway a PC ve stejné podsíti jinak komunikace nefunguje správně. Osobně mám všechny tyto čínské věci v separátní VLAN a kompletně oddělené od ostatních zařízení – člověk nikdy neví, co můžou spustit.

Pro použití je nutný Python 3 a projekt Mihome.

Záleží, co používáte za distribuci, návod tedy bude hodně vágní. Používám Debian / Ubuntu, tak nastíním instalaci:

  1. Zkontrolovat, jestli máte nainstalovaný Python 3.x
  2. Pokud chybí, tak jej nainstalujte: „apt-get install python3“
  3. Dále nainstalujte pip: „apt-get install -y python3-pip“
  4. Nainstalujte balíček mihome: „pip3 install mihome“
  5. Zde je můj ukázkový program:

    Je nutné změnit příponu na *.py, místní upload bohužel Python skripty nepobere.

  6. Po stažení si skript otevřete a dle potřeby upravte řádky:
    #Loxone address and port
    UDP_IP = '192.168.1.12'
    UDP_PORT = 56666

    Jedná se o IP adresu vašeho Loxone a port na který se mají data posílat.

  7. No a nyní to celé můžeme spustit „python3 run-mihome.py“
  8. Měla by se objevit nějaká komunikace s gateway – po startu si aplikace vyžádá info ode všech senzorů.
  9. A jako poslední věc je vhodné zajistit, aby se aplikace spouštěla sama po startu. Na to doporučuji použít supervisor, rychlý návod: https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps , můj config (opět přejmenovat na *.conf):

Následuje postup, jak to dát celé dohromady a číst v Loxone.


   
radek reacted
ReplyQuote
jirin.sv
(@jirin-sv)
Member
Joined: 7 years ago
Posts: 123
Topic starter  

V mém ukázkovém souboru aplikace posílá data Loxonu na port 56666, je tedy nutné vytvořit odpovídající virtuální UDP vstup v Loxone. Jako IP adresu můžete použít adresu mini PC či ji nechat prázdnou:

1

Na první osahání je vhodné si nahodit UDP monitor a sledovat, jestli se objeví data z Gateway, pokud uvidíte něco takového, tak máte vyhráno:

2

Teď už je to jen o tom, si projít všechny vlastnosti a vytvořit si své UDP příkazy. Jak je zmíněno v předchozím příspěvku, každé zařízení má svůj unikátní identifikátor, takže nedochází ke konfliktům.

Ukázka jak třeba číst data z teploměru:

6
4
3

To stejné pro pár akcí kostky:

8
7

   
radek reacted
ReplyQuote
jirin.sv
(@jirin-sv)
Member
Joined: 7 years ago
Posts: 123
Topic starter  

No a jako poslední přidám ukázku, jak to celé funguje:


   
MartinB reacted
ReplyQuote
radek
(@radek)
Prominent Member
Joined: 7 years ago
Posts: 895
 

Super návod, děkuji.

Uvažuji, že bych Xiaomi použil pro doplnění záplavových čidel a taky bezdrát. tlačítek.


   
ReplyQuote
Pavel
(@pa-v-el)
Member
Joined: 7 years ago
Posts: 1505
 

Děkuji, snad to dokážu rozchodit 🙂 Uvažuji bezdrátová tlačítka k posteli a dveřní kontakt na rozsvěcování v dolní koupelně kde není okno. Ještě dotaz existuje tohle pěkné dvojtlačítko:

Snímek obrazovky 2017 09 16 v 22.05.34

bude fungovat s Home Gateway 2, všude na Ali je toto tlačítko spojováno s Gateway 3.


   
ReplyQuote
jirin.sv
(@jirin-sv)
Member
Joined: 7 years ago
Posts: 123
Topic starter  

Radek + Pavel> Nemáte zač

Jinak to dvojtlačítko ozkoušené nemám, ale moje Gateway 2 mi ho dovolí přidat a je ze stejné nové rodiny jako ta záplava či detektor kouře, takže si myslím, že by to fungovat mělo.

Jen poznámka pod čarou – doufám, že bude fungovat lépe než to obyčejné tlačítko, co mám já. Ve výsledku je pro mě největší zklamání. Oproti ostatním prvkům má fakt docela dlouhou prodlevu (cca vteřina). Pokud bych řešil tlačítko, tak bych si koupil magnet (který je sám o sobě velmi malý), kuchnul ho a napojil na obyč vypínač / tlačítko a měl vše ve stejném designu, něco jako: https://www.youtube.com/watch?v=qnJw_sJevzk .


   
ReplyQuote
Pavel
(@pa-v-el)
Member
Joined: 7 years ago
Posts: 1505
 

Tak jsem vše objednal 🙂

@jirin.sv zatím asi poslední dotaz než to dorazí 🙂 v čem je výhoda že to Loxonu předkousáváš přes Orange Pi zero?

Ještě jednou díky za inspiraci a návod.


   
ReplyQuote
elpaso
(@elpaso)
Prominent Member
Joined: 7 years ago
Posts: 829
 

olalaaaa, tak toto vypada velmi pekne. specialne na senzory k oknum a na zaplavu 🙂

@Pavel - jen v ramci precteni bych tipoval multicast, ktery Loxone neschroupne a je treba ho odchytnout na RPI a preposlat jako UDP. Otazka je, protoze Xiaomy nepodporuje rovnou UDP a data zasilat dovnou do Loxonu - to by bylo samozrejme mnohem elegantnejsi.

Jdu objednat...

PS: jsem rad, ze jsem zdaleka jediny, kdo ma doma vice VLAN 😛


   
ReplyQuote
jirin.sv
(@jirin-sv)
Member
Joined: 7 years ago
Posts: 123
Topic starter  

Pavel> elpaso už odpověděl rychleji než já, Xiaomi posílá multicast packety, které samy o sobě do Loxone nedoputují. Je potřeba zajistit přeposlání a pak už je s daty možno pracovat. V mém případě toto řeší ten miniPC.

Přemýšlel jsem jak to udělat jednodušeji než mini PC, kde složitě rozbíhat Python a další věci. V týdnu mi má dojít na pokusy Wemos D1 (ESP8266), tak si pohrávám s myšlenkou to řešit touto cestou, pokusil bych se nachystat kód, který by dělal to stejné, co ta Python aplikace. Teoreticky by také bylo možné zauvažovat o ZigBee přijímači a kompletně obejít gateway, ale to už je na delší zkoumání.

elpaso> Já to říkám pořád, že správná domácnost potřebuje minimálně 3–4 VLANy :-).


   
ReplyQuote
elpaso
(@elpaso)
Prominent Member
Joined: 7 years ago
Posts: 829
 

no nejjendodussi by bylo, kdyby do gateway2 dali UDP sender a bylo by veresneo... na todle pouzivat multicast mi prijde uplne ujety 🙂

jinak objednan set z alliexpressu za cenu nizsi nez je cena gateway v CR...


   
ReplyQuote
jirin.sv
(@jirin-sv)
Member
Joined: 7 years ago
Posts: 123
Topic starter  

Tak toto je vysoce nepravděpodobné. Xiaomi absolutně nemá důvod, proč by to dělalo. Potřebuje prodávat svoje senzory se svojí Gateway a svým software. Loxone má nečekaně naprosto stejnou politiku :).

Komunikace s Gateway je ještě v rámci možností docela otevřená. Daleko horší je to třeba s jejich vysavači. Tam se snaží vývojářům házet klacky pod nohy, seč mohou. Každá nová aktualizace firmware přidává další a další omezení a validace.


   
ReplyQuote
jirin.sv
(@jirin-sv)
Member
Joined: 7 years ago
Posts: 123
Topic starter  

Čtení dat pomocí ESP8266 a přeposlání do Loxone úspěšně ozkoušeno – funguje bez problémů. Byl by zde zájem udělat jednoduché řešení na této bázi (Arduino / ESP8266)? Asi to bude jednodušší než ten původní přístup (který ale také funguje).


   
Mira reacted
ReplyQuote
Pavel
(@pa-v-el)
Member
Joined: 7 years ago
Posts: 1505
 

Ano, zájem by byl 🙂


   
Mira reacted
ReplyQuote
(@smotek7)
Member
Joined: 7 years ago
Posts: 1898
 

@jirin.sv tak takato verzia zaujima aj mna.

Inak msk by sa opytal ci by nestacil aj len Wemos 😀


   
ReplyQuote
Page 1 / 23
Share: