Smart Home. Upravujeme starý tablet Samsung pro Home Assistant panel

V předešlém textu Panel pro domáci automatizaci. Oživujeme starý tablet. Samsung Note Pro SM-P900 byl popsán upgrade operačního systému tabletu. Konkrétně se jednalo o pokus aktualizovat tovární verzi Android 5 na verzi Android 10 Q. Ač je Q hezký a po dalších úpravách i stabilně funkční, otestovali jsme všechny dostupné LineageOS ROM. Proč to hledání?

Tablet použijeme jako hardware pro práci (integrování, testování). Nakonec ale jako ovládáci panel s přidanými funkcemi, upevněný na stěně u vstupu.
Jak testování dopadlo? Energeticky nejméně náročný provoz je na upraveném originálním (stock ROM Samsung) Android 5.0.2 Lollipop s Magisk rootem a odstraněným/vypnutým KNOXem, logd démonem. A zmraženou asi 40ou dalších aplikací.

Tablet má 2x 5000mAh baterie. Optimalizace nabíjecího cyklu ušetří jejích životnost. Plusem je existence starších aplikací bez masivních reklamaních stacků, které se někam neustále připojují. Mimo úsporu výkonu to významně zkrátí testování celé instalace a nasazení. V případě použití novějšího Androidu (10, 9, 8) a novějších verzí aplikací (mnohdy již pouze placených), cesta obsesivních nákupů postráda smysl. Jak je již v Google Play zvykem, nikdo vám negarantuje, že zaplacená full verze programu, nebude znovu zpoplatněna :) A jak to dopadlo? Nakonec, úplnou náhodou, jsme objevili originálni Android 6 pro Samsung tablet ST-800 (má podporu S-Pen) upravený pro SM-P900. Vyčištěný a s Magisk rootem :)

Bonus: Na originální ROM je zachována plná funkčnost S-Pen tužky (tablet ma nefunkční dotekový displej). Cesta je samozřejmě i pořízení hotové IoT brány s ovládacím panelem, kde nebudte řídit ale se řídit (dle toho co vám brána umožní integrovat a nastavit).

Použité Aplikace

v dnešním článku: Square Home Launcher, Termux (verze 0.73), htop, Magisk + Magisk Manager, Motion Detector (verze 3.3.5), ADB cli setup, ADB WiFi (verze 3.3.148), Link2SD, Telegram Bot, SQLiteManager pro přípravu Xiaomi integrace (nejspíš vysávače nebo čističky vzduchu), MiHome (verze 5.0.19 s nešifrovanou SQL databází tokenů Xiaomi hardware), microG Vanced, microG Installer Revived (obfusk Magisk modul reší GmsCore, GsfProxy, FakeStore, DroidGuard Helper v priv-app), Cx File Explorer (upload screenshotů pro tento článek), Samsung S-Pen (pořízení screenshotů pro článek), Home Assistant Android Klient (+ zmínka: integrované addony v HA v souvislostech s panelem*)

Použité HA rozšíření a platformy v souvislostech:
addons (rozšíření): FTP server, ADB – Android Debug Bridge, Samba share
platforms (platformy): folder_watcher, androidtv

Deaktivované a obfuskované aplikace

Google (11 aplikací), Knox (celkem 9 aplikací), Samsung (celkem 6 aplikací). V součtu bylo potřeba (nebylo potřeba) 44 aplikací (a nešli standardně odinstalovat) :)

Panel: přidané (využité) možnosti. Abstrakt.

Dálkový ovladač (tablet má zabudovaný IR + GUI aplikaci Peel Remote) pro TV, čističku vzduchu, rádio. Jako helper pro Home Assistant server (běžící samozřejmě na vlastním Raspberry Pi/Intel NUC hardware). Detektor pohybu (lze využít zabudovaný přední i zadní fotoaparát). Helper pro Alarm (uploaduje zachycené snímky). Teploměr. Otřesové čidlo. Úložiště 32GB + kapacita microSD karty. Mini (audio/video) multimediální centrum: stačí doinstalovat kupříkladu Youtube Vanced (standardní Youtube po úpravách ROM nejspíš fungovat ne-bu-de), maxi multimediální centrum: po zapojení tabletu na externí reproduktory :D

HA android klient umí číst a odesílat na HA server cca 30 různých údajů ze samotného tabletu. Po přídání senzoru (automatizace) kupříkladu nabíjecího cyklu, máme přehled o kondici samotného tabletu (panelu).

Testujeme ADB cli

Nejdřív otestujeme vzdálený ADB pomocí TCP (WiFi). USB debug umí všechny Android zařízení, TCP (WiFi) ADB nevíme. Proč? V dobách Androidu Lollipop jsme ujíždeli na pevných linkách :) Na tabletu v Termux (nebo pomocí SSH pokud již vzdáleně běží):

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

U prvního připojení je potřeba na tabletu povolit ladění.

Otestovat „spojení“ můžeme přímo z telefonu pomocí cli appky Remote ADB Shell třeba takto..

am start -a android.media.action.STILL_IMAGE_CAMERA && sleep 2 && input keyevent KEYCODE_CAMERA

Pokud foťák na tabletu cvakne TCP ADB funguje. Můžeme skriptovat.

Testujeme ADB GUI

pomocí menu Vývojářské nástroje / Služby na HA serveru. Akorát se k tomu musíme nejdřív dopracovat :) Kdo se obejde bez cli adb pull, push eixtuje letitá android aplikace jménem Motion Detection. GUI, snadná konfigurace, umí FTP, autostart, autostart po bootu, snímky okamžitě odesílá či nahráva. Využijeme v HA nedávno integrovaný prohlížeč medii a možnosti zobrazit snímky přímo v HA klientské aplikaci (kterou máte třeba v telefonu sebou). Jako způsob odeslání fotek na HA server volíme FTP a složku /media pro upload (ano to je přesně ta složka kterou zobrazuje prohlížeč medii).
Složku následně poskytneme k monitoringu platfromě folder_watch. Změnu ve složce oznámíme třeba na mobil automatizací, za pomocí Telegram bota. Konfigurace folder_watch:

folder_watcher:
   - folder: /media
     patterns:
         - '*.jpg'

Předpokládá se již instalovaný HA addon ADB – Android Debug Bridge a zapsaná konfigurace platformy androidtv. Platforma je primárně určena k jinému použití, pro náš účel ale vyhovuje.

Zápis konfigurace pro androidtv platformu (adb_server [Android Debug Bridge] běží přímo v HA, proto je v konfiguraci IP adresa 127.0.0.1). Soubor configuration.yaml

platform: androidtv
name: Tablet HA Panel
host: 192.168.1.61
adb_server_ip: 127.0.0.1
adb_server_port: 5037

Konfigurační karta HA (Home Assistant) rozšíření (addonu) ADB

devices: 192.168.1.61
reconnect_timeout: 90
log_level: info

Konfigurace v druhé části karty addonu ADB. Port:

5037

Automatizace s telegram notifikací. Soubor automation.yaml (ID je vygenerováno systémem jako „pořadové číslo“ – nepoužívat)

- id: '2207786558334'
  alias: Media Folder Watch Motion SM-P900
  description: ''
  trigger:
  - platform: event
    event_type: folder_watcher
    context: {}
    event_data:
      event_type: created
  condition: []
  action:
  - service: telegram_bot.send_message
    data:
      title: Pohyb v chatrči!
      message: Snímek č. {{ trigger.event.data.file }} v /media
      data:
        file: '{{ trigger.event.data.path }}'
      target: 96320281132
      timeout: 1000
  mode: single

A niní můžeme pomocí menu Vývojářské nástroje / Služby na HA serveru testovat z GUI již zmíněný foťák:

Pokud fotoaparát na tabletu cvakne, TCP ADB funguje. Výsledek? V HA android klient (po nastavení FTP v Motin Detection aplikaci) vidíme uploadované snímky z detekce pohybu na chalupě přímo v telefonu. V menu Prohlížeč médií / Media. Platforma folder_watch sleduje změny v definované složce /media. Pomocí automatizace v spolupráci s Telegram Botem do chatu okamžitě postuje změny ve složce /media. Zprávou s číslem snímku a cestou do které snímky ukláda. FTP server lze v aplikaci Motion Detection nastavit samozřejmě i externí, bežící na libovolném místě na světě. Motion Detection appka rovněž může odesílat fotografie přímo na zvolený e-mail.

Výsledek může vypadat..

Mi Home + SQLiteManager

Využijeme unikátní příležitost :) a rootnutym tabletem pomocí staré verze Mi Smart Home appky od Xiaomi vydolujeme cloud tokeny. Možností jak získat token je samozřejmě několik. Pokud se teprv rozhodujete Xiaomi není ideální ani jediná volba. Kupříkladu BlitzWolf Zigbee zásuvka (rovněž použitelná s deCONZ USB Zigbee Gateway) koštuje polovinu toho co za Xiaomi Smart Plug chtějí v Alza :)

  • Do Mi Home aplikace se přihlásime pomocí registrovaných údajů (email + heslo nebo Xiaomi ID + heslo). Předpokládá se, že Xiaomi používáte již nějakou dobu a tyto údaje máte. Pokud né, registrujte se, jinak z integrace nic nebude. Výhodná cena Xiaomi elektroniky je vykoupena nemožností Mi, Xiaomi a Yi výrobky používaj jinak než s Xiaomi cloudem. V tomto směru Xiaomi snahy o svobodnou (vlastní) volbu potírá brutálněji než Google. A nesnaží se to ani maskovat za snahu o zabezpečení e-banking transakcí, kde „toto“ Google „spojil v jedno“, s dopravou reklam do vašeho telefonu :) Po přihlášení se ze serveru stáhnou tokeny a uloží se lokálně do SQL databáze v tabletu (telefonu). Důležítá je starší verze (vypsaná na začátku textu) aplikace Mi Home. Novější aplikace již SQL šifrují. Pro načtení databáze je samo sebou potřeba root přístup.

Databáze je v cestě

/data/data/com.xiaomi.smarthome/databases/miio2.db
  • Pomocí SQLiteManager soubor miio2.db otevřeme a ze sloupce token nakopírujeme token(y) k použití v Xiaomi integraci do HA

To co je připraveno k instalaci – o čem bude zmínka v příštím článku: Záplavový senzor Xiaomi Mijia Aqara Water Immersing Sensor, vibrační senzor AQARA Vibration Sensor (DJT11LM), chytrá zásuvka Xiaomi Mi Smart plug. Místo Xiaomi Zigbee brány použijeme ke čtení výstupů ze senzorů deCONZ (by Dresden elektronik) Zigbee USB adaptér. To co možná připraveno bude je Roborock S5 nebo Roborock 6. Dilema? Možnost nahrát do Roborock S5 upravený firmware a odstřihnout se od cloudu. Nebo-li tato momentální nemožnost u Xiaomi Roborock 6. S ohledem na nutnost skoro průmyslového flashování

možná ani možnost nikdy nebude :) Fotografie úspěšného pokus o flash custom firmware je z vlákna Mijia IP Camera v3 na githubu. Bez toho se ke kameře (mimo cloud – kupříkladu pomocí RTSP) nejde vůbec připojit. Upravit předešlé verze kamer Yi a Mi samozřejmě možné bylo.

V pokračování zmínime i Home Assistant NGINX SSL Proxy a AdGuard Home rozšíření.