Fronius Wechselrichter per HTTPMOD

Begonnen von simonberry, 16 Juni 2014, 15:30:33

Vorheriges Thema - Nächstes Thema

amenomade

Das packst Du in einem at oder in einem DOIF, und setzt damit ein Reading mit der Summe

Was soll das bedeuten:
ZitatHab jetzt mal via DOIF schon rumgespielt:

setreading at PV_Info_Gesamt {([Fronius1:Body_Data_DAY_ENERGY_Value]+[Fronius2:Body_Data_DAY_ENERGY_Value])}
? Ist das ein at oder ein DOIF
Wie sieht denn dein DOIF aus ("list" davon)?

DOIF:
([00:05])
    (setreading $SELF PV_Info_Gesamt ([Fronius1:Body_Data_DAY_ENERGY_Value]+[Fronius2:Body_Data_DAY_ENERGY_Value]))
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Shadow3561

Warum nutzt du nicht das Fronius ModBus Modul?

https://forum.fhem.de/index.php/topic,46685.0.html

Mit freundlichen Grüßen

daniN

Hallo Shadow3561,

ich hab mir das mal angesehen. Macht das einen Unterschied welche Ergebnisse ich bekomme?

Wenn das Ergebnis das gleiche ist, bleibt mein Problem mit den einzelnen Werten die ich summieren möchte :D

Gruß Daniel

Shadow3561

Hallo,
Wenn die WR über RS485 verbunden sind dann geben dir dir die Modbus Register die Erzeugung von allen WR summiert aus.



500   501   2   R   0x03   F_Site_Power   Total power (site sum) of all connected inverters.   uint32   W
502   505   4   R   0x03   F_Site_Energy_Day   Total energy for current day of all connected inverters.   uint64   Wh
506   509   4   R   0x03   F_Site_Energy_Year   Total energy for last year of all connected inverters.   uint64   Wh
510   513   4   R   0x03   F_Site_Energy_Total   Total energy of all connected inverters.   uint64   Wh

Mit freundlichen Grüßen

Tronde

Zitat von: DaRealDan am 22 Juli 2017, 20:13:14
define PVAnlageAkt HTTPMOD http://192.XXX.XXX.XXX/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData 300
attr PVAnlageAkt userattr reading1Name reading1Regex reading2Name reading2Regex reading3Name reading3Regex reading4Name reading4Regex reading5Name reading5Regex reading6Name reading6Regex reading7Name reading7Regex reading8Name reading8Regex reading9Name reading9Regex
attr PVAnlageAkt group Messen
attr PVAnlageAkt icon measure_photovoltaic_inst
attr PVAnlageAkt reading1Name DAY_ENERGY
attr PVAnlageAkt reading1Regex "DAY_ENERGY"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
attr PVAnlageAkt reading2Name TOTAL_ENERGY
attr PVAnlageAkt reading2Regex "TOTAL_ENERGY"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
attr PVAnlageAkt reading3Name YEAR_ENERGY
attr PVAnlageAkt reading3Regex "YEAR_ENERGY"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
attr PVAnlageAkt reading4Name FAC
attr PVAnlageAkt reading4Regex "FAC"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
attr PVAnlageAkt reading5Name IAC
attr PVAnlageAkt reading5Regex "IAC"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
attr PVAnlageAkt reading6Name IDC
attr PVAnlageAkt reading6Regex "IDC"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
attr PVAnlageAkt reading7Name PAC
attr PVAnlageAkt reading7Regex "PAC"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
attr PVAnlageAkt reading8Name UAC
attr PVAnlageAkt reading8Regex "UAC"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
attr PVAnlageAkt reading9Name UDC
attr PVAnlageAkt reading9Regex "UDC"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
attr PVAnlageAkt room Strom
attr PVAnlageAkt stateFormat {sprintf("Aktuelle Erzeugung: %d kw", ReadingsVal($name,"PAC",0))}\


Hallo,

ich glaube in der letzten Zeile des obigen Code-Blocks hat sich ein Tippfehler eingeschlichen. Hier wird als Einheit kW (Kilowatt) verwendet. Die richtige Einheit ist nach meiner Beobachtung jedoch W (Watt).

Vielen Dank an DaRealDan und simonberry! Dass ihr eure Lösungen hier vorgestellt habt, hat mir sehr geholfen.  :D

Vielen Dank
Tronde

Heinz1973

Ja ebenfalls Danke von  mir hat mir sehr geholfen. Man kann die Antwort auch direkt mit dem JSON support von HTTPMOD parsen, dann sieht es so aus (https://wiki.fhem.de/wiki/HTTPMOD#Parsing_JSON):

Zitat
define FroniusCommon HTTPMOD http://fronius.fritz.box/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData 30
attr FroniusCommon userattr reading1Name reading1Regex reading2Name reading2Regex reading3Name reading3Regex reading4Name reading4JSON reading5Name reading5JSON reading6Name reading6JSON reading7Name reading7JSON reading8Name reading8JSON reading9Name reading9JSON reading10Name reading10JSON reading11Name reading11JSON reading12Name reading12JSON reading13Name reading13JSON
attr FroniusCommon group Solar
attr FroniusCommon alias FroniusSymo
attr FroniusCommon icon measure_photovoltaic_inst
attr FroniusCommon room Solar
# DAY_ENERGY in Wh
attr FroniusCommon reading1Name DAY_ENERGY
attr FroniusCommon reading1Regex "DAY_ENERGY"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
# TOTAL_ENERGY in Wh
attr FroniusCommon reading2Name TOTAL_ENERGY
attr FroniusCommon reading2Regex "TOTAL_ENERGY"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
# YEAR_ENERGY in Wh
attr FroniusCommon reading3Name YEAR_ENERGY
attr FroniusCommon reading3Regex "YEAR_ENERGY"[:{\n\t ]+"Unit"[ : \t]+["a-zA-Z",]+[ \n\t ]+"Value"[ : \t]+([\d\.]+)
# FAC in Hz
attr FroniusCommon reading4Name FAC
attr FroniusCommon reading4JSON Body_Data_FAC_Value
# IAC in A
attr FroniusCommon reading5Name IAC
attr FroniusCommon reading5JSON Body_Data_IAC_Value
# IDC in A
attr FroniusCommon reading6Name IDC
attr FroniusCommon reading6JSON Body_Data_IDC_Value
# PAC in W
attr FroniusCommon reading7Name PAC
attr FroniusCommon reading7JSON Body_Data_PAC_Value
# UAC in V
attr FroniusCommon reading8Name UAC
attr FroniusCommon reading8JSON Body_Data_UAC_Value
# UDC in V
attr FroniusCommon reading9Name UDC
attr FroniusCommon reading9JSON Body_Data_UDC_Value

# DeviceStatus
attr FroniusCommon reading10Name ErrorCode
attr FroniusCommon reading10JSON Body_Data_DeviceStatus_ErrorCode
attr FroniusCommon reading11Name LEDColor
attr FroniusCommon reading11JSON Body_Data_DeviceStatus_LEDColor
attr FroniusCommon reading12Name LEDState
attr FroniusCommon reading12JSON Body_Data_DeviceStatus_LEDState
attr FroniusCommon reading13Name StatusCode
attr FroniusCommon reading13JSON Body_Data_DeviceStatus_StatusCode

attr FroniusCommon stateFormat {sprintf("PAC: %d W", ReadingsVal($name,"PAC",0))}\


Heinz1973

Hier noch ein Beispiel wie man aktuelle Leistung, Eigenverbrauch und Einspeisung abgreifen kann:


define FroniusPowerFlow HTTPMOD http://fronius.fritz.box/solar_api/v1/GetPowerFlowRealtimeData.fcgi 10
attr FroniusPowerFlow userattr reading1Name reading1JSON
attr FroniusPowerFlow alias FroniusPowerFlow
attr FroniusPowerFlow extractAllJSON 1
attr FroniusPowerFlow group Solar
attr FroniusPowerFlow icon measure_power
attr FroniusPowerFlow room Solar
attr FroniusPowerFlow stateFormat {sprintf("PV-Anlage %d W: Eigenverbrauch %d W - Einspeisung %d W (Anteil %d %%)",\
    ReadingsVal($name,"Body_Data_Site_P_PV",0),\
    abs(ReadingsVal($name,"Body_Data_Site_P_Load",0)),\
    abs(ReadingsVal($name,"Body_Data_Site_P_Grid",0)),\
    ReadingsVal($name,"Body_Data_Site_rel_SelfConsumption",1)\
    )}


Alpha_DE

Ich habe hier einen Fronius Datalogger Web (Platinenversion, 1.4A, Softwareversion    2.0.5-4).

Erstmal danke für die vielen Anregungen hier, da ist wohl trotz der 2er Software eine "alte" Api drin, ich bekomme die Readings mit

defmod PV_Anlage HTTPMOD http://ip.des.data.loggers/solar_api/GetInverterRealtimeData.cgi?Scope=Device&DeviceIndex=1&DataCollection=CommonInverterData 30
attr PV_Anlage userattr Body_Data_PAC_Value
attr PV_Anlage extractAllJSON 1
attr PV_Anlage stateFormat {sprintf("%d %s", ReadingsVal($name,"Body_Data_PAC_Value",0),ReadingsVal($name,"Body_Data_PAC_Unit",0))}

AbeamStart

Hallo,
wie schaut es denn bei euch Nachts aus? Bei mir liefert der WR dann keine Werte mehr und mein Log wird zugemüllt:
2022.03.22 21:01:02 3: Wechselrichter2: Read callback: Error: read from http://192.168.1.9:80 timed out
2022.03.22 21:01:02 3: Wechselrichter1: Read callback: Error: read from http://192.168.1.9:80 timed out

Wie habt ihr das gelöst?
FHEM auf Debian (VM)

PatrickR

lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

breitbanddilettant

Hallo zusammen,

ich würde gerne HTTPMOD nutzen, um bei meinem Symo Gen24 automatisiert die String Spannung kurzzeitig zu ändern. Eine Kurzbeschreibung des Ablaufes wäre:

- morgens um ca. 8Uhr auf dem Wechselrichter (http://x.x.x.x/#/dashboard) mit dem Techniker Account einloggen
- auf http://x.x.x.x/#/inverter wechseln und dort die String Spannung auf fix und 80V stellen
- nach 10sek die String Spannung wieder auf Auto stellen.

Ist HTTPMOD hierfür das richtige? Oder gibt es vielleicht noch eine einfacherer Methode diesen festen Ablauf automatisiert in FHEM zu implementieren?

Danke und schöne Grüße