Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

roberti
Beiträge: 30
Registriert: 03.10.2018, 13:19

Re: Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Beitrag von roberti » 08.11.2018, 18:05

Hi Modig,

einwandfrei das funktioniert so wie es soll, THX :)

SV_PV.JPG
SV_PV.JPG (23.69 KiB) 2148 mal betrachtet

Ich habe mal versucht die Berechnung mit einzubauen, ich hoffe das geht so oder ist das zu dilettantisch?
Was mir dabei aufgefallen ist, das die SysVar`s offensichtlich nicht für die direkte Berechnung verwendet werden können.
Ist das so vorgegeben?
Ansonsten genau das was ich mir vorgestellt habe und bei der super Doku. kann ich bei Bedarf auch alle anderen Werte rausziehen Top!

Code: Alles auswählen

! ***Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben***
! Vor Aufrufen des Scriptes folgende Systemvariablen anlegen:
!   Name: SV_Pdc  Variablentyp: Zahl  Maßeinheit: W
!   Name: SV_consPac  Variablentyp: Zahl  Maßeinheit: W

! JSON-Daten mittels gekürzter 'solarlog2.sh' abrufen
dom.GetObject("CUxD.CUX2801011:1.CMD_SETS").State("/usr/local/addons/solarlog2a.sh");
dom.GetObject("CUxD.CUX2801011:1.CMD_QUERY_RET").State(1);
string response = dom.GetObject("CUxD.CUX2801011:1.CMD_RETS").State();

! Variablen mit Werten füllen
! Im Klartext heisst das:   ',"',2    Rufe den 2. Datensatz auf, der mit Komma und Anfuehrungszeichen beginnt
! Danach:    ':',1   Also den Ersten Eintrag nach dem Doppelpunkt
! Zum Schluss in eine Integerzahl umwandeln
! Konkret ist der 2. Datensatz der mit Index 101 - der 10. der Index 110; alle anderen Indizes lassen sich auf gleiche Weise verarbeiten
var value_Pdc = (response.StrValueByIndex(',"',1)).StrValueByIndex(':',1).ToInteger();
var value_consPac = (response.StrValueByIndex(',"',10)).StrValueByIndex(':',1).ToInteger();

!Werte in Systemvariablen eintragen
dom.GetObject("SV_Pdc").State(value_Pdc);
dom.GetObject("SV_consPac").State(value_consPac);

! Berechnung des PV-Anlagen Überschuss und schreiben in SysVar SV_PV_Ueberschuss
var u = value_Pdc-value_consPac;
dom.GetObject("SV_PV_Ueberschuss").State(u);
!WriteLine(value_Pdc);
!WriteLine(value_consPac);
!WriteLine(u);
Dateianhänge
PV_Berechnung.JPG
VG
Roberti

Homematic CCU3 -> FW 3.61.6
HM-Sec-SC-HmIP-eTRV-B-HmIP-SWDM-HMIP-PSM- HmIP-SLO-
HM-LC-Bl1PBU-FM- HM-Sen-RD-O-HM-LC-Bl1PBU-FM-HmIP-STHO
Solarlog 200 –FW 3.6.0-Fritz Dect-Wemo-Belkin-CUL-Stick+Max-FK

modig
Beiträge: 130
Registriert: 23.11.2016, 10:37
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 29 Mal
Danksagung erhalten: 18 Mal

Re: Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Beitrag von modig » 08.11.2018, 18:37

Hallo Roberti,
wo willst Du mit den Systemvariablen rechnen? Hier im Script oder in der CCU?

Karsten
Karsten

roberti
Beiträge: 30
Registriert: 03.10.2018, 13:19

Re: Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Beitrag von roberti » 08.11.2018, 20:04

Ja ich habe zunächst versucht mit Deinen im Script befüllten SysVars direkt zu rechnen, aber im Scriptexecuter wurde lediglich NULL ausgeben. Mit den Hilfsvariablen dagegen ohne Probleme.
VG
Roberti

Homematic CCU3 -> FW 3.61.6
HM-Sec-SC-HmIP-eTRV-B-HmIP-SWDM-HMIP-PSM- HmIP-SLO-
HM-LC-Bl1PBU-FM- HM-Sen-RD-O-HM-LC-Bl1PBU-FM-HmIP-STHO
Solarlog 200 –FW 3.6.0-Fritz Dect-Wemo-Belkin-CUL-Stick+Max-FK

modig
Beiträge: 130
Registriert: 23.11.2016, 10:37
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 29 Mal
Danksagung erhalten: 18 Mal

Re: Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Beitrag von modig » 08.11.2018, 20:32

Da hast Du ein kleines Verständnisproblem. 8)
Die Zeile

Code: Alles auswählen

dom.GetObject("SV_Pdc").State(value_Pdc);
schreibt den Wert der (Script-)Variablen 'value_Pdc' in die (CCU-System-)Variable 'SV_Pdc'. 'value_Pdc' steht Dir also im Script selber, 'SV_Pdc' innerhalb der CCU zur Verfügung.

Willst Du nun im Script mit einer Systemvariablen rechnen, musst Du diese also erstmal ins Script holen:

Code: Alles auswählen

var reingeholt = dom.GetObject("SV_Pdc").Value();
Erst dann steht sie im Script zur Verfügung.


Karsten
Karsten

roberti
Beiträge: 30
Registriert: 03.10.2018, 13:19

Re: Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Beitrag von roberti » 08.11.2018, 22:27

Alles klar das war mir tatsächlich so nicht bewusst. D. h. dann aber auch, so wie die Berechnung oben in meinem Script steht ist das dann i. O.?
VG
Roberti

Homematic CCU3 -> FW 3.61.6
HM-Sec-SC-HmIP-eTRV-B-HmIP-SWDM-HMIP-PSM- HmIP-SLO-
HM-LC-Bl1PBU-FM- HM-Sen-RD-O-HM-LC-Bl1PBU-FM-HmIP-STHO
Solarlog 200 –FW 3.6.0-Fritz Dect-Wemo-Belkin-CUL-Stick+Max-FK

modig
Beiträge: 130
Registriert: 23.11.2016, 10:37
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 29 Mal
Danksagung erhalten: 18 Mal

Re: Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Beitrag von modig » 10.11.2018, 17:42

Klar, wenn's funktioniert, ist's OK. :-)
Einzig würde ich die Bezeichnung der Variablen 'u' sprechend wählen - sonst weisst Du später nicht mehr, wofür die ist.

Karsten
Karsten

HM_User
Beiträge: 159
Registriert: 24.10.2012, 14:29
Wohnort: Nähe Esslingen

Re: Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Beitrag von HM_User » 14.11.2018, 10:36

Hallo Roberti,
hallo Modig,

ich habe mit großem Interesse diesen Thread verfolgt. Ich selber besitze einen Solarlog 300 und suche nach genau dieser Möglichkeit die Daten für die Weiterverarbeitung herauszuholen.
Dazu habe ich aber noch einige Defizite im Wissen.
Wie spreche ich den Solarlog an? Ist die Schnittstelle so offen, dass ich über die IP Adresse darauf zugreifen kann?
Der Ablauf wäre dann wie folgt!?
Das Script wird zeitgesteuert gestartet und holt die Daten aus dem Solarlog.
Das nächste Script schreibt diese Daten in eine lesbare Variable mit der ich dann in den Programmen tun und lassen kann was ich möchte?

Vielen Dank im Vorraus.
Gruß Stefan

Derzeit verbaut

Homematic Funk, wired und IP

HM_User
Beiträge: 159
Registriert: 24.10.2012, 14:29
Wohnort: Nähe Esslingen

Re: Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Beitrag von HM_User » 14.11.2018, 17:04

Hallo,

noch ein Frage:
wie bekomme ich die .sh Datei auf die CCU.
Versuche es grade mit filezila und ssh.
Aber ich finde bei Google den Port nicht.
Gruß Stefan

Derzeit verbaut

Homematic Funk, wired und IP

roberti
Beiträge: 30
Registriert: 03.10.2018, 13:19

Re: Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Beitrag von roberti » 14.11.2018, 22:02

Hallo Stefan,

wenn ich Modig richtig verstanden habe ist die JSON-Schnittstelle offiziell und auch dokumentiert.
Wobei du diese im Solarlog ggf. noch unter System-> Zugangangskontrolle aktivieren musst.

JSON.JPG
JSON.JPG (12.34 KiB) 2048 mal betrachtet

Zum übertragen der Solarlog.sh verwende ich persönlich WinSCP. Nicht vergessen die Dateirechte auf 0700 setzen und die IP-Adr. anpassen.

Mit diesem super dokumentierten Script von Modig kannst dann in einen Rutsch die gewünschten Daten auslesen und in SysVars schreiben.

Code: Alles auswählen

! ***Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben***
! Vor Aufrufen des Scriptes folgende Systemvariablen anlegen:
!   Name: SV_Pdc  Variablentyp: Zahl  Maßeinheit: W
!   Name: SV_consPac  Variablentyp: Zahl  Maßeinheit: W

! JSON-Daten mittels gekürzter 'solarlog2.sh' abrufen
dom.GetObject("CUxD.CUX2801011:1.CMD_SETS").State("/usr/local/addons/solarlog2.sh");
dom.GetObject("CUxD.CUX2801011:1.CMD_QUERY_RET").State(1);
string response = dom.GetObject("CUxD.CUX2801011:1.CMD_RETS").State();

! Variablen mit Werten füllen
! Im Klartext heisst das:   ',"',2    Rufe den 2. Datensatz auf, der mit Komma und Anfuehrungszeichen beginnt
! Danach:    ':',1   Also den Ersten Eintrag nach dem Doppelpunkt
! Zum Schluss in eine Integerzahl umwandeln
! Konkret ist der 2. Datensatz der mit Index 102 - der 10. der Index 110; alle anderen Indizes lassen sich auf gleiche Weise verarbeiten
var value_Pdc = (response.StrValueByIndex(',"',2)).StrValueByIndex(':',1).ToInteger();
var value_consPac = (response.StrValueByIndex(',"',10)).StrValueByIndex(':',1).ToInteger();

!Werte in Systemvariablen eintragen
dom.GetObject("SV_Pdc").State(value_Pdc);
dom.GetObject("SV_consPac").State(value_consPac);


VG
Roberti

Homematic CCU3 -> FW 3.61.6
HM-Sec-SC-HmIP-eTRV-B-HmIP-SWDM-HMIP-PSM- HmIP-SLO-
HM-LC-Bl1PBU-FM- HM-Sen-RD-O-HM-LC-Bl1PBU-FM-HmIP-STHO
Solarlog 200 –FW 3.6.0-Fritz Dect-Wemo-Belkin-CUL-Stick+Max-FK

HM_User
Beiträge: 159
Registriert: 24.10.2012, 14:29
Wohnort: Nähe Esslingen

Re: Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Beitrag von HM_User » 15.11.2018, 10:04

Guten Morgen Roberti,

danke für die schnelle Antwort.
Die solarlog.sh habe ich mit filezila auf die CCU in den Ordner: usr/local/addons übertragen.
Die JSON Schnittstelle habe ich im Solarlog aktiviert.

Wenn ich dich jetzt richtig verstanden habe, muss ich die Variablen erstellen. (SV_Pdc und SV_consPac)
In welches Pogramm muss ich das Script schreiben?
Was ist mit dem Cuxd Gerät? Wie muss das eingestellt werden?
Gruß Stefan

Derzeit verbaut

Homematic Funk, wired und IP

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“