Fronius PV Anlage auslesen
Moderator: Co-Administratoren
- ihno
- Beiträge: 228
- Registriert: 02.12.2012, 11:19
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 10 Mal
Re: Fronius PV Anlage auslesen
Moin,
ich habe jetzt einen Fronius Symo Gen24 plus 10.0 mit BYD HVS 10.2.
Da funktioniert das Script so leider nicht.
Ich schreibe das gerade um. Im Moment stehe ich auf dem Schlauch !
Unter anderem interessiert mich die jeweilige String-Spannung.
Die 1. ist problemlos auslesbar : Find UDC klappt, bei Find UDC_1 findet er aber auch die erste Stelle.
Hat jemand eine Idee, wie ich zwischen UDC und UDC_1 unterscheiden kann ?
Edit : Ich hatte wohl einen Tippfehler... Jetzt klappt es !
ich habe jetzt einen Fronius Symo Gen24 plus 10.0 mit BYD HVS 10.2.
Da funktioniert das Script so leider nicht.
Ich schreibe das gerade um. Im Moment stehe ich auf dem Schlauch !
Unter anderem interessiert mich die jeweilige String-Spannung.
Die 1. ist problemlos auslesbar : Find UDC klappt, bei Find UDC_1 findet er aber auch die erste Stelle.
Hat jemand eine Idee, wie ich zwischen UDC und UDC_1 unterscheiden kann ?
Edit : Ich hatte wohl einen Tippfehler... Jetzt klappt es !
Zuletzt geändert von ihno am 22.10.2020, 21:43, insgesamt 1-mal geändert.
cu Ihno
Zwei RaspberryMatic auf Raspberry 3b - über 200 Kanäle in über 100 Geräten und 18 CUxD-Kanäle in 3 CUxD-Geräten
Weatherman 1, Rainyman, 2xWiffi für CO2, ioBroker, NodeRed, Fronius, Tibber
Zwei RaspberryMatic auf Raspberry 3b - über 200 Kanäle in über 100 Geräten und 18 CUxD-Kanäle in 3 CUxD-Geräten
Weatherman 1, Rainyman, 2xWiffi für CO2, ioBroker, NodeRed, Fronius, Tibber
- ihno
- Beiträge: 228
- Registriert: 02.12.2012, 11:19
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 10 Mal
Re: Fronius PV Anlage auslesen
Moin,christian.mann88 hat geschrieben: ↑12.06.2020, 16:32Hallo zusammen,
ich hätte noch eine Frage zum API des Fronius Wechselrichters. Das Script funktioniert so bei mir auch einwandfrei - herzlichen Dank an dieser Stelle.
Was mich noch interessieren würde:
Ich habe die PV-Panele in 2 Strings auf Ost/West ausgerichtet.
Meine Idee wäre, die Leistungswerte der einzelnen Strings (lassen sich am Display separat ablesen und auch mittels der App separat darstellen) als Helligkeitswert zu verwenden bzw. eben den Sonnenstand damit zu ermitteln.
zB. Sonne im Osten --> Ostfenster Rolladen zu
Sonne im Westen --> Westfenster Rolladen zu
Leistungswerte O/W ca. gleich --> Sonnenstand Mittag --> alle Rolladen zu
Meine Frage daher: lassen sich mit dem API auch die einzelnen Strings auslesen? Ich habe leider keine Dokumentation dazu gefunden.
LG Christian
auch, wenn ich das für den neuen Fronius gerade programmiere, nimm doch dafür lieber das Sonnenstandsscript : https://www.stall.biz/project/sonnenst ... sen-lampen
cu Ihno
Zwei RaspberryMatic auf Raspberry 3b - über 200 Kanäle in über 100 Geräten und 18 CUxD-Kanäle in 3 CUxD-Geräten
Weatherman 1, Rainyman, 2xWiffi für CO2, ioBroker, NodeRed, Fronius, Tibber
Zwei RaspberryMatic auf Raspberry 3b - über 200 Kanäle in über 100 Geräten und 18 CUxD-Kanäle in 3 CUxD-Geräten
Weatherman 1, Rainyman, 2xWiffi für CO2, ioBroker, NodeRed, Fronius, Tibber
-
- Beiträge: 274
- Registriert: 15.02.2012, 19:35
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 19 Mal
Re: Fronius PV Anlage auslesen
Hallo zusammen !
Vor ein paar Tagen ist mein Fronius Symo mit SmartMeter ans Netz gegangen. Ich habe für meine Zwecke das Skript von ldittmar aus Post 1 modifiziert, damit die CCU-Historian Ansicht wie im Fronius SolarWeb aussieht d.h. einzelne positive Kurven für Erzeugung, Verbrauch, Einspeisung und Netzbezug.
Besten Dank für die Vorarbeit. Am Auslesen per Skript mit Find und Substr usw. wäre ich gescheitert !
Sebastian
Vor ein paar Tagen ist mein Fronius Symo mit SmartMeter ans Netz gegangen. Ich habe für meine Zwecke das Skript von ldittmar aus Post 1 modifiziert, damit die CCU-Historian Ansicht wie im Fronius SolarWeb aussieht d.h. einzelne positive Kurven für Erzeugung, Verbrauch, Einspeisung und Netzbezug.
Besten Dank für die Vorarbeit. Am Auslesen per Skript mit Find und Substr usw. wäre ich gescheitert !
Sebastian
Code: Alles auswählen
!Modifikation 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 = "10.10.10.117"; !IP des Fronius Wechselrichters
var deviceID = "1"; !Device ID (wird meistens stimmen, wenn nicht ausprobieren)
var CUxD_Device = "CUxD.CUX2801001:4"; !CUxD Virtuelles Gerät
string variable_verbrauch = "PV_Verbrauch"; !Name der Variabel für den Verbrauch
string variable_erzeugung = "PV_Erzeugung"; !Name der Variabel für die Erzeugung
string variable_einspeisung = "PV_Einspeisung"; !Name der Variabel für den Einspeisung
string variable_netzbezug = "PV_Netzbezug"; !Name der Variabel für den Netzbezug
!-----------------------------------------------------------------------------
! Ab hier muss man nichts mehr beachten
!-----------------------------------------------------------------------------
string pos1;
string pos2 = ",";
string pos3 = ":";
real wertVerbrauch;
real wertErzeugung;
real wertNetzfluss;
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).Variable(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).Variable(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.Value() <0)
{dom.GetObject(variable_einspeisung).Variable(wertNetzfluss.ToInteger() *-1 );
dom.GetObject(variable_netzbezug).Variable(0)}
else{
{dom.GetObject(variable_netzbezug).Variable(wertNetzfluss.ToInteger());
dom.GetObject(variable_einspeisung).Variable(0)}};
-
- Beiträge: 2
- Registriert: 28.01.2021, 20:29
- System: CCU
Re: Fronius PV Anlage auslesen
Hallo qwertz,
nutze jetzt Dein Skript, funktioniert hervorragend, vielen Dank.
Ich nutze den Fronius Symo Gen24 mit einem Akku und möchte den Ladezustand auslesen. Der sollte in der Variable SOC sein Hier mein Skript:
Leider wird für SoC in der Homematic nichts angezeigt. Irgendeine Idee?
Gruß
Dietmar
nutze jetzt Dein Skript, funktioniert hervorragend, vielen Dank.
Ich nutze den Fronius Symo Gen24 mit einem Akku und möchte den Ladezustand auslesen. Der sollte in der Variable SOC sein Hier mein Skript:
Leider wird für SoC in der Homematic nichts angezeigt. Irgendeine Idee?
Gruß
Dietmar
-
- Beiträge: 2
- Registriert: 28.01.2021, 20:29
- System: CCU
Re: Fronius PV Anlage auslesen
Hallo,
Problem hat sich irgendwie von selbst gelöst, hier noch mein aktualisiertes Skript. Liest Werte von einem Fronius Symo Gen 24 mit BYD Batterie aus
Problem hat sich irgendwie von selbst gelöst, hier noch mein aktualisiertes Skript. Liest Werte von einem Fronius Symo Gen 24 mit BYD Batterie aus
- Dateianhänge
-
- Fronius Daten Script V1.1 29.01.2021.txt
- (4.98 KiB) 2017-mal heruntergeladen
Re: Fronius PV Anlage auslesen
Das Script funktioniert mit Fronius Symo und BYD Batterie einwandfrei
Danke Danke.
Danke Danke.
-
- Beiträge: 3
- Registriert: 28.02.2020, 16:00
Re: Fronius PV Anlage auslesen
Hallo zusammen, ich nutze noch das orginale Script. Was mir fehlt ist der Ertrag vom ganzen Tag.
Wäre das möglich es noch mit reinzubringen?
![Bild](fronius.jpg)
Gruß
Andreas
Wäre das möglich es noch mit reinzubringen?
![Bild](fronius.jpg)
Gruß
Andreas
-
- Beiträge: 27
- Registriert: 28.11.2017, 22:01
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Re: Fronius PV Anlage auslesen
Habe nun herausgefunden was hier der "Fehler" ist.
Man muss die Werte nicht mit
Variable() setzen, sondern mit State()
sieht bei mir also so aus:
Code: Alles auswählen
!PV Abfrage Script
!-----------------------------------------------------------------------------
! Hier alle was man verändern kann/muss
! Voraussetzung: CUxD und Fronius Symo Wechselrichter mit Fronius SmartMeter
!-----------------------------------------------------------------------------
var froniusIP = "192.168.1.7"; !IP des Fronius Wechselrichters
var deviceID = "1"; !Device ID (wird meistens stimmen, wenn nicht ausprobieren)
var CUxD_Device = "CUxD.CUX2801001:4"; !CUxD Virtuelles Gerät
string variable_verbrauch = "PV_Verbrauch"; !Name der Variabel für den Verbrauch
string variable_erzeugung = "PV_Erzeugung"; !Name der Variabel für die Erzeugung
string variable_einspeisung = "PV_Einspeisung"; !Name der Variabel für den Einspeisung
string variable_netzbezug = "PV_Netzbezug"; !Name der Variabel für den Netzbezug
!-----------------------------------------------------------------------------
! Ab hier muss man nichts mehr beachten
!-----------------------------------------------------------------------------
string pos1;
string pos2 = ",";
string pos3 = ":";
real wertVerbrauch;
real wertErzeugung;
real wertNetzfluss;
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.Value() <0)
{dom.GetObject(variable_einspeisung).State(wertNetzfluss.ToInteger() *-1 );
dom.GetObject(variable_netzbezug).State(0)}
else{
{dom.GetObject(variable_netzbezug).State(wertNetzfluss.ToInteger());
dom.GetObject(variable_einspeisung).State(0)}};
Re: Fronius PV Anlage auslesen
Guten Abend,flintstone99 hat geschrieben: ↑29.01.2021, 18:00Hallo,
Problem hat sich irgendwie von selbst gelöst, hier noch mein aktualisiertes Skript. Liest Werte von einem Fronius Symo Gen 24 mit BYD Batterie aus
hab das Script jetzt auch in Verwendung.
Das Script funktionierte gleich beim ersten Versuch,
Jetzt hätte ich gerne auch och die Daten vom Ohmpilot
Könnte bitte jemand das Script entsprechend anpassen ?
lg. schwgu