Home Assistant Core via Raspberry Pi OS Lite
Raspberry Pi OS Lite og Home Assistant på harddisk
Her kommer et nerdennlegg om hvordan jeg har innstallert og kjører Home Assistant Core på en Raspberry Pi 4 via Raspberry Pi OS Lite. Innlegget er langt og inneholder mange detaljer. Av den grunn er det perfekt for en nybegynner.
Av egen erfaring så kommer jeg med detaljer som ikke er nevnt i den offisielle fremgangsmåten som vil spare deg for mye hodebry.
Jeg går ut ifra at du kjenner til Raspberry Pi, grunnleggende om nettverk og er kjent med bruk av terminal.
NB! Ønsker du Home Assistant med Supervisor så er ikke dette fremgangsmåten for deg.
Forhistorie
Jeg ble fortryllet av hvordan man kan styre huset og en rekke enheter med det åpne kildekodeprosjektet Home Assistant. Siden huset sakte men sikkert over noen år har blitt fylt opp med smartenheter som alle trenger hver sin APP og integrasjoner så ble fristelsen til å samle så mye som mulig ett sted veldig stor.
En humpete reise
Men reisen ble veldig humpete og ting er (som jeg burde forutse) ikke rett frem. Å følge den offisielle installasjonsprosessen til Home Assistant er enkelt nok. Men stabiliteten skulle vise seg å være alt annet enn stabilt.
Bare minutter etter at jeg hadde startet opp prosjektet så feilet det helt. Beskrivelsen krasj har aldri passet bedre.
Ulike forum pekte i retning av dårlig minnekort. Så ulike minnekort ble prøvd. Alt ifra høykapasitet som jeg normalt bruker til videokamera til billige kort som lå i skuffen. Jeg prøvde også ulike minnekortlesere (noe som faktisk har noe å si) og ulike OS (Mac og Windows). Noen ganger fungerte Home Assistant opp til 1 time før det krasjet igjen. Frustrasjonen var til å ta og føle på.
Ulike forsøk med å bruke ekstern harddisk ble prøvd. Installere Home Assistant på en ekstern harddisk som om det var et minnekort. Jeg holdt på med ulike forsøk og kombinasjoner av minnekort og harddisker i lang tid.
Til slutt ga jeg slipp på Supervisor og gikk for Core. Med de fordeler og ulemper det medfølger.
Lærdom
Hadde jeg på forhånd brukt mer tid på å undersøke fremfor å gå for den raske og "foretrukne" løsningen ville jeg ikke valgt en Raspberry Pi men heller en klient / mini-PC som Intel NUC.
Hva er Raspberry Pi OS Lite?
Raspberry Pi OS Lite er en strippet utgave av den fulle utgaven. Du kan lese mer om de ulike distroene på https://www.raspberrypi.org/software/operating-systems/
Lite utgaven fungerer veldig fint til headless og man kobler seg til via en annen datamaskin. For nybegynnere så kan terminalen være et skummelt og overveldende sted.
Men det krever at man er villig til å skrive kommandoer og gjøre litt forberedelser. Men stol på meg, det er ikke så ille.
Last ned Raspberry Pi Imager
Det finnes ulike programmer for Windows, Mac og Linux som kan føre over operativsystemet til minnekort og/eller harddisk. Av de jeg prøvde så fant jeg ut at Raspberry Pi Imager (som kan håndtere mer enn bare Raspberry Pi OS) var den mest stabile.
Den kan du laste ned her https://www.raspberrypi.org/software/
Raspberry Pi Imager gir deg tilgang til alle distoer som fungerer med Raspberry Pi og du kan f.eks. formatere minnekort, harddisk og installere egne OS (images) via den.
Harddisk
Dette er verdt å nevne, fordi jeg har lest andre nevne det og jeg har opplevd det selv. Jeg har noen eksterne harddisker og av de som jeg prøvde så var det kun en av dem som min Raspberry Pi ville starte fra. Derfor kan jeg ikke garantere at denne fremgangsmåten vil fungere for din harddisk.
Forberede Raspberry Pi til å boote fra USB
Kort fortalt, Raspberry Pi-en vil se etter et minnekort. Finnes det ikke så vil den ikke gjøre noe mer. Så man må fortelle den at om minnekortet ikke er satt i så skal den sjekke USB-portene også.
Har du en nyere Raspberry Pi 4 (slik jeg har) så kan du hoppe over dette steget. Har du en annen så må du forberede den til å kunne starte opp via USB og ikke bare minnekort. Hvordan kan du lese her https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md
Installer Raspberry Pi Lite
Via Raspberry Pi Imager så velger du Raspberry Pi OS Lite og installer det på den eksterne harddisken.
Klargjør for SSH og Wi-Fi
Før du kobler fra harddisken fra maskinen din så skal vi lage to nye filer på den. Du kan lese mer her https://www.raspberrypi.org/documentation/configuration/wireless/headless.md
Jeg gjentar kortfattet.
SSH
Lag en tom fil med navnet ssh på root på harddisken.
Wi-Fi
Lag en fil med navnet wpa_supplicant.conf. Den skal inneholde følgende:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=NO
network={
ssid="[Navnet på ditt trådløse nettverk]"
psk="[Passordet til ditt trådløse nettverk]"
}
Koble fra harddisken på en trygg måte.
Første oppstart
Nå er vi klare til å starte opp for første gang. Koble til harddisken til Raspberry Pi-en og skru på strømmen.
Det tar normalt litt tid pga at Pi-en din vil først prøve å starte via et minnekort som ikke er satt inn så vil den gå igjennom USB-kontaktene til den finner en enhet med et OS. Så vil den begynne å starte opp Raspberry Pi OS Lite.
SSH
Nå må vi koble oss til. Har du Linux eller Mac så åpner du terminalen og SSH-er deg inn på Raspberry Pi-en. Har du Windows så anbefaler jeg PuTTY https://www.putty.org/
Hvordan koble seg til?
Avhengig av din trådløse router så må du finne ut hvilken IP-adresse din Raspberry Pi fikk når den koblet seg til det trådløse nettverket.
Hvis du er usikker så kan jeg anbefale gratis APP-en Fing (til mobil eller PC/Mac) https://www.fing.com/
Raspberry Pi har en egen temaside for headless og tilkobling https://www.raspberrypi.org/documentation/remote-access/README.md som kan være kjekt å se på.
Installere Home Assistant
Jeg går nå ut ifra at du nå er i terminalen og er inne via SSH. Du kan følge den offisielle fremgangsmåten her https://www.home-assistant.io/docs/installation/raspberry-pi/
Jeg gjentar i korte trekk kommandoene (uten forklaring):
Oppdater systemet
sudo apt-get update
sudo apt-get upgrade -y
Installer avhengigheter
sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5
Opprett en bruker
sudo useradd -rm homeassistant -G dialout,gpio,i2c
Gi brukeren et passord
sudo passwd homeassistant
Bytt miljø
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
Installer Pyhton-pakke
python3 -m pip install wheel
Logg ut
exit
Logg inn med homeassistant-brukeren
xxx.xxx.xx.x byttes ut med IP-adressen til din Pi.
ssh homeassistant@[din-pi-sin-ip-adresse]
Start Home Assistant
source /srv/homeassistant/bin/activate
hass
NB! Første gang man kjører hass så vil Home Assistant starte opp og begynne å laste ned nødvendige filer og installere dem. Underveis i prosessen kan man åpne Home Assistant i nettleseren og fullføre.
Fullfør installasjonen i nettleseren
Åpne en nettleser og gå til http://[din-pi-sin-ip-adresse]:8123 Hvis det ikke vises noe i nettleseren så vent noen minutter før du prøver igjen.
Automatisk start Home Assistant
Så langt vil Home Assistant fungere så lenge du er logget inn via terminalen. Men i det øyeblikket du avslutter terminalen så "dør" Home Assistant.
Så det man ønsker er å autoamtisk starte Home Assistant når man skrur på Raspberry Pi-en. Kilde: https://community.home-assistant.io/t/autostart-using-systemd/199497
sudo nano /etc/systemd/system/home-assistant@homeassistant.service
Lim inn følgende i filen:
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=%i
WorkingDirectory=/home/%i/.homeassistant
ExecStart=/srv/homeassistant/bin/hass -c "/home/%i/.homeassistant"
[Install]
WantedBy=multi-user.target
Kjør en omstart av systemd:
sudo systemctl --system daemon-reload
Nå må du tilgjengeliggjøre endringene:
sudo systemctl enable home-assistant@homeassistant
Start Pi-en på nytt med denne kommandoen:
reboot