The Sigenergy2mqtt add-on has an inbuilt function for uploading to PVOutput:
I have my control automation working now, itās doing a good job of managing the battery charging during the grid free energy period.
Just charging at the right rate rather than going too fast or too slow to ensure the battery is filled up by the end of the day. This was today:
We are in a period of inclement weather so supplemental charging from the grid is going to be needed. The Sigen TBC mode wasnāt smart enough to automatically adjust the charge rate, while AI mode just did weird stuff.
Yep, was planning on using that docker image but I was wondering if thereās a way to reboot the communication module or mainboard or do I have to do a full power cycle of the battery (AC/DC)?
Iām not entirely sure what you are asking but then I am no IT/comms guys.
If you have assigned a static IP address in your local network router for the Sigen, then youāll likely need to restart your router for that to take effect.
Else I guess you can reboot the Sigen from the Sigen app. It has the ability to Power Off/On from the app.
Settings / System Settings/ System Maintenance
Iāve not tried it though.
With static DHCP leases, the client typically needs to be rebooted in order for it to be assigned the new address or you have to wait for the DHCP lease to expire (could be days depending on your DHCP serverās settings). Iāll try your suggestion for the power off/on and see how that goes, otherwise Iāll have to do a full power cycle on the battery - thanks mate.
If you want to use the mobus integration, then you can use this yaml instead. Just install it in your /packages directory.
rest_command:
update_pvoutput:
url: https://pvoutput.org/service/r2/addstatus.jsp
method: post
content_type: "application/x-www-form-urlencoded"
headers:
X-Pvoutput-Apikey: YOUR-API-KEY
X-Pvoutput-SystemId: YOUR-SITE-ID
payload: |-
{{ ''.join([
'd=' ~ now().strftime('%Y%m%d'),
'&t=' ~ now().strftime('%H:%M'),
'&c1=1',
'&v2=' ~ ((states('sensor.sigen_plant_pv_power_watts') | float(0)) | round(0)),
'&v4=' ~ ((states('sensor.sigen_plant_consumed_power_watts') | float(0)) | round(0)),
'&v6=' ~ (states('sensor.sigen_inverter_phase_a_voltage')),
'&v7=' ~ (states('sensor.sigen_plant_battery_state_of_charge')),
'&v8=' ~ ((states('sensor.sigen_plant_daily_grid_import_energy') | float(0)) | round(5)),
'&v9=' ~ ((states('sensor.sigen_plant_daily_grid_export_energy') | float(0)) | round(5)),
'&v11=' ~ ((states('sensor.amber_feed_in_price') | float(0)) ),
'&v12=' ~ ((states('sensor.amber_general_price') | float(0)) )
]) }}
Then create a new automation, pasting in this code:
alias: "Update - Sigenergy to PVOutput "
description: Upload Sigenstor 30T-48 data to PVoutput
triggers:
- trigger: time_pattern
minutes: /5
conditions: []
actions:
- action: rest_command.update_pvoutput
metadata: {}
data: {}
mode: single
Note: The above is based on v1.1.0 of the intergration and the change of sensor.sigen_plant_accumulated_pv_energy ( to: sensor.sigen_plant_total_pv_energy ) and sensor.sigen_plant_accumulated_consumed_energy (to: sensor.sigen_plant_total_consumed_energy )
Edit to the above post:
I found that instead of supplying v1 - v4 data, that it looks to work better just supplying v2 and v4 data.
Also make sure to have your Extended Data setup:
Hereās my site as an example of the output: Goulburn - Sigenergy 25.500kW (if your not in a Team, Iāve created one for āSigenergyā)
Apologies if this is a silly question but how do you change the charge rate from home assistant?
The Sigenergy system needs to be in Remote EMS mode for this to take effect. The operating mode is then controllable via the integration.
Which mode is used depends on what you want the system to do.
Then in my Sigenergy integration I have a sensor which sets the maximum rate at which the battery charges:
number.sigen_0_plant_max_charging_limit
I can adjust it manually or with an automation like any other control in HA.
So when my automation is controlling the charging, it puts the Sigenergy system into Remote EMS mode, in my case I use Command Charging (Consume power from PV first) and then begin adjusting the battery maximum charge rate.
Or I can even do it from a dashboard manually if I wish:
Thank you for your help. I have set Remote EMS mode using Command Charging (PV First) and this is working ok. I was having trouble locating max charging limit setting. I found I have a number.sigen_plant_ess_max_charging_limit which has a value of 0 kw. Is this the correct one? At the moment it is disabled. Is it just a case of enabling this individual entity within settings and setting it to the required value?
Thanks again.
The name of the entity may be slightly different in different integrations but that sounds like the one.
It is not available to adjust unless Remote EMS mode is activated.
Just be aware that if you do activate Remote EMS mode, and then deactivate it, the Sigenergy system will then default to Max Self Consumption mode, it will not for instance revert back to another mode (e.g. Time Based Control) if thatās how it was operating before switching on Remote EMS.
This entity was still unavailable even after activating Remote EMS mode which is why I wanted to double check Iād got the right one before messing with it. I assume changing this value will limit charging from solar as well as from the grid? Do you know if there is a way to just limit grid charging?
Thanks for all your help.
You may need to check with the integration developer, mine certainly activates. Check that the entity is enabled.
It will limit the charge rate to the battery irrespective of the source of that power. How it does that likely depends on the Remote EMS Control Mode selected.
I use
Command Charging - Consume power from PV first
And in this mode it uses all the PV to charge the battery and any balance up to the max charge rate limit comes from the grid. All household load comes from the grid.
Presumably by setting the max PV output limit to zero. I have this entity which enables me to curtail PV output:
number.sigen_0_plant_pv_max_power_limit
I have no need for it, but I can imagine those on wholesale price plans which experience periods of significant negative grid pricing would want to do so.
With the Sig energy sensor failing to report net-metering (3-phase), I was hoping that a HA solution would fix the issue, but it looks like the HACS integration has the same issue.
Anyone know of a good way to get net-metering to work? Without it, all the revenue calculations are off.
Presumably itās just reporting what the Sig system is.
Does it provide an Active power entity equal to the sum of the individual phaseās Active power entities? (my system is single phase so they are the same).
If so then you can create an Integral helper to derive energy from that, and then a Utility meter helper for daily energy sums.
If not then you could create template sensor summing the individual phase Active power values and then do the Integral helper / Utility meter.
It wonāt be perfect as there will be sampling errors but better than nothing.
Does anybody know, which entity do I use to monitor the self consumption of the Sigenergy plant/inverter?
It might be sensor.sigen_accumulated_energy_consumption or sensor.sigen_daily_energy_consumption
Do you mean self-consumption of the inverter etc, or self-consumption of solar PV by the home?
If you mean the former, Iām not sure thereās an easy way to reliably determine that.
If you mean the latter itāll be either:
PV Production - Grid Export
Youād need to set up your own custom template sensor to calculate it.
The Energy Dashboard already does it for you, showing a self consumption percentage in the right side panel of gauges:
Hi guys, Iāve had a Sigenergy system for a few weeks now and am slowly writing automations around it.
While Iām figuring it out, Iāve just been using the inbuilt Sigenergy automations in the app - one of the things Iāve been doing is during the early hours of the day when solar is low and electricity is cheap, Iāve been setting the system to max self consumption, the the battery discharge limit set to 0, in order to prevent it constantly going up and down (a little bit of cycling protection?) - feel free to tell me if this is stupid or notā¦
Iām having trouble finding the same function inside home Assistant. Iāve found the discharge limit, but it is only respected when itās in PCS control mode, which behaves differently to the max self consumption with discharge set to 0. Is there a way to enforce the limit in max self consumption inside the HA integration? Or make PCS mode behave similar to the max self consumption?
Sorry for the wall of text, and thanks for any help people can provide!
If anyone is interested in Sunsynk card for use with Sigenergy, thereās a mapping of sensors example here. Iām waiting for a change to be merged into the next release of the card, to add support for the operating/status etc registers so that a fault on the SIG will also bring up the warning light/ball on the card and a few other small things. Please test and give any feedback.




