Dag,
Vorige week zonnepanelen geïnstalleerd met een Hosola omvormer (inverter). Deze heeft een eigen wifi en maakt gebruik van een eigen website om de opbrengst live te monitoren. Maar aangezien ik betere vergelijkingen wilde maken (met andere gebruikers hier in de buurt) kwam ik uit op de website
http://pvoutput.org waar je dat beter kan doen.
Alleen, ik kon niet een eenvoudige manier vinden om dat uploaden van de data logging vanuit een Hosola (en vergelijkbare Omnik) simpel geautomatiseerd uit te voeren. Kwam wel een paar github tools tegen in php en python maar niet direct de koppeling van een synology nas. Dus hieronder een kort stappenplan om dit zo simpel mogelijk voor elkaar te krijgen zodat je nas 24/7 de data overzet naar pvoutput:
1. Zorg dat de zon schijnt, anders doet de inverter het niet. Zorg ervoor dat je Hosola of Omnik inverter webdata lokaal benaderbaar is via je webbrowser (in mijn geval via
http://192.168.0.29/js/status.js) Wellicht moet je een vast ip adres voor de inverter instellen als deze niet constant is.
2. Zorg voor een account op pvoutput.org. Zorg ervoor dat je een api key hebt (kan je gratis genereren in je pvoutput account settings). Enable api gebruik. Zorg dat je je eigen pvoutput system id (sid) hebt genoteerd.
3. ga in de Synology nas naar de Taakplanner. Maak een nieuwe user defined taak aan, bv met de naam 'update live data to pvoutput'. In de planning instellen zodat de taak elke 5 minuten wordt uitgevoerd. Vul dan het uit te voeren script in, zie volgende punt.
4. ik gebruik de volgende code om de data van de inverter op te halen en naar de pvoutput site te sturen (vul zelf de juiste user/pass in voor de inverter, en het goede lokale ip-adres en de juiste sid en key van de pvoutput site:
today=`date '+%Y%m%d'`
minute=`date '+%H:%M'`
# Zet output op de temp directory
cd /tmp
mkdir pvoutput
cd pvoutput
# get most recent webdata from Hosola / Omnik inverter
content=$(wget --user JOUWINVERTERUSERNAAM --password JOUWINVERTERPASSWORD http://192.168.0.29/js/status.js -q -O - | sed -e 's/;/\n/g' | grep -e "^var" | grep -i webdata | sed -e 's/var webData=/,/g' | sed -e 's/"//g')
# get current power value, put all available values in array
set -- "$content"
IFS=","; declare -a Array=($*)
# post power value to pvoutput site, please change with correct sid and key from pvoutput.org account
postdatastring="sid=460549&key=915b9e4a930c2a1ba47aef26977c777d3f8822e&v2=${Array[6]}&t=$minute&d=$today"
wget http://pvoutput.org/service/r2/addstatus.jsp?$postdatastring
# wis alles weer
cd ..
rm -rf pvoutput
Als het goed is wordt op je pvoutput account nu elke 5 minuten een opbrengst datapunt toegevoegd.
[24-03-2020 Mod edit: Het script zoals oorspronkelijk gepubliceerd laat de nas vastlopen na een paar jaar gebruik omdat de systeempartitie volgeschreven wordt. Ik heb nu twee stukjes code toegevoegd (Dat met Nederlandstalige comment) om dit probleem te voorlomen. Lees echter heel dit topic door voordat je het script gebruikt, want verderop staan nog veel meer zinvolle uitbreidingen van het script.]