[APP][Pro] Solis Hybrid Inverter (0.1.3 - Test)

Solis Hybrid Inverter — local monitoring & control for Homey

Hi all 👋

I've been building a Homey app that talks directly to a Solis hybrid inverter over your local network — no cloud, no SolisCloud account, no internet dependency. It reads everything in real time over Modbus TCP straight from the inverter's WiFi/LAN data logger, and (optionally) lets Homey control charging, discharging, work mode and grid export.

What it does

Monitoring (read-only by default)

  • Solar production, battery power & state of charge, grid power, home load, voltages, temperature and work mode
  • Three separate devices — Inverter, Battery and Grid — so the Homey Energy dashboard gets the right roles (production / home battery / grid import-export)
  • A Grid limiting indicator that shows when the grid is throttling your production (e.g. volt-watt overvoltage curtailment) instead of leaving you guessing why output dropped

Control (opt-in, behind a safety switch)

  • Force charge / discharge the battery, set work mode and reserve SOC
  • A “Limit solar output” switch you can flip from any Flow — e.g. throttle production so the inverter stops pushing power out (when prices go negative)
  • Follow-the-sun triggers that recommend an EV charging current to soak up surplus solar
  • 19 Flow cards in total (5 triggers, 4 conditions, 10 actions)

Requirements & hardware

  • A Solis hybrid inverter with a WiFi/LAN data logger, Modbus TCP enabled, reachable on your LAN (give it a fixed IP)
  • Homey Pro
  • Developed and tested on an S6-EH3P10K2-H with a Pylontech battery and the S2-WL-ST logger — reports from other Solis hybrids very welcome

Heads-up: one connection at a time

The data logger serves a single Modbus client. If another energy manager (EMS) is connected, only one can talk to the inverter at a time — so the app is read-only by default and keeps every control write behind a deliberate “Homey is the controller” switch. You hand control to Homey only when you mean to, and it never fights another controller. (A local Modbus connection also takes over from the SolisCloud app.)

A couple of recipes in the manual

  • Negative-price “don't feed in” — absorb surplus into the battery, then stop exporting
  • True home consumption by combining a P1 meter with the inverter's AC power

Status

Now in beta on the Test track. Reading is solid; grid-charge and discharge are field-proven, and the remaining control writes are verified against Solis's official register map but still being field-tested — so watch your inverter after the first commands and keep control off until you're ready.

📖 Manual: https://homey.orangeframe.ch/solis
👉 Install (beta): https://homey.app/a/nl.orangeframe.solis/test/

Unofficial community app — not affiliated with or endorsed by Solis / Ginlong. Feedback, testers and register reports from other models are hugely appreciated 🙏

Hi Remco,

Nice initiative!

Might be very obvious, but I assume it doesn’t work with a cheap-ass datalogger like the S3-WIFI-ST ?

An S2-WL-ST model is most probably the one and only suitable datalogger for use with Modbus TCP connections?

I think it should work as well. The fundamental part is that the Modbus to TCP can only work with one client, so if you disable that client (your EMS probably) Homey can take over. There is a safety switch in the settings of the app currently to prevent writing, but in the end you would need that, as Homey will be the only possible client when activated. And I guess control would be needed.
I started this little project as have received an EMS from NZU (Nederlandse zonnepanelen unie) and I would like more control. So developing against a physical setup, but can be used with other types and setups.

You would want to figure out the IP address of the datalogger.

Best regards,

Remco

Thanks, IP address is known.
I would have to disable the cloud connection, no other devices connected.
I’ll give it a go.

actually, I believe the TCP Modbus just overrules the cloud connection. So it might not even be necessary to disable it. So after the Modbus has cleared again the cloud connection should start back working. I can’t check myself as I have no cloud account.

It only allows connections to port 80. Tried several unit ID’s as well (0, 1, 2, 10 etc).

I’ve disconnected every cloud connection I could think of.

Found a datalogger setting to increase the max. nº of simultaneous connections, I’ve set it to 6. Dunno if that has any influence

could you check if port 8899 is open?

nc -vz [ip of stick] 8899

so:

nc -vz 192.x.x.x 8899

this is some other protocol I can port maybe.

Hi Remco

Solis Modbus TCP/IP only works via the S2-WL-ST datalogger. Modbus TCP/IP does not work with other models. Not even with a firmware update.

As long as a Modbus connection is open, the cloud connection does not work. If you disconnect the Modbus connection, data is sent to the Solis cloud again.

ID 1 is the default. You can assign a different ID to an inverter if you have multiple inverters on one datalogger. You need a special cable for this, but it is more expensive than another datalogger. So, for two inverters, it is not worthwhile.