Zendure recently released an API for their latest generation devices, i.e. SolarFlow 800, 800Pro, 2400AC. With this API, the devices can be accessed straight through the local network, no need for a cloud connection.
The available data points are described here:
With this (and the http-Binding), an http URL thing can be set up, which polls the device data on a regular schedule, e.g.
UID: http:url:zendure-data
label: Zendure SolarFlow800Pro Data
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: http://<device-ip>/properties/report
delay: 0
stateMethod: GET
refresh: 30
commandMethod: GET
timeout: 3000
bufferSize: 2048
channels:
- id: last-failure
channelTypeUID: http:request-date-time
label: Last Failure
configuration: {}
- id: last-success
channelTypeUID: http:request-date-time
label: Last Success
configuration: {}
- id: zendure_socLevel
channelTypeUID: http:number
label: SolarFlow SOC Level
description: Battery Charge Level (%)
configuration:
stateTransformation:
- JSONPATH:$.packData[0].socLevel
- id: zendure_State
channelTypeUID: http:number
label: SolarFlow State
description: Charging/Discharging State
configuration:
stateTransformation:
- JSONPATH:$.packData[0].state
- id: zendure_outputHomePower
channelTypeUID: http:number
label: SolarFlow Output Home Power
description: Output power from SolarFlow to home electricity
configuration:
stateTransformation:
- JSONPATH:$.properties.outputHomePower
- id: zendure_solarInputPower
channelTypeUID: http:number
label: SolarFlow Solar Input Power
description: Total solar input power to SolarFlow
configuration:
stateTransformation:
- JSONPATH:$.properties.solarInputPower
- id: zendure_packInputPower
channelTypeUID: http:number
label: SolarFlow Battery Pack Input Power
description: Current Power from Battery pack (discharging)
configuration:
stateTransformation:
- JSONPATH:$.properties.packInputPower
- id: zendure_outputPackPower
channelTypeUID: http:number
label: SolarFlow Output Pack Power
description: Output power to battery pack (charging)
configuration:
stateTransformation:
- JSONPATH:$.properties.outputPackPower
- id: zendure_solarPower1
channelTypeUID: http:number
label: SolarFlow Solar Panel 1 Power
description: Solar Power from Panel 1
configuration:
stateTransformation:
- JSONPATH:$.properties.solarPower1
- id: zendure_solarPower2
channelTypeUID: http:number
label: SolarFlow Solar Panel 2 Power
description: Solar Power from Panel 2
configuration:
stateTransformation:
- JSONPATH:$.properties.solarPower2
- id: zendure_solarPower3
channelTypeUID: http:number
label: SolarFlow Solar Panel 3 Power
description: Solar Power from Panel 3
configuration:
stateTransformation:
- JSONPATH:$.properties.solarPower3
- id: zendure_solarPower4
channelTypeUID: http:number
label: SolarFlow Panel 4 Power
description: Solar Power from Panel 4
configuration:
stateTransformation:
- JSONPATH:$.properties.solarPower4
- id: zendure_minSoc
channelTypeUID: http:number
label: SolarFlow Minimum SOC level
description: Minimum charge level for battery
configuration:
stateTransformation:
- JSONPATH:$.properties.minSoc ā© JS(|input/10)
- ""
- id: zendure_socSet
channelTypeUID: http:number
label: SolarFlow Maximum SOC level
description: Maximum charge level for battery
configuration:
stateTransformation:
- JSONPATH:$.properties.socSet ā© JS(|input/10)
Data is available per battery pack (one data set per battery pack as these devices can use multiple batteries) and overall device data (for the entire system). Unfortunately, the parameters of the energy management system are not accessible yet.
Please note that the number of solar panels depend on the device (and your individual setup). SOC values are given in percentages*10, that is why a quick transformation is needed.