Aan Daan de Man
Kennelijk ben ik dan niet duidelijk genoeg geweest.
Het komt op het volgende neer.
Ik wil 2 elektrische verwarmingselementen van 800 watt elk (een elektra boiler) aansturen met een Raspberry.
Dat aan sturen moet gebeuren op basis van opgewekte energie met zonnepanelen.
Om te bepalen of er opgewekte energie is gebruik ik een Youless energie meter die is aangesloten op een slimme meter en een KWh meter die de energie die de zonnepanelen op weken meet.
De Youless berekend uit de aangeboden gegevens (slimme meter en de KWh meter van de zonnepanelen) onder andere de hoeveelheid energie die uit het net word onttrokken of juist wordt terug geleverd (Youless noemt dat PWR)
Is die waarde positief dan onttrek je energie uit het net, is de waarde negatief dan lever je stroom aan het net.
Om er voor te zorgen dat de boiler alleen in bedrijf komt als er voldoende energie wordt opgewekt ( de PWR waarde moet meer dan -800 zijn b.v. -825) heb ik in Python een stukje code geschreven die de waarde PWR kan vergelijken met 800 (het vermogen van een boiler element), is de waarde PWR -825 dan wordt een element ingeschakeld, de PWR waarde zal dan zakken tot -25 omdat er 800 Watt van de opgewekte energie wordt gebruikt voor de boiler.
Wordt er veel energie opgewekt en terug geleverd, de PWR waarde is b.v. -1700 dan zal na inschakeling van 1 element (-1700 - 800) nog 900 watt over zijn (PWR is dan -900).
Het Python programma controleert na inschakelen van het eerst element opnieuw de PWR waarde en als er nog steeds voldoende energie wordt opgewekt (in het genoemde rekenvoorbeeld -900) dan zal het 2e element worden ingeschakeld.
De genoemde controle zit in een loop en wordt elke 2 of 3 minuten herhaald zodat er doorlopend controle is op de opgewekte energie, zo gauw de PWR waarde positief dreigt te worden wordt een element uitgeschakeld en eventueel ook het 2e.
tot zover heb ik alles klaar en het lijkt te werken alleen voer ik nu nog steeds een PWR waarde met de hand in, het is me nog niet gelukt om die waarde uit te Youless in te lezen.
Bijkomend probleem is dat mijn Youless met een wachtwoord werkt, voor dat de PWR waarde kan worden ingelezen moet eerst het wachtwoord naar de Youless worden gestuurd.
Ik heb wel al ergens een stukje code gekregen dat van uit de commande promt van de Raspberry werkt, zie hieronder.
Ook ben ik erachter dat de Youless met een cookie werkt.
Bij de code hieronder kan eenmaal het wachtwoord verstuurd worden, de cookie wordt dan in een tekst file opgeslagen en kan de hele dag gebruikt worden.
Om middernacht wordt hij gewist en moet er opnieuw een wachtwoord verstuurd worden.
curl -s -c cookies.txt 192.168.1.xx/L?w=hetwachtwoord (hetwachtwoord = het wacht woord van de Youless)
curl -s -b cookies.txt 192.168.1.xx/a?f=j (het IP adres moet worden aangepast aan het IP adres van de Youless)
het antwoord van de Youless is dan een Json string.
{"cnt":" 1421,626","pwr":162,"lvl":0,"dev":"","det":"","con":"","sts":"","cs0":" 7006,191","ps0":56,"raw":0d
Hier is de PWR waarde 162, er wordt dus 162 Watt uit het net gebruikt.
Wat me tot nu toe niet gelukt is, is de code die hierboven staat en dus van uit de commande promt wordt ingevoerd zo aan te passen dat hij ook in het Python programma werkt.
De reden is dat ik onvoldoende kennis van Python heb, als ik de Json string in het Python programma kan inlezen en in een variabele (b.v. PWR) dan kan ik me met de rest redden want dat is al voor 99% klaar.
Groet, Gerrit