This project is an ioBroker Adapter to read data from the Zendure Solarflow Cloud API. It uses the official API provided by Zendure. You can read more about the API here: https://github.com/Zendure/developer-device-data-report
- Get all telemetry data from your Solarflow devices, also those not visible in the offical app - like battery voltage
- Control your Solarflow HUB like in the offical app. Most of the settings are available.
- Control the output limit - you are not limited to use a Shelly Pro EM to realize a zero feed-in. You can also design more complex scenarios via script or blockly in ioBroker.
- Stop input if one battery drops into low voltage (battery protect). Works only when setting the output limit via the adapter
- Control more than one Solarflow at the same time!
- Get more precise calculations!
- Works with all Zendure SolarFlow devices: HUB1200, Hyper2000, HUB2000 and AIO! I can test only on HUB1200 as I don't own the other devices...
-
Please deactivate/uncheck all modes in the Zendure App, otherwise it is not possible to set the output limit!
-
You will be logged out of the official iOS or Android App after logging in with the ioBroker adapter. This is a normal behavior. As a workaround you can create an second Zendure account with another e-mail and grant access to your Solarflow HUB to this account. Then use the second account for ioBroker / the Zendure Solarflow adapter.
-
The Adapter will show a +10W use on battery if no solar input and device is online. This will reflect the "stand-by" usage of the device.
Credits goes to https://github.com/reinhard-brandstaedter/solarflow which helped a lot with the knowledge about the MQTT server from Zendure! Thanks!
If you find the adapter useful for you and want to support my work, feel free to donate by Paypal. Thank You!
(this is an personal Donate link for Nograx, in no relation to the ioBroker Project!)
- Add setting to perform a full charge if SOC from Zendure is greater than 50% when on low voltage
- Bugfixes
- Fix for Low Voltage Block not deactivated
- Fix some state definitions
- Improvement for 'Low Voltage Block'.
- Changed the state "hubState" a an option value.
- New option to force Solarflow device to go offline when "Low Voltage Block"-option is used.
- Improve connection retry, expand the time with every retry attempt.
- Start "restart adapter job" regardless of connection.
- Fix Hyper setInputLimit with step
- Fix missing control states for AIO
- Change login method: Added a retry loop for connecting to Zendure Cloud, if the Cloud Service "hangs" or is not available it will retry the connection 3 times.
- Fix missing states for new HUB Firmware when connected to ACE
- Fix correct max value for AIO
- Add support for Smart Plug, but only Power is available at the moment - unstable as often data is not updated by MQTT
- Some code improvements
- Fix SOC and energyWhMax Value (counted by type of attached batteries)
- Add Calculation for Grid Input (only for Ace 1500 and Hyper 2000)
- Fix suggestions by ioBroker repository checker
- Fix Input and Output limit for Hyper 2000
- Fix support for 'Hyper_Test' devices
- Improved code for state creation
- Fix controlling AC mode for Hyper 2000 (set acMode to 1: Charge by AC, 2: Output to AC)
- Show product name in channel name
- Show battery type as state in packData
- Show Hyper Temperature in States
- Set max value and step for setInputLimit
- Fix AC input value for Hyper to max. 1200W
- Fix dcSwitch and acSwitch value
- Fix acSwitch for ACE and Hyper
- Fix missing ACE 1500 when connected with HUB1200 / HUB2000
- Fix some missing states
- Add support for Hyper 2000 and ACE 1500. Maybe not all states and control parameter are available. Still need to do some investigation.
- Some minor bugfixes.
- Fix reconnect again. Adapter will now restart every 3 hours to cleanup fully.
- Tweaked recurring refresh of access token.
- Fix reconnect issue. Adapter will now restart if connection semms to be broken.
- Fix services
- Fixed reconnect when connection seems to be dead.
- Changed standby usage to 10W
- Fix issue that sometime data is not updated
- Add standby usage of HUB (20W) when solarinput is low
- Fix autoRecover datatype issue
- Minor bugfixes and improvements
- Add the possibility to connect to the 'Fallback' MQTT server known as 'Developer MQTT'. This server is read-only - so no control is possible!
- Add calculation states for solar input 1 & 2
- Add states for wifiState, hubState, pvBrand and inverseMaxPower
- Rename missleading title for input field 'Username' in settings to 'E-Mail'
- Fix energyWh, energyWhMax and SOC in calculations if "Low Voltage Check" is not used, it will set the calculation soc to 0 if minSoc (discharge limit) is reached
- Fix password input in settings
- Fix calculation for outputPackEnergy and packInputEnergy
- Trigger full telemetry update on adapter start
- Add state and control for buzzer switch
- Add state and control for bypass mode and automatic reset of bypass mode next day
- Add states for pass (Bypass on/off), autoRecover (auto-mode for Bypass next day) and passMode (current bypass mode)
- Add efficiency factor for calculations (96% charging, 92%-98%* for discharging - based on measuring from VoltAmpereLux Youtube channel - THANKS!)
- Changed calculations timeframe from 10secs to 30secs (performance related)
- Fix error "Read-only" state written without ack-flag
- Use setInterval instead of cronjob for refreshing access token
- Fix ACK on onStateChange
- Update Readme
- Fix issue that renamed devices could not be found.
- Add states for name, product name, serial ID and configured server.
- Make "energyWhMax" State writable, so you can adjust the max Value.
- Sent a warning if a device is configured for a server not in use.
- Fix calculation of soc: Set energyMaxWh to current energyWh if Zendures SOC is 100%
- Round SOC to max 1 digit after comma.
- EU server is working now.
- Fix calculation errors in log when calculation is not used
- More Debug Output
- Filter SolarFlow devices, so no other devices (e.g. SmartPlugs) will be added.
- Clear password when settings loaded, as encrypted password is loaded into input and leads to a wrong password.
- Fix calculation of "energy in batteries"
- Try to implement EU server - untested -
- Try to fix reset values at midnight
- Fix calculation timeframe
- Improve calculations
- No autocomplete on settings
- Calculations improved
- Stop energy input on low voltage is now an option in settings
- Reorganize Code
- Calculations are now optional and have to be enabled in settings
- Calculation of SOC from voltage and energy go in and out of batteries
- Stop energy feed if voltage drops under limit
- Fix Solar Input 1 and 2 from the new Zendure firmware
- Fix remaining charging time
- Fix calculations overwritten when data with 0 value comes in.
- Fix calculation error
- Add energy calculations for 'today'
- Fix minutes display bug for remaining charge and discharge time
- Fix timeout issues
- Switched solar input 1 und 2 to adjust the behavior like the offical app
- Added Calculations folder, remaining charge and discharge time is now available as formatted time
- Added a note in the settings that this adapter only works with the global server
- Add control for charge and discharge limit
- Update Readme Screenshot
- Update Readme
- Added state for both Solarflow PV inputs
- Added Timeout for axios
- Password is now encrypted. NOTE: You have to re-enter the password after adapter update!
- Adapter improvements suggested by iobroker team
- Fixed battery pack temperature (data is in kelvin, so now converting to celcius)
- Fix translationscd so
- Use 'extendObject' instead of 'setObjectNotExistsAsync'
- First official release version
- Don't stop the adapter when no login information is provided!
- Fix Typescript typos
- Get battery information
- Reset states if no new data comes in (e.g. when Hub goes offline). Currently the last value still persist when Hub goes offline, so you may have 'pseudo' data in your states.
- Initital Release, retrieving Hub data, telemetry and setting the output limit works!
- First test
MIT License
Copyright (c) 2024 Peter Frommert
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.