GivEnergy Solar Inverter

I managed to locally patch givenergy-local to use the givetcp version of givenergy-modbus, and it then works with the new CRC check. local needs some changes as the library has been tweaked, and I cant work out how to replace the library elegantly. But it does work. GivTCP beta now supports the new AIO kit.

1 Like

Hi. I’m new, have a Giv Battery, and would love to get a controlled export for Octopus Flux. But I’m failing to get the GivEnergy integration installed on HA.
I assume I’m missing something, but can’t figure out what - any help much appreciated.

I’ve installed HA, installed HACS, added the Custom repository (the screen I see doesn’t have the 'Integrations, Front End, Automations headings I see in earlier screen shots)

Then I go Settings, Devices and Services, Add Integration, and giv… isn’t listed.
(being new, I can’t add a 2nd screenshot, sorry)

Thanks for any help
Dave

I’m not sure why you can’t add it, but in any case, I think mode change is yet to be fully integrated.

You can do this via the GivEnergy api and some script. I use node red to fire off some commands - happy to share if you want to go this route but it’s not exactly elegant!

I have my battery set to charge to full every day and then at around 21:30 it checks how much is left (if any!) and switches to discharge if it’s above a certain %. This gives it enough time to fully discharge ready for the nighttime charge, thus maximising the higher export rate.

You missed a step, once you have added it to HACS you need to download it. Click on the HACS icon in the sidebar, then click on GivEnergy Local (you can search as shown)

and there is a button bottom right “download”.

Once that is done, try again in the integrations page

1 Like

If you use HAOS, try the GivTCP addon, there’s more control using that. I have Flux and use it to export and import

Brilliant - thank you - that worked.
It turned out I had to start typing in the search bar in your first screen shot, otherwise the list showed as blank.

Another question - sorry - when I try to add the GivTCP Power Flow Card, it says ‘You need to define at least one invertor entity’; type: custom:givtcp-power-flow-card
How and where do I do that?
Thanks again.

Don’t know sorry I don’t use that card

Ah - OK, thank you.
Hopefully a last question:
In your previous reply, you said “If you use HAOS, try the GivTCP addon, …”. This sounds very interesting because of your use of Flux.
With apologies again, how do I find it?
I’m using HAOS11.1, I’ve looked in Settings, Add-ons, Add-on Store, searched and not found it; clicked the 3 dots, tried to add the Integration repository. and got ‘not a valid add-on repository’.
Thanks again …

It’s a custom add-on available here, instructions on how to add it is on that page

Thanks again - much appreciated.

I wish I’d seen your messages before upgrading to the latest firmware, but thanks for posting it!

I find myself with givenergy-local broken, and it may not be possible to rollback the software. Migrating to givtcp would be big piece of work…

Would you mind sharing how you modified givenergy-local to incorporate the givtcp version of givenergy-modbus? As a lot depends on the battery now, I’m pretty desperate to get things working again somehow :slight_smile:

Ps. there’s an issue perhaps based on your posts that refers generally to updating givenergy-modbus, but I’ve created my own issue directly referring to the breaking change introduced by the new firmware so that others don’t make the same mistake.

Since I changed to Intelligent Octopus Go with Agile Outgoing Octopus recently, I’ve been struggling to exploit the Force Export function of my gen 1 GivTCP hybrid system. Only this week, I learnt of the automation posted by Barry Morfill at: Redirecting...
I’ve got that automation working, with minimal changes needed to reflect my system configuration, in conjunction with the GivTCP. That automation is designed to trigger Force Export at a defined time and to stop when the battery SoC drops to a defined level.
I’m hoping to go beyond that such that the export occurs during the window(s) of the most favourable Agile Outgoing rate.
Perhaps others have achieved what I’m after already?
I’ll report my progress here.

Hi Andy, I don’t know what’s behind that link as I don’t use facebook. However if you are using Octopus Energy integration they you should be able to use the target rates sensors to initiate export in the same way you can use target rates sensors to charge your battery when the import rates are at their lowest.

Sorry wrong area

I could use a little help with setup if anyone can advise? I had the integration working fine, but i had to speak with Givenergy and i think they pushed an updated of some sort to the equipment; since then i can’t get a connection. I can telnet into the IP and port, getting the blinking cursor and eventually some scrolling characters, but the integration gives me ‘no devices or entities’ and ‘failed to setup, will retry’. I have removed it and started again but still no joy.

I have pasted a limited chunk of the debug logs below. HA is on Core 2024.3.3 and Supervisor 2024.03.1. OS 12.1. According to the Givenergy website the inverter (GIV-HY5.0) firmware is on D0.307-A0.307 and battery is 3015.

If any further info is needed just ask - it was great while i had it working!

2024-04-03 13:08:21.599 INFO (MainThread) [custom_components.givenergy_local.coordinator] Fetching data from 192.168.1.121 (attempt=1/3, full_refresh=True)
2024-04-03 13:08:21.601 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-03 13:08:21.836 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-03 13:08:21.837 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=0)
2024-04-03 13:08:21.837 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=0)
2024-04-03 13:08:21.852 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-03 13:08:22.075 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-03 13:08:22.075 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=180)
2024-04-03 13:08:22.075 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=180)
2024-04-03 13:08:22.103 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-03 13:08:22.353 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-03 13:08:22.585 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-03 13:08:22.585 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=60)
2024-04-03 13:08:22.585 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=60)
2024-04-03 13:08:22.604 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-03 13:08:22.835 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-03 13:08:22.835 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=120)
2024-04-03 13:08:22.835 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=120)
2024-04-03 13:08:22.854 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-03 13:08:23.085 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-03 13:08:23.086 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=120)
2024-04-03 13:08:23.086 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=120)
2024-04-03 13:08:23.104 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Timeout awaiting 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=0), attempting retry 1 of 2
2024-04-03 13:08:23.105 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-03 13:08:23.345 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-03 13:08:23.345 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=60)
2024-04-03 13:08:23.346 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x32 base_register=60)
2024-04-03 13:08:23.356 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-03 13:08:23.585 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-03 13:08:23.585 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x33 base_register=60)
2024-04-03 13:08:23.585 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x33 base_register=60)
2024-04-03 13:08:23.585 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] First time encountering slave address 0x33
2024-04-03 13:08:23.607 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-03 13:08:23.835 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-03 13:08:23.835 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x34 base_register=60)
2024-04-03 13:08:23.835 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x34 base_register=60)
2024-04-03 13:08:23.835 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] First time encountering slave address 0x34
2024-04-03 13:08:23.860 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-03 13:08:24.085 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x59590001009e0102..., buffer_len=164
2024-04-03 13:08:24.085 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Processing 2:4/ReadInputRegistersResponse(slave_address=0x35 base_register=60)
2024-04-03 13:08:24.085 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] Handling 2:4/ReadInputRegistersResponse(slave_address=0x35 base_register=60)
2024-04-03 13:08:24.085 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.model.plant] First time encountering slave address 0x35
2024-04-03 13:08:24.110 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-03 13:08:24.205 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.framer] Found next frame: 0x5959000100410102..., buffer_len=71
2024-04-03 13:08:24.361 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 2): 2:3/ReadHoldingRegistersRequest(slave_address=0x32 base_register=0)
2024-04-03 13:08:25.111 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Timeout awaiting 2:4/ReadInputRegistersResponse(slave_address=0x36 base_register=60), attempting retry 1 of 2
2024-04-03 13:08:25.111 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 2): 2:4/ReadInputRegistersRequest(slave_address=0x36 base_register=60)
2024-04-03 13:08:25.362 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Timeout awaiting 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=0), attempting retry 2 of 2
2024-04-03 13:08:25.363 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 3): 2:3/ReadHoldingRegistersRequest(slave_address=0x32 base_register=0)
2024-04-03 13:08:26.112 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Timeout awaiting 2:4/ReadInputRegistersResponse(slave_address=0x36 base_register=60), attempting retry 2 of 2
2024-04-03 13:08:26.112 DEBUG (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Request sent (attempt 3): 2:4/ReadInputRegistersRequest(slave_address=0x36 base_register=60)
2024-04-03 13:08:26.364 WARNING (MainThread) [custom_components.givenergy_local.givenergy_modbus.client.client] Timeout awaiting 2:3/ReadHoldingRegistersResponse(slave_address=0x32 base_register=0) after 3 tries at 1s, giving up
2024-04-03 13:08:26.364 ERROR (MainThread) [custom_components.givenergy_local.coordinator] Closing connection due to expected error: 

For anyone with a similar issue - I gave up and went with GivTCP which worked ok. You need an MQTT broker for it to work and set up is a bit more complicated, but it’s done the job.

As per my Github reply, this looks like another breaking change with newer firmware versions. Since GivTCP works it should be relatively easy to port across whatever change is required, but this will need community testing to verify that it actually works.

2 Likes