Translate

Home Assistant na Android set-top boksu

Računar koji će obavljati funkciju servera za kontrolu pametne kuće ne mora bti zadnje generacije i visokog cenovnog ranga. Njegovu funkciju može obavljati pristupačni Android set-top boks.Postavljanje kućnog servera za kontrolu “pametnih” uređaja u kući je opcija koju treba razmotriti iz nekoliko razloga. Ukoliko korisnik u kući ima Wi-Fi prekidače, pametne sijalice i senzore različitih proizvođača, koji se ne mogu objediniti u jednoj onlajn aplikaciji, rešenje je postavljanje sopstvenog servera sa odgovarajućim softverom. Home Assistant je besplatni softver za automatizaciju kuće otvorenog koda, dizajniran da bude centralni sistem kontrole, koji ima podršku za veliki broj pametnih uređaja. Funkciju servera mogu da obavljaju i mini računari čije zadnje generacije spadaju u višu cenovnu klasu. U eri ekspanzije mobilnih telefona, često se zaboravlja da je Android set-top boks mali računar, koji sa višejezgarnim procesorom može da izvršava zahtevne zadatke. Postavlja se pitanje da li je moguće instalirati Home Assistant na Android set-top boksu i kako funkcioniše ta kombinacija.

Na web stranici Home Assistant postoji uputstvo za instalaciju na Linux operativnom sistemu, a na YouTube-u uputstvo za pokretanje na mobilnom telefonu u Termux-u (Android terminal emulatoru). Ova uputstva treba spojiti i u praksi korigovati nekoliko propusta i promena koje su se pojavile u međuvremenu.

Treba napomenuti da instalacija na Android telefonu nije tema ovog teksta, već na set-top boksu koji je praktičniji za neprestani rad i nastavak rada nakon prekida u napajanju električnom energijom.
Pre početka potrebno je saznati IP adresu koju lokalni ruter dodeljuje set-top boksu. IP adresu je moguće saznati u podešavanjima (settings), odabirom interfejsa preko koga je boks povezan na ruter (bežično preko Wi-Fi-ja ili žičano preko LAN interfejsa) i odabirom opcije “napredno” (advanced).   
IP adresa je obično u formatu 192.168.0.x ili 192.168.1.x gde je x broj od 2 do 254. Napredniji korisnici će u ruteru dodeliti fiksnu adresu boksu, kako je DHCP server ne bi menjao.
Na boksu je najpre potrebno instalirati Termux i pokrenuti ga. Termux treba “osvežiti” naredbom:
pkg update i ukoliko zatraži instalaciju update-a, potvrditi sa “y”. Za kompletnu instalaciju potrebno je kucati veliki broj komandi i parametara, pa je preporučivo na set-top boksu istalirati ssh pristup i komande unosti copy/paste metodom u ssh klijentu na drugom računaru.

Na boksu, u Termux-u treba ukucati:
pkg install openssh
Nakon instalacije openssh-a, treba otkucati komandu:
passwd
što će zatražiti postavljanje šifre koja će se koristiti za pristup SSH klijentom sa drugog računara.
Nakon toga na boksu treba startovati openssh naredbom:
sshd
Nakon toga na PC računaru treba instalirati i pokrenuti neki od ssh klijenta poput PuTTY i uneti IP adresu boksa i port 8022. PuTTY se poveže sa set-top boksom, upozori na sertifikat i potraži korisničko ime i šifru. Za korisničko ime treba uneti
root
a za šifru onu koja je prethodno konfigurisana na boksu u Termux-u.

Sada je u PuTTY moguće desnim tasterom na mišu “lepiti” prethodno iskopirane naredbe, pa će prva glasiti:
pkg install python libffi openssl coreutils clang python coreutils nano mosquitto nodejs openssh termux-api make curl
i na pitanja odobriti instalaciju sa “y”. Sledi nadogradnja Python-a naredbom:
pip install --upgrade pip
Sledi instalacija PyNaCl-a koja može potrajati preko 20 minuta:
pip install pynacl==1.3.0
Instalacija alata za upravljanje mrežom Netdisco je sledeći korak:
pip install netdisco
Sledi instalacija Node-RED alata naredbom:
npm i -g --unsafe-perm pm2 node-red
Pokretanje protokola za razmenu poruka u sistemima pametnih kuća je sledeći korak:
pm2 start mosquitto -- -v -c /data/data/com.termux/files/usr/etc/mosquitto/mosquitto.conf
kao i pokretanje Node-RED-a:
pm2 start node-red

Sledi instalacija Home Assistant-a naredbama:
python -m venv homeassistant
source homeassistant/bin/activate
pip install homeassistant==0.114.4


Preostalo je još unošenje nekoliko naredba i konfigurisanje:
pm2 start hass --interpreter=python -- --config /data/data/com.termux/files/home/.homeassistant

cd /data/data/com.termux/files/home/.homeassistant

curl -LO https://raw.githubusercontent.com/danielperna84/hass-configurator/master/configurator.py

chmod 755 configurator.py

pm2 start /data/data/com.termux/files/home/.homeassistant/configurator.py


Nakon tri do četiri minuta Home Assistant će biti dostupan preko WEB pretraživača (brouzera) na istoj IP adresi na kojoj je boks, sa dodatkom porta :8123 (primer: 192.168.0.10:8123) kada će pitati za željeno ime, korisničko ime i šifru, nakon čega treba odabrati opciju “CREATE ACCOUNT”. Sledi unos imena kuće i određivanje lokacije na mapi.

Dokle god u donjem levom uglu brouzera stoji natpis “Home Assistant is starting, not everything will be available until it is finished” ova platforma neće moći da se koristi. Nakon neodređenog vremena potrebno je opet preko brouzera pristupiti Home Assistant-u preko IP adrese i porta, uneti korisničko ime, šifru i potvrditi opciju stalne prijavljenosti.
Nedostaje još nekoliko podešavanja kako bi se eliminisale greške koje se pokazuju prilikom startovanja.
U brouzeru je potrebno uneti IP adresu na kojoj se pristupa Home Assistantu, ali sa portom 3218 (na primer: 192.168.0.10:3218), što će otvoriti konfigurator gde treba pronaći fajl configuration.yaml koji se nalazi u /data/data/com.termux/files/home/.homeassistant/ folderu. U configuration.yaml treba dodati
zeroconf:
  default_interface: true

kao i:
panel_iframe:
  configurator:
    title: Configurator
    icon: mdi:wrench
    url: http://a.b.c.d:3218

gde je a.b.c.d IP adresa Android boksa (na primer: 192.168.0.10)
Nakon promene configuration.yaml fajla potrebno je restartovati Home Assistant što se obavlja u glavnom pregledu (na portu 8123) u meniju “Konfiguracija”, u podmeniju “Server Controls”.
Ukoliko se u tokom postavljanja nekih integracija (senzora) pojavi problem koji u zapisu (logs) ukazuje na Python biblioteku xmltodict, istu je potrebno instalirati u Termux naredbom:
pip install xmltodict

Za kraj podešavanja ovakve konfiguracije treba Android set-top boksu naložiti da prilikom uključivanja (na primer prekida u napajanju električnom energijom) pokrene Termux i startuje Home Assistant. Samo pokretanje Termux-a prilikom uključivanja Androida moguće je podesiti preko aplikacija Auto Start - No root ili Startup Manager Free. To će startovati Termux, ali ne i Home Assistant. U Termux-u je (preko PuTTY ssh klijenta) potrebno pronaći fajl bash.bashrc:
cd ..
cd usr
cd etc
nano bash.bashrc


i dodati mu:
sshd
pm2 start mosquitto -- -v -c /data/data/com.termux/files/usr/etc/mosquitto/mosquitto.conf
pm2 start node-red
source homeassistant/bin/activate
pm2 start hass --interpreter=python -- --config /data/data/com.termux/files/home/.homeassistant
pm2 start /data/data/com.termux/files/home/.homeassistant/configurator.py


Postavlja se pitanje kako ovakva konfiguracija radi u praksi. Iz ličnog iskustva, nakon nekoliko meseci testiranja nisam imao problema, iako na tom istom boksu radi i par aplikacija za daljinsku komandu Home Assistant-a preko IR daljinskog.

1 komentar:

  1. Puno vam hvala, vrlo je velikodušno podijeliti vaš sjajan rad.

    Thank you very much, it is very generous to share your great work.

    OdgovoriIzbriši