Update 14 januari 2021
Tips en tricks voor een pijnloze Domoticz-migratie naar de nieuwste versie van Domoticz, RPi4B en Raspbian Buster
De nieuwste versies van Domoticz werkt niet meer samen met het besturingssysteem Raspbian Stretch en vereisen dat je de nieuwe versie Raspbian Buster installeert. Een onverwachte en misschien onvoldoende aangekondigde stap van het Domoticz-team, maar als je de nieuwste versie van dit smarthome systeem wilt, zul je ook je besturingssysteem moeten aanpassen. Een simpele update volstaat niet. In dit artikel beschrijf ik mijn ervaringen.
De reden waarom het nieuwste besturingssysteem nodig is, is eigenlijk triviaal: Domoticz maakt gebruik van enkele functies in een C-library die niet standaard in Stretch zit. Alleen de C-library updaten is helaas problematisch, weet ik uit ervaring.
Het nieuwe besturingssysteem over het oude heen installeren, is mogelijk, maar levert ook vaak onverwachte problemen op met applicaties die niet (volledig) meer werken. In mijn geval waren na deze installatie zelfs geen updates meer mogelijk. Dat is wel het laatste wat je wilt!
Ik besloot daarom een radicaal andere aanpak, door uit te gaan van een ‘verse’ nieuwe installatie en dan ook maar meteen op de nieuwste hardware: de Raspberry Pi 4B. Maar om nou alle hardware, apparaten, scripts en dergelijke, ook opnieuw vanaf nul te installeren, ging me te ver. Daarom koos ik voor een alternatieve route: het terugzetten van een backup van het oude systeem en van daaruit de noodzakelijke aanpassingen maken. Dat scheelt een hoop werk.
Raspberry Pi 4B (4 Gb)
Raspberry Pi 4B officiële netvoeding
Raspberry Pi 4B Starter Set
Ik zal hier stap voor stap laten zien wat ik heb gedaan om weer tot een stabiel, werkend systeem te komen en welke uitdagingen ik daarbij moest overwinnen. Omdat ieder systeem anders is, met andere hardware en apparaten, is dit artikel weliswaar niet allesomvattend, maar het geeft in ieder geval een aantal ‘lessons learned’ weer van waaruit je hopelijk verder kunt.
STAP 1:
Maak een backup van je ‘oude’ Domoticz-systeem: Instellingen > Instellingen > Backup/Herstel > BACKUP DATABASE.
Als je bekend bent met het installeren van Raspbian: doe dat nu en ga daarna meteen verder naar stap 18.
STAP 2:
Zet een nieuw exemplaar van de laatste versie van Raspbian Buster (met desktop en extra software, waarom niet) op een lege SD-kaart. Dat kan met Balena Etcher of de nieuwe Raspberry Pi Imager. Het ‘branden’ duurt ca. 5 minuten; de verificatie daarna neemt nog eens een minuut of drie in beslag.
STAP 3:
Kopieer de twee bestanden SSH en wpa_supplicant.conf naar de root van de SD kaart, om er zeker van te zijn dat je je Raspberry Pi bereikbaar is via WiFi. SSH is een leeg bestand dat zorgt dat SSH wordt ingeschakeld, in wpa-supplicant.conf zet je je eigen WiFi-instellingen.
STAP 4:
Haal de micro-sd kaart uit je computer en stop hem in de RPi4. Sluit de voeding op de RPi4 aan en wacht tot hij is opgestart.
STAP 5:
Log in op je router en kijk in de lijst met verbonden apparaten of er een nieuw apparaat is bijgekomen met de naam ‘raspberrypi’. Noteer het IP-adres en het MAC adres.
STAP 6:
Reserveer in de DHCP-instellingen van je router dit (of een ander) IP adres voor het MAC adres dat je hebt gevonden. Zelf heb ik deze nieuwe computer ‘naast’ de oude geplaatst. Bijvoorbeeld, oud: 192.168.1.45, nieuw 192.168.1.46.
STAP 7:
Open Putty op je PC/laptop. Vul het gevonden IP-adres in. Geef er een naam aan (bijvoorbeeld RPi2020) en klik op Save. Het adres van je RPi4 is nu opgeslagen.
STAP 8:
Klik nu op open. Je krijgt een waarschuwing dat de server niet wordt herkend. Nogal wiedes, want je maakt voor het eerst contact. Dus klik op Yes (doorgaan).
STAP 9:
Log in op je nieuwe RPi met login pi, password raspberry.
STAP 10:
Voer de gebruikelijke riedel uit:
sudo apt update && sudo apt upgrade
Dit om er zeker van te zijn dat de laatste updates zijn geïnstalleerd. Het distributiebestand van Raspbian dat je hebt gedownload in stap 1 loopt namelijk altijd wel een beetje achter.
STAP 11:
Verander het wachtwoord (bijvoorbeeld in het wachtwoord van je oude RPi3B) met het commando:
passwd
STAP 12:
Open Raspi-Config:
sudo raspi-config
Geef onder Network Settings desgewenst een nieuwe hostnaam op, zoals ‘smarthome’ of ‘supercomputer’ of ‘mijnslaaf’. Leef je uit, deze naam is alleen te zien op het lokale netwerk :-).
STAP 13:
Zet bij Boot options het booten in een desktop omgeving uit. De desktop laden kost alleen maar onnodige tijd en computerbelasting en voegt voor Domoticz niks toe. Ook het vertonen van het splash screen kun je uitzetten.
STAP 14:
Kies bij Localisation options je tijdzone. Dit is belangrijk om ervoor te zorgen dat de tijd op je systeem klopt. Desgewenst kun je nog de systeemtaal en landinstellingen voor applicaties instellen. Na het klikken van Ok, werkt de RPi de taalinstellingen bij, dit duurt enkele seconden.
STAP 15:
Kies bij Interfacing options desgewenst VNC als je de remote desktop wilt kunnen bedienen. Ik laat deze uit staan.
STAP 16:
Kies bij Advanced options voor Expand Filesystem om de volledige grootte van de SD-kaart te kunnen gebruiken (dit gaat pas in bij de volgende reboot).
STAP 17:
Sluit Raspi-Config en reboot:
sudo reboot.
STAP 18:
Installeer Domoticz: curl -L https://install.domoticz.com | bash
STAP 19:
Als je ‘oude’ systeem werkte met een beta versie van Domoticz, dan moet het ‘nieuwe’ systeem dat ook doen om er zeker van te zijn dat de database compatibel is. Open in dat geval Putty, ga naar /home/pi/domoticz en installeer de laatste bèta:
sudo ./updatebeta
STAP 20:
Herstel de database die je in stap 1 hebt opgeslagen: Instellingen > Instellingen > Backup/Herstel > Database herstellen. Wacht tot het Dashboard weer verschijnt. Naar alle waarschijnlijkheid is dat nog leeg.
STAP 21:
Ga naar Putty en restart Domoticz met:
sudo service domoticz restart
Let op: start werkt niet goed, restart wel.
STAP 22:
Herlaad de pagina met Domoticz in de browser en controleer alle pagina’s. Als er iets niet klopt (ik maakte zelf mee dat de lijst met Apparaten volledig leeg leek), is het een goed idee om de cache van je browser leeg te maken en de pagina nog eens te laden. Of om Domoticz in een incognitopagina van je browser te openen om te controleren of alles dan wel klopt.
STAP 23:
Als je een extra thema had geïnstalleerd op je ‘oude’ Domoticz, zoals Aurora of Machinon, dan kun je dat nu ook opnieuw installeren. Kijk op de bijbehorende Wiki-pagina’s voor installatie-instructies.
STAP 24:
Nu is het dan eindelijk tijd om te gaan zorgen dat je hardware en apparaten weer gaan werken op je nieuwe systeem. In mijn geval gaat het om:
- De IKEA Gateway (voor de Tradfri verlichting);
- Een aantal 433MHz apparaten, zoals een weestation en diverse sensoren die via de RFXCOM met Domoticz communiceren;
- Een aantal IoT-apparaten met ESP Easy, die via WiFi met Domoticz communiceren, zoals een P1 monitor en een watermeter;
- Een aantal Zwave-apparten die via de Aeon Gen5 Zwave USB-stick met Domoticz communiceren, waaronder deurcontacten en bewegingsmelders;
- De Honeywell T5 thermostaat;
- Een koppeling met de Growatt inverter voor zonnepanelen.
Honeywell (Resideo) T6 thermostaat
Over de Honeywell (tegenwoordig Resideo) Lyric T6 thermostaat kunnen we kort zijn: de ondersteuning via API is ingebouwd in Domoticz en de instellingen hiervoor zijn met het herstellen van de backup meegekomen. Dit werkt dus zonder verdere aanpassingen ook in het nieuwe systeem.
Honeywell Resideo Lyric T6 thermostaat
RFXCOM / 433MHz apparaten
De apparaten die werken met de RFXCOM hoeven ook niet te worden aangepast. Prik de USB-stekker van dit apparaat in een willekeurige USB-poort van de RPi4B en hij wordt meteen herkend. Daarbij wordt een seriële poort aangemaakt. Kijk in de lijst Instellingen > Hardware om de juiste poort te selecteren, in mijn geval /dev/serial/by-id/usb-RFXCOM_RFXtrx433XL... etc.

RFXCOM XL
Zwave apparaten
Zwave apparaten kopiëren zou triviaal moeten zijn, want ondersteuning voor OpenZwave is standaard ingebouwd in Domoticz. Toch kostte het aansluiten aan de RPi4B nogal wat hoofdbrekens.
Ik gebruik namelijk een Aeon Gen5 Zwave USB stick. Die werkte op de RPi3B+ probleemloos, blijkt echter niet zo maar te worden herkend door de RPi4B. Dit heeft ermee te maken dat fabrikant Aeon zich niet netjes aan de USB-standaard houdt. Daardoor wordt dit USB 2.0 apparaat door de RPi4B aangezien voor een USB 3.0-apparaat. Met als gevolg dat er in de communicatie tussen de RPi4B en de Zwave stick vanalles fout gaat. Einde van het liedje is dat de RPi4B geen gegevens kan uitwisselen met de Zwave stick.
Update januari 2021: Inmiddels heeft Aeon en nieuwe versie van de stick uitgebracht: de Aeon Z-Wave stick gen 5 plus. Die kost net zo veel als de oorspronkelijke gen 5 stick. Helaas krijgen we als bezitters van een oudere stick echter geen korting.
Langs een omweg kunnen we echter toch zorgen dat de twee apparaten elkaar begrijpen, namelijk door een USB 2.0 hub tussen de RPi4B en de Zwave stick te schakelen. Ik heb daarvoor op advies van Aeon zelf een goedkope hub van Sabrent gebruikt.
USB 2.0 hub voor je Zwave stick op RPi4B
De RPi4B ziet daardoor een USB 2.0-apparaat en maakt daarvoor de seriële poort /tty/ACM0 (of ACM1 etc.) aan. Die koppel je in de Hardware tab aan de Aeon Zwave stick (zie afbeelding).

Aanvulling: ik heb gemerkt dat na een herstart van Domoticz, bijvoorbeeld bij reboot, stroomuitval of het installeren van een update, de seriële poort kan veranderen, waardoor de Zwave-stick alsnog het contact verliest. Na een reboot moet deze instelling dus handmatig worden gecontroleerd. Zeer vervelend voor een systeem dat je leven gemakkelijker hoort te maken! Volgens Aeon zelf zou dit verholpen zijn met de nieuwe gen 5 plus stick. Wil je die niet kopen (want naar trouwe klantenkorting kun je fluiten), kijk dan in de comments onderaan voor een andere oplossing: ‘symbolic links’ om ervoor te zorgen dat je Z-Wave stick steeds de juiste poort gebruikt.
Als je Zwave stick instellingen niet kloppen, zie je in de hardware lijst geen versienummer. Nadat je de juiste seriële poort hebt geselecteerd en op Aanpassen hebt geklikt, verschijnt het versienummer wel en kun je via de knop Instellingen daarachter naar de lijst met nodes. Nu is het een kwestie van een paar ‘heal’-commando’s sturen naar je Zwave-apparen en wachten…
Geduld is hier wel nodig, omdat Zwave apparaten om stroom te besparen het grootste deel van de tijd in slaapstand staan. Soms helpt het om je apparaat wakker te maken door de update-knop van het apparaat een keer kort in te drukken (de knop die je hebt gebruikt om het apparaat te koppelen). Wat was bij mij nodig om de deursensors weer te kunnen zien.
Als de lijst met nodes in bovenstaande stap niet verschijnt, kan het nodig zijn om eerst een aantal bestanden handmatig (met FileZilla, via SSH) te kopiëren van de oude naar de nieuwe RPi. Het gaat om:
- Alle ozwcp.* bestanden in de map /home/pi/domoticz
- Alle zw*.* bestanden in de map /home/pi/domoticz/Config
Sommige bestanden zijn eigendom van root of mogen vanwege beperkte toegangsrechten niet vanuit SFTP worden gekopieerd. Dat is eenvoudig te verhelpen door ze eerst aan te passen:
sudo chown pi:pi /home/pi/domoticz/ozwcp*.*
sudo chmod 755 /home/pi/domoticz/ozwcp*.*
sudo chown pi:pi /home/pi/domoticz/Config/zw*.*
sudo chmod 755 /home/pi/domoticz/Config/zw*.*
Aeon Gen5 Zwave stick
ESP8266/ESP32-achtige modules
De ESP-modules die ik in mijn systeem heb hangen zijn op verschillende manieren gekoppeld. Dit zijn sensoren e.d. die gebruik maken van een IoT-module met ingebouwde WiFi server en zijn voorzien van de IoT-driversoftware ESP Easy. Bijvoorbeeld een ESP8266, een ESP32 of een Wemos-D1 mini. In komende artikelen ga ik daar dieper op in.
Wemos D1 mini
Deze ESP-modules hebben een eigen adres in het lokale netwerk en sturen hun data rechtstreeks naar het adres van het Domoticz systeem. Het enige wat we hoeven te doen, is dus inloggen op de ESP-module en daar het oude Domoticz-adres veranderen in het nieuwe.
Waar je deze instelling vindt, is afhankelijk van de softwareversie van ESP Easy. Bij deze P1-meteropnemer staat hij bijvoorbeeld onder Config:

…en bij deze module voor het opnemen van de watermeter staat hij onder Controllers.

PHP script voor zonnepanelen
Voor het uitlezen van zonnepanelen heb ik een PHP script geïnstalleerd. In dit artikel staat gedetailleerd hoe dat in zijn werk ging. Deze wijzigingen worden in Domoticz echter niet automatische meegenomen bij het hestellen van een backup. Daarvoor moet de map pass2php handmatig worden gekopieerd. Het handigst hierbij is het, als je oude en nieuwe systeem tegelijk online zijn.
Kopieer eerst met sftp de hele map pass2php uit de map /home/pi/domoticz/scripts/ naar je laptop. Open het bestand growatt-inverter.php en maak de noodzakelijke aanpassingen. Omdat ik alleen het adres van de nieuwe RPi4 heb veranderd, de overige settings zijn overgenomen door het herstel van de database, hoef ik alleen in regel 43 het lokale adres + poortnummer van Domoticz in te vullen, bijvoorbeeld:
define('domoticz','http://192.168.0.98:8080/');
Daarna opslaan en met FileZilla de hele map kopiëren naar de nieuwe RPi Die herkent echter geen PHP als deze taal niet is geïnstalleerd. Doe dat als volgt:
sudo apt-get update && sudo apt-get upgrade sudo apt-get install php7.3 sudo apt-get install php7.3-curl sudo apt-get install php7.3-gd sudo apt-get install php7.3-imap sudo apt-get install php7.3-json sudo apt-get install php7.1-mcrypt sudo apt-get install php7.3-cli
(7.3 is nu de nieuwste PHP-versie, maar mcrypt komt niet verder dan versie 7.1).
Test of alles werkt met:
php /home/pi/domoticz/scripts/pass2php/growatt-inverter.php
En zet deze regel als er geen foutmelding komt in crontab (crontab -e):
*/5 * * * * php /home/pi/domoticz/scripts/pass2php/growatt-inverter.php
Ikea Tradfri Gateway
Voor het besturen van de IKEA Gateway (voor je Tradfri verlichting) moet de plugin opnieuw worden geïnstalleerd. Als je hem al had geïnstalleerd, herhaal dat dan nu. Wil je weten hoe de Ikea Gateway moet worden geïnstalleerd, blijf dan de toekomstige artikelen in deze blog volgen!

Geef een reactie