From 239cf3069e9ba5a83e42afc0e4f392bd9a111d5a Mon Sep 17 00:00:00 2001 From: 31c0fe9c6dbd74bcdde92e1d2aaa03e1d272f75f Date: Wed, 31 Aug 2022 12:25:06 +1000 Subject: [PATCH] Home Assistant Git Exporter --- config/packages/sungrow.yaml | 62 +++++++++++++++++++++++++++++++++++ config/zigbee2mqtt/state.json | 14 ++++---- 2 files changed, 69 insertions(+), 7 deletions(-) diff --git a/config/packages/sungrow.yaml b/config/packages/sungrow.yaml index 6540752..9689d46 100644 --- a/config/packages/sungrow.yaml +++ b/config/packages/sungrow.yaml @@ -75,6 +75,15 @@ input_number: unit_of_measurement: "%" mode: box + inverter_forced_mode_battery_power: + name: Inverter forced mode battery power + min: 10 + max: 6600 + step: 10 + initial: 2000 + mode: box + unit_of_measurement: "W" + automation: - id: e7df7dc23815acacdd8c alias: Inverter - apply charging schedule @@ -174,6 +183,59 @@ automation: reserved_percentage: >- {{ states('input_number.inverter_battery_reserve') | int }} + - id: 647fd6b77b7f72f0bf75 + alias: Inverter - set forced mode battery power + mode: restart + trigger: + - platform: state + entity_id: + - input_number.inverter_forced_mode_battery_power + not_from: + - unknown + - unavailable + not_to: + - unknown + - unavailable + variables: + current_power: "{{ states('sensor.inverter_battery_forced_charge_discharge_power') | int }}" + target_power: "{{ states('input_number.inverter_forced_mode_battery_power') | int }}" + target_power_value: "{{ target_power / 10 }}" # undocumented register is in multiples of 10W + condition: + - "{{ current_power != target_power }}" + action: + - service: modbus.write_register + data_template: + # Documented modbus address 13051 is readable but won't write. + # address: 13050 # 13051 + + # However, there is an undocumented register 33148 which takes a number in multiples of 10W which works. + address: 33147 # 33148 + + slave: 1 + value: "{{ [target_power_value] }}" + hub: SungrowSHx + + - id: 31fd5a1552832c9a14c9 + alias: Inverter - update forced mode battery power + mode: restart + trigger: + - platform: state + entity_id: + - sensor.inverter_battery_forced_charge_discharge_power + not_from: + - unknown + - unavailable + not_to: + - unknown + - unavailable + action: + - service: input_number.set_value + target: + entity_id: input_number.inverter_forced_mode_battery_power + data_template: + value: "{{ states('sensor.inverter_battery_forced_charge_discharge_power') | int }}" + hub: SungrowSHx + # The inverter can only generate 5kW of AC power. IFF the battery is not-full, it can generate 5kW of AC _and_ charge # battery at up to 6.6kW, which saturates our 8.46 kW of PV # diff --git a/config/zigbee2mqtt/state.json b/config/zigbee2mqtt/state.json index 02b1da0..1b3b6e2 100644 --- a/config/zigbee2mqtt/state.json +++ b/config/zigbee2mqtt/state.json @@ -9,15 +9,15 @@ }, "0x00158d0008091c32": { "contact": true, - "voltage": 3005, - "battery": 44, + "voltage": 2995, + "battery": 41, "temperature": 19, "linkquality": 255, - "device_temperature": 18, + "device_temperature": 21, "power_outage_count": 8 }, "0x00158d00080915bd": { - "contact": true, + "contact": false, "voltage": 3005, "battery": 44, "temperature": 17, @@ -53,7 +53,7 @@ "power_outage_count": 41 }, "0x5c0272fffee93bae": { - "occupancy": true, + "occupancy": false, "tamper": false, "battery_low": false, "linkquality": 255 @@ -67,11 +67,11 @@ "linkquality": 191 }, "0xa4c138fda4db2c5e": { - "occupancy": false, + "occupancy": true, "battery": 100, "sensitivity": "high", "keep_time": "120", - "illuminance": 874, + "illuminance": 826, "linkquality": 127 }, "0x84b4dbfffe850fda": {