Skip to content

Commit 911bd03

Browse files
author
speleolontra
committed
Solved issue Add support for errorCode #28
1 parent af2f7a9 commit 911bd03

File tree

510 files changed

+56310
-8
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

510 files changed

+56310
-8
lines changed

custom_components/daikin_residential_altherma/const.py

+23-3
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,22 @@
5959
ATTR_SETPOINT_MODE = "setpointMode"
6060
ATTR_TANK_SETPOINT_MODE = "@TanksetpointMode"
6161
ATTR_CONTROL_MODE = "controlMode"
62+
6263
ATTR_IS_HOLIDAY_MODE_ACTIVE = "isHolidayModeActive"
6364
ATTR_IS_IN_EMERGENCY_STATE = "isInEmergencyState"
6465
ATTR_IS_IN_ERROR_STATE = "isInErrorState"
6566
ATTR_IS_IN_INSTALLER_STATE = "isInInstallerState"
6667
ATTR_IS_IN_WARNING_STATE = "isInWarningState"
68+
ATTR_ERROR_CODE = "errorCode"
69+
6770
ATTR_TANK_HEATUP_MODE = "heatupMode"
6871
ATTR_TANK_IS_HOLIDAY_MODE_ACTIVE = "@TankisHolidayModeActive"
6972
ATTR_TANK_IS_IN_EMERGENCY_STATE = "@TankisInEmergencyState"
7073
ATTR_TANK_IS_IN_ERROR_STATE = "@TankisInErrorState"
7174
ATTR_TANK_IS_IN_INSTALLER_STATE = "@TankisInInstallerState"
7275
ATTR_TANK_IS_IN_WARNING_STATE = "@TankisInWarningState"
73-
ATTR_TANK_IS_POWERFUL_MODE_ACTIVE = "@TankisPowerfulModeActive"
76+
ATTR_TANK_IS_POWERFUL_MODE_ACTIVE = "isPowerfulModeActive"
77+
ATTR_TANK_ERROR_CODE = "@TankErrorCode"
7478

7579

7680

@@ -102,14 +106,16 @@
102106
ATTR_IS_IN_ERROR_STATE: [MP_CLIMATE, "isInErrorState", ""],
103107
ATTR_IS_IN_INSTALLER_STATE: [MP_CLIMATE, "isInInstallerState", ""],
104108
ATTR_IS_IN_WARNING_STATE: [MP_CLIMATE, "isInWarningState", ""],
109+
ATTR_ERROR_CODE: [MP_CLIMATE, "errorCode", ""],
105110
# FLAG HOT WATER TANK
106111
ATTR_TANK_HEATUP_MODE: [MP_DOMESTIC_HWT, "heatupMode", ""],
107112
ATTR_TANK_IS_HOLIDAY_MODE_ACTIVE: [MP_DOMESTIC_HWT, "@TankisHolidayModeActive", ""],
108113
ATTR_TANK_IS_IN_EMERGENCY_STATE: [MP_DOMESTIC_HWT, "@TankisInEmergencyState", ""],
109114
ATTR_TANK_IS_IN_ERROR_STATE: [MP_DOMESTIC_HWT, "@TankisInErrorState", ""],
110115
ATTR_TANK_IS_IN_INSTALLER_STATE: [MP_DOMESTIC_HWT, "@TankisInInstallerState", ""],
111116
ATTR_TANK_IS_IN_WARNING_STATE: [MP_DOMESTIC_HWT, "@TankisInWarningState", ""],
112-
ATTR_TANK_IS_POWERFUL_MODE_ACTIVE: [MP_DOMESTIC_HWT, "@TankisPowerfulModeActive", ""],
117+
ATTR_TANK_IS_POWERFUL_MODE_ACTIVE: [MP_DOMESTIC_HWT, "isPowerfulModeActive", ""],
118+
ATTR_TANK_ERROR_CODE: [MP_DOMESTIC_HWT, "errorCode", ""],
113119
}
114120

115121
ATTR_STATE_ON = "on"
@@ -238,6 +244,13 @@
238244
#CONF_DEVICE_CLASS: DEVICE_CLASS_ENERGY,
239245
CONF_UNIT_OF_MEASUREMENT: " ",
240246
},
247+
ATTR_ERROR_CODE: {
248+
CONF_NAME: "Info Error Code",
249+
CONF_TYPE: None,
250+
CONF_ICON: "mdi:information-outline",
251+
#CONF_DEVICE_CLASS: DEVICE_CLASS_ENERGY,
252+
CONF_UNIT_OF_MEASUREMENT: " ",
253+
},
241254
ATTR_TANK_HEATUP_MODE:{
242255
CONF_NAME: "Info heatupMode",
243256
CONF_TYPE: None,
@@ -286,7 +299,14 @@
286299
CONF_ICON: "mdi:information-outline",
287300
#CONF_DEVICE_CLASS: DEVICE_CLASS_ENERGY,
288301
CONF_UNIT_OF_MEASUREMENT: " ",
289-
}
302+
},
303+
ATTR_TANK_ERROR_CODE: {
304+
CONF_NAME: "Info Tank Error Code",
305+
CONF_TYPE: None,
306+
CONF_ICON: "mdi:information-outline",
307+
#CONF_DEVICE_CLASS: DEVICE_CLASS_ENERGY,
308+
CONF_UNIT_OF_MEASUREMENT: " ",
309+
},
290310
}
291311

292312
CONF_UUID = "uuid"

custom_components/daikin_residential_altherma/daikin_base.py

+25
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from .device import DaikinResidentialDevice
66

77
from .const import(
8+
ATTR_TANK_ERROR_CODE,
89
PRESET_BOOST,
910
PRESET_TANK_ONOFF,
1011
PRESET_SETPOINT_MODE,
@@ -30,6 +31,7 @@
3031
ATTR_IS_IN_ERROR_STATE,
3132
ATTR_IS_IN_INSTALLER_STATE,
3233
ATTR_IS_IN_WARNING_STATE,
34+
ATTR_ERROR_CODE,
3335
# TANK
3436
ATTR_TANK_HEATUP_MODE,
3537
ATTR_TANK_IS_HOLIDAY_MODE_ACTIVE,
@@ -38,6 +40,7 @@
3840
ATTR_TANK_IS_IN_INSTALLER_STATE,
3941
ATTR_TANK_IS_IN_WARNING_STATE,
4042
ATTR_TANK_IS_POWERFUL_MODE_ACTIVE,
43+
ATTR_TANK_ERROR_CODE,
4144
)
4245

4346
from homeassistant.components.climate.const import (
@@ -433,6 +436,16 @@ def is_in_warning_state(self):
433436
"""Return current is_in_warning_state."""
434437
return self.getValue(ATTR_IS_IN_WARNING_STATE)
435438

439+
@property # ATTR_ERROR_CODE
440+
def support_error_code(self):
441+
"""Return True if the device supports error code."""
442+
return self.getData(ATTR_ERROR_CODE) is not None
443+
444+
@property
445+
def error_code(self):
446+
"""Return current error code."""
447+
return self.getValue(ATTR_ERROR_CODE)
448+
436449
@property # ATTR_TANK_HEATUP_MODE
437450
def support_heatupMode(self):
438451
"""Return True if the device supports heatupMode."""
@@ -508,6 +521,18 @@ def tank_is_powerful_mode_active(self):
508521
"""Return current flag: is_powerful_mode_active"""
509522
return self.getValue(ATTR_TANK_IS_POWERFUL_MODE_ACTIVE)
510523

524+
@property # ATTR_TANK_ERROR_CODE
525+
def support_tank_error_code(self):
526+
"""Return True if the device supports tank error code."""
527+
return self.getData(ATTR_TANK_ERROR_CODE) is not None
528+
529+
@property
530+
def tank_error_code(self):
531+
"""Return current tank error code."""
532+
return self.getValue(ATTR_TANK_ERROR_CODE)
533+
534+
511535
async def set(self, settings):
512536
"""Set settings on Daikin device."""
513537
raise NotImplementedError
538+

custom_components/daikin_residential_altherma/sensor.py

+25-5
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,16 @@
3535
ATTR_IS_IN_ERROR_STATE,
3636
ATTR_IS_IN_INSTALLER_STATE,
3737
ATTR_IS_IN_WARNING_STATE,
38+
ATTR_ERROR_CODE,
39+
#TANK
3840
ATTR_TANK_HEATUP_MODE,
3941
ATTR_TANK_IS_HOLIDAY_MODE_ACTIVE,
4042
ATTR_TANK_IS_IN_EMERGENCY_STATE,
4143
ATTR_TANK_IS_IN_ERROR_STATE,
4244
ATTR_TANK_IS_IN_INSTALLER_STATE,
4345
ATTR_TANK_IS_IN_WARNING_STATE,
4446
ATTR_TANK_IS_POWERFUL_MODE_ACTIVE,
47+
ATTR_TANK_ERROR_CODE,
4548
SENSOR_TYPE_ENERGY,
4649
SENSOR_TYPE_POWER,
4750
SENSOR_TYPE_TEMPERATURE,
@@ -167,6 +170,14 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
167170
else:
168171
_LOGGER.info("DAIKIN RESIDENTIAL ALTHERMA: device NOT supports is_in_warning_state")
169172

173+
if device.support_error_code:
174+
sensor = DaikinSensor.factory(device, ATTR_ERROR_CODE,"")
175+
_LOGGER.debug("append sensor = %s", sensor)
176+
sensors.append(sensor)
177+
else:
178+
_LOGGER.info("DAIKIN RESIDENTIAL ALTHERMA: device NOT supports error code")
179+
180+
170181
#heatup
171182
if device.support_heatupMode:
172183
sensor = DaikinSensor.factory(device, ATTR_TANK_HEATUP_MODE,"")
@@ -213,15 +224,19 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
213224
_LOGGER.info("DAIKIN RESIDENTIAL ALTHERMA: device NOT supports is_in_warning_state")
214225

215226
if device.support_tank_is_powerful_mode_active:
216-
sensor = DaikinSensor.factory(device, ATTR_TANK_IS_POWERFUL_MODE_ACTIVE,"TANK")
227+
sensor = DaikinSensor.factory(device, ATTR_TANK_IS_POWERFUL_MODE_ACTIVE,"")
217228
_LOGGER.debug("append sensor = %s", sensor)
218229
sensors.append(sensor)
219230
else:
220231
_LOGGER.info("DAIKIN RESIDENTIAL ALTHERMA: device NOT supports is_powerful_mode_active")
221232

222-
#for s in sensors:
223-
# print("{} - {}".format(s.name,s.unique_id))
224-
#print("DAMIANO add_entities: %s", sensors)
233+
if device.support_tank_error_code:
234+
sensor = DaikinSensor.factory(device, ATTR_TANK_ERROR_CODE,"")
235+
_LOGGER.debug("append sensor = %s", sensor)
236+
sensors.append(sensor)
237+
else:
238+
_LOGGER.info("DAIKIN RESIDENTIAL ALTHERMA: device NOT supports tank error code")
239+
225240
async_add_entities(sensors)
226241

227242

@@ -234,7 +249,6 @@ def factory(device: Appliance, monitored_state: str, type, period=""):
234249
try:
235250
# DAMIANO
236251
#monitored_state = monitored_state.replace("T-@Tank","")
237-
print(type)
238252
cls = {
239253
SENSOR_TYPE_TEMPERATURE: DaikinClimateSensor,
240254
SENSOR_TYPE_POWER: DaikinEnergySensor,
@@ -354,6 +368,9 @@ def state(self):
354368
if self._device_attribute == ATTR_IS_IN_WARNING_STATE:
355369
return self._device.is_in_warning_state
356370

371+
if self._device_attribute == ATTR_ERROR_CODE:
372+
return self._device.error_code
373+
357374
if self._device_attribute == ATTR_TANK_HEATUP_MODE:
358375
return self._device.heatupMode
359376

@@ -374,6 +391,9 @@ def state(self):
374391

375392
if self._device_attribute == ATTR_TANK_IS_POWERFUL_MODE_ACTIVE:
376393
return self._device.tank_is_powerful_mode_active
394+
395+
if self._device_attribute == ATTR_TANK_ERROR_CODE:
396+
return self._device.tank_error_code
377397
return None
378398

379399
@property
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)