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/

Napsat komentář

Váš email nebude zvežejněn.