Příprava pro remote command + dump informace. Home Assistent (HA) jakožto linuxový operační systém umí SSH a příkazovou řádku. Ta je dostupná přímo v rozhraní HA, pomocí addonu Terminal. Zajisté neprovozujete Home Assistant proto, aby jste používali shell, ale jak to už bývá, to nejlepší je i v tomto případě ukryto v černočerné tmě. HA je jeden velký příkazový řádek, zahalený do vkusného klikacího GUI.
Za uplynulých 5 let byla publikována řada zajímavých IoT projektů (automatizací). Se základní znalostí Linuxu ale prakticky žádnou komplexnejší automatizaci neuvedete do funkčního stavu. Alfou i omegou je vzdálený přístup s možností provést libovolný příkaz či získat informaci.
Definovaný informační výstup z hardware paltformy umí třeba SNMP nebo IPMI. Ze software platformy lze získat – poskytnout informaci, provést příkaz – změnu, pomocí API. Stále populárnější trend „odstříhávání se od cloudu“ nás ale vrací na počátek všeho. Terminál.
Obsah
Addon Terminál & SSH
Získáme přímo v HA Supervisor menu.

sshpass
Zjednodušeně řečeno umožní odeslat heslo pomocí SSH a to v jednom řádku s loginem. Což SSH neumožňuje jelikož vyžaduje interakci (počkat na výzvu na potvrzení certifikátu + výzvu na zadáni hesla + zadání + odeslání hesla). Balíček sshpass získáme v instalovaném Home Assistant Terminálu pomocí příkazu apk (s nejdříve provedenou aktulaizací)
apk update apk upgrade apk add sshpass

Test spojení
na další unixlike systém lze samosebou provést obousměrně. Z Home Assistnt terminálu na unixový počítač / sever, z Ubuntu či MacOS terminálu na Home Assistant. Test spojení z Home Assistant na MacOs.
Nejdříve provedeme standarní přihlášení pomocí SSH a potvrdíme šifrovací certifikát pro spojení.
ssh uživatel@ip_adresa yes (enter) heslo exit
Následně již bude funkční spojení pomocí Home Assistant sshpass aplikace na vzdálený počítač s možností provést vzdálený příkaz
sshpass -p 'heslo' ssh uživatel@ip_adresa příkaz
To samé z MacOS směrem na HA. Zde je malý háček jelkož MacOS sshpass blokuje, sshpass je vyloučen i z brew. Pomůžeme si zadaním příme cesty k brew casc a sshpass se nainstaluje již bez problému
brew install hudochenkov/sshpass/sshpass
Ve výstupu z instalace je použita proměnná (negace) no auto update.
papo@imac ~ % HOMEBREW_NO_AUTO_UPDATE=1 brew install hudochenkov/sshpass/sshpass ==> Tapping hudochenkov/sshpass Cloning into '/usr/local/Homebrew/Library/Taps/hudochenkov/homebrew-sshpass'… remote: Enumerating objects: 14, done. remote: Total 14 (delta 0), reused 0 (delta 0), pack-reused 14 Receiving objects: 100% (14/14), done. Resolving deltas: 100% (3/3), done. Tapped 1 formula (29 files, 33.0KB). ==> Installing sshpass from hudochenkov/sshpass ==> Downloading https://downloads.sourceforge.net/project/sshpass/sshpass/1.06/sshpass-1.06.tar.gz ==> Downloading from https://deac-fra.dl.sourceforge.net/project/sshpass/sshpass/1.06/sshpass-1.06.tar.gz ################################################################## 100.0% Warning: A newer Command Line Tools release is available. Update them from Software Update in System Preferences or run: softwareupdate --all --install --force If that doesn't show you any updates, run: sudo rm -rf /Library/Developer/CommandLineTools sudo xcode-select --install Alternatively, manually download them from: https://developer.apple.com/download/more/. ==> ./configure --prefix=/usr/local/Cellar/sshpass/1.06 ==> make install /usr/local/Cellar/sshpass/1.06: 9 files, 46.0KB, built in 18 seconds
Další dva kroky jsou totožné. Do HA se připojíme pomocí login / heslo definované v Home Assistant SSH & Web Terminal konfiguraci. Pokud nemáte z dřívějška připraveny podmínky pro sshpass (ne)interaktivní session z MacOS, postup je podrobně popsán na webu superuser.

Tip. Chytrá lednice přes vzdálený příkaz shell_command
Používáte Grocy na vlastním serveru? Z HA lze volat Grocy API pomocí shell_command. Třeba odepisovat spotřebované položky. Popsaný postup integrace vzdálené intstalace Grocy, včetně funkčních příkladů najdete na webové stránce phil hawthorne.
HA command_line + shell_command
Kontrola Grocy serveru (www port 9192) s command_line + netstat
binary_sensor:
- platform: command_line
command: 'netstat -na | find "9192" | find /c "LISTENING" > nul && (echo "1") || (echo "0")'
name: "grocy_server"
device_class: moving
payload_on: "Running"
payload_off: "Not running"
Start Grocy serveru shell_command + sshpass + ssh + systemctl
shell_command:
systemctl_grocy_start: "sshpass -p 'heslo' ssh user@ipadresa -pport systemctl start grocy.service"
Zjištění verze operačního systému pomocí shell_command + SSH passwordless + uname
shell_command:
system_uname: "ssh -i /certifikat -o StrictHostKeyChecking=no -q user@192.168.101.101 uname"
SSH připojení bez hesla (passwordless) je popsané v článku o Home Assistant integraci Nextcloud Linux server cloudu.
Užitečné
Domovská stránka Home Assistant.