Installatie Home Assistant

Nu kunnen we starten met het installeren van Home Assistant.

sudo -i
 apt-get update
 apt-get install -y software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat
 systemctl disable ModemManager
 systemctl stop ModemManager
 curl -fsSL get.docker.com | sh

Gevolgd door

curl -sL "https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh" | bash -s

Nu nog zorgen dat het ip adres van deze machine statisch gemaakt word, hiervoor passen we het bestand /etc/network/interfaces aan. De sectie voor het primaire netwerk:

The primary network interface
 allow-hotplug enp2s0
 iface enp2s0 inet dhcp

Word aangepast naar:

The primary network interface
 allow-hotplug enp2s0
 iface enp2s0 inet static
       address 192.168.178.4
       netmask 255.0.0.0
       gateway 192.168.178.1

Plan B voor de Aspire One

Na diverse pogingen en het afspeuren van diverse sites moet ik helaas tot de conclusie komen dat ik een supervised Home Assistant installatie niet kan installeren op de Acer Aspire One, deze kan enkel een 32 bits architectuur aan en dat word door docker niet ondersteund.

Dit betekend dat de Aspire One een andere bestemming gaat krijgen en dat ik een andere oplossing voor Home Assistant moet gaan bedenken.

Voorbereiding Home Assistant

Voordat we Home Assistant aan de praat krijgen zullen we eerst wat voorbereidingen op Debian moeten doen. Dat begint met de installatie van een aantal pakketten.

tecumseh@ArkonII:~$ sudo apt-get install software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat
 Reading package lists… Done
 Building dependency tree
 Reading state information… Done
 dbus is already the newest version (1.12.16-1).
 The following additional packages will be installed:
   bind9-host crda dns-root-data dnsmasq-base geoip-database gir1.2-glib-2.0 gir1.2-packagekitglib-1.0 iw libappstream4 libavahi-common-data libavahi-common3 libavahi-core7 libbind9-161 libbluetooth3 libcurl3-gnutls libcurl4 libdaemon0
   libdns1104 libfstrm0 libgeoip1 libgirepository-1.0-1 libglib2.0-0 libglib2.0-bin libglib2.0-data libgstreamer1.0-0 libgudev-1.0-0 libicu63 libisc1100 libisccc161 libisccfg163 libjansson4 libjim0.77 libjq1 libldap-2.4-2 libldap-common
   liblmdb0 liblwres161 libmbim-glib4 libmbim-proxy libmm-glib0 libndp0 libnghttp2-14 libnl-3-200 libnl-genl-3-200 libnl-route-3-200 libnm0 libnss-mdns libonig5 libpackagekit-glib2-18 libpcap0.8 libpcsclite1 libpolkit-agent-1-0
   libpolkit-backend-1-0 libpolkit-gobject-1-0 libprotobuf-c1 libqmi-glib5 libqmi-proxy librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db libssh2-1 libstemmer0d libteamdctl0 libxml2 libyaml-0-2 modemmanager openssl packagekit
   packagekit-tools policykit-1 ppp python3-apparmor python3-dbus python3-distro-info python3-gi python3-libapparmor python3-pycurl python3-software-properties shared-mime-info unattended-upgrades usb-modeswitch usb-modeswitch-data
   wireless-regdb wpasupplicant xdg-user-dirs
 Suggested packages:
   vim-addon-manager avahi-autoipd geoip-bin gstreamer1.0-tools avahi-autoipd | zeroconf pcscd libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql libteam-utils
   appstream python-dbus-doc python3-dbus-dbg libcurl4-gnutls-dev python-pycurl-doc python3-pycurl-dbg bsd-mailx default-mta | mail-transport-agent needrestart comgt wvdial wpagui libengine-pkcs11-openssl
 The following NEW packages will be installed:
   apparmor-utils apt-transport-https avahi-daemon bind9-host ca-certificates crda curl dns-root-data dnsmasq-base geoip-database gir1.2-glib-2.0 gir1.2-packagekitglib-1.0 iw jq libappstream4 libavahi-common-data libavahi-common3
   libavahi-core7 libbind9-161 libbluetooth3 libcurl3-gnutls libcurl4 libdaemon0 libdns1104 libfstrm0 libgeoip1 libgirepository-1.0-1 libglib2.0-0 libglib2.0-bin libglib2.0-data libgstreamer1.0-0 libgudev-1.0-0 libicu63 libisc1100
   libisccc161 libisccfg163 libjansson4 libjim0.77 libjq1 libldap-2.4-2 libldap-common liblmdb0 liblwres161 libmbim-glib4 libmbim-proxy libmm-glib0 libndp0 libnghttp2-14 libnl-3-200 libnl-genl-3-200 libnl-route-3-200 libnm0 libnss-mdns
   libonig5 libpackagekit-glib2-18 libpcap0.8 libpcsclite1 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libprotobuf-c1 libqmi-glib5 libqmi-proxy librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db libssh2-1
   libstemmer0d libteamdctl0 libxml2 libyaml-0-2 modemmanager network-manager openssl packagekit packagekit-tools policykit-1 ppp python3-apparmor python3-dbus python3-distro-info python3-gi python3-libapparmor python3-pycurl
   python3-software-properties shared-mime-info socat software-properties-common unattended-upgrades usb-modeswitch usb-modeswitch-data wireless-regdb wpasupplicant xdg-user-dirs
 0 upgraded, 95 newly installed, 0 to remove and 0 not upgraded.
 Need to get 36.3 MB of archives.
 After this operation, 129 MB of additional disk space will be used.
 Do you want to continue? [Y/n] y

Gevolgd door de installatie van Docker

tecumseh@ArkonII:~$ sudo systemctl disable ModemManager
 Removed /etc/systemd/system/multi-user.target.wants/ModemManager.service.
 Removed /etc/systemd/system/dbus-org.freedesktop.ModemManager1.service.
 tecumseh@ArkonII:~$ sudo systemctl stop ModemManager
 tecumseh@ArkonII:~$ sudo curl -fsSL get.docker.com | sudo sh

En dan komen we toch achter een probleem!

tecumseh@ArkonII:~$ sudo curl -fsSL get.docker.com | sudo sh
 Executing docker install script, commit: 442e66405c304fa92af8aadaa1d9b31bf4b0ad94
 sh -c apt-get update -qq >/dev/null
 sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl gnupg >/dev/null
 sh -c curl -fsSL "https://download.docker.com/linux/debian/gpg" | apt-key add -qq - >/dev/null
 Warning: apt-key output should not be parsed (stdout is not a terminal)
 sh -c echo "deb [arch=i386] https://download.docker.com/linux/debian buster stable" > /etc/apt/sources.list.d/docker.list
 sh -c apt-get update -qq >/dev/null
 [ -n  ]
 sh -c apt-get install -y -qq --no-install-recommends docker-ce >/dev/null
 E: Package 'docker-ce' has no installation candidate 

Oftewel pakket docker-ce is niet beschikbaar. Na wat speurwerk komen we er dus achter dat docker-ce de opvolger is van docker en enkel beschikbaar is voor 64 bits processors…

Zou ik dan geluk hebben als ik docker installeer?

tecumseh@ArkonII:~$ sudo apt-get install docker
 Reading package lists… Done
 Building dependency tree
 Reading state information… Done
 The following additional packages will be installed:
   wmdocker
 The following NEW packages will be installed:
   docker wmdocker
 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
 Need to get 15.8 kB of archives.
 After this operation, 53.2 kB of additional disk space will be used.
 Do you want to continue? [Y/n] y

Helaas…

tecumseh@ArkonII:~$ sudo curl -sL "https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh" | sudo bash -s
 [Error] Please install docker first

Acer Aspire One – Debian Buster

Ter vervanging van mijn microclient Arkon wil ik nu een overgebleven Acer Aspire One ZG5 netboot gaan gebruiken. Deze zal ArkonII gaan heten en voorzien worden van de laatste stable versie van Debian Buster.

Doel van deze machine zal het hosten van mijn Home Assistant installatie zijn. Zoals uit het archief blijkt ben ik al wel bekend met Debian of afgeleiden daarvan. Dit is ook 1 van de 2 systemen die ondersteunt worden als Supervised installatie. Home Assistant maar ook andere home automation systemen is iets waar ik de afgelopen tijd al vaker mee gestoeid heb. Dit kan natuurlijk ideaal draaien op een Raspberry Pi, wat ik momenteel ook zeker doe. Het nadeel is echter de grote hoeveelheid data die bijgehouden word, deze moet natuurlijk weggeschreven worden op de sd-kaart en die vinden dat niet zo fijn. Dit heeft al eens geresulteerd tot een compleet om zeep geholpen home automation. Niet zo best voor de WAF (wife’s acceptance factor).

Maar nu verder, om te beginnen dus eerst de installatie van Buster. Ik heb hiervoor een mini.iso file gedownload en met Win32Imager op een usb stick gezet.

Hiermee de netbook opgestart en de installatie gestart en daarbij de volgende keuze’s gemaakt:

  • Language: English
  • Country: Netherlands
  • Locale: en_US.UTF-8
  • Keymap: American English (hopelijk betekend dit us-intl)
  • Network interface: enp2s0 (dit is de bedrade aansluiting)
  • Hostname: ArkonII
  • Domain name: <empty>
  • Debian mirror: Netherlands – deb.debian.org (standaard)
  • HTTP proxy: <empty>

Vervolgens het kiezen voor een root wachtwoord en het aanmaken van een gebruikersaccount. Hierna volgt het kiezen van een partitioneringssysteem. Ik kies hierbij een Guided installatie waarbij de volle harde schijf voor 1 partitie ingezet word. Als laatste nog de selectie van een paar ‘predefined collections’. Hier kies ik de SSH server en de standaard systeem utility’s. Alle andere voorgeselecteerde pakketten haal ik eraf, dit systeem zal enkel via remote benaderd worden dus zal de installatie zo minimaal mogelijk moeten zijn. Als laatste de keuze voor GRUB de bootloader, deze mag inderdaad in het master boot record gezet worden.