Solarlog 200 Ertrags- u. Verbrauchsdaten in Variablen schreiben

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

videospezi
Beiträge: 27
Registriert: 09.02.2018, 14:33
Hat sich bedankt: 2 Mal

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

Beitrag von videospezi » 27.12.2018, 18:53

Hallo,
ich möchte das Thema auch nochmal aufgreifen.
Ich bin seit einiger Zeit dran auch meine Daten vom SolarLog 300 in Homematic einzubinden.
Irgendiwe stehe ich auf dem Schlauch und komm nicht so richtig weiter!
Habe nach den Posts alle Einstellungen so vorgenommen:
1. Solarlog. sh mit WinScp in das Verzeichnis usr/local/addons/solarlog2.sh kopiert. (Rechte auf 0755 gesetzt).
2. Systemvariablen SV_consPac / Zahl / 0-65000 / W ; SV_Pdc / Zahl / 0-65000 / W angelegt.
3. Programm mit Zeitintervall (10Min) mit dem Skript von Seite 2 erstellt.
4. CUxd Fernbedienung mit 19 Tasten angelegt / Funktion:Exec angelegt im Posteingang fertig gestellt.
Habe natürlich in der solarlog2.sh die IP Adresse von meinem SolarLog 300 angepasst und in dem Skript die CUxd Daten eingetragen bzw. geändert.
SkriptErgebnis.JPG
SkriptErgebnis.JPG (40.44 KiB) 2266 mal betrachtet
SysVar_2.JPG
Geräteliste.JPG
Alle Tests mit dem Testskript geben auch die Werte des SolaLog aus!
Aber die Werte werden nicht in die Systemvariablen geschrieben.
Die Index Liste vom SolarLog 300 habe ich mit der bereits gezeigten Liste verglichen die Index Zahlen sind alle identisch.
Trotzdem bekomme ich keine Daten angezeigt. Aktuell sind natürlich die aktuellen Werte auf Null ist im Moment leider schon dunkel.
Könnte mir bitte jemand einen Tip geben, was ich dort falsch mache?
Vielen Dank schon mal im Voraus.
Raspberry Matic 3.41.11.20181222 SolarLog Version 4.2.2Build 111
LG
Uli
zur Zeit im Einsatz: Raspi 3 als "Zentrale", Raspi 2 als HM Gateway, HM-Ip Raumthermostate, IP Fensterkontakte, Rolladensteuerung, CUxD,

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

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

Beitrag von roberti » 29.12.2018, 00:15

Hallo Uli,

das Problem hatte ich anfangs auch...
Poste doch mal Dein Script und falls Du den Script Executor installiert hast, die Ausgabe zu dem Script.
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

videospezi
Beiträge: 27
Registriert: 09.02.2018, 14:33
Hat sich bedankt: 2 Mal

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

Beitrag von videospezi » 29.12.2018, 21:09

Hallo Roberti,

vielen Dank für deine Antwort. Den Skript Executer habe ich leider nicht.
Anbei mein Skript. Vielleicht entdeckst Du (m)einen Fehler! Es scheint ein Fehler in der Werte-Übergabe an die CCU Variablen zu sein.

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.CUX2801003:1.CMD_SETS").State("/usr/local/addons/solarlog2.sh");
dom.GetObject("CUxD.CUX2801003:1.CMD_QUERY_RET").State(1);
string response = dom.GetObject("CUxD.CUX2801003: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);
Habe die letzten drei Zeilen mal das Ausrufezeichen entfernt um eine direkte Ausgabe zu bekommen. Da kommen dann dreimal "0" als Anzeige. Obwohl die SolarLog Daten immer Daten größer 0 anziehen!

Mit freundlichen Grüßen
Uli

und auf jeden Fall schon mal einen "Guten Rutsch" ins neue Jahr 2019!!!
zur Zeit im Einsatz: Raspi 3 als "Zentrale", Raspi 2 als HM Gateway, HM-Ip Raumthermostate, IP Fensterkontakte, Rolladensteuerung, CUxD,

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

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

Beitrag von roberti » 30.12.2018, 00:10

Hallo Uli,

kann es sein das Du solarlog2.sh aus der Zip-Datei genommen hast?
Diese Variante funktioniert nicht Dein Script ist i. O. es schmeißt bei mir die Daten einwandfrei raus, allerdings mit dieser Solarlog2.sh

Code: Alles auswählen

#!/bin/sh
wget -qO- --post-data='{"801":{"170":null}}' http://192.168.113.27/getjp

IP vom Solarlog ändern nicht vergessen, dann sollte es klappen.
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

videospezi
Beiträge: 27
Registriert: 09.02.2018, 14:33
Hat sich bedankt: 2 Mal

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

Beitrag von videospezi » 30.12.2018, 10:10

Hallo Roberti,

super es funktioniert. Die Varablen zeigen die Werte an!!
Nochmals vielen Dank.
Ich hatte tatsächlich die solarlog.sh aus der ZIP Datei genommen!
Anscheinen ist dort hinter dem ....."IP-Adresse"/getjp noch ein " \ " bei mit drin gewesen.
Weiss nicht ob es daran lag??

Wünsche Dir ein "Gutes Neues Jahr 21019"
und nochmals vielen Dank.!!!
MFG
Uli
Zuletzt geändert von videospezi am 31.12.2018, 10:57, insgesamt 1-mal geändert.
zur Zeit im Einsatz: Raspi 3 als "Zentrale", Raspi 2 als HM Gateway, HM-Ip Raumthermostate, IP Fensterkontakte, Rolladensteuerung, CUxD,

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

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

Beitrag von roberti » 30.12.2018, 12:34

Hallo Uli,

freut mich das es geklappt hat. Dann kann das neue Jahr ja starten!
Dir auch eine guten Rutsch ins neue Jahr.
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

blueb6
Beiträge: 118
Registriert: 08.01.2015, 20:22
Wohnort: Neufeld/Leitha
Danksagung erhalten: 3 Mal

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

Beitrag von blueb6 » 20.01.2019, 20:07

Hallo ich hab ein ähnliches problem nur mit einer xml datei vielleich kann mir hier jemand helfen.

Das ist die Datei die ich auslesen möchte und in variablen schreiben möchte.

Code: Alles auswählen

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<siteCurrentPowerFlow>
<updateRefreshRate>3</updateRefreshRate>
<unit>kW</unit>
<GRID>
<status>Active</status>
<currentPower>0.56</currentPower>
</GRID>
<LOAD>
<status>Active</status>
<currentPower>0.56</currentPower>
</LOAD>
<PV>
<status>Idle</status>
<currentPower>0.0</currentPower>
</PV>
<connections>
<connection>
<from>GRID</from>
<to>Load</to>
</connection>
</connections>
</siteCurrentPowerFlow>
und mittels folgenden script möchte ist das machen, funktioniert aber nicht :-(

Code: Alles auswählen

load tclrega.so

    # Daten von SE holen
    # ==================

    set url "https://monitoringapi.solaredge.com/site/xxxxx/currentPowerFlow.xml?api_key=xxxxxxxx"
    exec /usr/bin/wget --no-check-certificate -q -O /usr/local/addons/solaredge/currentPowerFlow.xml $url

    set f [open "/usr/local/addons/solaredge/currentPowerFlow.xml"]
    set input [read $f]
    close $f


    # Werte aus XML Datei auslesen
    # =============================

    regexp "<GRID><power>(.*?)</power></GRID>" $input dummy currentv0  ;
	regexp "<LOAD><power>(.*?)</power></LOAD>" $input dummy currentv1  ;
	regexp "<PV><power>(.*?)</power></PV>" $input dummy currentv2  ;
   
    		

    # Werte in Variable schreiben
    # =============================

    set rega_cmd ""

    append rega_cmd "var w0 = dom.GetObject('SolarEdge-Grid-CurrentPower');"
    append rega_cmd "w0.State('$currentv0');"

    append rega_cmd "var w1 = dom.GetObject('SolarEdge-Load-CurrentPower');"
    append rega_cmd "w1.State('$currentv1');"
    
    append rega_cmd "var w2 = dom.GetObject('SolarEdge-PV-CurrentPower');"
    append rega_cmd "w2.State('$currentv2');"

	
    # Daten an die CCU2 übergeben
    # =============================

    rega_script $rega_cmd
kann mir da jemand helfen? Danke
LG Tom
________________________________________________________
2 mal CCU3 (Raspberrymatic) 1 mal CCU2, 10 Lan Gateway, und ca. 180 Komponenten

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 » 04.03.2019, 20:58

Guten Abend,

ich habe mich mal wieder mit dem Thema Solarlog beschäftigt.
Ich bin noch nicht weiter gekommen, wie im November.
Daher poste ich hier mal sämtliche Screenshots die mit dem Programm zu tun haben und hoffe, dass jemand den Fehler finden kann.
Einstellung im CuxD:
cuxd-Einstellung.JPG
cuxd-Einstellung.JPG (17.98 KiB) 2040 mal betrachtet
Angelegtes CuxD Gerät:
angelegtes Gerät.JPG
angelegtes Gerät.JPG (14.02 KiB) 2040 mal betrachtet
Hier das Programm:
Programm.JPG
Hier das Script:
________________________________________________________________________________________________________________
! ***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.CUX2801001:1.CMD_SETS").State("/usr/local/addons/solarlog2.sh");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string response = dom.GetObject("CUxD.CUX2801001: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);
________________________________________________________________________________________________________________________
Hier die Variablen:
Variablen.JPG
Den Test der .sh Datei habe ich einige Beiträge vorher schonmal gepostet.
Der verlief gut und es wurden Daten ausgelesen.

Das ganze soll jetzt auf der CCU3 laufen, die ersten Versuche waren auf der CCU2. (erfolglos).
Die CCU3 ist noch ganz neu und ich nutze diese jetzt noch eine Zeitlang um die Programme ohne sep. Hardware bzw. um neue Hardware zu testen.

Ich freue mich über jede Hilfe.
Wenn Angaben fehlen, sagt mir bitte Bescheid und ich reiche sie alsbald nach.

Vielen Dank!!!
Gruß Stefan

Derzeit verbaut

Homematic Funk, wired und IP

videospezi
Beiträge: 27
Registriert: 09.02.2018, 14:33
Hat sich bedankt: 2 Mal

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

Beitrag von videospezi » 15.07.2019, 20:41

Hallo zusammen,

ich habe eine kurze Frage: Habe seit längerer Zeit das Solar Log Skript am laufen. Alles lief bisher ohne Probleme.
Habe gestern ein Update auf die neueste Version der Raspberry Matic 3.47.10.20190713 gemacht. Seit gestern sind die Werte in meinen
Anzeige leider leer.
Hat noch jemand das Problem?
Wollte zuerst mal im Forum nachfragen bevor ich wieder auf die vorletzte Version runter gehe.

Vielen Dank
zur Zeit im Einsatz: Raspi 3 als "Zentrale", Raspi 2 als HM Gateway, HM-Ip Raumthermostate, IP Fensterkontakte, Rolladensteuerung, CUxD,

chriwi
Beiträge: 77
Registriert: 20.12.2019, 16:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal

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

Beitrag von chriwi » 20.12.2019, 17:03

Hallo zusammen,

ich habe diesen Artikel von vorne bis hinten durchgearbeitet und bin auch nicht ganz unerfahren, was HomeMatic betrifft (siehe Signatur).

Ich kann die Daten von meinen Solarlog Base wie gewünscht per Shellskript abholen. Der Base ist sehr neu, hat aber die gleiche json Konfig wie die 200/300 Geräte
Die Systemvariablen sind gesetzt und in das HM-Programm eingebunden. CUxD Gerät überprüft.
CCU auch mehrfach neu gestartet.

Leider - wie beim Vorredner - bleiben die Systemvariablen aktuell noch leer bzw. auf 0.

Wie würdet ihr in der Fehleranalyse vorgehen?

Danke & Grüße, Chris
Dateianhänge
Bildschirmfoto 2019-12-20 um 16.59.49.png
Raspberry Pi 4 auf Bookworm mit Homebridge und HomeMatic 3.75.7 (piVCCU3, RPI-RF-MOD)
Homematic-HAP
HmIP-PSM, HmIP-PS, HmIP-PS-2 x2, HmIP-BSM x3, HmIP-BROLL x17, HmIP-WTH2, HmIP-STH, HmIP-SWDO, HmIP-SWSD x3, HmIP-WRC6, HmIP-SWDM-2 x2, HmIP-SCTH230
Garagentor (HMIP-SWDO, HM-LC-Sw1-Pl-CT-R1)
Solar-log Base 15, FW 6.0.2
Nuki 3 Pro
IKEA Tradfi (Licht, ShortButton -> Garagentor)
HM-pdetect mit Fritzbox-Config (Anwesenheit)

Antworten

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