Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

FrankJacobs
Beiträge: 34
Registriert: 11.04.2022, 12:40
System: CCU

Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Beitrag von FrankJacobs » 10.06.2022, 18:19

hallo,
kann jemand mit diesen Info Zeilen aus der CUx etwas anfangen und mir sagen was zu tun ist?

Code: Alles auswählen

Jun 10 17:52:02 ccu2 daemon.warn cuxd[435]: use CUX2801001:12.CMD_QUERY_RET=1 to activate CUX2801001:12.CMD_RETS command!
Jun 10 17:52:02 ccu2 daemon.warn cuxd[435]: use CUX2801001:12.CMD_QUERY_RET=1 to activate CUX2801001:12.CMD_RETL command!
Jun 10 17:52:02 ccu2 daemon.warn cuxd[435]: use CUX2801001:13.CMD_QUERY_RET=1 to activate CUX2801001:13.CMD_RETS command!
Jun 10 17:52:02 ccu2 daemon.warn cuxd[435]: use CUX2801001:13.CMD_QUERY_RET=1 to activate CUX2801001:13.CMD_RETL command!
Bei der Anlage des System Exec Geräts auf der CUX, welches Geräte Icon und Control Auswahl habt ihr da genommen ?

BG
FRank

FrankJacobs
Beiträge: 34
Registriert: 11.04.2022, 12:40
System: CCU

Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Beitrag von FrankJacobs » 10.06.2022, 19:04

weiß jemand warum hier dieser Error gemeldet wird ?

Ju

Code: Alles auswählen

n 10 19:01:00 [color=#BF0000]ccu2 local0.err ReGaHss: ERROR: ScriptRuntimeError: [/color]!-------- Hier die eigenen Daten Eintragen------------------ string username = "frank.j@gmail.com"; string password  = "Moltkes"; string poweropti_serial = "9777777c"; !-----------------------------------------------------------  string usernameEnc = username.UriEncode(); string passwordEnc = password.UriEncode(); string JSON_All; string stemp; integer StrLen; integer pos; real AktuelleLeistung; real VerbrauchSumme; 
ar v_Leistung; var v_Summe; ! diese Systemvariablen als Fließkomma anlegen! string strLeistung = "StromAktLeistung"; string strSumme = "StromSummeVerbrauch";   ! Username, Password ausgeben um Strings selbst zu basteln ! WriteLine(usernameEnc); ! WriteLine(passwordEnc); ! Abfrage der Serial im Browser: ! https://%usernameEnc%:%passwordEnc%@backend.powerfox.energy/api/2.0/my/all/devices  string cmd = "curl -X GET \"https://" + usernameEnc + ":" + passwordEnc + "@backend.powerfox.energy/api/2.0/my/" + power
pti_serial +

MichaelN
Beiträge: 9645
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Beitrag von MichaelN » 10.06.2022, 19:24

FrankJacobs hat geschrieben:
10.06.2022, 17:54
Was ist also deine Erfahrung wo der Fehler meistens liegt
PEBCAK
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 +++

FrankJacobs
Beiträge: 34
Registriert: 11.04.2022, 12:40
System: CCU

Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Beitrag von FrankJacobs » 10.06.2022, 20:00

Hallo zusammen,
sorry, ich habe keine Ahnung was Michael hier meint mit einer 6 Buchstaben Antwort auf eine ganz normale Frage.

Das Script stimmt- das ist super - da hat sich nichts verstellt. habe sicherheitshalber das Programm gelöscht und neu geschrieben
Die SV habe ich ebenfalls gelöscht und neu geschrieben - daran kann es auch nicht liegen
DAs Systemprotoll gibt keinerlei Daten mehr an. Ich denke, es liegt an dem cux Gerätetyp.
Welches ist das Richtige ?
1. 28 System
2. Exec
3. Seriennummer 1
4. Name: freilassen
5. Geräte Icon ??????? welches ist das richtige?
6. Control ???? welcher ? Taster, Schalter, Dimmer, Jalousie?
DAnach noch auf die CCU2 Spielen, dort mit 'fertig' bestätigen und die CUX und die CC2 neu laden. DAnn müsste es wohl wieder gehen? Was meint IHr?


Dank euch
Frank

Benutzeravatar
Baxxy
Beiträge: 10746
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2199 Mal

Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Beitrag von Baxxy » 10.06.2022, 20:11

1: ok
2: ok
3: einfach lassen was automatisch reingeschrieben wird
4: freilassen oder Namen vergeben (Bspw: "CUxD-Exec-Device")
5: das was dir am besten gefällt, ich würde den Standard (Fernbedienung 19 Tasten) lassen
6: Taster

Dann "Gerät auf CCU erzeugen", danach zur WebUI --> Posteingang wechseln und "fertig" anklicken.
CCU Neustart ist m.E. nicht nötig.

FrankJacobs
Beiträge: 34
Registriert: 11.04.2022, 12:40
System: CCU

Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Beitrag von FrankJacobs » 15.06.2022, 18:41

Hallo Baxxy,
super, genau das habe ich gebraucht.
War jetzt eine Woche nicht am Gerät ... sonst hätte ichs vlt gleich entsorgt..)
Nein, ernsthaft, keine Ahnung was sich da/ich da verstellt habe- zumindest nicht bewusst. Auf jeden Fall hatte mir genau das jetzt noch gefehlt und tatsächlich scheint es wieder zu funktionieren. Mille Gracie!!!!!! Echt klasse.
Dir eine super sonniges Wochenende.
BG
Frank

FrankJacobs
Beiträge: 34
Registriert: 11.04.2022, 12:40
System: CCU

Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Beitrag von FrankJacobs » 15.06.2022, 20:01

also, beim ersten Mal hat das Script funktioniert und er hat Daten geliefert:
und zwar die Daten die in der SV als "von-bis" Werte angegeben sind, nicht die realen Werte:

Code: Alles auswählen

18:50:22	15.06.2022	StromAktLeistung	
-50000.000000 (-50000.00 Watt)
18:50:38	15.06.2022	StromSummeVerbrauch	
-50000.000000 (-50000.00 Watt)
Danacht zeigt das Systemprotokoll keine SV Daten mehr an.

Die SV ist wie folgt angelegt:

Code: Alles auswählen

Systemvariable bearbeiten
Name	Beschreibung	Variablentyp	Werte	Maßeinheit	Kanal-
zuordnung
StromAktLeistung
StromAktLeistung

Zahl
Wertebereich:
Minimalwert =	
-50000
Maximalwert =	
65000
Watt
ohne
mit
Kanalauswahl
Abbrechen
OK
genau so war sie vorher auch angelegt. Hier ist m.E. kein Fehler. Offensichtlich schreibt das Programm zur Erfassung der Powerfox Daten die Werte nicht in die SV, weswegen dann im Systemprotokoll auch keine Angaben zu finden sind.

Das Programm sieht wie folgt aus: Das Script habe ich nochmal getestet - kein Fehler wird angegeben.
Bild

Code: Alles auswählen

Name	Beschreibung	Bedingung (Wenn...)	Aktivität (Dann.., Sonst..)	Aktion
Ergebnis Powerfox	ruft Daten ab und schreibt in SV	Zeit: Periodisch von 06:00 Uhr bis 22:00 Uhr beginnend am 10.04.2022 zu Zeitpunkten auslösen	Skript: ... sofort ausführen	systemintern nicht angeklickt
Bedingung: Wenn...

Zeitsteuerung
 Periodisch von 06:00 Uhr bis 22:00 Uhr beginnend am 10.04.2022  
zu Zeitpunkten auslösen ( jede Minute eingestellt) 
 

UND

ODER
Aktivität: Dann...Vor dem Ausführen alle laufenden Verzögerungen für diese Aktivitäten beenden (z.B. Retriggern).

Skript
 !-------- Hier die eigenen Daten Eintragen------------------... 
sofort
 

Aktivität: 
Sonst...
Vor dem Aus
führen alle laufenden Verzögerungen für diese Aktivitäten beenden (z.B. Retriggern). nicht angeklickt

Hier kann ich auch keinen Fehler erkennen und das Script ist eins zu eins wie die coolen Spezialisten das hier vorgegeben haben, hat ja vorher auch funktioniert und meldet jetzt auch keinen Fehler.

Was es sein könnte, ist das was in der CUX steht, das meldet er in der CUX jetzt alle Minute:
ich habe daraufhin nochmal das Passwort in der Powerfox App sicherheitshalber geändert und im Script das gleiche eingtragen um diesen Fehler aus zu schließen. Auch dann nochmal den CUX und die CCU neu gestartet. Leider ohne Erfolg. In die SV werden keine aktuellen DAten eingtragen und logischerweise keine im Systemprotokoll vermerkt.

Code: Alles auswählen

Jun 15 19:27:00 ccu2 local0.err ReGaHss: ERROR: ScriptRuntimeError: !-------- Hier die eigenen Daten Eintragen------------------ string username = "frank@gmail.com"; string password  = "kdlfdfdfke"; string poweropti_serial = "2m2m2m2m2m22m"; !-----------------------------------------------------------  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; ! diese Systemvariablen als Fließkomma anlegen! string strLeistung = "StromAktLeistung"; string strSumme = "StromSummeVerbrauch";   ! Username, Password ausgeben um Strings selbst zu basteln ! WriteLine(usernameEnc); ! WriteLine(passwordEnc); ! Abfrage der Serial im Browser: ! https://%usernameEnc%:%passwordEnc%@backend.powerfox.energy/api/2.0/my/all/devices  string cmd = "curl -X GET \"https://" + usernameEnc + ":" + passwordEnc + "@backend.powerfox.energy/api/2.0/my/" + poweropt
_serial + "/
kannst du das mit der Fehlermeldung "ScriptRuntimeError" zuordnen? bzw. erkennen was der Fehler sein könnte bzw was das bedeutet ? bzw. wo der Fehler ist das er die DAten die er abruft nicht in die SV schreibt - da scheint ja der Fehler zu sein.....


Beste Grüße
Frank

BG Frank

MichaelN
Beiträge: 9645
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Beitrag von MichaelN » 15.06.2022, 20:10

Screenshot vom Programm und Skript in Code-Tags fehlt noch zur Analyse.
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 +++

FrankJacobs
Beiträge: 34
Registriert: 11.04.2022, 12:40
System: CCU

Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Beitrag von FrankJacobs » 15.06.2022, 20:25

ok, das script sieht wie folgt aus: (wie rüber kopiert und nur die Zeilen 2-4 verändert - hat ja vorher auch so funktioniert

Code: Alles auswählen

!-------- Hier die eigenen Daten Eintragen------------------ 
string username = "frank@gmail.com";
string password  = "bauernstraßssee";
string poweropti_serial = "46464646464";
!-----------------------------------------------------------

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;
! diese Systemvariablen als Fließkomma anlegen!
string strLeistung = "StromAktLeistung";
string strSumme = "StromSummeVerbrauch";


! Username, Password ausgeben um Strings selbst zu basteln
! WriteLine(usernameEnc);
! WriteLine(passwordEnc);
! Abfrage der Serial im Browser:
! https://%usernameEnc%:%passwordEnc%@backend.powerfox.energy/api/2.0/my/all/devices

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 );

FrankJacobs
Beiträge: 34
Registriert: 11.04.2022, 12:40
System: CCU

Re: Zählersensor Powerfox Poweropti Leistung auslesen und in Variable schreiben

Beitrag von FrankJacobs » 15.06.2022, 20:31

ich kriege keinen Screenshot hier ein. Weiß nicht wie. Über die Bildfunktion krieg ich"s nicht hin und über das Snippingtool auch nciht...

Bild

Antworten

Zurück zu „HomeMatic allgemein“