wlcrs / huawei_solar

Home Assistant integration for Huawei Solar inverters via Modbus
GNU Affero General Public License v3.0
559 stars 89 forks source link

[Bug]: Force charge discharge battery Services disappeared after version 1.2.0 installation #269

Closed barto64 closed 1 year ago

barto64 commented 1 year ago

Describe the issue

After installation of version 1.2.0 all the "Force charge discharge battery Services" have disappeared from Home Assisstant.

My night automation to charge battery from the grid based on the solar forecast production and energy prices have stop working due to the missed services. I was using "huawei_solar.forcible_charge_soc" already for a couple of months.

Bescribe your Huawei Solar Setup

Inverter Type: SUN2000-5KTL-L1 + SUN2000-3.68KTL-L1 Inverter Firmware version: V200R001C00SPC125 for both SDongle present: yes SDongle Firmware version: V100R001C00SPC127 Power meter present: single phase Battery: LUNA2000 10kWh Battery Firmware version: V100R002C00SPC116

How do you connect to the inverter?

Via the SDongle, wired connection

Upload your Diagnostics File

{ "home_assistant": { "installation_type": "Home Assistant OS", "version": "2023.1.6", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.10.7", "docker": true, "arch": "aarch64", "timezone": "Europe/Madrid", "os_name": "Linux", "os_version": "5.15.80", "supervisor": "2022.12.1", "host_os": "Home Assistant OS 9.4", "docker_version": "20.10.19", "chassis": "embedded", "run_as_root": true }, "custom_components": { "huawei_solar": { "version": "1.2.0", "requirements": [ "huawei-solar==2.2.0" ] }, "pyscript": { "version": "1.3.3", "requirements": [ "croniter==1.3.4", "watchdog==2.1.6" ] }, "aarlo": { "version": "0.7.2b13", "requirements": [ "unidecode", "cloudscraper>=1.2.64", "paho-mqtt" ] }, "nuki_ng": { "version": "0.2.1", "requirements": [] }, "esios": { "version": "1.0.0", "requirements": [] }, "miele": { "version": "0.1.4", "requirements": [ "flatdict==4.0.1", "pymiele==0.1.6" ] }, "wundergroundpws": { "version": "0.8.1", "requirements": [] }, "home_connect_alt": { "version": "0.5.9", "requirements": [ "home-connect-async==0.7.5" ] }, "sonoff": { "version": "3.3.1", "requirements": [ "pycryptodome>=3.6.6" ] }, "alexa_media": { "version": "4.5.3", "requirements": [ "alexapy==1.26.4", "packaging>=20.3", "wrapt>=1.12.1" ] }, "ble_monitor": { "version": "11.4.1", "requirements": [ "pycryptodomex>=3.14.1", "janus>=1.0.0", "aioblescan>=0.2.14", "btsocket>=0.2.0", "pyric>=0.1.6.3" ] }, "porscheconnect": { "version": "0.0.11", "requirements": [ "pyporscheconnectapi==0.0.24" ] }, "hacs": { "version": "1.29.1", "requirements": [ "aiogithubapi>=22.10.1" ] }, "attributes": { "version": "1.2.0", "requirements": [] }, "irrigation_unlimited": { "version": "2022.12.0", "requirements": [ "crontab" ] } }, "integration_manifest": { "domain": "huawei_solar", "name": "Huawei Solar", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/huawei_solar", "issue_tracker": "https://github.com/wlcrs/huawei_solar/issues", "requirements": [ "huawei-solar==2.2.0" ], "codeowners": [ "@wlcrs" ], "iot_class": "local_polling", "version": "1.2.0", "loggers": [ "huawei_solar", "pymodbus" ], "is_built_in": false }, "data": { "config_entry_data": { "host": "192.168.1.92", "port": 502, "slave_ids": [ 1, 16 ], "enable_parameter_configuration": true, "username": null, "password": null }, "slave_0": { "model_name": "SUN2000-3.68KTL-L1", "pv_string_count": 2, "has_optimizers": 0, "battery_type": 0, "battery_1_type": 0, "battery_2_type": 0, "power_meter_type": null, "supports_capacity_control": false }, "slave_0_data": { "input_power": [ 0, "W" ], "line_voltage_A_B": [ 0.0, "V" ], "line_voltage_B_C": [ 0.0, "V" ], "line_voltage_C_A": [ 0.0, "V" ], "phase_A_voltage": [ 0.0, "V" ], "phase_B_voltage": [ 0.0, "V" ], "phase_C_voltage": [ 0.0, "V" ], "phase_A_current": [ 0.0, "A" ], "phase_B_current": [ 0.0, "A" ], "phase_C_current": [ 0.0, "A" ], "day_active_power_peak": [ 2611, "W" ], "active_power": [ 0, "W" ], "reactive_power": [ 0, "VA" ], "power_factor": [ 0.0, null ], "grid_frequency": [ 0.0, "Hz" ], "efficiency": [ 0.0, "%" ], "internal_temperature": [ 0.0, "\u00b0C" ], "insulation_resistance": [ 30.0, "MOhm" ], "device_status": [ "Standby: detecting irradiation", null ], "fault_code": [ 0, null ], "startup_time": [ "2023-01-21T07:30:24+00:00", null ], "shutdown_time": [ "2023-01-21T17:38:41+00:00", null ], "accumulated_yield_energy": [ 5644.56, "kWh" ], "daily_yield_energy": [ 14.41, "kWh" ], "state_1": [ [ "Standby" ], null ], "state_2": [ [ "Locked", "PV disconnected", "DSP data collection" ], null ], "state_3": [ [ "On-grid", "Off-grid switch disabled" ], null ], "alarm_1": [ [], null ], "alarm_2": [ [], null ], "alarm_3": [ [], null ], "pv_01_voltage": [ 0.0, "V" ], "pv_01_current": [ 0.0, "A" ], "pv_02_voltage": [ 0.0, "V" ], "pv_02_current": [ 0.0, "A" ] }, "slave_0_config_data": {}, "slave_16": { "model_name": "SUN2000-5KTL-L1", "pv_string_count": 2, "has_optimizers": 0, "battery_type": 2, "battery_1_type": 2, "battery_2_type": 0, "power_meter_type": 0, "supports_capacity_control": true }, "slave_16_data": { "input_power": [ 1, "W" ], "line_voltage_A_B": [ 231.6, "V" ], "line_voltage_B_C": [ 0.0, "V" ], "line_voltage_C_A": [ 0.0, "V" ], "phase_A_voltage": [ 111.3, "V" ], "phase_B_voltage": [ 0.3, "V" ], "phase_C_voltage": [ 0.0, "V" ], "phase_A_current": [ 2.982, "A" ], "phase_B_current": [ 0.0, "A" ], "phase_C_current": [ 0.0, "A" ], "day_active_power_peak": [ 5224, "W" ], "active_power": [ 676, "W" ], "reactive_power": [ 1, "VA" ], "power_factor": [ 1.0, null ], "grid_frequency": [ 50.0, "Hz" ], "efficiency": [ 100.0, "%" ], "internal_temperature": [ 27.3, "\u00b0C" ], "insulation_resistance": [ 30.0, "MOhm" ], "device_status": [ "On-grid", null ], "fault_code": [ 0, null ], "startup_time": [ "2023-01-21T07:58:52+00:00", null ], "shutdown_time": [ null, null ], "accumulated_yield_energy": [ 6525.3, "kWh" ], "daily_yield_energy": [ 14.29, "kWh" ], "state_1": [ [ "Grid-Connected", "Grid-Connected normally" ], null ], "state_2": [ [ "Unlocked", "PV connected", "DSP data collection" ], null ], "state_3": [ [ "On-grid", "Off-grid switch disabled" ], null ], "alarm_1": [ [], null ], "alarm_2": [ [], null ], "alarm_3": [ [], null ], "pv_01_voltage": [ 145.9, "V" ], "pv_01_current": [ 0.01, "A" ], "pv_02_voltage": [ 0.0, "V" ], "pv_02_current": [ 0.0, "A" ], "grid_A_voltage": [ 231.3, "V" ], "grid_B_voltage": [ null, "V" ], "grid_C_voltage": [ null, "V" ], "active_grid_A_current": [ -0.93, "I" ], "active_grid_B_current": [ null, "I" ], "active_grid_C_current": [ null, "I" ], "power_meter_active_power": [ -8, "W" ], "power_meter_reactive_power": [ 214, "Var" ], "active_grid_power_factor": [ -0.072, null ], "active_grid_frequency": [ 50.0, "Hz" ], "grid_exported_energy": [ 8332.54, "kWh" ], "grid_accumulated_energy": [ 3747.13, "kWh" ], "grid_accumulated_reactive_power": [ 0.0, "kVarh" ], "meter_type": [ 0, null ], "active_grid_A_B_voltage": [ null, "V" ], "active_grid_B_C_voltage": [ null, "V" ], "active_grid_C_A_voltage": [ null, "V" ], "active_grid_A_power": [ null, "W" ], "active_grid_B_power": [ null, "W" ], "active_grid_C_power": [ null, "W" ], "storage_state_of_capacity": [ 94.0, "%" ], "storage_running_status": [ 2, null ], "storage_bus_voltage": [ 448.8, "V" ], "storage_bus_current": [ -1.6, "A" ], "storage_charge_discharge_power": [ -675, "W" ], "storage_total_charge": [ 542.05, "kWh" ], "storage_total_discharge": [ 526.63, "kWh" ], "storage_current_day_charge_capacity": [ 10.32, "kWh" ], "storage_current_day_discharge_capacity": [ 6.03, "kWh" ] }, "slave_16_config_data": { "storage_maximum_charging_power": [ 5000, "W" ], "storage_maximum_discharging_power": [ 5000, "W" ], "storage_charging_cutoff_capacity": [ 100.0, "%" ], "storage_discharging_cutoff_capacity": [ 5.0, "%" ], "storage_working_mode_settings": [ 2, null ], "storage_charge_from_grid_function": [ true, null ], "storage_grid_charge_cutoff_state_of_charge": [ 100.0, "%" ], "storage_fixed_charging_and_discharging_periods": [ [], null ], "storage_power_of_charge_from_grid": [ 2000, "W" ], "storage_maximum_power_of_charge_from_grid": [ 3000, "W" ], "storage_time_of_use_charging_and_discharging_periods": [ { "__type": "<class 'huawei_solar.exceptions.DecodeError'>", "repr": "DecodeError('Invalid model to decode TOU Registers for: 0')" }, null ], "storage_excess_pv_energy_use_in_tou": [ 0, null ], "storage_capacity_control_mode": [ 0, null ], "storage_capacity_control_soc_peak_shaving": [ 50.0, "%" ], "storage_capacity_control_periods": [ [], null ] } } }

Upload your relevant debug logs

Only 3 services appeared register on the huawei_solar domain

2023-01-21 18:53:53.200 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=huawei_solar, service=reset_maximum_feed_grid_power>
2023-01-21 18:53:53.200 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=huawei_solar, service=set_maximum_feed_grid_power>
2023-01-21 18:53:53.200 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=huawei_solar, service=set_maximum_feed_grid_power_percent>

Please confirm the following:

barto64 commented 1 year ago

Hey,

You are great !!!!!!! Just deployed the code changes you made and the services are back. Super thanks for your prompt reaction.