diff --git a/packages/modules/devices/lg/lg/JSON-Beispiele.txt b/packages/modules/devices/lg/lg/JSON-Beispiele.txt index 40b347d623..49da0b2167 100644 --- a/packages/modules/devices/lg/lg/JSON-Beispiele.txt +++ b/packages/modules/devices/lg/lg/JSON-Beispiele.txt @@ -27,6 +27,98 @@ $ curl -k -d '{"auth_key":"67567d76-0c83-11ea-8a59-d84fb802005a"}' -H "Content-T % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 909 0 858 100 51 858 51 0:00:01 --:--:-- 0:00:01 4835 +{ + "statistics": + { + "pcs_pv_total_power": "0", + "batconv_power": "372", + "bat_use": "1", + "bat_status": "2", + "bat_user_soc": "14.58333", + "load_power": "361", + "load_today": "0.0", + "grid_power": "11", + "current_day_self_consumption": "94.8", + "current_pv_generation_sum": "7415", + "current_grid_feed_in_energy": "385" + }, + "direction": + { + "is_direct_consuming_": "0", + "is_battery_charging_": "0", + "is_battery_discharging_": "1", + "is_grid_selling_": "0", + "is_grid_buying_": "0", + "is_charging_from_grid_": "0" + }, + "operation": + { + "status": "start", + "mode": "1" + }, + "wintermode": + { + "winter_status": "on" + }, + "pcs_fault": + { + "pcs_status": "pcs_ok" + } +} + +### LG Home 15 ### +{ + "statistics": { + "pv_total_power_01kW": 36, + "batt_conv_power_01kW": -34, + "grid_power_01kW": 0, + "load_power_01kW": 2, + "ac_active_power_01kW": 3, + "bat_use": 1, + "bat_status": 1, + "bat_user_soc": 46 + }, + "direction": { + "is_direct_consuming_": 1, + "is_battery_charging_": 1, + "is_battery_discharging_": 0, + "is_grid_selling_": 0, + "is_grid_buying_": 0, + "is_charging_from_grid_": 0, + "is_discharging_to_grid_": 0 + }, + "operation": { + "status": "start", + "mode": 1, + "oper_status": 3, + "simple_status": 1, + "backup_mode": 1, + "remote_mode": 0, + "demo_mode": 0, + "tou_period": 1, + "ripple_control": "0", + "ripple_level": "0" + }, + "pcs_fault": { + "pcs_status": "pcs_ok", + "grid_fault": "0" + }, + "heatpump": { + "heatpump_protocol": "2", + "heatpump_installed": "no", + "heatpump_activate": "off", + "current_temp": 0, + "heatpump_working": "off" + }, + "evcharger": { + "ev_activate": "off", + "ev_power": 0 + }, + "gridWaitingTime": 0, + "coredump": "none", + "factory_test_mode": "none" +} + { "statistics": { diff --git a/packages/modules/devices/lg/lg/bat.py b/packages/modules/devices/lg/lg/bat.py index 0890f187c6..a7be8f812e 100644 --- a/packages/modules/devices/lg/lg/bat.py +++ b/packages/modules/devices/lg/lg/bat.py @@ -26,9 +26,12 @@ def initialize(self) -> None: self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) def update(self, response) -> None: - power = float(response["statistics"]["batconv_power"]) - if response["direction"]["is_battery_discharging_"] == "1": - power = power * -1 + if 'batconv_power' in response['statistics']: + power = float(response["statistics"]["batconv_power"]) + if response["direction"]["is_battery_discharging_"] == "1": + power = power * -1 + else: + power = float(response["statistics"]["batt_conv_power_01kW"]) * -100 # Home 15 try: soc = float(response["statistics"]["bat_user_soc"]) except ValueError: diff --git a/packages/modules/devices/lg/lg/counter.py b/packages/modules/devices/lg/lg/counter.py index fba44df091..c7e471673f 100644 --- a/packages/modules/devices/lg/lg/counter.py +++ b/packages/modules/devices/lg/lg/counter.py @@ -26,10 +26,15 @@ def initialize(self) -> None: self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) def update(self, response) -> None: - power = float(response["statistics"]["grid_power"]) + if 'grid_power' in response['statistics']: + power = float(response["statistics"]["grid_power"]) + if response["direction"]["is_grid_selling_"] == "1": + power = power*-1 + else: + power = float(response["statistics"]["grid_power_01kW"]) * 100 # Home 15 + if response["direction"]["is_grid_selling_"] == "1": power = power*-1 - imported, exported = self.sim_counter.sim_count(power) counter_state = CounterState( imported=imported, diff --git a/packages/modules/devices/lg/lg/inverter.py b/packages/modules/devices/lg/lg/inverter.py index c94b747de1..7242c52260 100644 --- a/packages/modules/devices/lg/lg/inverter.py +++ b/packages/modules/devices/lg/lg/inverter.py @@ -26,7 +26,10 @@ def initialize(self) -> None: self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) def update(self, response: Dict) -> None: - power = float(response["statistics"]["pcs_pv_total_power"]) * -1 + if 'pcs_pv_total_power' in response['statistics']: + power = float(response["statistics"]["pcs_pv_total_power"]) * -1 + else: + power = float(response["statistics"]["pv_total_power_01kW"]) * -100 # Home 15 _, exported = self.sim_counter.sim_count(power) inverter_state = InverterState( exported=exported,