Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
Moderator: Co-Administratoren
- kopy
- Beiträge: 121
- Registriert: 28.12.2015, 14:35
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 8 Mal
Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
Habe es inzwischen selber hinbekommen.
Ein tolles Skript mit guten Erklärungen dabei.....................
Ein tolles Skript mit guten Erklärungen dabei.....................
Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
ich habe einen elektronischen Stromzähler. Wie finde ich heraus ob dieser kompatibel ist? wie kommt man an den benötigen 4 stelligen code?
-
- Beiträge: 6741
- Registriert: 22.05.2012, 08:40
- System: CCU
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 484 Mal
Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
Der Hersteller führt eine Kompatibilitätsliste auf der Hersteller Seite.
- audi2010
- Beiträge: 223
- Registriert: 18.05.2015, 09:36
- Wohnort: Friedberg(Hessen)
- Hat sich bedankt: 172 Mal
- Danksagung erhalten: 11 Mal
Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
Ich habe meinen vom Zählerbetreiber( bei mir = Stromlieferant) beim Zählertausch erhalten.
Viele Grüße
Rainer
Rainer
-
- Beiträge: 34
- Registriert: 11.04.2022, 12:40
- System: CCU
Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
Hallo zusammen,
hatte das glaube ich im falsche Tread geschrieben, deswegen hier nochmal:
Hallo zusammen,
habe mir jetzt seit Tagen die Posts hier durchgelesen und werde nicht wirklich draus schlau. Das Los eines Anfängers.
Ich würde gerne das machen was der Spezialist namens Hattermann so netterweise hier reingeschrieben hat.
Ziel: Daten des Powerfox auslesen um immer dann wenn ich mit meiner PV Strom ins Netz einspeise, diesen Strom lieber selbst zu verbrauchen. Daher brauche ich sozusagen vielleicht alle Minute den aktuellen Wert von Powerfox.
Ich bin mal so dreist und stelle einfach mal meine Frage:
1. was ist besser? Das Script das hier eingestellt in in die CUXd einstellen und wenn dann wie ? Die Cuxd habe ich geladen.
1.a. oder bessser in der Webui direkt das Script reinschreiben?
Ich habe hier mal das Script abgeändert, so wie ich es verstanden habe, die Zeilen mit Ausrufezeichen weglassen ( korrekt ?) . das in mehren Fragezeiche sind meine Fragen dazu.
Sorry, aber mir ist nicht ganz klar, welche Zeilen ich in das Script schreiben sollte und welche nicht. Am Ende wirft ja das Programm mit dem Script
minestens zwei Werte aus. Bestenfalls die Einspeisemenge und den aktuellen Stromverbrauch jeweils in Watt. Damit kann ich dann die ersten beiden hier genannten SV bauen, mti denen ich dann ein entsprechendes Programm bauen kann. Das wäre super.
Ach so: Die API Abfrage funktioniert. CUXd habe ich auch, weiß aber nicht ob ich die dafür brauche...
Könnt Ihr mir helfen ?
BG Frank
CODE: ALLES AUSWÄHLEN
********************************************************************************************************
!-------- Hier die eigenen Daten Eintragen------------------
string username = "Frank.jacobs@gmail.com";
string password = "Bauernstrasse39";
string poweropti_serial = "1234567890ab";
!-----------------------------------------------------------
string usernameEnc = Frank.jacobs@gmail.com();
string passwordEnc = Bauernstrasse39();
string JSON_All;
string stemp;
integer StrLen;
integer pos;
real AktuelleLeistung;
real VerbrauchSumme;
var v_Leistung;
var v_Summe;
! diese Systemvariablen als Fließkomma anlegen!
string strLeistung = "StromAktLeistung"; ????????so anlegen- heisst das Fließkomma????????
string strSumme = "StromSummeVerbrauch";
???????????????Wofür ist das noch ??????????????
! Username, Password ausgeben um Strings selbst zu basteln
! WriteLine(usernameEnc);
! WriteLine(passwordEnc);
! Abfrage der Serial im Browser:
! https://%usernameEnc%:%passwordEnc%@bac ... ll/devices
string cmd = "curl -X GET \"https://" + Frank.jacobs@gmail.comEnc + ":" + Bauernstrasse.39Enc + "@backend.powerfox.energy/api/2.0/my/" + poweropti_serial + "/current\"";
????????????????????Brauche ich dass folgende wenn es nicht über die CUxD laufen soll? Oder ist es über über die CuxD einfacher und besser ??????????
!Daten der Geräte abrufen
dom.GetObject("CUxD.CUX2801002:1.CMD_SETS").State(cmd);
dom.GetObject("CUxD.CUX2801002:1.CMD_QUERY_RET").State(1);
JSON_All = dom.GetObject("CUxD.CUX2801002:1.CMD_RETS").State().ToLatin();
StrLen = JSON_All.Length();
! WriteLine( JSON_All ); ?????????????????????????was hier eintragen ???????????????????????????
! Leistung Lesen
pos = JSON_All.Find( "\"Watt\":" ) + 7;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
! WriteLine( stemp ); ??????????????????????????was hier eintragen?????????????????????????????
AktuelleLeistung = stemp.ToFloat();
! WriteLine( AktuelleLeistung ); ????????????????????????????was hier eintragen?????????????????????????????
! Verbrauch lesen
pos = JSON_All.Find( "\"A_Plus\":" ) + 9;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
! WriteLine( stemp ); ??????????????????????????was hier eintragen?????????????????????????????
VerbrauchSumme = stemp.ToFloat();
! WriteLine( VerbrauchSumme ); ??????????????????????????was hier eintragen?????????????????????????????
?????????????????????????????Diese vier Variablen müsste ich dann anlegen in der Webui? ?????????????????????????? und was ist mit den beiden SV von oben?
! Variablen setzen
v_Leistung = dom.GetObject( strLeistung );
v_Leistung.State( AktuelleLeistung );
v_Summe = dom.GetObject( strSumme );
v_Summe.State( VerbrauchSumme );
Zuletzt geändert von uwe111 am 11.04.2022, 15:35, insgesamt 1-mal geändert.
Grund: CODE in CODE Tags
hatte das glaube ich im falsche Tread geschrieben, deswegen hier nochmal:
Hallo zusammen,
habe mir jetzt seit Tagen die Posts hier durchgelesen und werde nicht wirklich draus schlau. Das Los eines Anfängers.
Ich würde gerne das machen was der Spezialist namens Hattermann so netterweise hier reingeschrieben hat.
Ziel: Daten des Powerfox auslesen um immer dann wenn ich mit meiner PV Strom ins Netz einspeise, diesen Strom lieber selbst zu verbrauchen. Daher brauche ich sozusagen vielleicht alle Minute den aktuellen Wert von Powerfox.
Ich bin mal so dreist und stelle einfach mal meine Frage:
1. was ist besser? Das Script das hier eingestellt in in die CUXd einstellen und wenn dann wie ? Die Cuxd habe ich geladen.
1.a. oder bessser in der Webui direkt das Script reinschreiben?
Ich habe hier mal das Script abgeändert, so wie ich es verstanden habe, die Zeilen mit Ausrufezeichen weglassen ( korrekt ?) . das in mehren Fragezeiche sind meine Fragen dazu.
Sorry, aber mir ist nicht ganz klar, welche Zeilen ich in das Script schreiben sollte und welche nicht. Am Ende wirft ja das Programm mit dem Script
minestens zwei Werte aus. Bestenfalls die Einspeisemenge und den aktuellen Stromverbrauch jeweils in Watt. Damit kann ich dann die ersten beiden hier genannten SV bauen, mti denen ich dann ein entsprechendes Programm bauen kann. Das wäre super.
Ach so: Die API Abfrage funktioniert. CUXd habe ich auch, weiß aber nicht ob ich die dafür brauche...
Könnt Ihr mir helfen ?
BG Frank
CODE: ALLES AUSWÄHLEN
********************************************************************************************************
!-------- Hier die eigenen Daten Eintragen------------------
string username = "Frank.jacobs@gmail.com";
string password = "Bauernstrasse39";
string poweropti_serial = "1234567890ab";
!-----------------------------------------------------------
string usernameEnc = Frank.jacobs@gmail.com();
string passwordEnc = Bauernstrasse39();
string JSON_All;
string stemp;
integer StrLen;
integer pos;
real AktuelleLeistung;
real VerbrauchSumme;
var v_Leistung;
var v_Summe;
! diese Systemvariablen als Fließkomma anlegen!
string strLeistung = "StromAktLeistung"; ????????so anlegen- heisst das Fließkomma????????
string strSumme = "StromSummeVerbrauch";
???????????????Wofür ist das noch ??????????????
! Username, Password ausgeben um Strings selbst zu basteln
! WriteLine(usernameEnc);
! WriteLine(passwordEnc);
! Abfrage der Serial im Browser:
! https://%usernameEnc%:%passwordEnc%@bac ... ll/devices
string cmd = "curl -X GET \"https://" + Frank.jacobs@gmail.comEnc + ":" + Bauernstrasse.39Enc + "@backend.powerfox.energy/api/2.0/my/" + poweropti_serial + "/current\"";
????????????????????Brauche ich dass folgende wenn es nicht über die CUxD laufen soll? Oder ist es über über die CuxD einfacher und besser ??????????
!Daten der Geräte abrufen
dom.GetObject("CUxD.CUX2801002:1.CMD_SETS").State(cmd);
dom.GetObject("CUxD.CUX2801002:1.CMD_QUERY_RET").State(1);
JSON_All = dom.GetObject("CUxD.CUX2801002:1.CMD_RETS").State().ToLatin();
StrLen = JSON_All.Length();
! WriteLine( JSON_All ); ?????????????????????????was hier eintragen ???????????????????????????
! Leistung Lesen
pos = JSON_All.Find( "\"Watt\":" ) + 7;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
! WriteLine( stemp ); ??????????????????????????was hier eintragen?????????????????????????????
AktuelleLeistung = stemp.ToFloat();
! WriteLine( AktuelleLeistung ); ????????????????????????????was hier eintragen?????????????????????????????
! Verbrauch lesen
pos = JSON_All.Find( "\"A_Plus\":" ) + 9;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
! WriteLine( stemp ); ??????????????????????????was hier eintragen?????????????????????????????
VerbrauchSumme = stemp.ToFloat();
! WriteLine( VerbrauchSumme ); ??????????????????????????was hier eintragen?????????????????????????????
?????????????????????????????Diese vier Variablen müsste ich dann anlegen in der Webui? ?????????????????????????? und was ist mit den beiden SV von oben?
! Variablen setzen
v_Leistung = dom.GetObject( strLeistung );
v_Leistung.State( AktuelleLeistung );
v_Summe = dom.GetObject( strSumme );
v_Summe.State( VerbrauchSumme );
Zuletzt geändert von uwe111 am 11.04.2022, 15:35, insgesamt 1-mal geändert.
Grund: CODE in CODE Tags
-
- Beiträge: 34
- Registriert: 11.04.2022, 12:40
- System: CCU
Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
Hallo zusammen,
so, habe mal versucht die Beschreibung für das Script richtig zu deuten und habe in das Programm folgendes Script eingefügt. Könnt Ihr mir sagen ob das so richtig ist ?
Dazu habe ich die folgenden SV in der Webui angelegt:(lässt sich hier nicht hin kopieren)
Name: StromAktLeistung, StromSummeVerbrauch
beide mit Auswahl Zahl in Watt, Bereich -5000 bis +5000 ohne Kanalzuordnung
Frage:
müssen die ganz unten genannten SV nicht auch angelegt werden ?
Was ist mir dem Bereich ab:
1. string cmd..... - muss dass noch ins Skript?
2. ! Daten der Geräte abrufen... bis ! Variablen setzen ..... muss dass noch ins Skript ?
bin mir wegen der Ausrufezeichen davon nicht sicher ....
Danke euch!
BG
Frank
string username = "xxxxx@gmail.com";
string password = "xxxxxxxxx50";
string poweropti_serial = "xxxxxxxxxx";
string usernameEnc = username.UriEncode();
string passwordEnc = password.UriEncode();
string JSON_All;
string stemp;
integer StrLen;
integer pos;
real AktuelleLeistung;
real VerbrauchSumme;
var v_Leistung;
var v_Summe;
string strLeistung = "StromAktLeistung";
string strSumme = "StromSummeVerbrauch";
string cmd = "curl -X GET \"https://" + usernameEnc + ":" + passwordEnc + "@backend.powerfox.energy/api/2.0/my/" + poweropti_serial + "/current\"";
!Daten der Geräte abrufen
dom.GetObject("CUxD.CUX2801002:1.CMD_SETS").State(cmd);
dom.GetObject("CUxD.CUX2801002:1.CMD_QUERY_RET").State(1);
JSON_All = dom.GetObject("CUxD.CUX2801002:1.CMD_RETS").State().ToLatin();
StrLen = JSON_All.Length();
! WriteLine( JSON_All );
! Leistung Lesen
pos = JSON_All.Find( "\"Watt\":" ) + 7;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
! WriteLine( stemp );
AktuelleLeistung = stemp.ToFloat();
! WriteLine( AktuelleLeistung );
! Verbrauch lesen
pos = JSON_All.Find( "\"A_Plus\":" ) + 9;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
! WriteLine( stemp );
VerbrauchSumme = stemp.ToFloat();
! WriteLine( VerbrauchSumme );
! Variablen setzen
v_Leistung = dom.GetObject( strLeistung );
v_Leistung.State( AktuelleLeistung );
v_Summe = dom.GetObject( strSumme );
v_Summe.State( VerbrauchSumme );
so, habe mal versucht die Beschreibung für das Script richtig zu deuten und habe in das Programm folgendes Script eingefügt. Könnt Ihr mir sagen ob das so richtig ist ?
Dazu habe ich die folgenden SV in der Webui angelegt:(lässt sich hier nicht hin kopieren)
Name: StromAktLeistung, StromSummeVerbrauch
beide mit Auswahl Zahl in Watt, Bereich -5000 bis +5000 ohne Kanalzuordnung
Frage:
müssen die ganz unten genannten SV nicht auch angelegt werden ?
Was ist mir dem Bereich ab:
1. string cmd..... - muss dass noch ins Skript?
2. ! Daten der Geräte abrufen... bis ! Variablen setzen ..... muss dass noch ins Skript ?
bin mir wegen der Ausrufezeichen davon nicht sicher ....
Danke euch!
BG
Frank
string username = "xxxxx@gmail.com";
string password = "xxxxxxxxx50";
string poweropti_serial = "xxxxxxxxxx";
string usernameEnc = username.UriEncode();
string passwordEnc = password.UriEncode();
string JSON_All;
string stemp;
integer StrLen;
integer pos;
real AktuelleLeistung;
real VerbrauchSumme;
var v_Leistung;
var v_Summe;
string strLeistung = "StromAktLeistung";
string strSumme = "StromSummeVerbrauch";
string cmd = "curl -X GET \"https://" + usernameEnc + ":" + passwordEnc + "@backend.powerfox.energy/api/2.0/my/" + poweropti_serial + "/current\"";
!Daten der Geräte abrufen
dom.GetObject("CUxD.CUX2801002:1.CMD_SETS").State(cmd);
dom.GetObject("CUxD.CUX2801002:1.CMD_QUERY_RET").State(1);
JSON_All = dom.GetObject("CUxD.CUX2801002:1.CMD_RETS").State().ToLatin();
StrLen = JSON_All.Length();
! WriteLine( JSON_All );
! Leistung Lesen
pos = JSON_All.Find( "\"Watt\":" ) + 7;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
! WriteLine( stemp );
AktuelleLeistung = stemp.ToFloat();
! WriteLine( AktuelleLeistung );
! Verbrauch lesen
pos = JSON_All.Find( "\"A_Plus\":" ) + 9;
JSON_All = JSON_All.Substr( pos, JSON_All.Length() - pos );
pos = JSON_All.Find( "," );
stemp = JSON_All.Substr( 0, pos );
! WriteLine( stemp );
VerbrauchSumme = stemp.ToFloat();
! WriteLine( VerbrauchSumme );
! Variablen setzen
v_Leistung = dom.GetObject( strLeistung );
v_Leistung.State( AktuelleLeistung );
v_Summe = dom.GetObject( strSumme );
v_Summe.State( VerbrauchSumme );
-
- Beiträge: 34
- Registriert: 11.04.2022, 12:40
- System: CCU
Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
Help.... nichts geht. Habe alle Varianten mit dem Script-Testen getestet.
keine Ergebnisse.....
BG
Frank
keine Ergebnisse.....
BG
Frank
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
Unterhalb von solltest du nichts ändern.
Und bitte Code in Code-Tags posten.
Code: Alles auswählen
! - - - - - - - - - - - - - - - - - - - -
Und bitte Code in Code-Tags posten.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 34
- Registriert: 11.04.2022, 12:40
- System: CCU
Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
Hallo Michael,
super. Danke für die Hilfe erstmal.
Habe ich gemacht. Also auch Zeile 1 und 5 drinnen gelassen und nur die richtigen Werte in Zeile 2-4 eingegeben. Anführungszeichen habe ich stehen lassen. Fehlerprüfung liefert kein Ergebnis. Aber beim Scripttest wirft er keine Daten aus und das sollte er ja...?!
Obwohl in dem Script was von CuXd steht brauche ich dort nichts ergänzen oder reinschreiben?
Da der Fehler dann ja nur in den ersten Zeilen sein kann, so sehen die ersten 7 Zeilen dann aus, Rest alles so gelassen: ( keine Ahnung wie das mit den Tags geht)
***********************************************************************************
!-------- Hier die eigenen Daten Eintragen------------------
string username = „frank.jacobs@gmail.com“;
string password = „Bauernstrasse50“;
string poweropti_serial = „6c41s14195c“;
!-----------------------------------------------------------
string usernameEnc = username.UriEncode();
**************************************************************************************
Das Programm sieht bei mir wie folgt aus:
"Zeitsteuerung" periodisch von bis "zu Zeitpunkten auslösen"
Dann "Script" sofort
Damit müsste er ja dann die beiden SV befüllen sozusagen. Die beiden heißen:
StromAktLeistung (hier wird dann wohl die Wattzahl der PV angegeben, wieviel diese gerade liefert)
StromAktVerbrauch (der momentane Verbrauch - also z.B. minus 352 Watt, was sich aus Errechnung des Verbrauchs minus PV Leistung ergibt)
siehst du noch irgendwo einen Fehler?
wenn ich die API Powerfox direkt per Browser auslese, dann funktioniert das.
unter dem Link: https://backend.powerfox.energy/api/2.0 ... t?unit=kwh
gibt er mir folgende Zeile aus:{"Outdated":false,"Watt":-43.0,"Timestamp":1649744770,"A_Plus":79.614,"A_Minus":32.756}
Das geht also...
Dank dir nochmal für die Hilfe.
BG
Frank
super. Danke für die Hilfe erstmal.
Habe ich gemacht. Also auch Zeile 1 und 5 drinnen gelassen und nur die richtigen Werte in Zeile 2-4 eingegeben. Anführungszeichen habe ich stehen lassen. Fehlerprüfung liefert kein Ergebnis. Aber beim Scripttest wirft er keine Daten aus und das sollte er ja...?!
Obwohl in dem Script was von CuXd steht brauche ich dort nichts ergänzen oder reinschreiben?
Da der Fehler dann ja nur in den ersten Zeilen sein kann, so sehen die ersten 7 Zeilen dann aus, Rest alles so gelassen: ( keine Ahnung wie das mit den Tags geht)
***********************************************************************************
!-------- Hier die eigenen Daten Eintragen------------------
string username = „frank.jacobs@gmail.com“;
string password = „Bauernstrasse50“;
string poweropti_serial = „6c41s14195c“;
!-----------------------------------------------------------
string usernameEnc = username.UriEncode();
**************************************************************************************
Das Programm sieht bei mir wie folgt aus:
"Zeitsteuerung" periodisch von bis "zu Zeitpunkten auslösen"
Dann "Script" sofort
Damit müsste er ja dann die beiden SV befüllen sozusagen. Die beiden heißen:
StromAktLeistung (hier wird dann wohl die Wattzahl der PV angegeben, wieviel diese gerade liefert)
StromAktVerbrauch (der momentane Verbrauch - also z.B. minus 352 Watt, was sich aus Errechnung des Verbrauchs minus PV Leistung ergibt)
siehst du noch irgendwo einen Fehler?
wenn ich die API Powerfox direkt per Browser auslese, dann funktioniert das.
unter dem Link: https://backend.powerfox.energy/api/2.0 ... t?unit=kwh
gibt er mir folgende Zeile aus:{"Outdated":false,"Watt":-43.0,"Timestamp":1649744770,"A_Plus":79.614,"A_Minus":32.756}
Das geht also...
Dank dir nochmal für die Hilfe.
BG
Frank
- Baxxy
- Beiträge: 10827
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 608 Mal
- Danksagung erhalten: 2225 Mal
Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben
Das benötigte CUxD-Gerät: (28) System - Funktion: Exec ist auf deinem System vorhanden und hat auch die entsprechende Seriennummer (CUX2801002) welche im Script verwendet wird?
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen