Open StarChildDK opened 1 year ago
This Would be a really nice way to be able to turn off the output when prices are negative.
In Growatt Inverter Modbus RTU Protocol V1.24 there is a option to do this:
In Growatt Inverter Modbus RTU Protocol V1.24 there is a option to do this:
![]()
Good find! I have no clue yet how to implement this :) Is there another project using this so I can have a look how it's implemented?
We see more and more negative Kwh pricing so it would be great to automate the invertor to stop produce power. Another option for this I came across is:
Could this be exposes to HA as a switch or so? Maybe more easier to implement?
@kiss81
In Growatt Inverter Modbus RTU Protocol V1.24 there is a option to do this:
![]()
Good find! I have no clue yet how to implement this :) Is there another project using this so I can have a look how it's implemented?
Just use WRITE register
@wauswaus
We see more and more negative Kwh pricing so it would be great to automate the invertor to stop produce power. Another option for this I came across is:
Could this be exposes to HA as a switch or so? Maybe more easier to implement?
Why to stop produce power? Idea is to be independent from electric company as much is possible, witch mean ZERO import and ZERO export.
Hi.
it is possible to use another register to control Export limit, namely Holding Register 3
:
I thing, to use the registers 122
and then 123
will work only via separately RS485 or RS232 port, not via USB port, so the ESPHOME must be connected two times (USB + RSxxx) and emulates the power meter (but not sure, maybe not?).
Already exists a PR in another project.
I already tested it and seems to be work:
Example (OpenInverterGateway project) with very small PV with 100Wp and Growatt 600tl-x:
$ curl -X POST http://growatt/postCommunicationModbus_p -d "type=16b&operation=W®isterType=H®=3&val=10"; echo
Wrote Holding Register 3 to a value of 10!
$ curl -X POST http://growatt/postCommunicationModbus_p -d "val=&type=16b&operation=R®isterType=H®=3"; echo
Read 16b Holding register 3 with value 10
$ curl -X POST http://growatt/postCommunicationModbus_p -d "type=16b&operation=W®isterType=H®=3&val=5"; echo
Wrote Holding Register 3 to a value of 5!
$ curl -X POST http://growatt/postCommunicationModbus_p -d "val=&type=16b&operation=R®isterType=H®=3"; echo
Read 16b Holding register 3 with value 5
$ curl -X POST http://growatt/postCommunicationModbus_p -d "type=16b&operation=W®isterType=H®=3&val=100"; echo
Wrote Holding Register 3 to a value of 100!
Legend:
Maybe this should be the correct way ..
Hi.
it is possible to use another register to control Export limit, namely Holding Register
3
:I thing, to use the registers
122
and then123
will work only via separately RS485 or RS232 port, not via USB port, so the ESPHOME must be connected two times (USB + RSxxx) and emulates the power meter (but not sure, maybe not?).Already exists a PR in another project.
I already tested it and seems to be work:
Example (OpenInverterGateway project) with very small PV with 100Wp and Growatt 600tl-x:
$ curl -X POST http://growatt/postCommunicationModbus_p -d "type=16b&operation=W®isterType=H®=3&val=10"; echo Wrote Holding Register 3 to a value of 10! $ curl -X POST http://growatt/postCommunicationModbus_p -d "val=&type=16b&operation=R®isterType=H®=3"; echo Read 16b Holding register 3 with value 10 $ curl -X POST http://growatt/postCommunicationModbus_p -d "type=16b&operation=W®isterType=H®=3&val=5"; echo Wrote Holding Register 3 to a value of 5! $ curl -X POST http://growatt/postCommunicationModbus_p -d "val=&type=16b&operation=R®isterType=H®=3"; echo Read 16b Holding register 3 with value 5 $ curl -X POST http://growatt/postCommunicationModbus_p -d "type=16b&operation=W®isterType=H®=3&val=100"; echo Wrote Holding Register 3 to a value of 100!
Legend:
- [9:48:35] 10% => ca. 60W
- [9:49:00] 5% => ca. 30W
- [9:49:40] 100% => back to max
Maybe this should be the correct way ..
This function is more interesting in case if there is no power limiter installed at all
Negative Red leaf on inverter but works
for anyone looking for a solution to this - i got it working with a MIC 750 TL-X (which happens to generate a bit more 8)) with the below config. and yes, this works fine along with the sensors of the platform growatt_solar.
uart:
tx_pin: GPIO4
rx_pin: GPIO5
baud_rate: 9600
modbus:
modbus_controller:
- id: modbus_gw750
sensor:
- platform: modbus_controller
modbus_controller_id: modbus_gw750
#
# sensor returning the currently set limit read from the register for showing it in HA
#
name: "Limit %"
id: gw750_limit_set
register_type: holding
address: 3
unit_of_measurement: "%"
value_type: U_WORD
number:
- platform: modbus_controller
modbus_controller_id: modbus_gw750
#
# creating a number entity and it's corresponding slider in HA
# and writes it to the register on change
#
name: GW750 Limit
id: gw750_limit
address: 3
register_type: holding
value_type: U_WORD
min_value: 10
max_value: 100
step: 1
Describe the problem you have/What new integration you would like The growatt sensor integration - On some of the growatt inverters it is possible to set Export limitations via RS485, it would be great if esphome could control this.
Please describe your use case for this integration and alternatives you've tried: Home assistant could be used to control the export limit, it would be very convenient if the home assistant already has a smart meter.
Additional context