diff --git a/custom_components/stiebel_eltron_isg/__init__.py b/custom_components/stiebel_eltron_isg/__init__.py index d9a94aa..28c7259 100644 --- a/custom_components/stiebel_eltron_isg/__init__.py +++ b/custom_components/stiebel_eltron_isg/__init__.py @@ -93,7 +93,10 @@ HEATING_CURVE_RISE_HK2, COMFORT_WATER_TEMPERATURE_TARGET, ECO_WATER_TEMPERATURE_TARGET, - COOLING_TARGET_ROOM_TEMPERATURE, + AREA_COOLING_TARGET_ROOM_TEMPERATURE, + AREA_COOLING_TARGET_FLOW_TEMPERATURE, + FAN_COOLING_TARGET_ROOM_TEMPERATURE, + FAN_COOLING_TARGET_FLOW_TEMPERATURE, FAN_LEVEL_DAY, FAN_LEVEL_NIGHT, VENTILATION_AIR_ACTUAL_FAN_SPEED, @@ -469,8 +472,19 @@ def read_modbus_system_paramter(self) -> dict: result[ECO_WATER_TEMPERATURE_TARGET] = get_isg_scaled_value( decoder.decode_16bit_int() ) - decoder.skip_bytes(8) - result[COOLING_TARGET_ROOM_TEMPERATURE] = get_isg_scaled_value( + decoder.skip_bytes(4) + result[AREA_COOLING_TARGET_FLOW_TEMPERATURE] = get_isg_scaled_value( + decoder.decode_16bit_int() + ) + decoder.skip_bytes(2) + result[AREA_COOLING_TARGET_ROOM_TEMPERATURE] = get_isg_scaled_value( + decoder.decode_16bit_int() + ) + result[FAN_COOLING_TARGET_FLOW_TEMPERATURE] = get_isg_scaled_value( + decoder.decode_16bit_int() + ) + decoder.skip_bytes(2) + result[FAN_COOLING_TARGET_ROOM_TEMPERATURE] = get_isg_scaled_value( decoder.decode_16bit_int() ) return result @@ -541,8 +555,14 @@ def set_data(self, key, value) -> None: self.write_register(address=1509, value=int(value * 10), slave=1) elif key == ECO_WATER_TEMPERATURE_TARGET: self.write_register(address=1510, value=int(value * 10), slave=1) - elif key == COOLING_TARGET_ROOM_TEMPERATURE: + elif key == AREA_COOLING_TARGET_FLOW_TEMPERATURE: + self.write_register(address=1513, value=int(value * 10), slave=1) + elif key == AREA_COOLING_TARGET_ROOM_TEMPERATURE: self.write_register(address=1515, value=int(value * 10), slave=1) + elif key == FAN_COOLING_TARGET_FLOW_TEMPERATURE: + self.write_register(address=1516, value=int(value * 10), slave=1) + elif key == FAN_COOLING_TARGET_ROOM_TEMPERATURE: + self.write_register(address=1518, value=int(value * 10), slave=1) elif key == CIRCULATION_PUMP: self.write_register(address=47012, value=value, slave = 1) else: diff --git a/custom_components/stiebel_eltron_isg/binary_sensor.py b/custom_components/stiebel_eltron_isg/binary_sensor.py index 1ebb87d..34dc457 100644 --- a/custom_components/stiebel_eltron_isg/binary_sensor.py +++ b/custom_components/stiebel_eltron_isg/binary_sensor.py @@ -96,7 +96,7 @@ has_entity_name=True, ), BinarySensorEntityDescription( - name="Filter Etract Air", + name="Filter Extract Air", key=FILTER_EXTRACT_AIR, icon="mdi:heat-pump", has_entity_name=True, diff --git a/custom_components/stiebel_eltron_isg/const.py b/custom_components/stiebel_eltron_isg/const.py index 83e35ac..ffe065d 100644 --- a/custom_components/stiebel_eltron_isg/const.py +++ b/custom_components/stiebel_eltron_isg/const.py @@ -104,7 +104,10 @@ COMFORT_WATER_TEMPERATURE_TARGET = "comfort_water_temperature_target" ECO_WATER_TEMPERATURE_TARGET = "eco_water_temperature_target" -COOLING_TARGET_ROOM_TEMPERATURE = "cooling_target_room_temperaturee" +AREA_COOLING_TARGET_ROOM_TEMPERATURE = "area_cooling_target_room_temperature" +AREA_COOLING_TARGET_FLOW_TEMPERATURE = "area_cooling_target_flow_temperature" +FAN_COOLING_TARGET_ROOM_TEMPERATURE = "fan_cooling_target_room_temperature" +FAN_COOLING_TARGET_FLOW_TEMPERATURE = "fan_cooling_target_flow_temperature" FAN_LEVEL_DAY = "fan_level_comfort" FAN_LEVEL_NIGHT = "fan_level_eco" diff --git a/custom_components/stiebel_eltron_isg/number.py b/custom_components/stiebel_eltron_isg/number.py index 16103ff..d236810 100644 --- a/custom_components/stiebel_eltron_isg/number.py +++ b/custom_components/stiebel_eltron_isg/number.py @@ -19,7 +19,10 @@ HEATING_CURVE_RISE_HK2, COMFORT_WATER_TEMPERATURE_TARGET, ECO_WATER_TEMPERATURE_TARGET, - COOLING_TARGET_ROOM_TEMPERATURE, + AREA_COOLING_TARGET_ROOM_TEMPERATURE, + AREA_COOLING_TARGET_FLOW_TEMPERATURE, + FAN_COOLING_TARGET_ROOM_TEMPERATURE, + FAN_COOLING_TARGET_FLOW_TEMPERATURE, FAN_LEVEL_DAY, FAN_LEVEL_NIGHT ) @@ -90,15 +93,45 @@ native_step=0.1, ), NumberEntityDescription( - COOLING_TARGET_ROOM_TEMPERATURE, + AREA_COOLING_TARGET_ROOM_TEMPERATURE, has_entity_name=True, - name="Cooling Room Temperature Target", + name="Area Cooling Room Temperature Target", native_unit_of_measurement=UnitOfTemperature.CELSIUS, icon="hass:thermometer", native_min_value=20, native_max_value=30, native_step=0.1, ), + NumberEntityDescription( + AREA_COOLING_TARGET_FLOW_TEMPERATURE, + has_entity_name=True, + name="Area Cooling Flow Temperature Target", + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + icon="hass:thermometer", + native_min_value=7, + native_max_value=25, + native_step=0.1, + ), + NumberEntityDescription( + FAN_COOLING_TARGET_ROOM_TEMPERATURE, + has_entity_name=True, + name="Fan Cooling Room Temperature Target", + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + icon="hass:thermometer", + native_min_value=20, + native_max_value=30, + native_step=0.1, + ), + NumberEntityDescription( + FAN_COOLING_TARGET_FLOW_TEMPERATURE, + has_entity_name=True, + name="Fan Cooling Flow Temperature Target", + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + icon="hass:thermometer", + native_min_value=7, + native_max_value=25, + native_step=0.1, + ), ] NUMBER_TYPES_WPM = [