Fronius PV Anlage auslesen
Moderator: Co-Administratoren
-
- Beiträge: 9655
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: Fronius PV Anlage auslesen
1. Laufzeit messen
2. Sicherstellen dass ein Ausfall von Router, Internet, Website nicht zum blockieren des Skript führt
3. Schlüsse ziehen, Sicherheits Puffer einbauen, testen
2. Sicherstellen dass ein Ausfall von Router, Internet, Website nicht zum blockieren des Skript führt
3. Schlüsse ziehen, Sicherheits Puffer einbauen, testen
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 +++
Re: Fronius PV Anlage auslesen
Auf der RaspberryMatic läuft das Script hier alle acht Sekunden. Alles stabil.
Viele Grüße
Jens
Viele Grüße
Jens
-
- Beiträge: 128
- Registriert: 04.11.2015, 22:03
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 5 Mal
Re: Fronius PV Anlage auslesen
Ich hätte auch an so etwas von 5-10 Sekunden gedacht.
Wie messe ich die Laufzeit?
Wie messe ich die Laufzeit?
-
- Beiträge: 9655
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: Fronius PV Anlage auslesen
Füge vor der ersten Zeile des Skript ein:
Code: Alles auswählen
var Start = localtime;
Code: Alles auswählen
WriteLine ( (localtime.ToInteger() - Start.ToInteger()) # " Sekunden Laufzeit");
Zuletzt geändert von MichaelN am 20.06.2022, 11:25, insgesamt 1-mal geändert.
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: 128
- Registriert: 04.11.2015, 22:03
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 5 Mal
Re: Fronius PV Anlage auslesen
Ok, da hätt ich auch selbst drauf kommen können - ist halt aber nur auf ganze Sekunden genau. Jedenfalls kommt 0 raus, sollte also kein Problem in kurzem Intervall sein.
Abgesehen davon dass diese Ausführung jetzt wirklich nicht lange dauert: stimmt es dass die CCU immer nur ein Script gleichzeitig ausführen kann?
Noch eine andere Frage abseits des Themas, aber passend zur deinem Beitrag mit der Zeitmessung:
was ist der Unterschied zwischen folgenden Zeitabfragen:
?
Abgesehen davon dass diese Ausführung jetzt wirklich nicht lange dauert: stimmt es dass die CCU immer nur ein Script gleichzeitig ausführen kann?
Noch eine andere Frage abseits des Themas, aber passend zur deinem Beitrag mit der Zeitmessung:
was ist der Unterschied zwischen folgenden Zeitabfragen:
Code: Alles auswählen
var Zeit = localtime;
var Zeit = currenttime;
var Zeit = system.Date().ToTime();
Re: Fronius PV Anlage auslesen
Hallo,
dieser Thread ist genau das was ich suche. Leider kann ich die Abläufe zum Verarbeiten der Abfrageparameter nicht nachvollziehen (bin eben ein "Greenhorn"). Doch der Reihe nach:
> Ausstattung: Fronius SYMO GEN 24 Plus 8 + Smartmeter TS 65A-3 (Smartmeter wird erst in den nächsten Tagen installiert)
> JSON-Schnittstelle ist in der Fronius-Software freigegeben
> CUxD mit Gerät ist in der CCU3 eingerichtet
> die benötigen Systemvariablen sind angelegt (werden aber noch nicht gefüllt, weil Smartmeter noch fehlt)
Nun meine Fragen:
1. Benötige ich zum Anzeigen und Verarbeiten der Fronius-Parameter außer dem "Abfrage-Skript" auch das JSON-Skript (wenn ja, wie wird es
eingebunden)?
2. Kann ich die angelegten Systemvariablen für Programme nutzen, sobald sie "gefüllt" sind?
3. Wofür wird die Abfrage "http://<IP>/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System" genutzt? (die liefert jetzt schon Daten)
4. Hat jemand Erfahrung mit dem "I/O Leistungsmanagement" im Fronius-Wechselrichter (evtl. auch andere Quellen)?
Der Thread befasst sich hauptsächlich mit den Skripten, die mir aber Probleme bereiten. Außerdem fehlt mir leider die praktische Umsetzung in entsprechende Programmabfragen und -verarbeitungen.
Ich hoffe auf eure Schützenhilfe und bedanke mich schon jetzt!
Gruß Norbert
dieser Thread ist genau das was ich suche. Leider kann ich die Abläufe zum Verarbeiten der Abfrageparameter nicht nachvollziehen (bin eben ein "Greenhorn"). Doch der Reihe nach:
> Ausstattung: Fronius SYMO GEN 24 Plus 8 + Smartmeter TS 65A-3 (Smartmeter wird erst in den nächsten Tagen installiert)
> JSON-Schnittstelle ist in der Fronius-Software freigegeben
> CUxD mit Gerät ist in der CCU3 eingerichtet
> die benötigen Systemvariablen sind angelegt (werden aber noch nicht gefüllt, weil Smartmeter noch fehlt)
Nun meine Fragen:
1. Benötige ich zum Anzeigen und Verarbeiten der Fronius-Parameter außer dem "Abfrage-Skript" auch das JSON-Skript (wenn ja, wie wird es
eingebunden)?
2. Kann ich die angelegten Systemvariablen für Programme nutzen, sobald sie "gefüllt" sind?
3. Wofür wird die Abfrage "http://<IP>/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System" genutzt? (die liefert jetzt schon Daten)
4. Hat jemand Erfahrung mit dem "I/O Leistungsmanagement" im Fronius-Wechselrichter (evtl. auch andere Quellen)?
Der Thread befasst sich hauptsächlich mit den Skripten, die mir aber Probleme bereiten. Außerdem fehlt mir leider die praktische Umsetzung in entsprechende Programmabfragen und -verarbeitungen.
Ich hoffe auf eure Schützenhilfe und bedanke mich schon jetzt!
Gruß Norbert
-
- Beiträge: 9655
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: Fronius PV Anlage auslesen
1. Entweder das spezifische Fronius Skript, um das es hier ursprünglich ging. Wobei ich nicht weiß ob es nun funktional ist oder nicht. Oder das allgemeine JSON Skript.
2. Natürlich
2. Natürlich
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: 280
- Registriert: 16.05.2018, 22:54
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 5 Mal
Re: Fronius PV Anlage auslesen
Hallo zusammen,
hab das Skript gerade auch auf meiner CCU3 implementiert:
Bei mir wird der Wert "Var_PV_Netzbezug" nicht aktualisiert. Hat mir jemand einen Tip?
Gruß
Michael
hab das Skript gerade auch auf meiner CCU3 implementiert:
Code: Alles auswählen
!Dietmar's Version V1.1 21.01.2021 der Ursprungsversion von ldittmar https://homematic-forum.de/forum/viewtopic.php?f=31&t=24675&hilit=fronius#p212221
!-----------------------------------------------------------------------------
! Hier alle was man verändern kann/muss
! Voraussetzung: CUxD und Fronius Symo Wechselrichter mit Fronius SmartMeter
!-----------------------------------------------------------------------------
var froniusIP = "192.168.180.68"; !IP des Fronius Wechselrichters
var deviceID = "1"; !Device ID (wird meistens stimmen, wenn nicht ausprobieren)
var CUxD_Device = "CUxD.CUX2801001:1"; !CUxD Virtuelles Gerät
string variable_verbrauch = "Var_PV_Verbrauch"; !Name der Variabel für den Verbrauch
string variable_erzeugung = "Var_PV_Erzeugung"; !Name der Variabel für die Erzeugung
string variable_einspeisung = "Var_PV_Einspeisung"; !Name der Variabel für den Einspeisung
string variable_netzbezug = "Var_PV_Netzbezug"; !Name der Variabel für den Netzbezug
string variable_soc = "Var_PV_Batterie_SoC"; !Name der Variabel für den Batterie - Ladestand
string variable_ladung = "Var_PV_Batterie_Ladung"; !Name der Variabel für die Batterie Ladeleistung
string variable_entladung = "Var_PV_Batterie_Entladung"; !Name der Variabel für die Batterie Entladeleistung
!-----------------------------------------------------------------------------
! Ab hier muss man nichts mehr beachten
!-----------------------------------------------------------------------------
string pos1;
string pos2 = ",";
string pos3 = ":";
real wertVerbrauch;
real wertErzeugung;
real wertNetzfluss;
real wertSoC;
real wertBatteriefluss;
integer wert_pos;
var stdout;
string url = "http://" + froniusIP + "/solar_api/v1/";
string flussParam="GetPowerFlowRealtimeData.fcgi?Scope=System";
!-----------------------------------------------------------------------------
! Aktueller Verbrauch in [W]
!-----------------------------------------------------------------------------
dom.GetObject(CUxD_Device + ".CMD_SETS").State("wget -q -O - " + url + flussParam);
dom.GetObject(CUxD_Device + ".CMD_QUERY_RET").State(1);
stdout = dom.GetObject(CUxD_Device + ".CMD_RETS").State();
pos1 = "\"P_Load\" :";
wert_pos = stdout.Find(pos1) + pos1.Length();
wertVerbrauch = stdout.Substr(wert_pos,20).StrValueByIndex(pos2,0);
dom.GetObject(variable_verbrauch).State(wertVerbrauch.ToInteger() * -1);
!-----------------------------------------------------------------------------
! Aktuell wird erzeugt in [W]
!-----------------------------------------------------------------------------
pos1 = "\"P_PV\" :";
wert_pos = stdout.Find(pos1) + pos1.Length();
wertErzeugung = stdout.Substr(wert_pos,20).StrValueByIndex(pos2,0);
dom.GetObject(variable_erzeugung).State(wertErzeugung.ToInteger());
!-----------------------------------------------------------------------------
! Netzfluss auslesen eingespeist(negativ)/bezogen(positiv) in [W]
!-----------------------------------------------------------------------------
pos1 = "\"P_Grid\" :";
wert_pos = stdout.Find(pos1) + pos1.Length();
wertNetzfluss = stdout.Substr(wert_pos,20).StrValueByIndex(pos2,0);
!-----------------------------------------------------------------------------
! Wenn Netzfluss ist negativ, dann als positive Einspeisungs-Wert in Watt Speichern, sonst als Netzbezug
!-----------------------------------------------------------------------------
if(wertNetzfluss.ToInteger() < 0)
{dom.GetObject(variable_einspeisung).State(wertNetzfluss.ToInteger()*-1);
dom.GetObject(variable_netzbezug).State(0);}
else
{dom.GetObject(variable_netzbezug).Variable(wertNetzfluss.ToInteger()*1);
dom.GetObject(variable_einspeisung).State(0);}
!-----------------------------------------------------------------------------
! Batterie SoC auslesen in [W]
!-----------------------------------------------------------------------------
pos1 = "\"SOC\" :";
wert_pos = stdout.Find(pos1) + pos1.Length();
wertSoC = stdout.Substr(wert_pos,20).StrValueByIndex(pos2,0);
dom.GetObject(variable_soc).State(wertSoC.ToInteger());
!-----------------------------------------------------------------------------
! Batterie Strom auslesen in [W]
!-----------------------------------------------------------------------------
pos1 = "\"P_Akku\" :";
wert_pos = stdout.Find(pos1) + pos1.Length();
wertBatteriefluss = stdout.Substr(wert_pos,20).StrValueByIndex(pos2,0);
!-----------------------------------------------------------------------------
! Wenn Batteriefluss negativ ist, dann als positiven Entladungs-Wert in Watt Speichern, sonst als Ladewert
!-----------------------------------------------------------------------------
if(wertBatteriefluss.ToInteger()<0)
{dom.GetObject(variable_ladung).State(wertBatteriefluss.ToInteger()*-1 );
dom.GetObject(variable_entladung).State(0);}
else
{dom.GetObject(variable_entladung).State(wertBatteriefluss.ToInteger()*1);
dom.GetObject(variable_ladung).State(0);};
Gruß
Michael
-
- Beiträge: 9655
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: Fronius PV Anlage auslesen
Ersetze
durch
Code: Alles auswählen
.Variable
Code: Alles auswählen
.State
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: 280
- Registriert: 16.05.2018, 22:54
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 5 Mal