Tja, wenn da auch "null" steht liegt das wohl am Wechselrichter. Alle Werte die hier ausgespuckt werden, kann man auch ins openHAB bringen. Wie gesagt, ich mache das mit dem http-Binding. Das muss natürlich installiert sein.
-Hinzufügen eines http Things, das sieht bei mir so aus, das musst du natürlich auf deine IP ändern:
Bild_2022-11-02_142405238.png
Dann habe ich zu jedem Wert aus dem Wechselrichter einen Channel, da kannst du dir dann die entsprechenden Werte per JSON rausholen:
Bild_2022-11-02_142529170.png
Bild_2022-11-02_142603632.png
So sieht der code dazu aus:
Code: Alles auswählen
UID: http:url:c_fronius_h
label: Fronius Hybrid
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: http://192.168.2.109/solar_api/v1/
delay: 0
stateMethod: GET
refresh: 60
commandMethod: GET
timeout: 15000
bufferSize: 2048
location: Keller
channels:
- id: fronius_h_grid
channelTypeUID: http:number
label: PV_Grid
description: ""
configuration:
mode: READWRITE
unit: W
stateExtension: GetPowerFlowRealtimeData.fcgi?Scope=System
stateTransformation: JSONPATH:$.Body.Data.Site.P_Grid
- id: fronius_h_akku_SOC
channelTypeUID: http:number
label: Akku SOC
description: null
configuration:
mode: READWRITE
unit: "%"
stateExtension: GetStorageRealtimeData.cgi?Scope=System
stateTransformation: JSONPATH:$.Body.Data.0.Controller.StateOfCharge_Relative
- id: fronius_h_akku_V
channelTypeUID: http:number
label: Akku Spannung
description: null
configuration:
mode: READONLY
unit: V
stateExtension: GetStorageRealtimeData.cgi?Scope=System
stateTransformation: JSONPATH:$.Body.Data.0.Controller.Voltage_DC
- id: fronius_h_akku_Temp
channelTypeUID: http:number
label: Akku Temperatur
description: null
configuration:
mode: READONLY
unit: °C
stateExtension: GetStorageRealtimeData.cgi?Scope=System
stateTransformation: JSONPATH:$.Body.Data.0.Controller.Temperature_Cell
- id: fronius_h_meter_Z1
channelTypeUID: http:number
label: Fronius Zähler Haupt
description: null
configuration:
mode: READWRITE
unit: W
stateExtension: GetMeterRealtimeData.cgi?Scope=System
stateTransformation: JSONPATH:$.Body.Data.0.PowerReal_P_Sum
- id: fronius_h_meter_Z2
channelTypeUID: http:number
label: Fronius Zähler Kaskade
description: null
configuration:
mode: READWRITE
stateExtension: GetMeterRealtimeData.cgi?Scope=System
stateTransformation: JSONPATH:$.Body.Data.1.PowerReal_P_Sum
- id: fronius_h_p_akku
channelTypeUID: http:number
label: PV_Akku
description: ""
configuration:
stateExtension: GetPowerFlowRealtimeData.fcgi?Scope=System
stateTransformation: JSONPATH:$.Body.Data.Site.P_Akku∩JS:null.js
unit: W
- id: fronius_h_p_pv
channelTypeUID: http:number
label: PV_Haus
description: ""
configuration:
stateExtension: GetPowerFlowRealtimeData.fcgi?Scope=System
stateTransformation: JSONPATH:$.Body.Data.Site.P_PV∩JS:null.js
unit: W
- id: fronius_h_akku_stat
channelTypeUID: http:string
label: Akku Status
description: null
configuration:
mode: READWRITE
stateExtension: GetPowerFlowRealtimeData.fcgi?Scope=System
stateTransformation: JSONPATH:$.Body.Data.Inverters.1.Battery_Mode
Es geht aber auch etwas eleganter. Im Grunde brauchst du nicht so viele Channels, sondern nur da, wo sich die "stateExtension:" unterscheiden, also z.B.:
GetPowerFlowRealtimeData.fcgi?Scope=System
GetStorageRealtimeData.cgi?Scope=System
GetMeterRealtimeData.cgi?Scope=System
Und dann kannst du einen Channel auch mit mehreren Items verbinden, und dort mit unterschiedlichen "stateTransformation:" wie z.B. "JSONPATH:$.Body.Data.0.Controller.StateOfCharge_Relative" verlinken.
Ich hoffe das war verständlich.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.