Domoticz 2020.2 op de Raspberry Pi
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 (cron
tab -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!
13 reacties
Puls8 · 26 mei 2020 op 17:07
Hi,
Bedankt voor je duidelijke tutorial, ik ben hier gekomen omdat ook mijn update mislukte door de verplichte migratie naar Raspbian “buster”. Ook wil ik op termijn gaan upgraden naar de raspberry 4 en las het stuk van de de Aeon stick met interesse. Heb je dat probleem dat je beschrijft ook als je deze in de USB 2.0 poort van de pi steekt? Dat is immers ook al een usb 2.0 hub.
Het toewijzen van een andere USB poort na een reboot/cold start herken ik met een andere set up. Zou dit werken om het te voorkomen: http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/
Robot One · 3 juni 2020 op 17:36
Helaas wordt mijn Aeon stick ook als ik hem in een van de USB 2.0-poorten van de RPi4B steek niet als USB 2.0 device herkend. De hun ertussen steken is zelfs dan nodig. Bedankt verder voor de tip over de ‘persistent names’ voor usb devices. Die ga ik eens testen!
Jos · 6 juni 2020 op 10:03
Vraagje, gaat het nog goed met de T6 thermostaat samen met Domoticz.
Het heeft namelijk heeft aantal maanden super goed gewerkt bij mij maar sinds kort lukt het domoticz niet om gegevens op te halen.
Nu probeer ik hem op nieuw te installeren maar in stap 8 gaat het fout https://www.domoticz.com/wiki/HoneywellDeveloperApiKey . dan geeft die
{“fault”:{“faultstring”:”Invalid client identifier {0}”,”detail”:{“errorcode”:”oauth.v2.InvalidClientIdentifier”}}}.
Heb jij een idee wat er veranderd is of wat ik fout doe?
vriendelijke groeten,
Jos
Robot One · 6 juni 2020 op 10:37
Zo ver ik weet is er niks veranderd aan de kant van Honeywell. Bij mij werkt de T6 nog steeds betrouwbaar en stabiel. In stap 8 van de installatie moet je de base64 gecodeerde token en key doorsturen. Dat is nogal een draak van een commandoregel. Weet je zeker dat je hem helemaal goed hebt gekopieerd in de commandline, zonder extra tekens, spaties, haakjes, etc.? Daar gaat vaak makkelijk iets mis, weet ik ook uit ervaring 🙂
Jos · 14 juni 2020 op 19:01
bedankt voor de info !!
Je had helemaal gelijk, ik had ergens een typ foutje gemaakt.
Erik · 23 februari 2021 op 11:52
Even een vraag van mij: die regel 8, moet toch gewoon in een explorer zoals Chrome worden ingevoerd? Ik krijg steeds een foutmelding namelijk.
Robot One · 25 februari 2021 op 11:22
Nee, niet in Chrome. Regel 8 moet je op de Raspberry Pi in de commandline plakken.
Jeroen · 9 augustus 2020 op 15:24
Ik ben een beginner en heb de raspberry 3 volledig geïnstalleerd met de domoticz. Helaas krijg ik geen verbinding met de slimme meter met de kabel die op mijn kastje is gemonteerd, zover ik kan zien is pin 1, 3 en 5 in gebruik die naar een rj12 gaat, deze stop ik in de slimme meter. Wat kan/moet ik nu selecteren om verbinding te krijgen?
Ik kan dus inloggen op ip:8080 en zie domoticz… Maar verder kom ik helaas niet.
Robot One · 10 augustus 2020 op 21:24
Dag Jeroen, je bericht geeft erg weinig details over hoe je de slimme meter op de Raspberry Pi hebt aangesloten. Met een kabel? In het artikel ‘Slimme meter draadloos uitlezen in Domoticz (https://robothuis.nl/2020/05/21/slimme-meter-draadloos-uitlezen-in-domoticz/) wordt stap voor stap wat je moet doen om de slimme meter uit te lezen. Bij welke stap gaat het mis?
Co · 25 augustus 2020 op 00:53
Ha Jeroen, toevallig stuit ik op jou website. Heel interessant. Ik heb ook flink lopen kl***n met het installeren van de update naar 2020.1 (inmiddels 2020.1). Gevolg een aantal weken data kwijt. Zonde net interessante weken voor analyses op de prestaties van mijn hybride warmtepomp. Dat moet niet weer. Inmiddels ook al weer een paar keer brokken gehad met na het stoppen van de Pi3B+ om een image te maken van het kaartje (Domoticz start daarna soms met geen mogelijkheid meer op. Heb wel backups van de database (elke nacht om 02:00) op een usb-stick maar zou niet weten hoe ik die terug zet. Net even vanaf mijn laptop een backup gemaakt van de database. Tot mijn verbazing gaat die rechtstreeks naar een map op mijn laptop. Dat is prima! Maar nu mijn vraag: Als ik op die manier een backup maak van de database, worden dan ook al mijn apparaten, platte gronden, schakelaars, groepen etc. daarin meegenomen zodat ik niet alles opnieuw hoeft aan te maken na een schone installatie van domoticz? Of moet ik dan nog andere mappen van mijn pi ergens heen kopiëren en later terugzetten?
Groet,
Co
co · 25 augustus 2020 op 01:05
Voor de duidelijkheid de backups lopen via een sudo crontab -e instructie:
0 2 * * * influxd backup -portable /mnt/USBbackup/Influxdb >>/home/pi/backupinflux.log
0 2 * * * rsync -avz /var/lib/grafana/ /mnt/USBbackup/grafana >>/home/pi/backupgrafana.log
0 2 * * * rsync -avz /home/pi/domoticz/backups /mnt/USBbackup/domoticz >>/home/pi/backupdomoticz.log
0 3 * * * rsync -avz /etc /mnt/USBbackup/etc >>/home/pi/backupetc.log
Ik vraag mij nu af of er uit die backup van domoticz wellicht nog oude gegevens te redden zijn. Ik heb bijvoorbeeld een vier weken oude image van de SD card terug moeten zetten, terwijl over die periode die ik nu kwijt ben wel backups gemaakt (gesynchroniseers???) zijn. Als ik die nu op een of andere manier op mijn laptop kan krijgen en van daar terugzetten, heb ik dan alle data weer compleet?
Robot One · 26 augustus 2020 op 12:57
Dag Co,
In de map /home/pi/domoticz/backups/ staan de automatische backups mits je de optie Instellingen > Instellingen > Systeem > Activeer Automatische Backup hebt aangevinkt. Deze backups zijn echter toegewezen aan root, niet aan pi. Dat kan het probleem zijn bij het terugvinden van de bestanden op de USB-stick. sudo chown -R pi:pi backups/* maakt ze weer bereikbaar. Ik heet trouwens geen Jeroen 🙂
Marco · 21 oktober 2020 op 12:21
Mooie tutorial die ik heb kunnen gebruiken nu ik Domoticz van de NAS verhuis naar een Pi.