Energiahubin perusalusta: Debian + Docker + Home Assistant + Node-RED

Written by

in

Tavoite

Rakennetaan pohja, joka:

  • on vakaa
  • toimii 24/7
  • tukee Home Assistantia ja Node-REDiä
  • on laajennettavissa myöhempään kehitykseen

Tämän vaiheen tarkoitus ei ole vielä rakentaa automaatiota, vaan tehdä puhdas ja hallittu alusta energiahubille.

Arkkitehtuurivalinta

Valitaan heti alussa selkeä rakenne:

  • OS: Debian minimal
  • Runtime: Docker + Docker Compose
  • Palvelut:
    • Home Assistant
    • Node-RED

Miksi tämä valinta

  • palvelut eriytyvät selkeästi
  • päivitykset ovat hallittavia
  • varmuuskopiointi on helppoa
  • rakenne on laajennettavissa myöhemmin
  • Home Assistant ja Node-RED voidaan pitää puhtaasti omissa rooleissaan

Debian-asennus

Suositeltu versio

Tavoitteena oli Debian 12 stable, mutta toteutus tehtiin nyt Debian 13:lla.
Se toimii tässä vaiheessa, joten ohje jatkuu sillä käytännön toteutuksella.

Asennuksen periaate

  • käytä netinst-asennusmediaa
  • tee asennus ilman työpöytäympäristöä
  • ota SSH käyttöön
  • käytä yhtä koko levyä
  • jätä domain-kenttä tyhjäksi
  • jätä root-salasana tyhjäksi ja käytä normaalia käyttäjää sudo-oikeuksilla

Käytetyt valinnat

  • hostname: energyhub
  • user: oma normaali käyttäjä
  • network: Ethernet
  • partitioning: guided, use entire disk
  • software selection:
    • valittuna vain:
      • SSH server
      • standard system utilities
    • ei desktop environmentia

Huomio

Jos asennuksessa näkyy kohta “popularity contest”, valitse Ei.

Peruskonfiguraatio

Kirjaudu sisään Debianiin ja aja:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git vim htop

SSH-yhteys toiselta koneelta

Suositus on siirtyä heti SSH-käyttöön, jotta komennot voi copy/pasteta.

Selvitä IP

Tarvittaessa:

ip a

Yhdistä toiselta koneelta

Windows PowerShell / Windows Terminal / Mac / Linux Terminal:

ssh user@192.168.xxx.xxx

Ensimmäisellä kerralla hyväksy host key komennolla:

yes

Syötä sen jälkeen käyttäjän salasana.

Docker-asennus

Asenna Docker:

curl -fsSL https://get.docker.com | sh

Lisää käyttäjä docker-ryhmään:

sudo usermod -aG docker $USER

Kirjaudu ulos ja takaisin sisään.

Testaa Docker:

docker run hello-world

Huomio

Jos saat virheen tyyliin:

group ’docker’ does not exist

Docker ei ole asentunut oikein tai asennus ei ole ehtinyt loppuun. Aja Docker-asennus uudelleen.

Docker Compose

Tässä toteutuksessa käytettiin komentoa:

docker compose

eli erillistä vanhaa docker-compose-pakettia ei välttämättä tarvita.

Voit silti halutessasi asentaa sen:

sudo apt install -y docker-compose

Mutta tämän toteutuksen kannalta riittää, että docker compose toimii.

Testaa:

docker compose version

Hakemistorakenne

Luo energiahubille oma selkeä kansiorakenne:

mkdir -p ~/energyhub
cd ~/energyhub
mkdir homeassistant nodered backups

Tarkista:

ls

Pitäisi näkyä:

backups  homeassistant  nodered

Home Assistant- ja Node-RED-containerit

Luo tiedosto:

nano ~/energyhub/docker-compose.yml

Sisällöksi tämä:

services:
  homeassistant:
    container_name: homeassistant
    image: ghcr.io/home-assistant/home-assistant:stable
    volumes:
      – ./homeassistant:/config
    network_mode: host
    restart: unless-stopped
    privileged: true

  nodered:
    container_name: nodered
    image: nodered/node-red:latest
    volumes:
      – ./nodered:/data
    network_mode: host
    restart: unless-stopped

Miksi network_mode: host

Tässä ympäristössä se on käytännöllinen, koska:

  • vähentää verkkoasetusten säätöä
  • helpottaa HA:n ja Node-REDin välistä yhteyttä
  • sopii paikalliseen energiahubiin

YAML-huomio

Jos docker compose up -d antaa virheen tyyliin:

yaml: line xx: mapping values are not allowed in this context

syy on lähes aina:

  • väärä sisennys
  • tab-merkit
  • ylimääräinen merkki rivillä

Korvaa silloin koko tiedosto puhtaalla versiolla yllä.

Containerien käynnistys

Siirry energyhub-kansioon:

cd ~/energyhub

Käynnistä palvelut:

docker compose up -d

Tarkista konfiguraatio tarvittaessa ennen käynnistystä:

docker compose config

Tarkista käynnissä olevat containerit:

docker ps

Pitäisi näkyä ainakin:

  • homeassistant
  • nodered

Käyttöönotto selaimella

Home Assistant

Avaa:

http://192.168.xxx.xxx:8123

Ensimmäisellä käynnistyskerralla:

  • luo käyttäjä
  • älä tuo vanhaa varmuuskopiota
  • älä tee integraatioita vielä laajasti
  • pidä ympäristö puhtaana

Node-RED

Avaa:

http://192.168.xxx.xxx:1880

Tässä vaiheessa riittää, että Node-RED avautuu.

Tässä vaiheessa ei tehdä vielä

Tässä vaiheessa tarkoitus on vain saada perusalusta toimimaan.

Ei tehdä vielä:

  • ei automaatioita
  • ei templateja
  • ei vanhan Home Assistant -konfiguraation importtia
  • ei Node-RED flow’ta
  • ei integraatioiden massalisäystä

Miksi

Tavoite on rakentaa uusi arkkitehtuuri puhtaalta pohjalta, ei siirtää vanhaa rakennetta uuteen ympäristöön.

Tämän vaiheen lopputulos

Kun tämä osa on valmis, käytössä on:

  • Debian-pohjainen energiahubi
  • SSH-yhteys hallintaa varten
  • Docker-ympäristö
  • puhdas Home Assistant
  • puhdas Node-RED
  • selkeä kansiorakenne jatkokehitykselle

Seuraava vaihe

Seuraavassa teknisessä ohjeessa siirrytään ensimmäiseen oikeaan toiminnalliseen kerrokseen:

  • Home Assistantin ja Node-REDin roolien lukitus
  • ensimmäiset integraatiot
  • ensimmäinen ohjauslogiikka

Piditkö artikkelista?

Seuraa blogia myös Blogit.fi:ssä, niin löydät uudet kirjoitukset helposti.

Seuraa blogia Blogit.fi:ssä