Domoticz 2020.2 op de Raspberry Pi

Gepubliceerd door Robot One op

Toetsenbord met updateknop

Update 25 april 2020

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)

De Raspberry Pi 4B is nog net iets krachtiger dan de 3B+. Deze is voorzien van een quad core 64-bit processor (1.5GHz), met 4Gb werkgeheugen (2Gb en 1Gb ook verkrijgbaar), 2.4GHz en 5GHz WiFi, Bluetooth 5. Aansluitingen: 2x micro-HDMI, 1x audio, 4x USB, 1x Gigabit Ethernetpoort en 1x USB-C voor de voeding. Plus: connectoren voor een camera-module en hardware-uitbreidingen (GPIO).

Koop op Amazon Koop op Bol.com

Raspberry Pi 4B officiële netvoeding

De Raspberry Pi 4B vereist een krachtige voeding van goede kwaliteit. Een standaard goedkope USB-C telefoonlader lijkt voldoende, maar in de praktijk treden regelmatig storingen op. De gevolgen zijn onvoorspelbaar. Niet wat je wilt in een smart home systeem! Investeer dus in een officiële Raspberry Pi voeding, zo voorkom je veel problemen!

Koop op Amazon Koop op Bol.com

Raspberry Pi 4B Starter Set

Met de complete starterset kun je meteen aan de slag met de Raspberry Pi4B en Domoticz. Inclusief de officiële 5.1V voeding, dus geen goedkope USB-lader!

Koop op Bol.com

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 T6 thermostaat

Over de Honeywell 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 Lyric T6 thermostaat

Vervang je oude handbediende thermostaat door dit slimme type. Sluit hem gewoon aan op de bestaande bedrading en hang een ‘Opentherm’ kastje (meegeleverd) aan de CV-ketel. De T6 is te bedienen vanuit zij eigen app maar ook via een API vanuit Domoticz.

Koop op Amazon.nl Koop op Bol.com

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.

Screenshot Hardware

RFXCOM XL

De RFXCOM bevat niet alleen een krachtige 433MHz transceiver (zender en ontvanger) met een USB-interface, maar vertaalt ook vele tientallen protocollen van uiteenlopende sensoren, besturingen, weerstations, etc. Bijna maandelijks komen daar nieuwe apparaten bij, via firmware updates. De RFXCOM werkt naadloos samen met de meest belangrijkste home automation programma’s, waaronder Domoticz.

Koop op Amazon Koop op Bol.com

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.

Volgens Aeon zelf is dit niet zo maar te verhelpen met een firmware update. Wel zal er een te zijner tijd een nieuwe versie van de stick verschijnen, maar daar hebben we nu niks aan.

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

Deze eenvoudige en goedkope USB 2.0 hub zorgt ervoor dat je Raspberry Pi 4 de Aeon gen5 Zwave stick weer herkent. Handig is dat deze hub niet ver uitsteekt en gedraaid kan worden. Geeft een stabielere verbinding dan met een snoertje!

Koop op Amazon

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).

Schermafbeelding Zwave hardware

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! Minpunten voor Aeon dus! Hopelijk komt er binnenkort een nieuwe versie en de mogelijkheid voor bezitters van de oude stick een aantrekkelijke aanbieding om deze te vervangen!

Als je Zwave stick instellingen niet kloppen, die je in deze 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

De Aeon Gen5 Zwave stick biedt een goede en betrouwbare manier om een Zwave (mesh)netwerk op te bouwen vanaf je Raspberry Pi. Met een USB-hub ervoor werkt hij ook probleemloos samen met de RPi4B.

Koop op Amazon Koop op Bol.com

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

Een complete microcontroller met WiFi server ter grootte van een postzegel, speciaal voor IoT, met een analoge en meerdere digitale in- en uitgangen, eenvoudig te programmeren dankzij ingebouwde micro-USB poort. Tip: vergelijk de prijzen hieronder!

Koop op Amazon Koop op Banggood Koop op Bol.com

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!


2 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!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *