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

Batterij niveau

Aangezien de accu van mijn netboot niets leek te doen heb ik een nieuwe besteld. Om het laadniveau van deze accu te controleren moet pakket acpi toegevoegd worden.

tecumseh@ArkonII:~$ sudo apt-get install acpi
 Reading package lists… Done
 Building dependency tree
 Reading state information… Done
 The following NEW packages will be installed:
   acpi
 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 Need to get 16.7 kB of archives.
 After this operation, 45.1 kB of additional disk space will be used.

Hierna kunnen we zien dat de nieuwe accu nu opgeladen word.

tecumseh@ArkonII:~$ acpi -V
 Battery 0: Charging, 41%, 01:12:35 until charged
 Battery 0: design capacity 2200 mAh, last full capacity 2200 mAh = 100%
 Adapter 0: on-line
 Cooling 0: Processor 0 of 10
 Cooling 1: acerhdf-fan 1 of 1
 Cooling 2: acerhdf no state information available
 Cooling 3: Processor 0 of 10

Docker installeren

Nu dan toch maar docker.io installeren. Blijkbaar is het docker pakket een dummy

tecumseh@ArkonII:~$ sudo apt-get install docker.io
 Reading package lists… Done
 Building dependency tree
 Reading state information… Done
 The following additional packages will be installed:
   cgroupfs-mount git git-man liberror-perl libltdl7 libnspr4 libnss3 patch runc tini
 Suggested packages:
   docker-doc aufs-tools btrfs-progs debootstrap rinse xfsprogs zfs-fuse | zfsutils git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn ed diffutils-doc
 The following NEW packages will be installed:
   cgroupfs-mount docker.io git git-man liberror-perl libltdl7 libnspr4 libnss3 patch runc tini
 0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
 Need to get 0 B/55.1 MB of archives.
 After this operation, 229 MB of additional disk space will be used.
 Do you want to continue? [Y/n] y

Vervolgens ook nog de user toevoegen aan de docker groep

tecumseh@ArkonII:~# sudo adduser tecumseh docker
 Adding user tecumseh' to groupdocker' …
 Adding user tecumseh to group docker
 Done.

Hierna zou docker moeten werken.

Slaapstand uitschakelen

Als het scherm dichtgeklapt word gaat om stroom te besparen de netbook in slaapstand. Als je deze als server gaat gebruiken dan is dat minder handig, dit wil ik dus uitschakelen. Hiervoor moeten we een configuratiebestand aanpassen.

tecumseh@ArkonII:~$ sudo nano /etc/systemd/logind.conf

Hierin voegen we een regel toe

HandleLidSwitch=ignore

Hierna moeten we nog wel even de service herstarten met het volgende commando:

tecumseh@ArkonII:~$ sudo systemctl restart systemd-logind.service

Na deze handeling kan het schermpje dicht en word er iets minder ruimte ingenomen.

Geïnstalleerde pakketten

Nu de installatie afgerond is kunnen we het lijstje met pakketten bekijken met de volgende opdracht.

tecumseh@ArkonII:~$ apt list --installed

De lijst die hieruit volgt heb ik vergeleken met een lijst met overbodige pakketten. Daarin blijven onderstaande pakketten over die verwijderd zouden kunnen worden.

 bash-completion/stable,now 1:2.8-6 all [installed]
 bind9-host/stable,now 1:9.11.5.P4+dfsg-5.1 i386 [installed]
 ca-certificates/stable,now 20190110 all [installed,automatic]
 debian-faq/stable,now 9.0 all [installed]
 dictionaries-common/stable,now 1.28.1 all [installed,automatic]
 doc-debian/stable,now 6.4 all [installed]
 file/stable,stable,now 1:5.35-4+deb10u1 i386 [installed,automatic]
 gettext-base/stable,now 0.19.8.1-9 i386 [installed]
 groff-base/stable,now 1.22.4-3 i386 [installed]
 iamerican/stable,now 3.4.00-6 all [installed,automatic]
 ibritish/stable,now 3.4.00-6 all [installed,automatic]
 ispell/stable,now 3.4.00-6+b1 i386 [installed,automatic]
 laptop-detect/stable,now 0.16 all [installed]
 manpages/stable,now 4.16-2 all [installed]
 nano/stable,now 3.2-3 i386 [installed]
 netcat-traditional/stable,now 1.10-41.1 i386 [installed]
 openssh-client/stable,now 1:7.9p1-10+deb10u2 i386 [installed]
 openssh-server/stable,now 1:7.9p1-10+deb10u2 i386   
 openssl/stable,stable,now 1.1.1d-0+deb10u2 i386 [installed,automatic]
 reportbug/stable,now 7.5.3~deb10u1 all [installed]
 tasksel/stable,now 3.53 all [installed]
 traceroute/stable,now 1:2.1.0-2 i386 [installed]
 usbutils/stable,now 1:010-3 i386 [installed]
 vim-common/stable,now 2:8.1.0875-5 all [installed]
 vim-tiny/stable,now 2:8.1.0875-5 i386 [installed]
 wamerican/stable,now 2018.04.16-1 all [installed]

Uiteraard eerst elk pakket maar nalopen om te kijken of ik hier zelf ook mee eens ben. De vetgedrukte pakketten in het overzicht ga ik verwijderen, de rest mag achterblijven.

tecumseh@ArkonII:~$ sudo apt-get remove bind9-host ca-certificates debian-faq dictionaries-common doc-debian file gettext-base groff-base iamerican ibritish ispell manpages netcat-traditional tasksel vim-common vim-tiny wamerican
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
emacsen-common geoip-database libbind9-161 libcurl3-gnutls libdns1104 libefiboot1 libefivar1 libfreetype6 libfstrm0 libfuse2 libgeoip1 libicu63 libisc1100 libisccc161 libisccfg163 libldap-2.4-2 libldap-common liblmdb0 liblwres161
libmagic-mgc libmagic1 libnghttp2-14 libpipeline1 libpng16-16 libprotobuf-c1 librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db libssh2-1 libuchardet0 libwrap0 libxml2 openssh-server openssh-sftp-server openssl python3-chardet
python3-debian python3-idna python3-pkg-resources python3-pycurl python3-six python3-urllib3
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
bind9-host ca-certificates debian-faq dictionaries-common doc-debian file gettext-base groff-base grub-common grub-pc grub-pc-bin grub2-common iamerican ibritish ienglish-common ispell man-db manpages netcat-traditional os-prober
python3-certifi python3-debianbts python3-httplib2 python3-pysimplesoap python3-reportbug python3-requests reportbug task-english task-ssh-server tasksel tasksel-data vim-common vim-tiny wamerican
0 upgraded, 0 newly installed, 34 to remove and 0 not upgraded.
After this operation, 40.6 MB disk space will be freed.
Do you want to continue? [Y/n] y

Gevolgd door:

tecumseh@ArkonII:~$ sudo apt-get autoremove

Reading package lists… Done

Building dependency tree

Reading state information… Done

The following packages will be REMOVED:

  emacsen-common geoip-database libbind9-161 libcurl3-gnutls libdns1104 libefiboot1 libefivar1 libfreetype6 libfstrm0 libfuse2 libgeoip1 libicu63 libisc1100 libisccc161 libisccfg163 libldap-2.4-2 libldap-common liblmdb0 liblwres161

  libmagic-mgc libmagic1 libnghttp2-14 libpipeline1 libpng16-16 libprotobuf-c1 librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db libssh2-1 libuchardet0 libwrap0 libxml2 openssh-server openssh-sftp-server openssl python3-chardet

  python3-debian python3-idna python3-pkg-resources python3-pycurl python3-six python3-urllib3

0 upgraded, 0 newly installed, 43 to remove and 0 not upgraded.

After this operation, 68.2 MB disk space will be freed.

Do you want to continue? [Y/n] y

Toch grappig dat hiermee openssh-server verwijderd word waardoor mijn Putty login niet meer werkt. Deze toch maar vanaf de netbook opnieuw geïnstalleerd.

Installatie afronden

Nadat de installatie gelukt is word het tijd om de eerste configuratie te doen. Wat daarbij in elk geval nodig is dat is het remote inloggen met een gebruikersaccount en het is ook handig als de netbook ingeklapt kan doorwerken, scherm uitgeschakeld zal ongetwijfeld schelen in het stroomverbruik.

Het inloggen met putty geeft al een eerste struikelblok, om het ip adres op te zoeken zou ik normaal gesproken eerst rechtstreeks inloggen om dan met het commando ifconfig het ip adres te achterhalen. Dit commando is echter niet meer in gebruik. Blijkt dat dit al vanaf 2009 het geval zou moeten zijn. Vanaf dat moment zou het pakket net-tools vervangen moeten worden door iproute2 wat actief ontwikkeld word, mocht je daar meer over willen lezen dan heb ik hier een engels linkje voor je. Met het commando ip add show kwam ik in elk geval op een ip adress waarmee ik putty gebruiken.

 tecumseh@ArkonII:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1e:68:b3:af:3b brd ff:ff:ff:ff:ff:ff
inet 192.168.178.72/24 brd 192.168.178.255 scope global dynamic enp2s0
valid_lft 856188sec preferred_lft 856188sec
inet6 fe80::21e:68ff:feb3:af3b/64 scope link
valid_lft forever preferred_lft forever
3: wlp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:22:69:0b:3b:ae brd ff:ff:ff:ff:ff:ff

Nu heb ik 2 accounts, root en een gebruikersaccount. Het root account wil ik echter niet actief gebruiken, ik zie meer in het gebruik van sudo. Dit pakket zal dus geïnstalleerd moeten worden. Met su – schakel ik over naar het root account waarmee ik sudo kan installeren.

root@ArkonII:~# apt-get install sudo
 Reading package lists… Done
 Building dependency tree
 Reading state information… Done
 The following NEW packages will be installed:
   sudo
 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 Need to get 1,241 kB of archives.
 After this operation, 4,000 kB of additional disk space will be used.
 Get:1 http://deb.debian.org/debian buster/main i386 sudo i386 1.8.27-1+deb10u2 [1,241 kB]
 Fetched 1,241 kB in 0s (5,183 kB/s)
 Selecting previously unselected package sudo.
 (Reading database … 27502 files and directories currently installed.)
 Preparing to unpack …/sudo_1.8.27-1+deb10u2_i386.deb …
 Unpacking sudo (1.8.27-1+deb10u2) …
 Setting up sudo (1.8.27-1+deb10u2) …
 Processing triggers for man-db (2.8.5-2) …
 Processing triggers for systemd (241-7~deb10u3) …

Nu nog het toevoegen van het gebruikersaccount aan de sudo groep.

root@ArkonII:~# adduser tecumseh sudo
 Adding user tecumseh' to groupsudo' …
 Adding user tecumseh to group sudo
 Done.

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.

Terug van weggeweest

Na jaren van afwezigheid ben ik weer terug op het net. Ik vond onlangs een sql backup van mijn oude WordPress site in de mail terug. Hiermee heb ik mijn blog alsnog kunnen installeren. Samen met de Wayback Machine ga ik proberen om zoveel mogelijk nog te redden.

De reden dat mijn blog verdwenen was is dat enkele jaren geleden mijn microclient abrupt is overleden. De harde schijf was niet repareerbaar.

Voor nu ga ik verder met een volgende uitdaging die je in de volgende blogposts ongetwijfeld terug zult lezen.