Repository navigation
[BATTERY SUPPORT] Indevolt PowerFlex/SolidFlex 2000/3000 #491
Replies: 9 comments 19 replies
|
I have a Indevolt Solidflex 3000, similar to the 2000 model, just different specs when it comes to charging and uncharging. Does that valid a separate enhancement request? |
|
I would love to request support for the Indevolt home battery systems in Omnibattery as well! Indevolt systems running the Gen-2 firmware layers (V1.01.xx for the 2000 series and V3.xx for the 3000 series) feature fully unlocked, native local OpenData protocols. You can freely toggle both local HTTP and MQTT (as well as Modbus TCP) directly within the official Indevolt app settings. Because these systems share the same unified API structure, a single driver should be able to cover the entire product family (PowerFlex 2000, SolidFlex 2000, and SolidFlex 3000). The Gen-2 local API fully supports real-time telemetry as well as bidirectional control commands (such as adjusting grid charging limits and switching operational modes), making it an excellent candidate for Omnibattery's dynamic zero-balancing and price-shifting logic. Technical Resources & References
How I Can HelpI have a SolidFlex 2000 system at home, and a SolidFlex 3000 will soon be added. I would be more than happy to:
|
|
Okay already did some more research by comparing how the Zendure / Anker drivers work and have been integrated. The basics for adding Indevolt are pretty straightforward, since it's mostly mapping of data with the local Indevolt API, but testing and finetuning to get it stable and production ready will take a few days. I am testing it on my local machine to see if I can get it up an running, will send updates here :) |
|
Hi guys! Happy to have new batteries added to Omnibattery. I always prefer if owners add their drivers to the integration since they can do all the testing on their own, but can work the other way around too. @thijskaspers if in doubt, please let me know if you need anything. I will try to get some guidelines of what is needed, as future improvement. |
|
Just a quick update: I already have the Indevolt SolidFlex 2000 running in OmniBattery. Right now I'm testing all the controls to see if everything works as intended and I'm running tests to compare the local API vs modbus TCP, to see which one is faster to react to meter changes. In order to get as good as possible net-zero, we need it to react as fast as possible within the recommended request rate limits (Indevolt recommends ≥5s between HTTP and Modbus requests, with a 1s minimum and 1s response time). I'll also compare it with Indevolt's own net-zero mode. To be continued |
|
Another update: We are running into the technicalities of the local API and Modbus TCP, which requires more testing before we can safely use it. There are things the manuals don't cover (yet). For example with Modbus: Do values get written to flash/EEPROM, or straight into RAM? If it's flash, then continuous updates could quickly become a problem if they keep rewriting the same cells.. that could wear them out into hardware failure in the long run. If it's RAM then that won't be an issue. The manual has read rate limits (>=5s recommended/1s minimum), but no mention of supported/recommended write intervals or the combined read/write budget. Right now we don't know yet if limits are per device, or per connection/protocol, and if a read immediately after a write count against the budget.. For example, if 2 second telemetry with 5-second target updates is supported. With the local API instead of modbus, we can't assume HTTP is any safer for hardware, because it could ultimately update the same internal settings. There is already proof that some HTTP requests alter values via Modbus. I've also seen comments of people using the local API and having their device lock up when trying to update realtime controls (probably because of too many requests or 100% RAM usage). Last thing to be aware of is that other applications might have their own traffic too... so if you use the official Xirt Home Assistant integration, that polls the inverter, and then have EVCC running, and also some custom integrations + OmniBattery, it can all add up and quickly go over the recommended request rate limits. Guess we'll have to write documentation for the integration on how to properly set it up. Long story short: |
|
I'm running actual load tests now with the Indevolt integration and so far so good. Indevolt recommends only 1 read or write every 5 seconds to their API (in their API docs), which isn't very fast to be honest. I'm running load tests to test 2,3,4,5 second reads for a couple of hours and have also implemented a throttler that will automatically slow down requests once it notices that the Inverter is slowing down due to memory/CPU filling up. It will automatically recover once responses become faster again. To be continued |
|
@Coornh @RemBrandNL I'm running the integration in my house right now :) so far so good! I need a couple of days of testing to see if it does a better or worse job than the "Eigen verbruik" mode from Indevolt itself (and do some tweaking), and after that I'll get back to you guys so you can also test it if you want, and provide feedback. @ffunes is on vacation right now, so he won't be able to look at or approve the integration until after November 3rd, but we can test it in the meantime. |
|
Hi all, I’ve read this thread with interest. I have a slightly different setup that might be useful for testing: three PowerFlex 2000 towers (10.08 kWh each) running as one cluster, controlled from Home Assistant through the official Indevolt integration. For the past several weeks I’ve been running my own zero-export controller in HA (a PI loop on the P1 reading) using real-time control. One thing I found on the cluster that may matter for the driver: only tower 1 (the master) needs to be commanded. Towers 2 and 3 follow every charge/discharge command automatically, whatever their own energy mode is. Sending commands to them directly had no effect at all. So for a cluster I’d expect the driver to treat it as one battery behind the master’s IP, not as three separate ones. On request rate: my loop runs every 2 seconds and a write takes about 0.2–0.5 s through the HA integration. No lock-ups so far. @thijskaspers about the HomeWizard P1: I ran into the same thing. The core integration only updates every 5 seconds, which was too slow for my loop, so I ended up making my own version that polls every second. Still in doubt to kick out the cluster and set it up as 3 seperate systems, but it takes some time to configure everything back if it does not work as intendet. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Requested battery
Manufacturer: Indevolt
Model: PowerFlex 2000, SolidFlex 2000, SolidFlex 3000
https://www.indevolt.com/products/powerflex-2000-balcony-power-system-with-storage
https://www.indevolt.com/products/solidflex-2000-balcony-power-system-with-semi-rixed-lifepo-batteries
https://www.indevolt.com/products/indevolt-solidflex-3000-ac-with-semi-solid-batteries
What kind of support are you requesting?
Full control: charging, discharging, and monitoring
Developer documentation
https://docs.indevolt.com/docs/hardware/open-data/introduction
Documentation access
Publicly available without an account
Known connection methods
Capabilities found in the documentation
battery_soc)battery_power)apply_setpoint +W)apply_setpoint -W)standby)Technical references and useful clues
Home Assistant integration:
https://www.home-assistant.io/integrations/indevolt/
https://github.com/home-assistant/core/tree/dev/homeassistant/components/indevolt
Uses HTTP
Do you have access to the battery for testing?
Yes, I can test versions and share results of PowerFlex 2000.
@RemBrandNL has SolidFlex 3000
What would you like to achieve?
Charge from surplus solar and predictive charging/discharging based on dynamic pricing.
Confirmations
All reactions