batpred icon indicating copy to clipboard operation
batpred copied to clipboard

Integrate Sigenergy Signestore

Open azebro opened this issue 9 months ago • 33 comments

Would it be possible to integrate Sigenergy Sigenstore? The Sigenergy is already integrated with HA via: Sigenergy Modbus HA integration

azebro avatar Mar 05 '25 13:03 azebro

since none of us have that inverter so can't try it out, the best bet (assuming you have one) is to follow the Predbat instructions for adding an unsupported inverter https://springfall2008.github.io/batpred/inverter-setup/#i-want-to-add-an-unsupported-inverter-to-predbat

If you have specific issues then we can try to enhance Predbat, but you should be able to make the service calls to charge/discharge/hold etc through configuring predbat in this way

Once you get a working apps.yaml then do share and we can add it to the documentation for other users

gcoan avatar Mar 06 '25 11:03 gcoan

since none of us have that inverter so can't try it out, the best bet (assuming you have one) is to follow the Predbat instructions for adding an unsupported inverter https://springfall2008.github.io/batpred/inverter-setup/#i-want-to-add-an-unsupported-inverter-to-predbat

If you have specific issues then we can try to enhance Predbat, but you should be able to make the service calls to charge/discharge/hold etc through configuring predbat in this way

Once you get a working apps.yaml then do share and we can add it to the documentation for other users

Thanks, started doing that. I am getting exception though: "Error: Inverter type MINE not defined" when using the template in the link. I have tried inputitng different values but all the same output. Do I need to set it to one of the supported inverters?

azebro avatar Mar 06 '25 12:03 azebro

I have followed the link and based myself on Huawei template. The attached apps.yaml seems to work for Sigenstore providing that the integration via Moddus is enabled as per: Sigenergy HA. The issue still remains on the inverter_type, I have left it to "HU" as any other value gives me error as "inverter not defined".

apps.zip

azebro avatar Mar 06 '25 13:03 azebro

I am getting exception though: "Error: Inverter type MINE not defined" when using the template in the link

you should be able to define your own inverter type as per the documentation, e.g. call it SIG

but then you need to ensure the inverter type in apps.yaml matches, e.g.

inverter_type: "SIG"

That's probably why 'MINE' didn't work but when you copied and modified the Huawei one, it worked

gcoan avatar Mar 06 '25 16:03 gcoan

Hi @gcoan and @springfall2008 , here are updated config files for Sigenergy Sigenstore tested. There were some issues in the previous apps.yaml so please incorporate the latest ones here.

apps.yaml.zip

"SIG": {
        "name": "Sigenergy Sigenstor",
        "has_rest_api": False,
        "has_mqtt_api": False,
        "output_charge_control": "power",
        "charge_control_immediate": True,
        "has_charge_enable_time": False,
        "has_discharge_enable_time": False,
        "has_target_soc": False,
        "has_reserve_soc": False,
        "has_timed_pause": False,
        "charge_time_format": "S",
        "charge_time_entity_is_option": False,
        "soc_units": "%",
        "num_load_entities": 1,
        "has_ge_inverter_mode": False,
        "time_button_press": False,
        "clock_time_format": "%Y-%m-%d %H:%M:%S",
        "write_and_poll_sleep": 4,
        "has_time_window": False,
        "support_charge_freeze": False,
        "support_discharge_freeze": False,
        "has_idle_time": False,
        "can_span_midnight": True,
        "charge_discharge_with_rate": False,



azebro avatar Mar 16 '25 06:03 azebro

will do, thanks, I'll ping you when I have it drafted for review

gcoan avatar Mar 16 '25 16:03 gcoan

The yaml based package by @TypQx has since been superseded by a proper full HACS integration.

https://github.com/TypQxQ/Sigenergy-Local-Modbus

Does the example in Predbat docs for SigenStor need to be updated?

fbradyirl avatar May 08 '25 21:05 fbradyirl

The yaml based package by @TypQx has since been superseded by a proper full HACS integration.

https://github.com/TypQxQ/Sigenergy-Local-Modbus

Does the example in Predbat docs for SigenStor need to be updated?

Did you get anywhere with working with the newer version? I wasn't sure how to get it to actually make the control changes that wasn't using the modbus service.

Evaske avatar May 13 '25 20:05 Evaske

The yaml based package by @TypQx has since been superseded by a proper full HACS integration. https://github.com/TypQxQ/Sigenergy-Local-Modbus Does the example in Predbat docs for SigenStor need to be updated?

Did you get anywhere with working with the newer version? I wasn't sure how to get it to actually make the control changes that wasn't using the modbus service.

Not sure I follow.

The newer version is a proper integration but still uses Modbus to read and write to the device.

fbradyirl avatar May 13 '25 21:05 fbradyirl

I'd need someone with a signestore inverter to work out what changes are needed to apps.yaml and the install instructions as I don't have one !

gcoan avatar May 13 '25 21:05 gcoan

The yaml based package by @TypQx has since been superseded by a proper full HACS integration. https://github.com/TypQxQ/Sigenergy-Local-Modbus Does the example in Predbat docs for SigenStor need to be updated?

Did you get anywhere with working with the newer version? I wasn't sure how to get it to actually make the control changes that wasn't using the modbus service.

Not sure I follow.

The newer version is a proper integration but still uses Modbus to read and write to the device.

When trying to use the newer integration it didn't seem to know about modbus.register_write as is in the Predbat documentation for writing to the inverter. I did get it all working in the end, just had to manually add the modbus entry to the configuration.yaml and make some changes to the predbat app.yaml

Evaske avatar May 14 '25 07:05 Evaske

I am the author of the integration guide and was thinking of updating but:

Afaik HACS integration with Sigen is flaky - I have it on my test deployment and not convinced 2. To integrate with batpred you need values in W and not KW - this requires even more modifications 3. The modbus spec for Sigen did not change much (only added EV stuff) so tbh I do not see added value in moving to HACS

Happy to be corrected though.

azebro avatar May 14 '25 10:05 azebro

Hi! I'm the author of both integrations. The new HACS integration adds AC Charger, DC Charger and multiple Inverters. One other major improvement is that it polls the modbus values in groups and not all values all the time, this means less trafic and faster updates. If you find anything not working properly, please don't hesitate to put in a issue or even do a pull req 😉

Came here to check out this addon and if it works with Sigenergy 😄

TypQxQ avatar Jun 13 '25 15:06 TypQxQ

Hi again!

I've made a configuration for the new Sigenergy HACS integration to be used in BatPred. It works for me but I would apreciate any help in testing it before making it more official.

https://github.com/TypQxQ/Sigenergy-Local-Modbus/issues/74#issuecomment-2974684520

Thank you all!

TypQxQ avatar Jun 15 '25 20:06 TypQxQ

@TypQxQ im testing this for you, having to change a few things but will update. Not got my export yet so will be a few weeks.

main changes so far

    - sensor.sigen_plant_consumed_power
  import_today:
    - sensor.sigen_plant_daily_grid_import_energy
  export_today:
    - sensor.sigen_plant_daily_grid_export_energy
  pv_today:
    - sensor.sigen_plant_daily_pv_energy
  battery_power:
    - sensor.sigen_plant_battery_power_w
  pv_power:
    - sensor.sigen_plant_pv_power_w
  load_power:
    - sensor.sigen_plant_consumed_power_w
  grid_power:
    - sensor.sigen_plant_grid_active_power_w
  soc_percent:
    - sensor.sigen_plant_battery_state_of_charge
  soc_max:
    - sensor.sigen_plant_battery_power
  battery_temperature:
    - sensor.sigen_inverter_battery_average_cell_temperature```

F17HEH avatar Nov 04 '25 14:11 F17HEH

When you copy yaml to into GitHub, please put three quotes before and after the yaml ``` - this preserves the formatting

gcoan avatar Nov 04 '25 14:11 gcoan

Battery power is not correct so will keep looking what battery_power should be set to.

The error is

Error: Reported battery size from REST is -0.89, but it must be >0

F17HEH avatar Nov 04 '25 18:11 F17HEH

Battery power is not correct so will keep looking what battery_power should be set to.

battery power is power flow in and out of the battery https://springfall2008.github.io/batpred/apps-yaml/#power-data

But is not essential to Predbat, its only used for the power flow graph on the predbat web UI

The error you are getting is about battery SIZE, you're getting a negative battery size returned to Predbat, and clearly that's wrong

gcoan avatar Nov 04 '25 19:11 gcoan

I think ive found a template that might work better, let me do some more testing and ill update here with my findings.

F17HEH avatar Nov 04 '25 19:11 F17HEH

So using the sigenergy_sigenstor.yaml template and updating a few of the sensors looks like its happy, will report back when i have more data

F17HEH avatar Nov 04 '25 19:11 F17HEH

Battery power is not correct so will keep looking what battery_power should be set to.

battery power is power flow in and out of the battery https://springfall2008.github.io/batpred/apps-yaml/#power-data

But is not essential to Predbat, its only used for the power flow graph on the predbat web UI

The error you are getting is about battery SIZE, you're getting a negative battery size returned to Predbat, and clearly that's wrong

This turned out to be that the sensors i required were disabled, managed to find what was needed.

F17HEH avatar Nov 04 '25 19:11 F17HEH

So i had to create 3 helpers in HA to remove some errors.

  charge_rate:
    name: Charge Rate
    min: 0
    max: 8000
    step: 100
    unit_of_measurement: "W"
    icon: mdi:battery-charging
    
  discharge_rate:
    name: Discharge Rate
    min: 0
    max: 8000
    step: 100
    unit_of_measurement: "W"
    icon: mdi:battery-arrow-down

and

  predbat_requested_mode:
    name: Predbat Requested Mode
    options:
      - "Demand"
      - "Charging"
      - "Discharging"
      - "Freeze Charging"
      - "Freeze Discharging"
    icon: mdi:battery-cog

F17HEH avatar Nov 04 '25 21:11 F17HEH

thanks @TypQxQ @F17HEH and @azebro

when you're happy with a working version of apps.yaml and any supporting helpers/scripts for Predbat, let me know and I'll update the documentation

gcoan avatar Nov 04 '25 23:11 gcoan

So looks like the plan is calculating but its not auctioning as expected. When the plan shows battery discharge the grid was feeding the house. Not sure what is going on so any help would be great.

Its now on freeze charge and grid is feeding house, but solar is feeding the battery and not the house at all.

Image

---- UPDATE -----

Think this is HA not talking to EMS - will update with fix

F17HEH avatar Nov 05 '25 12:11 F17HEH

So HA is now talking to the plant, now just looking into why none of the changes made in batpred dont action changes

F17HEH avatar Nov 05 '25 21:11 F17HEH

Right all working, will review the docs and update here the changes i had to make (reading the docs again was key - rather a lot of picnic)

F17HEH avatar Nov 05 '25 21:11 F17HEH

Working through the docs and various threads as best I can, it's quite a lot to try and understand with the change of the Sigenergy integration, changes by both users and the integration author to do the same, etc.!

The only steps I have had to do to make it appear sensible, beyond what is currently documented in BatPred's docs and templates, is:

  • ~~Change load_today to sensor.sigen_plant_consumed_power~~ Edit: this previous suggestion might not be incorrect - that field is a Power sensor, not an Energy sensor. I've revised to:
  • Change load_today to sensor.sigen_plant_daily_load_consumption
  • Enable various sigen sensors that were disabled (following whatever the logs complained about)

One surprise is that I don't see obvious issues with power units, despite extensive discussion on the topic. E.g. currently BatPred shows my use as 600W in line with the MySigEn app, without an obvious unit reporting error like 0.6W or 600 kW. Is this the result of an update on one side or the other since this discussion started? Or does the live display on BatPred using the correct units hide an underlying problem where the units are misinterpreted elsewhere?

DFEvans avatar Nov 13 '25 22:11 DFEvans

thanks for the feedback @DFEvans do you know what sigen sensors you had to enable?

Predbat is a lot more tolerant of different units of measure now than it used to be, so (hopefully) the prior discussion about units isn't so relevant. Certainly recent people configuring Sig with Predbat haven't raised any concerns over this. But do double check the plan and that it looks sensible, that load, PV etc match what you expect

gcoan avatar Nov 13 '25 22:11 gcoan

Looking back through the logs, I believe these are the ones that needed enabling - they're ones that gave errors for "returned value None" and that are still in my app.yaml:

sensor.sigen_plant_available_max_discharging_capacity
sensor.sigen_plant_daily_consumed_energy

(I'm slightly uncertain about the list, as replies here and in other threads suggested other sensors which then needed enabling, but in all cases except load_today I eventually reverted to the sensor in the template as it seemed to work)

But do double check the plan and that it looks sensible, that load, PV etc match what you expect

Yep, a few days of careful watching to follow. Now that it's daytime, I've spotted that sigen_plant_pv_power is permanently reading 0 despite the system currently generating solar, which I've enquired about on the integration: https://github.com/TypQxQ/Sigenergy-Local-Modbus/discussions/261

It also sounds like the control side may have some quirks that I won't yet have encountered - and by the sounds of it, those can be silent failures.

DFEvans avatar Nov 14 '25 09:11 DFEvans

@DFEvans my sigen_plant_pv_power is working as expected with no alterations from the standard. Maybe reload the integration?

My system is now running as i would like with NOT using charge freeze. Still waiting on the export side to fully test the managed charge/discharge

F17HEH avatar Nov 14 '25 11:11 F17HEH