This project offers documentation in multiple languages. Choose the one you need:
During the development of our previous Device Data Report Project we identified a strong need for improved local control.As a response, the team created the IoT framework ZenSDK and is now opening the Local API to help developers achieve:
- Real-time device status & property retrieval
- Event stream subscription
- Remote function control
- Integration of third-party MQTT clients (including Home Assistant)
- Custom feature development through open APIs to enhance user experience
Have an innovative idea for Zendure products? Feel free to reach out!
Model | Firmware Version | Status |
---|---|---|
SolarFlow800 | Latest | |
SolarFlow800 Pro | Latest | |
SolarFlow2400 AC | Latest | |
SmartMeter3CT | Latest | |
(More coming soon) | – |
Local control is achieved via a combination of mDNS service discovery and HTTP server communication:
After connecting to the network, the device broadcasts its service information through mDNS:
- Service name:
Zendure-<Model>-<Last12MAC>
(e.g.Zendure-SolarFlow800-WOB1NHMAMXXXXX3
) - IP address
- HTTP service port
Clients on the same LAN can listen for these broadcasts to automatically discover devices.
Each device hosts an internal HTTP server.
Method | Purpose | Example |
---|---|---|
GET |
Query device status/properties | GET /properties/report (all properties) |
POST |
Send control/config commands | POST /properties/write (set properties) |
- GET: No body, response in JSON.
- POST: JSON body must include device serial number
sn
(required).
GET /properties/report
POST /properties/write
Content-Type: application/json
{
"sn": "WOB1NHMAMXXXXX3", // Required
"properties": {
"acMode": 2 // Writable property
}
}
GET /rpc?method=HA.Mqtt.GetStatus
GET /rpc?method=HA.Mqtt.GetConfig
POST /rpc
Content-Type: application/json
{
"sn": "WOB1NHMAMXXXXX3",
"method": "HA.Mqtt.SetConfig",
"params": {
"config": {
"enable": true,
"server": "192.168.50.48",
"port":1883,
"protocol":"mqtt",
"username": "zendure",
"password": "zendure"
}
}
}
OS | Command example | Description |
---|---|---|
Windows | Get-Service | Where-Object { $_.Name -like "*Bonjour*" } |
Check Bonjour service |
macOS | dns-sd -B _zendure._tcp |
Browse Zendure devices |
Linux | avahi-browse -r _zendure._tcp |
Discover _zendure._tcp services |
# Get all properties
curl -X GET "http://<device-ip>/properties/report"
# Query MQTT status
curl -X GET "http://<device-ip>/rpc?method=HA.Mqtt.GetStatus"
# Set acMode property
curl -X POST "http://<device-ip>/properties/write" \
-H "Content-Type: application/json" \
-d '{"sn": "your_device_sn", "properties": { "acMode": 2 }}'
Detailed property definitions for each product: SolarFlow Series Property Doc