Slim stopcontact, dat aan schakelt bij zonne-energie.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
P1 monitor geinstalleerd op Raspberry Zero, P1 kabeltje gekocht, alles werkte onmiddelijk, nadat ik de baudrate goed hard gezet. Mooi, wat die P1 monitor kan laten zien!

Mijn volgende uitdaging: kan je een SONOFF S20 "smart" stopcontact, intern voorzien van een ESP8266 chip, die je met enige moeite zelf kunt programmeren, zo ver krijgen dat hij "aan" schakelt op het moment dat er zonne energie beschikbaar is?

Het programmeren van de SONOFF lukt mij, het lezen van een "info" pagina van de P1 monitor ook.
Op deze info pagina van de P1-monitor zijn de meterstanden te vinden, en ook wat er op een willekeurig moment aan energie wordt terug geleverd naar het openbare net.
De SONOFF S20 zou je zo slim moeten kunnen maken dat hij inschakelt bij een bepaald teruggeleverd vermogen, en uitschakelt wanneer er b.v. helemaal niets meer wordt teruggeleverd. Afijn, dat is dan voor later.
Het probleem is dat de internetpagina (de file dus die je met de URL ophaalt bij de P1 monitor), deze meterstanden niet onmiddelijk laat zien. Daarvoor zou de SONOFF iets extra's moeten doen. De file die de SONOFF binnenkrijgt is een soort container, de SONOFF moet daarna zelf iets doen om de echte meterstanden binnen die webpagina doorgegeven te krijgen. Eigenlijk moet de SONOFF een stukje PHP doen als ik het goed begrijp. Hier houdt het voor mij op. Een alternatief zou zijn de Raspberry een speciale HTML pagina te maken die de ruwe data in één keer kan doorgeven.

Maar eigenlijk is er nog iets anders, je zou de SONOFF nog slimmer kunnen maken als hij ook informatie zou kunnen ophalen bij de software van de zonnepanelen.
De productie van de zonnepanelen is af te lezen van de "Envoy" box in de meterkast, of bij de server die op afstand de productie bijhoudt, het zogenaamde "Enlighten portal". Maar ook hier het zelfde probleem: als je de file d.m.v. de URL ophaalt, bevat deze nog niet de juiste getallen.

Vraag dus: hoe krijg je dit voor elkaar, wat moet SONOFF doen om de getallen (dynamische data) op te halen na het binnenhalen van de webpagina?

Acties:
  • 0 Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 26-07 21:40
Verwijderd schreef op maandag 25 november 2019 @ 17:18:

Vraag dus: hoe krijg je dit voor elkaar, wat moet SONOFF doen om de getallen (dynamische data) op te halen na het binnenhalen van de webpagina?
Ik zou de sonoff aan/uit schakelen vanaf de raspberry. Dus daar wat maken die bijv met curl de sonoff (met daarop bijv espeasy) aan/uit zet.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het blijkt verrassend simpel!

Als je in je webbrowser de info pagina van de P1-monitor bekijkt, en je doet "view page source", dan kom je tegen:

function readTextMeterTelegram(){
$('#slimmemeter').load( "/txt/txt-meter.php", function( response, status, xhr ) {
if ( status == "error" ) {
$("#slimmemeter").html('Slimme meter data niet beschikbaar.');
}
});

M.a.w. als je inplaats van "<IP-adress-van-je-P1-monitor>/info.php" invoert "<IP-adress-van-je-P1-monitor>/txt/txt-meter.php" dan krijg je het "MeterTelegram" (de dynamische data) te zien:

/ISK5\2M550T-1012

1-3:0.2.8(50)
....
0-0:96.14.0(0001)
1-0:1.7.0(01.241*kW) <----- Het terug geleverd vermogen. Voilà!
1-0:2.7.0(00.000*kW)
.....


ESP8266 code:

// Preconditie: Wifi connection is gemaakt.
String RemoteIpAddress = "http://192.168.1.15"; // Het IP adres van de P1-monitor.
String Url = RemoteIpAddress + "//txt//txt-meter.php";
Serial.print("Getting data from ");
Serial.println(Url);
if (WiFi.status() == WL_CONNECTED) //Check WiFi connection status
{
HTTPClient http; //Declare an object of class HTTPClient
int httpCode = -1;
http.begin(Url); //Specify request destination
delay(100);
httpCode = http.GET(); //Send the request
Serial.printf("%s, httpCode: %d\n\n",Url.c_str(), httpCode);
if (httpCode == HTTP_CODE_OK)
{
String payload = http.getString(); //Get the request-response in payload
payload.replace("<br>","\n");
Serial.println(payload);
// Telegram in string "payload"!
// Nu zoeken in "payload" op de lijn met tekst "1-0:1.7.0" en vindt het teruggeleverd vermogen.
// Voor SONOFF bijv.: is teruggeleverd vermogen > 500 Watt, dan schakel aan, is het kleiner dan 10 Watt, schakel uit.
// 500 Watt? Hangt er natuurlijk vanaf hoeveel vermogen wordt afgenomen via het SONOFF stopcontact.

Succes!

Acties:
  • 0 Henk 'm!

  • Banthum76
  • Registratie: Maart 2021
  • Laatst online: 05-11-2024
Beste Ed Duck.

Met mijn P1 versie van 15nov 2022 is de parameter voor teruggave een andere

/KMP5 KA6U001598xxxxxx

0-0:96.1.1(204B4136553030313539383630xxxxxx)
1-0:1.8.1(17985.340*kWh)
1-0:1.8.2(18949.441*kWh)
1-0:2.8.1(00010.226*kWh)
1-0:2.8.2(00024.698*kWh)
0-0:96.14.0(0002)
1-0:1.7.0(0000.25*kW)
1-0:2.7.0(0000.00*kW)
0-0:96.13.1()
0-0:96.13.0()
0-1:24.1.0(3)
0-1:96.1.0(323831303135343130303436xxxxxxxxxx)
0-1:24.3.0(230119210000)(00)(60)(1)(0-1:24.2.1)(m3)
(18284.378)
!
namelijk 1-0:2.7.0 ( 1-0:1,17.0 is het verbruik)

Ik ben benieuwd hoe je de koppeling naar de SONOFF hebt gemaakt ( de S20 is trouwens niet meer leverbaar.

[ Voor 3% gewijzigd door Banthum76 op 19-01-2023 21:54 ]


Acties:
  • +1 Henk 'm!

  • LinuxMan
  • Registratie: September 2000
  • Laatst online: 15-09 20:52
Ik laat mijn raspberry in de meterkast MQTT berichten versturen met alle verschillende metingen uit de P1 poort.

Ik heb zelf een firmware voor de sonoffs geschreven waar ik ze op een MQTT bericht kan abonneren, en aan of uit kan laten schakelen als de waarde hoger of lager dan een bepaalde threshold komt.

Het is heel flexibel op deze manier, want ik kan de sonoff ook de stroom laten schakelen op een MQTT bericht dat de temperatuur in de garage onder nul komt. MQTT is heel makkelijk thuis te draaien, zie het mosquitto Linux package.

Acties:
  • 0 Henk 'm!

  • Banthum76
  • Registratie: Maart 2021
  • Laatst online: 05-11-2024
LinuxMan schreef op donderdag 19 januari 2023 @ 22:16:
Ik laat mijn raspberry in de meterkast MQTT berichten versturen met alle verschillende metingen uit de P1 poort.

Ik heb zelf een firmware voor de sonoffs geschreven waar ik ze op een MQTT bericht kan abonneren, en aan of uit kan laten schakelen als de waarde hoger of lager dan een bepaalde threshold komt.

Het is heel flexibel op deze manier, want ik kan de sonoff ook de stroom laten schakelen op een MQTT bericht dat de temperatuur in de garage onder nul komt. MQTT is heel makkelijk thuis te draaien, zie het mosquitto Linux package.
Hallo LinuxMan, bedankt voor je reactie. ;) Mijn ervaringen met MQTT is zero. Maar een scriptje wijzigen of uploaden lukt nog wel, Misschien heb je een iets meer plug en play advies. B.v.d. _/-\o_

Acties:
  • +1 Henk 'm!

  • LinuxMan
  • Registratie: September 2000
  • Laatst online: 15-09 20:52
Hoe je de mqtt bus installeert:
https://www.huizebruin.nl...eren-op-een-raspberry-pi/

Hoe je mqtt vanuit een python script benadert:
https://www.emqx.com/en/blog/how-to-use-mqtt-in-python

Een voorbeeld hoe je MQTT gebruikt vanuit arduino kun je hier vinden: https://github.com/VagelisAn/MQTT/blob/main/MQTT.ino (aangenomen dat je de sonoff in arduino programmeert)

Acties:
  • 0 Henk 'm!

  • maryna
  • Registratie: November 2023
  • Laatst online: 21-11-2023
Hoe je mqtt vanuit een python script benadert:
als je meer wilt weten over MQTT in Python, lees dan dit artikel: https://cedalo.com/blog/configuring-paho-mqtt-python-client-with-examples/
Pagina: 1