Fronius PV Anlage auslesen

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
ihno
Beiträge: 216
Registriert: 02.12.2012, 11:19
Hat sich bedankt: 22 Mal
Danksagung erhalten: 10 Mal

Re: Fronius PV Anlage auslesen

Beitrag von ihno » 22.10.2020, 16:30

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 !
Zuletzt geändert von ihno am 22.10.2020, 21:43, insgesamt 1-mal geändert.
cu Ihno

RaspberryMatic x64 3.59.6.20210807 auf Raspberry 3b - über 200 Kanäle in über 100 Geräten und 18 CUxD-Kanäle in 3 CUxD-Geräten
Weatherman 1 wm2_12_1, Rainyman 159, ioBroker

Benutzeravatar
ihno
Beiträge: 216
Registriert: 02.12.2012, 11:19
Hat sich bedankt: 22 Mal
Danksagung erhalten: 10 Mal

Re: Fronius PV Anlage auslesen

Beitrag von ihno » 22.10.2020, 20:07

christian.mann88 hat geschrieben:
12.06.2020, 16:32
Hallo 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
Moin,

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

RaspberryMatic x64 3.59.6.20210807 auf Raspberry 3b - über 200 Kanäle in über 100 Geräten und 18 CUxD-Kanäle in 3 CUxD-Geräten
Weatherman 1 wm2_12_1, Rainyman 159, ioBroker

qwertz
Beiträge: 227
Registriert: 15.02.2012, 19:35
Hat sich bedankt: 4 Mal
Danksagung erhalten: 12 Mal

Re: Fronius PV Anlage auslesen

Beitrag von qwertz » 07.11.2020, 10:38

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

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

flintstone99
Beiträge: 2
Registriert: 28.01.2021, 20:29
System: CCU

Re: Fronius PV Anlage auslesen

Beitrag von flintstone99 » 28.01.2021, 20:38

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
GetPowerFlowRealtimeData.JPG
Hier mein Skript:
Fronius Daten Script.txt
(4.97 KiB) 62-mal heruntergeladen
Leider wird für SoC in der Homematic nichts angezeigt. Irgendeine Idee?
Gruß
Dietmar

flintstone99
Beiträge: 2
Registriert: 28.01.2021, 20:29
System: CCU

Re: Fronius PV Anlage auslesen

Beitrag von flintstone99 » 29.01.2021, 18:00

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
Dateianhänge
Fronius Daten Script V1.1 29.01.2021.txt
(4.98 KiB) 161-mal heruntergeladen

klexi58
Beiträge: 6
Registriert: 22.05.2019, 07:57

Re: Fronius PV Anlage auslesen

Beitrag von klexi58 » 01.02.2021, 09:36

Das Script funktioniert mit Fronius Symo und BYD Batterie einwandfrei
Danke Danke.

andiwalter
Beiträge: 3
Registriert: 28.02.2020, 16:00

Re: Fronius PV Anlage auslesen

Beitrag von andiwalter » 16.03.2021, 16:45

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


Gruß
Andreas
Dateianhänge
fronius.jpg

Icefeldt
Beiträge: 14
Registriert: 28.11.2017, 22:01

Re: Fronius PV Anlage auslesen

Beitrag von Icefeldt » 09.04.2021, 10:54

über welchen Link zum Wechselrichter hast du denn die Seite mit dieser Info aufgerufen?

Icefeldt
Beiträge: 14
Registriert: 28.11.2017, 22:01

Re: Fronius PV Anlage auslesen

Beitrag von Icefeldt » 09.04.2021, 11:23

nape1 hat geschrieben:
29.12.2018, 12:41
Hallo grüss euch,

Falls von euch noch jemand das skript nutzt hätte ich eine frage,

Bei mir werden die Variablen nicht automatisch befüllt , erst wen ich sie aktualisiere werden sie neu befüllt ,doch der Zeitstempel beleit der alte.

Danke für jede hilfe.
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)}};
Zeitstempel wird gesetzt und auch aktualisiert sich der Wert auf der Anzeigeseite automatisch

schwgu
Beiträge: 90
Registriert: 01.01.2015, 12:21

Re: Fronius PV Anlage auslesen

Beitrag von schwgu » 31.07.2021, 20:14

flintstone99 hat geschrieben:
29.01.2021, 18:00
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
Guten Abend,
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

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“