cdpuk / givenergy-local

Home Assistant integration for local access to GivEnergy inverter and battery systems
MIT License
47 stars 14 forks source link

Add support for timed pause #64

Open andynash opened 8 months ago

andynash commented 8 months ago

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Currently the only way to prevent the battery from charging (e.g. because you have sufficient SoC and wish to maximise export) is to set the charge rate limit to 0W.

The same applies if you wish to prevent the battery discharging.

However the GivEnergy inverter will not actually limit charge/discharge to 0W, instead a seemingly arbitrary and variable limit will apply (see this closed issue).

It appears this is "wontfix" for GivEnergy as they have added a timed pause feature which covers this requirement.

givenergy-local does not yet support the timed pause functionality, so setting the rate limit to 0W and accepting the limit will really be c. 300W is necessary.

Describe the solution you'd like A clear and concise description of what you want to happen.

Implementation of the timed pause feature via a service, in a similar way to the existing timed charge, discharge, export services.

An additional parameter instructs the inverter to choose a mode for timed pause:

Not Paused Pause Charge Pause Discharge Pause Charge & Discharge

This will truly limit charge, discharge or both to 0W (tested manually using the inverter settings on givenergy.cloud).

I understand that this may not happen quickly as @cdpuk has a gen 1 inverter (which may not support this feature ?), but I'm happy to help test when the time comes 👍

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

See issue referenced above.

Additional context Add any other context or screenshots about the feature request here.

To put a rough value on this, 300W x 8 hours of sunshine at 15p/kWh export over a year is £131.40.

Assuming you need to import less overnight as a result, at 7.5p, the cost can be offset by half, so £65.70 per annum, plus an unknown community cost of not sharing the energy during daylight hours including evening peak.

[assumes tariff is Intelligent Octopus Go with Outgoing Fixed]

cdpuk commented 5 months ago

Hi @andynash. With v2.0.0 now released, it should be relatively easy to add this in. Is your offer of testing still open? If so, I can have a go at adding this and create a beta release for review.

On the 4 modes listed, are these available via the GE app or web portal? If so, some screenshots would be handy to understand how best to match the functionality.

andynash commented 5 months ago

That's great news - yes I'd be happy to test this, thanks!

These settings do not appear to be available via the app, just givenergy.cloud, accessed via the cog icon "Remote Control" in the My Inverter section. Hopefully the following will help:

image

image

image

cdpuk commented 5 months ago

Ideal, thanks.

There are currently some stability issues reported with 2.x, but this looks relatively easy to add in. It would make sense for this to become a select entity presented in the same way as the GivEnergy portal. Could you send one of each of those commads and confirm what appears in the Remote Control History section of that page? If you check "Show Raw Values" I'm assuming they map on to values 0, 1, 2 and 3 (in that order matching the screenshot).

cdpuk commented 5 months ago

I've made a bit of a guess at the implementation, which is available as HACS beta release v2.1.0-beta1.

With no way to test this properly, please give this a try and feed back any issues here. Debug logs while the integration is loaded or reloaded will be useful.

cdpuk commented 5 months ago

Make that v2.1.0-beta2. Also note that I've only added a selection for the mode at this stage. If that works, I'll add in the time slot configuration.

andynash commented 5 months ago

Thanks, will try that 👍

However I've updated to v2.1.0-beta2, and despite restarting I don't see any new services or controls - it seems I should see a select?

In terms of your earlier question, I first changed the selector at givenergy.cloud through each pause option in order, and then back to Not Paused. This confirmed Not Paused = 0, Pause Charge = 1, Pause Discharge = 2, Pause Charge & Discharge =3. This had no effect on the operation of the battery (because start and end time were default, i.e. 00:00).

I then set start to 13:00 and end to 14:00 and set the selector to Pause Discharge to confirm it operated as expected which it did, and finally set it to Not Paused again.

image

cdpuk commented 5 months ago

Sounds good. Could I have some debug logs while the integration loads? Part of the change is to get it to recognise the additional capabilities of your inverter, which seems not to work yet.

andynash commented 3 months ago

Sorry for the delay, I've been super busy! I've just taken a look and seen this error which seems relevant?

2024-04-05 13:35:03.242 ERROR (MainThread) [homeassistant.components.select] Error while setting up givenergy_local platform for select
  File "/home/homeassistant/.homeassistant/custom_components/givenergy_local/select.py", line 45, in async_setup_entry

Following is the full debug during a reload of the integration:

2024-04-05 13:39:35.741 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:35.742 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=60)
2024-04-05 13:39:35.742 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=60)
2024-04-05 13:39:35.790 DEBUG (MainThread) [custom_components.givenergy_local] Scheduled next update for charge_slot_1 at 2024-04-05 23:59:00
2024-04-05 13:39:35.832 DEBUG (MainThread) [custom_components.givenergy_local] Scheduled next update for charge_slot_2 at 2024-04-06 00:01:00
2024-04-05 13:39:35.851 DEBUG (MainThread) [custom_components.givenergy_local] Scheduled next update for discharge_slot_1 at 2024-04-05 23:59:00
2024-04-05 13:39:39.174 DEBUG (MainThread) [custom_components.givenergy_local.coordinator] Shutting down
2024-04-05 13:39:39.175 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Disconnecting and cleaning up
2024-04-05 13:39:39.275 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] network_consumer reader at EOF, cannot continue, closing connection
2024-04-05 13:39:39.494 INFO (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Connection established to 10.0.0.27:8899
2024-04-05 13:39:39.494 INFO (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Detectig plant
2024-04-05 13:39:39.511 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x32 base_register=0)
2024-04-05 13:39:39.750 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:39.751 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=0)
2024-04-05 13:39:39.751 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=0)
2024-04-05 13:39:39.761 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x32 base_register=180)
2024-04-05 13:39:39.990 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:39.990 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=180)
2024-04-05 13:39:39.990 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=180)
2024-04-05 13:39:40.012 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:3/ReadHoldingRegistersRequest(slave_address=0x32 base_register=0)
2024-04-05 13:39:40.259 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:40.260 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=0)
2024-04-05 13:39:40.260 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=0)
2024-04-05 13:39:40.266 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:3/ReadHoldingRegistersRequest(slave_address=0x32 base_register=60)
2024-04-05 13:39:40.500 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:40.501 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=60)
2024-04-05 13:39:40.502 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=60)
2024-04-05 13:39:40.517 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:3/ReadHoldingRegistersRequest(slave_address=0x32 base_register=120)
2024-04-05 13:39:40.751 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:40.751 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=120)
2024-04-05 13:39:40.752 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=120)
2024-04-05 13:39:40.768 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x32 base_register=120)
2024-04-05 13:39:41.001 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:41.002 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=120)
2024-04-05 13:39:41.002 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=120)
2024-04-05 13:39:41.020 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x32 base_register=60)
2024-04-05 13:39:41.250 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:41.250 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=60)
2024-04-05 13:39:41.251 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=60)
2024-04-05 13:39:41.270 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x33 base_register=60)
2024-04-05 13:39:41.500 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:41.501 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x33 base_register=60)
2024-04-05 13:39:41.501 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x33 base_register=60)
2024-04-05 13:39:41.501 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] First time encountering slave address 0x33
2024-04-05 13:39:41.522 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x34 base_register=60)
2024-04-05 13:39:41.751 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:41.752 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x34 base_register=60)
2024-04-05 13:39:41.752 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x34 base_register=60)
2024-04-05 13:39:41.752 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] First time encountering slave address 0x34
2024-04-05 13:39:41.773 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x35 base_register=60)
2024-04-05 13:39:42.015 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:42.016 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x35 base_register=60)
2024-04-05 13:39:42.016 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x35 base_register=60)
2024-04-05 13:39:42.016 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] First time encountering slave address 0x35
2024-04-05 13:39:42.023 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x36 base_register=60)
2024-04-05 13:39:42.250 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:42.250 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x36 base_register=60)
2024-04-05 13:39:42.251 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x36 base_register=60)
2024-04-05 13:39:42.251 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] First time encountering slave address 0x36
2024-04-05 13:39:42.253 INFO (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Batteries detected: 1
2024-04-05 13:39:42.274 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:3/ReadHoldingRegistersRequest(slave_address=0x32 base_register=300)
2024-04-05 13:39:42.520 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:42.521 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=300)
2024-04-05 13:39:42.521 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=300)
2024-04-05 13:39:42.522 INFO (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Detected additional holding register support (base_register=300)
2024-04-05 13:39:42.522 DEBUG (MainThread) [custom_components.givenergy_local.coordinator] Finished fetching Inverter data in 3.123 seconds (success: True)
2024-04-05 13:39:42.684 DEBUG (MainThread) [custom_components.givenergy_local] Scheduled next update for charge_slot_1 at 2024-04-05 23:59:00
2024-04-05 13:39:42.715 DEBUG (MainThread) [custom_components.givenergy_local] Scheduled next update for charge_slot_2 at 2024-04-06 00:01:00
2024-04-05 13:39:42.745 DEBUG (MainThread) [custom_components.givenergy_local] Scheduled next update for discharge_slot_1 at 2024-04-05 23:59:00
2024-04-05 13:39:43.355 ERROR (MainThread) [homeassistant.components.select] Error while setting up givenergy_local platform for select
  File "/home/homeassistant/.homeassistant/custom_components/givenergy_local/select.py", line 45, in async_setup_entry
2024-04-05 13:39:43.685 INFO (MainThread) [custom_components.givenergy_local.coordinator] Fetching data from 10.0.0.27 (attempt=1/3, full_refresh=True)
2024-04-05 13:39:43.727 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:6/WriteHoldingRegisterRequest(96 -> False/0x0000)
2024-04-05 13:39:43.860 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x5959000100260102..., buffer_len=44
2024-04-05 13:39:43.861 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:6/WriteHoldingRegisterResponse(96 -> 0/0x0000)
2024-04-05 13:39:43.861 INFO (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] 2:6/WriteHoldingRegisterResponse(96 -> 0/0x0000)
2024-04-05 13:39:43.861 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:6/WriteHoldingRegisterResponse(96 -> 0/0x0000)2024-04-05 13:39:43.948 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x32 base_register=0)
2024-04-05 13:39:44.180 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:44.180 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=0)
2024-04-05 13:39:44.180 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=0)
2024-04-05 13:39:44.199 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x32 base_register=180)
2024-04-05 13:39:44.439 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:44.440 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=180)
2024-04-05 13:39:44.440 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=180)
2024-04-05 13:39:44.450 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:3/ReadHoldingRegistersRequest(slave_address=0x32 base_register=0)
2024-04-05 13:39:44.696 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:44.696 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=0)
2024-04-05 13:39:44.697 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=0)
2024-04-05 13:39:44.700 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:3/ReadHoldingRegistersRequest(slave_address=0x32 base_register=60)
2024-04-05 13:39:44.941 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:44.941 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=60)
2024-04-05 13:39:44.942 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=60)
2024-04-05 13:39:44.951 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:3/ReadHoldingRegistersRequest(slave_address=0x32 base_register=120)
2024-04-05 13:39:45.202 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:45.203 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=120)
2024-04-05 13:39:45.203 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=120)
2024-04-05 13:39:45.228 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x32 base_register=120)
2024-04-05 13:39:45.447 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:45.448 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=120)
2024-04-05 13:39:45.448 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=120)
2024-04-05 13:39:45.468 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x32 base_register=60)
2024-04-05 13:39:45.702 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:45.702 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=60)
2024-04-05 13:39:45.703 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=60)
2024-04-05 13:39:45.718 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x33 base_register=60)
2024-04-05 13:39:45.970 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:45.971 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x33 base_register=60)
2024-04-05 13:39:45.971 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x33 base_register=60)
2024-04-05 13:39:45.973 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x34 base_register=60)
2024-04-05 13:39:46.221 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:46.221 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x34 base_register=60)
2024-04-05 13:39:46.222 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x34 base_register=60)
2024-04-05 13:39:46.225 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x35 base_register=60)
2024-04-05 13:39:46.450 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:46.451 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x35 base_register=60)
2024-04-05 13:39:46.451 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x35 base_register=60)
2024-04-05 13:39:46.476 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:4/ReadInputRegistersRequest(slave_address=0x36 base_register=60)
2024-04-05 13:39:46.700 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-05 13:39:46.700 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x36 base_register=60)
2024-04-05 13:39:46.700 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x36 base_register=60)
2024-04-05 13:39:46.712 DEBUG (MainThread) [custom_components.givenergy_local.coordinator] Finished fetching Inverter data in 3.027 seconds (success: True)
2024-04-05 13:39:46.718 DEBUG (MainThread) [custom_components.givenergy_local] Scheduled next update for charge_slot_1 at 2024-04-05 23:59:00
2024-04-05 13:39:46.739 DEBUG (MainThread) [custom_components.givenergy_local] Scheduled next update for charge_slot_2 at 2024-04-06 00:01:00
2024-04-05 13:39:46.757 DEBUG (MainThread) [custom_components.givenergy_local] Scheduled next update for discharge_slot_1 at 2024-04-05 23:59:00
2024-04-05 13:39:47.040 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:6/WriteHoldingRegisterRequest(59 -> False/0x0000)
2024-04-05 13:39:47.200 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x5959000100260102..., buffer_len=44
2024-04-05 13:39:47.201 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:6/WriteHoldingRegisterResponse(59 -> 0/0x0000)
2024-04-05 13:39:47.201 INFO (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] 2:6/WriteHoldingRegisterResponse(59 -> 0/0x0000)
2024-04-05 13:39:47.201 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:6/WriteHoldingRegisterResponse(59 -> 0/0x0000)2024-04-05 13:39:47.290 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:6/WriteHoldingRegisterRequest(27 -> 1/0x0001)
2024-04-05 13:39:47.503 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x5959000100260102..., buffer_len=44
2024-04-05 13:39:47.503 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:6/WriteHoldingRegisterResponse(27 -> 1/0x0001)
2024-04-05 13:39:47.503 INFO (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] 2:6/WriteHoldingRegisterResponse(27 -> 1/0x0001)
2024-04-05 13:39:47.503 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:6/WriteHoldingRegisterResponse(27 -> 1/0x0001)2024-04-05 13:39:47.541 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:6/WriteHoldingRegisterRequest(111 -> 0/0x0000)
2024-04-05 13:39:47.700 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x5959000100260102..., buffer_len=44
2024-04-05 13:39:47.701 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:6/WriteHoldingRegisterResponse(111 -> 0/0x0000)
2024-04-05 13:39:47.701 INFO (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] 2:6/WriteHoldingRegisterResponse(111 -> 0/0x0000)
2024-04-05 13:39:47.701 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:6/WriteHoldingRegisterResponse(111 -> 0/0x0000)
2024-04-05 13:39:47.792 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 1): 2:6/WriteHoldingRegisterRequest(112 -> 50/0x0032)
2024-04-05 13:39:47.997 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x5959000100260102..., buffer_len=44
2024-04-05 13:39:47.997 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:6/WriteHoldingRegisterResponse(112 -> 50/0x0032)
2024-04-05 13:39:47.997 INFO (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] 2:6/WriteHoldingRegisterResponse(112 -> 50/0x0032)
2024-04-05 13:39:47.998 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:6/WriteHoldingRegisterResponse(112 -> 50/0x0032)
andynash commented 2 months ago

Hi @cdpuk, any thoughts on the debug log? Thanks!

p.s. I just came across the following error in the logs, but it may be a symptom rather than a cause?

2024-04-23 14:47:34.124 ERROR (MainThread) [homeassistant.components.select] Error while setting up givenergy_local platform for select Traceback (most recent call last): File "/srv/homeassistant/lib/python3.11/site-packages/homeassistant/helpers/entity_platform.py", line 350, in _async_setup_platform await asyncio.shield(awaitable) File "/home/homeassistant/.homeassistant/custom_components/givenergy_local/select.py", line 45, in async_setup_entry entities += BatteryPauseModeSelect( TypeError: 'BatteryPauseModeSelect' object is not iterable

pskillen commented 2 months ago

I'm also excited for this feature, for the exact same reason as Andy.

I've spent the day methodically testing every permutation of setting to see if I could achieve it but no, the firmware doesn't allow a mode which prioritises export while minimising import and no battery charge.

I have a Gen 3 5kW inverter and would be willing to test if it'll be helpful

andynash commented 2 months ago

Hi @cdp, sorry to bug you, as I appreciate you giving up your own time to work on this, and that I myself took a while to get back to you with the logs 😁

Just wondering if you expect to be able to look at this soonish, as if not I need to do some work on automations, to work around the battery charging when I don't want it to?

andynash commented 2 weeks ago

@cdpuk I've just upgraded HA to 2024.6.3, and encountered the other now closed issue that prevented startup of the integration, so have now switched from the beta2 to the latest main release.

I'd be happy to switch back to a beta if you are able to look at this again however, as it would be wonderful to get this capability working 👍