Sig Energy System Integration

Building upon the great work done previously by others, there’s also an updated version of the card to replicate the mySigen App home ciew as a HA card.

Once again please provide any feedback. Adding sensors to give EV car SoC%, estimated km etc (whatever their integrations provide as sensors) should be easy… just I don’t have an EV. Same for adding a generator as a power source.

This and the above card will be linked into the GitHub - Si-GCG/sigenergy_projects: This is where I will keep all the Sigenergy related home assistant projects repo when finished.

I’m finding lots of useful info here - thanks for the contributions. My system - about 4 weeks old now - is a little different.
I have an existing Sonnen 13kW battery linked via an SMA home manager through to three separate SMA inverters on 6kW arrays. It went like this as they were all installed at different times.
Anyway the sigenstor now has two of the arrays feeding the sig inverter and one SMA inverter is still feeding the Sonnen.
It would be great to be able to have them all under the sig but apparently I cannot do this and still retain blackout protection as the Sonnen cannot be linked in this way.
Anyone else have something similar and have a solution? I am no where near smart enough to navigate all the modbus codes and have my HA combine them and control them but I’m sure therre are some very smart people out there who could.
Pat

Hi all,

I have the following requirements and would like to know whether this is possible via Home Assistant (integration). I didn’t find a solution via MySigen app but if it’s possible by this way I would be satisfied as well:

  • I have PV modules with 13,5 kWp and a battery with 13 kWh
  • My grid export power is limited to 60 % of peak power. In own consumption mode this means that my battery is charged let’s say until 11 and at 12 my pv modules a regulated down. This way I am losing the excessive up to 40 % peak power between 12 and 3.
  • What I want: If it’s a ‘good’ day (possible input from Solar Forecast?) the battery which is at about 30-40 % in the morning, should not be charged asap. It may even be discharged (until 20 %) to fulfill my home’s power needs. The pv modules should export at full power to the grid. At around 12 (when my export power would be limited) OR if the forecast would tell my I couldn’t charge my battery fully that day the battery should start charging. Basically, from that point on my system should behave as it does now.
  • What I already tried: I put the system in remote EMS mode and limited battery charging to 0 kW. But then my pv modules are regulated down to only fulfill my home’s power needs and don’t export anything.

Thanks in advance!

Remote EMS enables you to select from one of several modes of operation. You may need to choose a different mode (you did not say which mode you were using).

I tried all of them on sigen_plant_remote_ems_control_mode. They don’t seem to do out of the box what I want them to do. Additionally, now in the morning according to MySigen app, my home’s power needs are imported from grid, while the battery is being charged by the available PV power.

Additionally, I activated sigen_plant_ess_max_charging_limit. When setting a number it seems not to be written to the plant or it cannot be read, as HA doesn’t show the new value but stays at 0.0.

It may be you need to go to the Github page for the integration you are using and ask a question there. I’m using the Sigenergy2MQTT add-on not the TypQxQ)/Sigenergy-Local-Modbus HACS integration.

Usually the first questions will be to confirm:
i. you have Modbus/TCP enabled on your Sigenergy system (your installer needs to do that, it’s not a user setting)
ii. the latest version of the integration is installed and HAOS/HA Core are up to date.

Perhaps I will give it a try. I am still trying and watching. As I cannot manipulate the sun or the battery’s SOC it’s slow testing :wink:

I installed TypQxQ via HACS and it’s on version 1.1.9. Modbus is enabled and everything else is working as expected.

You can stop battery charging by reducing Charging Cut-off SOC below the current SOC (e.g. with sigenergy2mqtt, set number.sigen_plant_ess_charge_cut_off_soc to 0). Any excess solar after home consumption will then be directed to the grid (up to number.sigen_plant_grid_max_export_limit). I use an automation to set this when there is a positive feed in price up to 10 cents (a configurable estimate of battery throughput cost per kWh) below the estimated minimum feed in price for estimated surplus energy that could be exported from the battery later in the day. Since high solar generation generally correlates to low/negative feed in, this approach handles minimising exports and maximising charging when solar generation is high.

Nevermind, I’ve had the plant set to read-only in HA configuration.

I can choose my operation mode now and can write to sigen_plant_ess_max_charging_limit, which then is shown as the actual value and in the history in HA. However, this is not shown in the MySigen app and the value is not used either (export is above the limit I set). This is as well a 3 weeks old issue on GitHub. Any advice on this?

Update: sigen_plant_ess_max_charging_limit is used for the ‘command charging’ mode. In maximum own consumption it is ignored. I cannot find the general battery power limit within the integration?

Thanks for this post - it cleared up a couple of issues! HA is now able to control the battery directly - thanks again!

My Sigen integration is no longer working.

I suspect its due to this error in the log…

Setup failed for custom integration ‘sigen’: Unable to import component: cannot import name ‘Endian’ from ‘pymodbus.constants’ (/usr/local/lib/python3.13/site-packages/pymodbus/constants.py)
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/loader.py”, line 1003, in async_get_component
comp = await self.hass.async_add_import_executor_job(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self._get_component, True
^^^^^^^^^^^^^^^^^^^^^^^^^
)

Version Details:-

  • Installation method Home Assistant OS
  • Core 2025.9.4
  • Supervisor 2025.09.0
  • Operating System 16.2
  • Frontend 20250903.5

Any ideas?

Hi all, I’ve just joined. I’m trying to configure my Sigenergy plant. I have Modbus/TCP enabled and I can telnet to my 10.10.3.59 port 502. When I try to do the configuration with slave_id 1, the connection fails. I can do a tcpdump of the network traffic. Wireshark shows the Modbus/TCP query with Unit Identifier 1. The response comes back with Read Inout Registers: exception. Illegal data address (2).

Is the default slave_id 1, or should I be using a different slave id? Thanks, Warren

I’m pretty sure it should indeed be 1. What components do you have in your Sigenergy system, and are they all networked together/working? (Gateway, Inverter, chargers?)

Also is the system’s network connection quality good? If at all possible, Ethernet over WiFi will be helpful due to the high message rate of these integrations.

I forget what the debug options are for the Sigenergy ESS integration, but you may also give the sigenergy2mqtt add-on (via HACS) a try - it has options to enable quite verbose debug logging which may be handy in figuring this out (even if you don’t use it in the long term or even wire it up to MQTT, it could be a useful diagnostic tool. Though I think it is a fine option!)

Thanks for the reply. I have a Sigen Gateway with a data cable back to a Sigenstor inverter and six 8kWh SigenStor batteries. Some device with MAC 50:78:7D:77:09:A0 is listening on port 502. The gateway says its MAC address is BC-31-98-D5-36-42.

So perhaps the inverter is on my WiFi but the gateway isn’t? The WiFi signal is excellent.

I’ll try the MQTT add-on!

That seems right - I’ve gathered that the Inverter is the device that actually listens on the Modbus TCP port, and the gateway will be online but doesn’t have any ports listening. The network ports on them basically work as a little network switch so they all plug in to each other, and as long as one connects back to your router (via ethernet or the Inverter via wifi) then it should be all good.

Have you played setting the ID to 0, 2, etc. when adding the device in HA just for kicks? I really don’t think I’d expect that to work, but I don’t think it will hurt trying!

Oooh - sorry, I noticed something odd just after submitting my last reply, you say that the device with port 502 open has the MAC address 50:78:7D:77:09:A0 - can you make sure that’s right? That prefix should be some sort of Espressif/ESP32 device, the Sigenergy units should all have the prefix BC-31-98 from what I have seen both in my install, and from what others have said.

There’s a chance you have another Modbus TCP device on your network and that would totally explain the problem if it’s got totally different device IDs on it. See if you have another device with that MAC prefix on your network:

  • Check your router’s DHCP leases page/etc.
  • Orr you can use nmap to scan for the port on your network, e.g. nmap -T5 10.10.3.0/24 -p 502 -oG - | grep -F '502/open/tcp'

You should also be able to find the inverter MAC and IP in the mobile app: Settings System Settings → (General) ConnectivityDevice Tab → (SigenStor) WLAN

:grimacing: Oof, I’m making a mess. As I wrote that, I now see that my ethernet devices both have that MAC prefix I mentioned, but my WLAN one actually is (another!) Espressif/ESP32 prefix! So they must use those chips for their wifi boards… in which case yours may be correct. Hmmm.

Yes it is the Sigenstor. When I disable its DHCP lease, I lose connectivity with the mySigen app. And the System settings in mySigen confirm the MAC and IP address.

So, if my gateway isn’t visible on my home network, as it is directly connected to the inverter with a data cable, am I out of luck with trying to use the Sig Energy System Integration? Or do I just have to keep trying all slave ids? Thanks all for your help so far!

No, I think it should work! My setup is the same, except I’m using Ethernet to my LAN (Network Router/Switch ↔ one cable to Sigen Gateway; and one cable between the Sigen Gateway ↔ Inverter). I don’t think it should be any different with WiFi, from all that I have read.

This is a bit odd, I hope someone else can chime in if there are any other ideas. I don’t think you should expect the device IDs to be drastically (if at all) different, either.

Do you have any ability to temporarily try with an ethernet cable to see if that, for some reason, works differently? I think a port on the inverter should be user-accessible (the gateway ports are behind its internal safety shield).

Otherwise, the sigenergy2mqtt add-on with the modbus logging set to debug would be my next try.

I am using the Sigenergy2MQTT add-on and can successfully monitor all aspects of the Sig and I can activate Remote EMS as needed. I am trying to create some automations that will use a different control mode depending on the state of the system (e.g. TOU, free charging periods, charging/discharging rate, etc.) but I cannot figure out how to change the control mode in HA. I have to activate the Remote EMS option manually before the different modes become available, but how can this be done using an automation?