Skip to content

Commit 58e31c6

Browse files
authored
Merge pull request #2926 from ndrsnhs/lg-home-15
Add LG Home 15
2 parents 15d604d + df06017 commit 58e31c6

4 files changed

Lines changed: 109 additions & 6 deletions

File tree

packages/modules/devices/lg/lg/JSON-Beispiele.txt

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,98 @@ $ curl -k -d '{"auth_key":"67567d76-0c83-11ea-8a59-d84fb802005a"}' -H "Content-T
2727
% Total % Received % Xferd Average Speed Time Time Time Current
2828
Dload Upload Total Spent Left Speed
2929
100 909 0 858 100 51 858 51 0:00:01 --:--:-- 0:00:01 4835
30+
{
31+
"statistics":
32+
{
33+
"pcs_pv_total_power": "0",
34+
"batconv_power": "372",
35+
"bat_use": "1",
36+
"bat_status": "2",
37+
"bat_user_soc": "14.58333",
38+
"load_power": "361",
39+
"load_today": "0.0",
40+
"grid_power": "11",
41+
"current_day_self_consumption": "94.8",
42+
"current_pv_generation_sum": "7415",
43+
"current_grid_feed_in_energy": "385"
44+
},
45+
"direction":
46+
{
47+
"is_direct_consuming_": "0",
48+
"is_battery_charging_": "0",
49+
"is_battery_discharging_": "1",
50+
"is_grid_selling_": "0",
51+
"is_grid_buying_": "0",
52+
"is_charging_from_grid_": "0"
53+
},
54+
"operation":
55+
{
56+
"status": "start",
57+
"mode": "1"
58+
},
59+
"wintermode":
60+
{
61+
"winter_status": "on"
62+
},
63+
"pcs_fault":
64+
{
65+
"pcs_status": "pcs_ok"
66+
}
67+
}
68+
69+
### LG Home 15 ###
70+
{
71+
"statistics": {
72+
"pv_total_power_01kW": 36,
73+
"batt_conv_power_01kW": -34,
74+
"grid_power_01kW": 0,
75+
"load_power_01kW": 2,
76+
"ac_active_power_01kW": 3,
77+
"bat_use": 1,
78+
"bat_status": 1,
79+
"bat_user_soc": 46
80+
},
81+
"direction": {
82+
"is_direct_consuming_": 1,
83+
"is_battery_charging_": 1,
84+
"is_battery_discharging_": 0,
85+
"is_grid_selling_": 0,
86+
"is_grid_buying_": 0,
87+
"is_charging_from_grid_": 0,
88+
"is_discharging_to_grid_": 0
89+
},
90+
"operation": {
91+
"status": "start",
92+
"mode": 1,
93+
"oper_status": 3,
94+
"simple_status": 1,
95+
"backup_mode": 1,
96+
"remote_mode": 0,
97+
"demo_mode": 0,
98+
"tou_period": 1,
99+
"ripple_control": "0",
100+
"ripple_level": "0"
101+
},
102+
"pcs_fault": {
103+
"pcs_status": "pcs_ok",
104+
"grid_fault": "0"
105+
},
106+
"heatpump": {
107+
"heatpump_protocol": "2",
108+
"heatpump_installed": "no",
109+
"heatpump_activate": "off",
110+
"current_temp": 0,
111+
"heatpump_working": "off"
112+
},
113+
"evcharger": {
114+
"ev_activate": "off",
115+
"ev_power": 0
116+
},
117+
"gridWaitingTime": 0,
118+
"coredump": "none",
119+
"factory_test_mode": "none"
120+
}
121+
30122
{
31123
"statistics":
32124
{

packages/modules/devices/lg/lg/bat.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@ def initialize(self) -> None:
2626
self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config))
2727

2828
def update(self, response) -> None:
29-
power = float(response["statistics"]["batconv_power"])
30-
if response["direction"]["is_battery_discharging_"] == "1":
31-
power = power * -1
29+
if 'batconv_power' in response['statistics']:
30+
power = float(response["statistics"]["batconv_power"])
31+
if response["direction"]["is_battery_discharging_"] == "1":
32+
power = power * -1
33+
else:
34+
power = float(response["statistics"]["batt_conv_power_01kW"]) * -100 # Home 15
3235
try:
3336
soc = float(response["statistics"]["bat_user_soc"])
3437
except ValueError:

packages/modules/devices/lg/lg/counter.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,15 @@ def initialize(self) -> None:
2626
self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config))
2727

2828
def update(self, response) -> None:
29-
power = float(response["statistics"]["grid_power"])
29+
if 'grid_power' in response['statistics']:
30+
power = float(response["statistics"]["grid_power"])
31+
if response["direction"]["is_grid_selling_"] == "1":
32+
power = power*-1
33+
else:
34+
power = float(response["statistics"]["grid_power_01kW"]) * 100 # Home 15
35+
3036
if response["direction"]["is_grid_selling_"] == "1":
3137
power = power*-1
32-
3338
imported, exported = self.sim_counter.sim_count(power)
3439
counter_state = CounterState(
3540
imported=imported,

packages/modules/devices/lg/lg/inverter.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ def initialize(self) -> None:
2626
self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config))
2727

2828
def update(self, response: Dict) -> None:
29-
power = float(response["statistics"]["pcs_pv_total_power"]) * -1
29+
if 'pcs_pv_total_power' in response['statistics']:
30+
power = float(response["statistics"]["pcs_pv_total_power"]) * -1
31+
else:
32+
power = float(response["statistics"]["pv_total_power_01kW"]) * -100 # Home 15
3033
_, exported = self.sim_counter.sim_count(power)
3134
inverter_state = InverterState(
3235
exported=exported,

0 commit comments

Comments
 (0)