Skip to content

Commit

Permalink
initial BASICVENT values
Browse files Browse the repository at this point in the history
2024.2.3
  • Loading branch information
marq24 committed Feb 21, 2024
1 parent 4bac643 commit 30768a8
Show file tree
Hide file tree
Showing 5 changed files with 306 additions and 35 deletions.
229 changes: 226 additions & 3 deletions custom_components/waterkotte_heatpump/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
from homeassistant.components.sensor import SensorDeviceClass, SensorStateClass
from homeassistant.components.switch import SwitchEntityDescription

from homeassistant.const import UnitOfTemperature, PERCENTAGE, UnitOfEnergy, UnitOfPower, UnitOfPressure, UnitOfTime
from homeassistant.const import UnitOfTemperature, PERCENTAGE, UnitOfEnergy, UnitOfPower, UnitOfPressure, UnitOfTime, \
CONCENTRATION_PARTS_PER_MILLION, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, REVOLUTIONS_PER_MINUTE

from custom_components.waterkotte_heatpump.pywaterkotte_ha.const import SIX_STEPS_MODES
from custom_components.waterkotte_heatpump.pywaterkotte_ha import EcotouchTag
Expand Down Expand Up @@ -72,29 +73,33 @@
@dataclass
class ExtBinarySensorEntityDescription(BinarySensorEntityDescription):
tag: EcotouchTag | None = None
feature: str | None = None


@dataclass
class ExtNumberEntityDescription(NumberEntityDescription):
tag: EcotouchTag | None = None

feature: str | None = None

@dataclass
class ExtSelectEntityDescription(SelectEntityDescription):
tag: EcotouchTag | None = None
feature: str | None = None
# controls: list[str] | None = None


@dataclass
class ExtSensorEntityDescription(SensorEntityDescription):
tag: EcotouchTag | None = None
feature: str | None = None
# selfimplemented_display_precision: int | None = None
# controls: list[str] | None = None


@dataclass
class ExtSwitchEntityDescription(SwitchEntityDescription):
tag: EcotouchTag | None = None
feature: str | None = None
icon_off: str | None = None


Expand Down Expand Up @@ -295,6 +300,61 @@ class ExtSwitchEntityDescription(SwitchEntityDescription):
device_class=BinarySensorDeviceClass.RUNNING,
icon="mdi:solar-power-variant",
entity_registry_enabled_default=False
),

ExtBinarySensorEntityDescription(
key="BASICVENT_STATUS_BYPASS_ACTIVE_D1432",
name="basicvent_status_bypass_active_d1432",
tag=EcotouchTag.BASICVENT_STATUS_BYPASS_ACTIVE_D1432,
device_class=BinarySensorDeviceClass.RUNNING,
icon="mdi:electric-switch",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtBinarySensorEntityDescription(
key="BASICVENT_STATUS_HUMIDIFIER_ACTIVE_D1433",
name="basicvent_status_humidifier_active_d1433",
tag=EcotouchTag.BASICVENT_STATUS_HUMIDIFIER_ACTIVE_D1433,
device_class=BinarySensorDeviceClass.RUNNING,
icon="mdi:electric-switch",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtBinarySensorEntityDescription(
key="BASICVENT_STATUS_COMFORT_BYPASS_ACTIVE_D1465",
name="basicvent_status_comfort_bypass_active_d1465",
tag=EcotouchTag.BASICVENT_STATUS_COMFORT_BYPASS_ACTIVE_D1465,
device_class=BinarySensorDeviceClass.RUNNING,
icon="mdi:electric-switch",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtBinarySensorEntityDescription(
key="BASICVENT_STATUS_SMART_BYPASS_ACTIVE_D1466",
name="basicvent_status_smart_bypass_active_d1466",
tag=EcotouchTag.BASICVENT_STATUS_SMART_BYPASS_ACTIVE_D1466,
device_class=BinarySensorDeviceClass.RUNNING,
icon="mdi:electric-switch",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtBinarySensorEntityDescription(
key="BASICVENT_STATUS_HOLIDAY_ENABLED_D1503",
name="basicvent_status_holiday_enabled_d1503",
tag=EcotouchTag.BASICVENT_STATUS_HOLIDAY_ENABLED_D1503,
device_class=BinarySensorDeviceClass.RUNNING,
icon="mdi:electric-switch",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtBinarySensorEntityDescription(
key="BASICVENT_FILTER_CHANGE_DISPLAY_D1469",
name="basicvent_filter_change_display_d1469",
tag=EcotouchTag.BASICVENT_FILTER_CHANGE_DISPLAY_D1469,
device_class=BinarySensorDeviceClass.RUNNING,
icon="mdi:electric-switch",
entity_registry_enabled_default=False,
feature="VENT"
)

# "STATUS_HEATING_CIRCULATION_PUMP",
Expand Down Expand Up @@ -970,6 +1030,7 @@ class ExtSwitchEntityDescription(SwitchEntityDescription):
icon="mdi:hvac",
entity_registry_enabled_default=False,
options=ENUM_VENT_OPERATION_MODE,
feature="VENT"
)
]
SENSOR_SENSORS = [
Expand Down Expand Up @@ -1543,8 +1604,170 @@ class ExtSwitchEntityDescription(SwitchEntityDescription):
native_unit_of_measurement=None,
icon="mdi:alert-circle",
entity_registry_enabled_default=True
)
),

ExtSensorEntityDescription(
key="BASICVENT_TEMPERATURE_OUTGOING_AIR_BEFORE_ETH_A4998",
name="basicvent_temperature_outgoing_air_before_eth_a4998",
tag=EcotouchTag.BASICVENT_TEMPERATURE_OUTGOING_AIR_BEFORE_ETH_A4998,
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
icon="mdi:thermometer",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_TEMPERATURE_OUTGOING_AIR_AFTER_EEH_A4994",
name="basicvent_temperature_outgoing_air_after_eeh_a4994",
tag=EcotouchTag.BASICVENT_TEMPERATURE_OUTGOING_AIR_AFTER_EEH_A4994,
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
icon="mdi:thermometer",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_TEMPERATURE_INCOMMING_AIR_BEFORE_ODA_A5000",
name="basicvent_temperature_incomming_air_before_oda_a5000",
tag=EcotouchTag.BASICVENT_TEMPERATURE_INCOMMING_AIR_BEFORE_ODA_A5000,
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
icon="mdi:thermometer",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_TEMPERATURE_INCOMMING_AIR_AFTER_SUP_A4996",
name="basicvent_temperature_incomming_air_after_sup_a4996",
tag=EcotouchTag.BASICVENT_TEMPERATURE_INCOMMING_AIR_AFTER_SUP_A4996,
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
icon="mdi:thermometer",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_FILTER_CHANGE_OPERATING_HOURS_A4498",
name="basicvent_filter_change_operating_hours_a4498",
tag=EcotouchTag.BASICVENT_FILTER_CHANGE_OPERATING_HOURS_A4498,
device_class=SensorDeviceClass.DURATION,
native_unit_of_measurement=UnitOfTime.HOURS,
icon="mdi:counter",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_FILTER_CHANGE_REMAINING_OPERATING_DAYS_A4504",
name="basicvent_filter_change_remaining_operating_days_a4504",
tag=EcotouchTag.BASICVENT_FILTER_CHANGE_REMAINING_OPERATING_DAYS_A4504,
device_class=SensorDeviceClass.DURATION,
native_unit_of_measurement=UnitOfTime.DAYS,
icon="mdi:counter",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_HUMIDITY_VALUE_A4990",
name="basicvent_humidity_value_a4990",
tag=EcotouchTag.BASICVENT_HUMIDITY_VALUE_A4990,
device_class=SensorDeviceClass.HUMIDITY,
native_unit_of_measurement=PERCENTAGE,
icon="mdi:cloud-percent",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_CO2_VALUE_A4992",
name="basicvent_co2_value_a4992",
tag=EcotouchTag.BASICVENT_CO2_VALUE_A4992,
device_class=SensorDeviceClass.CO2,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION,
icon="mdi:molecule-co2",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_VOC_VALUE_A4522",
name="basicvent_voc_value_a4522",
tag=EcotouchTag.BASICVENT_VOC_VALUE_A4522,
device_class=SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
icon="mdi:counter",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_INCOMMING_FAN_RPM_A4551",
name="basicvent_incomming_fan_rpm_a4551",
tag=EcotouchTag.BASICVENT_INCOMMING_FAN_RPM_A4551,
device_class=None,
native_unit_of_measurement=REVOLUTIONS_PER_MINUTE,
icon="mdi:wind-power",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_INCOMMING_FAN_A4986",
name="basicvent_incomming_fan_a4986",
tag=EcotouchTag.BASICVENT_INCOMMING_FAN_A4986,
device_class=None,
native_unit_of_measurement=PERCENTAGE,
icon="mdi:wind-power",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_OUTGOING_FAN_RPM_A4547",
name="basicvent_outgoing_fan_rpm_a4547",
tag=EcotouchTag.BASICVENT_OUTGOING_FAN_RPM_A4547,
device_class=None,
native_unit_of_measurement=REVOLUTIONS_PER_MINUTE,
icon="mdi:wind-power",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_OUTGOING_FAN_A4984",
name="basicvent_outgoing_fan_a4984",
tag=EcotouchTag.BASICVENT_OUTGOING_FAN_A4984,
device_class=None,
native_unit_of_measurement=PERCENTAGE,
icon="mdi:wind-power",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_ENERGY_SAVE_TOTAL_A4387",
name="basicvent_energy_save_total_a4387",
tag=EcotouchTag.BASICVENT_ENERGY_SAVE_TOTAL_A4387,
device_class=SensorDeviceClass.ENERGY,
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
icon="mdi:home-lightning-bolt",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_ENERGY_SAVE_CURRENT_A4389",
name="basicvent_energy_save_current_a4389",
tag=EcotouchTag.BASICVENT_ENERGY_SAVE_CURRENT_A4389,
device_class=SensorDeviceClass.ENERGY,
native_unit_of_measurement=UnitOfEnergy.WATT_HOUR,
icon="mdi:home-lightning-bolt",
entity_registry_enabled_default=False,
feature="VENT"
),
ExtSensorEntityDescription(
key="BASICVENT_ENERGY_RECOVERY_RATE_A4391",
name="basicvent_energy_recovery_rate_a4391",
tag=EcotouchTag.BASICVENT_ENERGY_RECOVERY_RATE_A4391,
device_class=None,
native_unit_of_measurement=None,
icon="mdi:gauge",
entity_registry_enabled_default=False,
feature="VENT"
),
]

SWITCH_SENSORS = [
ExtSwitchEntityDescription(
key="HOLIDAY_ENABLED",
Expand Down
2 changes: 1 addition & 1 deletion custom_components/waterkotte_heatpump/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@
"iot_class": "local_polling",
"issue_tracker": "https://github.com/marq24/ha-waterkotte/issues",
"requirements": [],
"version": "2024.2.2"
"version": "2024.2.3"
}
58 changes: 31 additions & 27 deletions custom_components/waterkotte_heatpump/pywaterkotte_ha/ecotouch.py
Original file line number Diff line number Diff line change
Expand Up @@ -721,41 +721,41 @@ class EcotouchTag(TagData, Enum): # pylint: disable=function-redefined
# A4389: uom: '', 'Energieersparnis aktuell'
BASICVENT_ENERGY_SAVE_CURRENT_A4389 = TagData(["A4389"], writeable=False)
# A4391: uom: '', 'Wärmerückgewinnungsgrad'
BASICVENT_HEAT_RECOVERY_RATE_A4391 = TagData(["A4391"], writeable=False)
BASICVENT_ENERGY_RECOVERY_RATE_A4391 = TagData(["A4391"], writeable=False)

# A4498: uom: 'h', 'Luftfilter Wechsel Betriebsstunden'
BASICVENT_AIR_FILTER_CHANGE_OPERATING_HOURS_A4498 = TagData(["A4498"], writeable=False)
BASICVENT_FILTER_CHANGE_OPERATING_HOURS_A4498 = TagData(["A4498"], writeable=False)
# A4504: uom: 'Tage', 'Luftfilter Wechsel Betriebsstunden Restlaufzeit dd'
BASICVENT_AIR_FILTER_CHANGE_REMAINING_OPERATING_DAYS_A4504 = TagData(["A4504"], writeable=False)
BASICVENT_FILTER_CHANGE_REMAINING_OPERATING_DAYS_A4504 = TagData(["A4504"], writeable=False)
# D1544: uom: '', 'Luftfilter Wechsel Betriebsstunden Reset'
BASICVENT_AIR_FILTER_CHANGE_OPERATING_HOURS_RESET_D1544 = TagData(["D1544"], writeable=False)
#BASICVENT_FILTER_CHANGE_OPERATING_HOURS_RESET_D1544 = TagData(["D1544"], writeable=True)
# D1469: uom: '', 'Luftfilter Wechselanzeige'
BASICVENT_AIR_FILTER_CHANGE_DISPLAY_D1469 = TagData(["D1469"], writeable=False)
BASICVENT_FILTER_CHANGE_DISPLAY_D1469 = TagData(["D1469"], writeable=False)
# D1626: uom: '', 'Luftfilter Wechselanzeige Animation'
BASICVENT_AIR_FILTER_CHANGE_DISPLAY_ANIMATION_D1626 = TagData(["D1626"], writeable=False)
#BASICVENT_FILTER_CHANGE_DISPLAY_ANIMATION_D1626 = TagData(["D1626"], writeable=False)

# A4506: uom: '', 'Hu Luftfeuchtigkeit PID'
BASICVENT_HUMIDITY_SETPOINT_A4506 = TagData(["A4506"], writeable=True)
#BASICVENT_HUMIDITY_SETPOINT_A4506 = TagData(["A4506"], writeable=True)
# A4508: uom: '', 'Hu Luftfeuchtigkeit Sollwert'
BASICVENT_HUMIDITY_DEMAND_A4508 = TagData(["A4508"], writeable=False)
#BASICVENT_HUMIDITY_DEMAND_A4508 = TagData(["A4508"], writeable=False)
# A4510: uom: '', 'Hu Luftfeuchtigkeit'
BASICVENT_HUMIDITY_SECOND_VALUE_A4510 = TagData(["A4510"], writeable=False)
#BASICVENT_HUMIDITY_SECOND_VALUE_A4510 = TagData(["A4510"], writeable=False)
# A4990: uom: '', 'Luftfeuchtigkeit'
BASICVENT_HUMIDITY_VALUE_A4990 = TagData(["A4990"], writeable=False)

# A4512: uom: '', 'CO2-Konzentration PID'
BASICVENT_CO2_SETPOINT_A4512 = TagData(["A4512"], writeable=True)
#BASICVENT_CO2_SETPOINT_A4512 = TagData(["A4512"], writeable=True)
# A4514: uom: '', 'CO2-Konzentration Sollwert'
BASICVENT_CO2_DEMAND_A4514 = TagData(["A4514"], writeable=False)
#BASICVENT_CO2_DEMAND_A4514 = TagData(["A4514"], writeable=False)
# A4516: uom: '', 'CO2-Konzentration'
BASICVENT_CO2_SECOND_VALUE_A4516 = TagData(["A4516"], writeable=False)
#BASICVENT_CO2_SECOND_VALUE_A4516 = TagData(["A4516"], writeable=False)
# A4992: uom: '', 'CO2'
BASICVENT_CO2_VALUE_A4992 = TagData(["A4992"], writeable=False)

# A4518: uom: '', 'VOC Kohlenwasserstoffverbindungen PID'
BASICVENT_VOC_SETPOINT_A4518 = TagData(["A4518"], writeable=True)
#BASICVENT_VOC_SETPOINT_A4518 = TagData(["A4518"], writeable=True)
# A4520: uom: '', 'VOC Kohlenwasserstoffverbindungen Sollwert'
BASICVENT_VOC_DEMAND_A4520 = TagData(["A4520"], writeable=False)
#BASICVENT_VOC_DEMAND_A4520 = TagData(["A4520"], writeable=False)
# A4522: uom: '', 'VOC Kohlenwasserstoffverbindungen'
BASICVENT_VOC_VALUE_A4522 = TagData(["A4522"], writeable=False)

Expand All @@ -772,31 +772,35 @@ class EcotouchTag(TagData, Enum): # pylint: disable=function-redefined
# A4549: uom: '', 'Luefter 1 Rueckmeldung'
# D1605: uom: '', 'Luefter 1 - Manuell Drehzahl'
# A4551: uom: 'U/min', 'Luefter 1 Umdrehungen pro Minute'
# BASICVENT_INCOMMING_AIR_DRIVE_RPM
BASICVENT_INCOMMING_FAN_RPM_A4551 = TagData(["A4551"], writeable=False)
# A4986: uom: '%', 'Analogausgang Y1' - Rotation Incoming air drive percent
# BASICVENT_INCOMMING_AIR_DRIVE
# A5000: uom: '', 'T1'
# BASICVENT_T_INCOMMING_AIR_BEFORE_ODA
# A4996: uom: '', 'T3'
# BASICVENT_T_INCOMMING_AIR_AFTER_SUP
BASICVENT_INCOMMING_FAN_A4986 = TagData(["A4986"], writeable=False)
# A5000: uom: '', 'T1' - Außenluft/Frischluft - Outdoor air
BASICVENT_TEMPERATURE_INCOMMING_AIR_BEFORE_ODA_A5000 = TagData(["A5000"], writeable=False)
# A4996: uom: '', 'T3' - Zuluft - Supply air
BASICVENT_TEMPERATURE_INCOMMING_AIR_AFTER_SUP_A4996 = TagData(["A4996"], writeable=False)

# A4545: uom: '', 'Luefter 2 Rueckmeldung'
# D1603: uom: '', 'Luefter 2 - Manuell Drehzahl'
# A4547: uom: 'U/min', 'Luefter 2 Umdrehungen pro Minute'
# BASICVENT_OUTGOING_AIR_DRIVE_RPM
BASICVENT_OUTGOING_FAN_RPM_A4547 = TagData(["A4547"], writeable=False)
# A4984: uom: '%', 'Analogausgang Y2' - Rotation Ongoing air drive percent
# BASICVENT_OUTGOING_AIR_DRIVE
# A4998: uom: '', 'T2'
# BASICVENT_T_OUTGOING_AIR_BEFORE_ETH
# A4994: uom: '', 'T4'
# BASICVENT_T_OUTGOING_AIR_AFTER_EEH

BASICVENT_OUTGOING_FAN_A4984 = TagData(["A4984"], writeable=False)
# A4998: uom: '', 'T2' -> Abluft - Extract air
BASICVENT_TEMPERATURE_OUTGOING_AIR_BEFORE_ETH_A4998 = TagData(["A4998"], writeable=False)
# A4994: uom: '', 'T4' -> Fortluft - Exhaust air
BASICVENT_TEMPERATURE_OUTGOING_AIR_AFTER_EEH_A4994 = TagData(["A4994"], writeable=False)

# D1432: uom: '', 'Bypass Aktiv' -
BASICVENT_STATUS_BYPASS_ACTIVE_D1432 = TagData(["D1432"], writeable=False)
# D1433: uom: '', 'HU En'
BASICVENT_STATUS_HUMIDIFIER_ACTIVE_D1433 = TagData(["D1433"], writeable=False)
# D1465: uom: '', 'Comfort-Bypass'
BASICVENT_STATUS_COMFORT_BYPASS_ACTIVE_D1465 = TagData(["D1465"], writeable=False)
# D1466: uom: '', 'Smartbypass'
BASICVENT_STATUS_SMART_BYPASS_ACTIVE_D1466 = TagData(["D1466"], writeable=False)
# D1503: uom: '', 'Holiday enabled'
BASICVENT_STATUS_HOLIDAY_ENABLED_D1503 = TagData(["D1503"], writeable=False)

#############################
# UNKNOWN BASIC VENT VALUES #
Expand Down
Loading

0 comments on commit 30768a8

Please sign in to comment.