Eindelijk echte data over de elektriciteit die je opwekt
Update 14 februari 2023
Heb je zonnepanelen? Dan is de kans groot dat je ook al een slimme meter in je meterkast hebt. Eén groot nadeel heeft die wel: hij laat niet zien hoeveel je zonnepanelen precies opwekken.
Het is vreemd dat slimme meters wel laten zien hoeveel stroom er in totaal is gebruikt en geleverd, maar niet de actuele stand van zaken tonen. Als je op een bepaald moment meer zonnestroom levert dan gebruikt, staat de waarde van Gebruik op 0 en de waarde van Levering op een positief getal. Als je meer energie gebruikt dan levert, staat de waarde van Levering op 0 en is de waarde van Gebruik een positief getal. Met andere woorden: de meter laat alleen het verschil tussen gebruik en levering zien en splitst dat uit in twee waardes die allebei niet negatief kunnen worden.
Onduidelijk is waarom ooit voor deze merkwaardige opzet is gekozen, want op deze manier kun je nooit realtime zien hoeveel je zonnepanelen daadwerkelijk leveren, of hoeveel energie je nou werkelijk gebruikt in huis, los van waar de stroom vandaan komt.
Om de opbrengst van je zonnepanelen te kunnen meten in Domoticz, moeten we de gegevens van de inverter rechtstreeks in Domoticz inlezen. Gelukkig bieden de meeste fabrikanten van inverters deze mogelijkheid aan via een API (web-interface). En die is in Domoticz met een scriptje goed in te lezen. Voor vier van de meest populaire invertermerken heeft programmeur Sándor Incze het werk al voor ons gedaan: Goodwe, SMA (SunnyPortal), Growatt en Omnik. Passende scripts zijn allemaal te downloaden op Github (een website voor open source code).
Proef op de som: Growatt uitlezen
Zelf heb ik een Growatt inverter, type 4200 en daarmee heb ik het script getest. Wat je hiervoor allereerst nodig hebt, is een inlogcode voor de Shinephone app of website van Growatt. Sommige leveranciers of verhuurders van zonnepanelen bieden je een eigen app aan als laag over de Growatt server heen, waarbij je dus andere inloggegevens krijgt. In dat geval moet je echt even vragen naar de juiste gegevens; het gaat om jouw data en die mag niet geheim worden gehouden.
Vervolgens download je het script growatt-inverter.php. Let op dat je de laatste versie hebt, van na 6 juni 2022. In de oudere versie werd twee keer verwezen naar een bestand op de API server van Growatt, genaamd newLoginAPI.do (regel 63, 64). In de nieuwe versie is dit vervangen door newTwoLoginAPI.do (regel 65,66). Open het bestand in een een tekstverwerker of code editor. Je zult zien dat in het commentaar al instructies staan om dit te installeren. Zo moet er in Domoticz zelf iets worden aangepast, maar ook rechtstreeks op de Raspberry Pi. Bovendien moet een aantal gegevens in het script zelf worden ingevuld. Omdat er wel wat valkuilen zijn (weet ik uit ervaring), lopen we de instructies een voor een door.
Stap 1: aanpassingen in Domoticz
Als eerste moeten we een ‘meter’ aanmaken in Domoticz: een zogeheten virtueel apparaat waarop je kunt zien hoeveel stroom er wordt geleverd. Virtueel betekent in dit geval dat het apparaat zijn data via software krijgt en niet rechtstreeks is gekoppeld aan hardware die aan je Domoticz-server hangt. Om zo’n apparaat te kunnen toewijzen, moeten we in Domoticz eerst de hardware daarvoor ‘faken’:

- Ga in Domoticz naar
Instellingen > Hardware. Je ziet het bovenstaande veld. Vul onderaan bij Naam: een willekeurige maar duidelijke naam in. Ik noem de mijne VIRTUAL. Kies bij Type: voor Dummy (Does nothing, use for virtual switches only). Klik op toevoegen. Je hebt nu de mogelijkheid om vanuit de hardware-lijst een virtuele sensor aan te maken.

- We maken nu het virtuele apparaat aan. Klik in de hardware-lijst op Maak virtuele sensoren. Vul in de popup de naam in, bijvoorbeeld Zonnepanelen. Kies als type Elektra (Actueel + Teller) en klik op OK.

- Ga naar
Instellingen > Apparatenen bekijk welk identificatienummer (Idx) je apparaat heeft gekregen. In dit voorbeeld is het 290. Noteer dit.

- Ga nu naar
Instellingen > Instellingenen scroll naar halverwege de pagina tot het vakje Lokale netwerken (geen gebruikersnaam/wachtwoord). Hier moet je het eerste gedeelte van je lokale netwerk-adres opgeven. Zit Domoticz bijvoorbeeld op 192.168.0.99, dan vul je in het veld Netwerken: 192.168.0.* in. Dit betekent dat verbindingen op je lokale netwerk met Domoticz kunnen communiceren zonder een login en wachtwoord op te geven.
Stap 2: aanpassingen in het PHP-script
Open het script growatt-inverter.php met een tekst-editor (kladblok, Notepad++, nano, Sublime, het maakt niet uit als het maar geen Word is, want we willen geen opmaakcodes in de tekst).
In regel 43 vul je het lokale adres + poortnummer van Domoticz in, bijvoorbeeld:
define('domoticz','http://192.168.0.99:8080/');
In regel 49 vul je je inlognaam van Growatt in. Bijvoorbeeld M. Naam:
define('USERNAME', 'M. Naam');
Let op het gebruik van hoofletters en spaties! Als je inlognaam M. Naam is (met spatie ertussen), werkt het niet als je hier M.Naam (zonder spatie) invult, heb ik door schade en schande ondervonden.
In regel 50 vul je je Growatt password in:
define('PASSWORD', 'mijnPassword2022');
In regel 69 vul je het devicenummer (Idx) van Domoticz in die je in Stap 1 hebt genoteerd
define('DOMOTICZDEVICE', '290');
Sla het bestand op en sluit de editor.
Stap 3: aanpassingen op je Raspberry Pi
Log in op de terminal van je Raspberry Pi: rechtstreeks als je er een monitor aan hebt hangen, of op afstand, met een Telnet-client zoals PuTTY.
Update voor de zekerheid de software naar de laatste versie:
sudo apt-get update && sudo apt-get upgrade
Installeer de nieuwste versie van PHP 7 voor het geval die er nog niet op staat:
sudo apt-get install php7.3 php7.3-curl php7.3-gd php7.3-imap php7.3-json php7.1-mcrypt php7.3- php7.3-cli
Het valt op dat in deze lijst overal versie 7.3 wordt gebruikt, behalve bij php7.1-mcrypt. Dit onderdeel bevat cryptografie-routines en wordt niet meer verder ontwikkeld. De laatste versie is dus 7.1.
Nog een opmerking: mocht bovenstaande regel niet werken, dan komt dat waarschijnlijk doordat de installer tussendoor wil vragen om een Ja/Nee reactie en dus niet alles ineens kan installeren. Installeer de afzonderlijke onderdelen in dit geval een voor een:
sudo apt-get install php7.3 sudo apt-get install php7.3-curl sudo apt-get install php7.3-gd …etc...
Ga naar de map scripts en maak daar een nieuwe map aan:
cd /home/pi/domoticz/scripts mkdir pass2php cd pass2php
Kopieer het in Stap 2 aangepaste bestand naar deze map. Dat kan simpel met FTP.
Test nu of het bestand geen fouten bevat:
php /home/pi/domoticz/scripts/pass2php/growatt-inverter.php
In Domoticz kun je in de log kijken naar wat er is uitgevoerd. Als alles goed is gegaan, zie je zoiets als onderstaande regels:
2020-01-13 11:25:02.670 Status: --->> Cookie File: /home/pi/domoticz/scripts/pass2php/growatt.cookie exists!
2020-01-13 11:25:02.672 Status: --->> Cookie File: /home/pi/domoticz/scripts/pass2php/growatt.cookie is writable!
2020-01-13 11:25:02.784 Status: --->> Growatt Inverter: 1682.6 for domoticz: 1682.6;1400
Nu gaan we ervoor zorgen dat dit script periodiek wordt herhaald. Dat kan met de Linux-app ‘cron’. Deze gebruikt een tabel met instructies die op bepaalde tijdstippen of om de zoveel tijd moeten worden uitgevoerd. We maken zo’n lijst aan (of kunnen hem aanpassen) met het commando:
sudo crontab -e
De eerste keer vraagt crontab welke editor je bij voorkeur wilt gebruiken. Default is 2 (nano).
Voeg in het geopende bestand de hele volgende regel toe:
*/5 * * * * php /home/pi/domoticz/scripts/pass2php/growatt-inverter.php
Wat hier staat is dat het genoemde script (van de ingelogde gebruiker) iedere 5 minuten moet worden uitgevoerd. Vijf minuten is een goed compromis. Vaker meten kan, maar zorgt voor een hogere serverbelasting. Schrijf het bestand weg en sluit de editor.
Vanaf nu moet je in Domoticz om de vijf minuten updates kunnen zien van je nieuwe apparaat Zonnepanelen.
Wellicht ten overvloede deze laatste tip: test dit script overdag, want ’s nachts ‘slaapt’ je inverter!
Meer weten over het meten van gas, water en elektriciteit? In volgende artikelen zal ik diepe ingaan op het draadloos uitlezen van de slimme meter en de watermeter.
€ 100 bonus bij Zelfstroom

Geef een reactie