Zonnig Druten - Python-script

Zonnig Druten - Python-script - zonneënergie, zonnepanelen, zonnepaneel, zonneboiler, druten, zon, zonnig. Ons huis in Druten (Gelderland) is voorzien van 12 m2 zonnepanelen en een zonneboiler van 110 liter. Op deze website vind je actuele meetgegevens en opbrengstcijfers. zonneënergie, zonnepanelen, zonnepaneel, zonneboiler, druten, zon, zonnig

Python-script voor het uitlezen van de Mastervolt Sunmaster XS2000

Het script is gebaseerd op het reverse engineeren van het Mastervolt-protocol zoals ik hier beschreven heb. Vermoedelijk werkt het ook wel voor andere Sunmasters dan de XS2000. Die heb ik echter niet dus dat kan ik niet testen. Het script werkt waarschijnlijk ook voor meerdere aangesloten Sunmasters, maar ook dat kan ik niet testen.

>> Je kunt een zipfile met het script hier downloaden. <<

Het programma bestaat uit twee bestanden: SunmasterPY.py en sm_comm.py. Het eerste bestand is het script dat je moet draaien, het tweede bevat ondersteunende functies en klassedefinities. Het programma kan draaien op ieder apparaat waar Python op kan draaien. Dat kan een Windows- of Linux-pc of -laptop zijn, maar ook een Linux-based NAS of bijvoorbeeld een Raspberry Pi.

Uitleg bij SunmasterPY.py

Het programma maakt gebruikt van een rs485-naar-tcp-omzetter zoals deze om met de omvormer te communiceren. Het aansluiten van deze omzetter op de omvormer heb ik hier beschreven. Het apparaat waarop het programma draait, is dus niet direct aangesloten op de omvormer, maar communiceert via je thuisnetwerk. Om die reden moet je onder het kopje YOUR SETTINGS HERE het ip-adres en de tcp-poort van de rs485-naar-tcp-omzetter noteren.

De volgende setting, WEBSITE, is het adres van de website waar de uitgelezen gegevens naar toe worden gestuurd. Het script slaat zelf geen gegevens op. De website heeft een relationele database waarin alles wordt opgeslagen. De database is geschikt voor gegevens van meerdere installaties. De setting SYSTEM_ID dient om dit systeem te identificeren.

Als je het script draait, worden eerst alle aangesloten omvormers opgezocht. Je hoeft niet zelf het ID van de omvormer(s) in stellen. Van de omvormer(s):

  • wordt de dagelijks opbrengst tot 30 dagen terug uitgelezen, mits dat vandaag nog niet eerder is gedaan,
  • worden alle huidige waarden zoals stroom en spanning van de panelen, het opgewekte vermogen, de temperatuur van de omvormer etc. uitgelezen,
  • wordt opbrengst van vandaag tot nu toe uitgelezen, en
  • wordt de (fout)status uitgelezen.

Dit gebeurt één keer. Het is de bedoeling om het script automatisch periodiek te laten draaien, bijvoorbeeld iedere vijf minuten. Op een Windows-pc kun je daarvoor de Taakplanner instellen, op een Linux-machientje stel je daarvoor een cronjob in.