Vestas @hoggy
I do see in GivTCP that it does a read after write confirmation after about 1.5seconds and sometimes you see where commands have failed to be sent and are retried:
2024-03-26 12:20:24,551 - Inv1 - write - [INFO ] - Setting battery charge rate to: 0 (0)
2024-03-26 12:20:28,334 - Inv1 - write - [INFO ] - Setting battery charge rate 0 was a success
2024-03-26 12:20:34,474 - Inv2 - write - [INFO ] - Setting Battery Mode to: Timed Export
2024-03-26 12:20:34,856 - Inv2 - write - [INFO ] - Setting export mode failed: (<class 'AssertionError'>, AssertionError('Unexpected response from remote end: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response'), <traceback object at 0x7f6eb98447c0>)
2024-03-26 12:20:35,256 - Inv2 - write - [INFO ] - Enabling Discharge failed: (<class 'AssertionError'>, AssertionError('Unexpected response from remote end: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response'), <traceback object at 0x7f6ebb4a97c0>)
2024-03-26 12:20:41,406 - Inv2 - write - [INFO ] - Setting Battery Mode to: Timed Export
2024-03-26 12:20:45,710 - Inv2 - write - [INFO ] - Setting export mode was a success
2024-03-26 12:20:47,513 - Inv2 - write - [INFO ] - Enabling Discharge was a success
2024-03-26 12:20:53,494 - Inv2 - write - [INFO ] - Setting battery reserve target to: 88
2024-03-26 12:20:55,027 - Inv2 - write - [INFO ] - Setting shallow charge 88 was a success
2024-03-26 12:21:01,307 - Inv2 - write - [INFO ] - Setting battery charge rate to: 0 (0)
2024-03-26 12:21:02,845 - Inv2 - write - [INFO ] - Setting battery charge rate 0 was a success
2024-03-26 12:21:38,559 - Inv1 - write - [INFO ] - Setting Discharge Slot 1 to: 12:00 - 12:31
2024-03-26 12:21:41,473 - Inv1 - write - [INFO ] - Setting Discharge Slot 1 was a success
2024-03-26 12:21:47,588 - Inv2 - write - [INFO ] - Setting Discharge Slot 1 to: 12:00 - 12:31
2024-03-26 12:21:50,373 - Inv2 - write - [INFO ] - Setting Discharge Slot 1 was a success
2024-03-26 12:30:30,607 - Inv1 - write - [INFO ] - Setting battery reserve target to: 84
2024-03-26 12:30:32,649 - Inv1 - write - [INFO ] - Setting shallow charge 84 was a success
2024-03-26 12:30:38,900 - Inv2 - write - [INFO ] - Setting battery reserve target to: 84
2024-03-26 12:30:39,421 - Inv2 - write - [INFO ] - Setting shallow charge 84 failed: (<class 'AssertionError'>, AssertionError('Unexpected response from remote end: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response'), <traceback object at 0x7f6eb984c7c0>)
Sooo given that GivTCP does a read after write which will slow-down the machine gun command firing - which you can see in the logs, do we need to do anything else such as adding extra delays? Having looked at the GivTCP logfile I’m inclined to think not as its naturally delaying itself