Zigbee – modifikace Lidl (Silvercrest) SmartHome Gateway

Lidl se s vervou pustil do nabízení zařízení, které mezi sebou komunikují přes Zigbee protokol a jeho nabídka se hodně rozšiřuje o různé typy zařízení – od zásuvek, světel, zahradních vodních počítačů a to včetně jejich SmartHome Gateway. Tato brána komunikuje s mobilní aplikací přes cloud a to není vždy žádoucí.

Naštěstí lze tuto gateway lehce modifikovat, aby se z ní stal jen obyčejný zigbee koordinátor, na který se lze přes LAN síť připojit.

Každopádně, veškeré rizika nesete jen a pouze vy! Pokud vám není něco jasné, raději se do toho ani nepouštějte 🙂

Pro tuto změnu bude potřeba zpřístupnit seriový port na vlastní PCB desce, přes který se dostaneme do konzole systému, na kterém tato brána běží – je to klasicky embedded linux, takže by to neměl být problém.

Na desce najdeme konektor označen jako J1, to je kombinovaný seriový port s zigbee diagnostickým portem. Seznam jednotlivých pinů je zde:

  • Pin 1 = Vcc (3.3V) (bottom pin in picture)
  • Pin 2 = Ground
  • Pin 3 = U2 Serial TX
  • Pin 4 = U2 Serial RX
  • Pin 5 = ZigBee module ARM Debug SWDIO
  • Pin 6 = ZigBee module ARM Debug SWCLK

Varování – pro připojení musíte použít 3.3V TTL logiku. V žádném případě nepřipojujte zařízení napřímo k seriovému portu počítače, ten má 5V logiku a můžete takto zařízení zcela zničit! Seriový převodník 5V na 3.3V seženete např. zde.

Pokud jste se připojili na konzoli a zapnuli napájení jednotky, mělo by vidět její bootovaní.

Nyní přejdeme na získání root hesla, abychom se do jendotky mohli přihlásit a provést v ní změny. Každá jednotka má vlastní heslo! Proto zde budeme potřebovat vstoupit do zavaděče a získat dva klíče : key-encryption-key (KEK) a encrypted AUSKEY. Z nich si následně rootovské heslo vytáhneme.

Po zapnutí jednotky stiskneme ihned klávesu ESC v konzoli a následně stiskneme ENTER po kterém by se měl zpřístupnit čistý prompt.

Zde postupně zadáme tyto příkazy prozískání KEK klíče:

R 80000000 401802 16
DW 80000000 4

a tyto příkazy pro získání encrypted AUSKEY klíče:

FLR 80000000 402002 32
DW 80000000 8

Pokud máme oba klíče, můžeme spustit dekodování ve výsledku dostaneme vlastní heslo. Pro dekodování použijeme tento Python skript, který spustíme, zadáme postupně KEK a AUSKEY klíče. Celkem 3 řádky, začínající 80000000: ….

Nyní lze jednotku opět restartovat a přihlásit se již získaným heslem.

Poslední fází je zpřístupnění vzdáleného přístupu (SSH) do jednotky a změna hlavní aplikace, která zprostředkovává připojení do Lidl (Tuya) cloudu.

Vzdálený přístup na SSH provedeme takto:

if [ ! -f /tuya/ssh_monitor.original.sh ]; then cp /tuya/ssh_monitor.sh /tuya/ssh_monitor.original.sh; fi
echo "#!/bin/sh" >/tuya/ssh_monitor.sh

Změna hlavní aplikace (tuya) nahradíme touto aplikaci, která převádí seriový port na TCP/IP.

Nahrajeme tuto aplikaci do jednotky : cat serialgateway.bin | ssh -p22 root@10.100.2.81 „cat >/tuya/serialgateway“

Nyní již jen změníme startovací skripty:

if [ ! -f /tuya/tuya_start.original.sh ]; then cp /tuya/tuya_start.sh /tuya/tuya_start.original.sh; fi

cat >/tuya/tuya_start.sh <<EOF
#!/bin/sh
/tuya/serialgateway &
EOF
chmod 755 /tuya/serialgateway

Tímto máme dokončeno, jednotka je modifikována a lze ji přidat do Home Assistantu přes modul Zigbee Home Automation, kde vybereme typ radia EZSP a zadáme IP adresu jednotky socket://10.100.2.81:8888.

Původní článek a velké poděkování Paul Banks DOT je zde.

Přímý odkaz na tento článek: https://www.elvisek.cz/2021/08/zigbee-modifikace-lidl-silvercrest-zb-gateway/

5 komentářů

Přeskočit k formuláři pro komentář

    • Vojtěch Honzík on 11.01.2022 at 15:08
    • Reakce

    Dobrý den,
    dostal jsem se zatím do poloviny návodu, jen dvě poznámky v souvislosti s doporučeným převodníkem z USB do TTL. Nadařilo se mi zprovoznit konzoli dokud jsem neodpojil pin k 3V3 a navzájem neprohodil RX a TX. Parametry sériového portu nejsou uvedené, použil jsme (Windows) 38400 baud, 8N1 (8-bit, No Parity, 1 stop bit), no flow control. A i tak to chce rychlou ruku, jednou rukou zastrkávat USB nabíječku do zásuvky, druhou mačkat Esc, zadařilo se mi až na několikátý pokus.
    Děkuji moc za návod, tohle byly drobnosti, snad pomůžou někomu dalšímu.Zbytek už bude snad s root heslem a zprovozněnou komunikací snadné, uvidím večer.

    • Vojtěch Honzík on 12.01.2022 at 10:43
    • Reakce

    Druhá půlka postřehů – po získání root hesla je možné se přihlásit přes ssh, ovšem na port 2333, standardní port 22 funguje až po úpravě skriptů a restartu krabičky. Přidání Xiaomi Miija teploměru zazlobilo, ale to může mít podle rozumů na netu na svědomí slabá baterie nebo ne úplně dodržovaný standard. Zařízení se identifikovalo jako cosi jiného (lumi.sens, nicméně v popisných vlastnostech je i Quirk: zhaquirks.xiaomi.mija.sensor_ht.Weather), ale poskytuje všechny atributy a funguje jak má, tohle už je ovšem záležitost integrace, nikoli brány. Na druhé síti přes mqtt takové problémy neregistruji.
    Ještě jednou děkuji za návod, díky němu můžu provozovat dva oddělené zigbee meshe (dvě vzdálené lokality, dvě různé integrace, jedna síť, jedno HA RPi).

  1. Zdravím a moc díky za feedback,
    jsem rád že to pomohlo i někomu jinému než mě 🙂

    Rozhodně za ty peníze, je tahle krabička z lídlu fakt super počin 🙂

    • LukasZL on 02.02.2022 at 13:54
    • Reakce

    Dobrý den, bude prosím vhodný tento https://www.hwpro.cz/oc/index.php?route=product/product&product_id=876 převodník?
    Děkuji

      • ElvisEK on 02.02.2022 at 14:30
        Author

      zdravím, ano, mělo by to fungovat.

Napsat komentář: Vojtěch Honzík Zrušit odpověď na komentář

Váš email nebude zvežejněn.