From e672a61f7eb282fc7b7df0c7e157bcb0edb1d2c9 Mon Sep 17 00:00:00 2001 From: Breina Date: Tue, 21 May 2024 22:09:05 +0200 Subject: [PATCH] - Add support for environment sensors via Panel Server - Remove Alarm Valid --- README.md | 3 +- .../powertag_gateway/binary_sensor.py | 66 ++- custom_components/powertag_gateway/button.py | 18 +- ...owertag_features.py => device_features.py} | 8 +- .../powertag_gateway/entity_base.py | 13 +- .../powertag_gateway/manifest.json | 2 +- .../powertag_gateway/schneider_modbus.py | 415 ++++++++++-------- custom_components/powertag_gateway/sensor.py | 217 ++++++--- doc/DOCA0241EN-06.xlsx | Bin 2547582 -> 2544766 bytes 9 files changed, 443 insertions(+), 299 deletions(-) rename custom_components/powertag_gateway/{powertag_features.py => device_features.py} (90%) diff --git a/README.md b/README.md index 1c4741e..7121522 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ This will enable monitor electric circuits in great detail. * **Power**: active, apparent and power factor * **Energy**: partial (resettable) and total * **Demand**: active power, maximum active power (resettable) and timestamp of maximum active power +* **Environment**: Temperature, humidity and CO2 * **Alarm**: current state and its reasons * **Diagnostics**: gateway status, LQI, RSSI, packet loss, connectivity status @@ -39,7 +40,7 @@ This will enable monitor electric circuits in great detail. * All PowerTags * Acti9 Active -* ZBRTT1 (soon) +* All environment sensors (not HeatTag) #### Further integrations diff --git a/custom_components/powertag_gateway/binary_sensor.py b/custom_components/powertag_gateway/binary_sensor.py index 4029311..2bd2eee 100644 --- a/custom_components/powertag_gateway/binary_sensor.py +++ b/custom_components/powertag_gateway/binary_sensor.py @@ -8,19 +8,19 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import CONF_CLIENT, DOMAIN -from .entity_base import PowerTagEntity, GatewayEntity, setup_entities, gateway_device_info -from .powertag_features import FeatureClass +from .entity_base import WirelessDeviceEntity, GatewayEntity, setup_entities, gateway_device_info +from .device_features import FeatureClass from .schneider_modbus import SchneiderModbus, LinkStatus, PanelHealth, TypeOfGateway _LOGGER = logging.getLogger(__name__) -def list_binary_sensors() -> list[type[PowerTagEntity]]: +def list_binary_sensors() -> list[type[WirelessDeviceEntity]]: return [ PowerTagWirelessCommunicationValid, PowerTagRadioCommunicationValid, - PowerTagAlarmValid, - PowerTagGetAlarm + PowerTagAlarm, + AmbientTagAlarm ] @@ -45,7 +45,7 @@ async def async_setup_entry( async_add_entities(entities, update_before_add=False) -class PowerTagWirelessCommunicationValid(PowerTagEntity, BinarySensorEntity): +class PowerTagWirelessCommunicationValid(WirelessDeviceEntity, BinarySensorEntity): _attr_entity_category = EntityCategory.DIAGNOSTIC _attr_device_class = BinarySensorDeviceClass.CONNECTIVITY @@ -59,14 +59,15 @@ async def async_update(self): def supports_feature_set(feature_class: FeatureClass) -> bool: return feature_class in [FeatureClass.A1, FeatureClass.A2, FeatureClass.P1, FeatureClass.F1, FeatureClass.F2, FeatureClass.F3, FeatureClass.FL, FeatureClass.M0, FeatureClass.M1, FeatureClass.M2, - FeatureClass.M3, FeatureClass.R1, FeatureClass.C] + FeatureClass.M3, FeatureClass.R1, FeatureClass.C, + FeatureClass.TEMP0, FeatureClass.TEMP1, FeatureClass.CO2] @staticmethod def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagRadioCommunicationValid(PowerTagEntity, BinarySensorEntity): +class PowerTagRadioCommunicationValid(WirelessDeviceEntity, BinarySensorEntity): _attr_entity_category = EntityCategory.DIAGNOSTIC _attr_device_class = BinarySensorDeviceClass.CONNECTIVITY @@ -80,21 +81,36 @@ async def async_update(self): def supports_feature_set(feature_class: FeatureClass) -> bool: return feature_class in [FeatureClass.A1, FeatureClass.A2, FeatureClass.P1, FeatureClass.F1, FeatureClass.F2, FeatureClass.F3, FeatureClass.FL, FeatureClass.M0, FeatureClass.M1, FeatureClass.M2, - FeatureClass.M3, FeatureClass.R1, FeatureClass.C] + FeatureClass.M3, FeatureClass.R1, FeatureClass.C, + FeatureClass.TEMP0, FeatureClass.TEMP1, FeatureClass.CO2] @staticmethod def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagAlarmValid(PowerTagEntity, BinarySensorEntity): +class PowerTagAlarm(WirelessDeviceEntity, BinarySensorEntity): _attr_device_class = BinarySensorDeviceClass.PROBLEM def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): - super().__init__(client, modbus_index, tag_device, "alarm valid") + super().__init__(client, modbus_index, tag_device, "alarm info") async def async_update(self): - self._attr_is_on = not self._client.tag_is_alarm_valid(self._modbus_index) + alarm = self._client.tag_get_alarm(self._modbus_index) + + if alarm.has_alarm != self._attr_is_on: + self._attr_is_on = alarm.has_alarm + self._attr_extra_state_attributes = { + "Voltage loss": alarm.voltage_loss, + "Current overload when voltage loss": alarm.current_overload_when_voltage_loss, + "Current short-circuit": alarm.current_short_circuit, + "Overload 45%": alarm.current_overload_45_percent, + "Load current loss": alarm.load_current_loss, + "Overvoltage 120%": alarm.overvoltage_120_percent, + "Undervoltage 80%": alarm.undervoltage_80_percent, + "Current 50%": alarm.current_50_percent, + "Current 80%": alarm.current_80_percent + } @staticmethod def supports_feature_set(feature_class: FeatureClass) -> bool: @@ -107,42 +123,24 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagGetAlarm(PowerTagEntity, BinarySensorEntity): +class AmbientTagAlarm(WirelessDeviceEntity, BinarySensorEntity): _attr_device_class = BinarySensorDeviceClass.PROBLEM def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): - super().__init__(client, modbus_index, tag_device, "alarm info") + super().__init__(client, modbus_index, tag_device, "battery") self.__product_range = self._client.tag_product_range(self._modbus_index) async def async_update(self): alarm = self._client.tag_get_alarm(self._modbus_index) self._attr_is_on = alarm.has_alarm - if self.__product_range == "PowerTag": - self._attr_extra_state_attributes = { - "Voltage loss": alarm.alarm_voltage_loss, - "Overcurrent at voltage loss": alarm.alarm_current_overload, - "Overload 45%": alarm.alarm_overload_45_percent, - "Loadcurrent loss": alarm.alarm_load_current_loss, - "Overvoltage 120%": alarm.alarm_overvoltage, - "Undervoltage 80%": alarm.alarm_undervoltage - } - elif self.__product_range == "HeatTag": - self._attr_extra_state_attributes = { - "Alarm": alarm.alarm_heattag_alarm, - "Preventive maintenance on device": alarm.alarm_heattag_maintenance, - "Device replacement": alarm.alarm_heattag_replacement - } - @staticmethod def supports_feature_set(feature_class: FeatureClass) -> bool: - return feature_class in [FeatureClass.A1, FeatureClass.A2, FeatureClass.P1, FeatureClass.F1, FeatureClass.F2, - FeatureClass.F3, FeatureClass.FL, FeatureClass.M0, FeatureClass.M1, FeatureClass.M2, - FeatureClass.M3, FeatureClass.R1, FeatureClass.C] + return feature_class in [FeatureClass.TEMP1, FeatureClass.CO2] @staticmethod def supports_gateway(type_of_gateway: TypeOfGateway): - return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] + return type_of_gateway in [TypeOfGateway.PANEL_SERVER] class GatewayStatus(GatewayEntity, BinarySensorEntity): diff --git a/custom_components/powertag_gateway/button.py b/custom_components/powertag_gateway/button.py index 35cf201..d0c36ae 100644 --- a/custom_components/powertag_gateway/button.py +++ b/custom_components/powertag_gateway/button.py @@ -6,14 +6,14 @@ from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .entity_base import PowerTagEntity, setup_entities -from .powertag_features import FeatureClass +from .entity_base import WirelessDeviceEntity, setup_entities +from .device_features import FeatureClass from .schneider_modbus import SchneiderModbus, TypeOfGateway _LOGGER = logging.getLogger(__name__) -def list_buttons() -> list[type[PowerTagEntity]]: +def list_buttons() -> list[type[WirelessDeviceEntity]]: return [ PowerTagResetPeakDemand, PowerTagResetActiveEnergy, @@ -34,7 +34,7 @@ async def async_setup_entry( async_add_entities(entities, update_before_add=False) -class PowerTagResetPeakDemand(PowerTagEntity, ButtonEntity): +class PowerTagResetPeakDemand(WirelessDeviceEntity, ButtonEntity): def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): super().__init__(client, modbus_index, tag_device, "reset peak demand") @@ -58,7 +58,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagResetActiveEnergy(PowerTagEntity, ButtonEntity): +class PowerTagResetActiveEnergy(WirelessDeviceEntity, ButtonEntity): def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): super().__init__(client, modbus_index, tag_device, "reset active energy") @@ -80,7 +80,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagResetActiveEnergyDelivered(PowerTagEntity, ButtonEntity): +class PowerTagResetActiveEnergyDelivered(WirelessDeviceEntity, ButtonEntity): def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): super().__init__(client, modbus_index, tag_device, "reset active energy delivered") @@ -102,7 +102,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagResetActiveEnergyReceived(PowerTagEntity, ButtonEntity): +class PowerTagResetActiveEnergyReceived(WirelessDeviceEntity, ButtonEntity): def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): super().__init__(client, modbus_index, tag_device, "reset active energy received") @@ -124,7 +124,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagResetReactiveEnergyDelivered(PowerTagEntity, ButtonEntity): +class PowerTagResetReactiveEnergyDelivered(WirelessDeviceEntity, ButtonEntity): def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): super().__init__(client, modbus_index, tag_device, "reset reactive energy delivered") @@ -148,7 +148,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagResetReactiveEnergyReceived(PowerTagEntity, ButtonEntity): +class PowerTagResetReactiveEnergyReceived(WirelessDeviceEntity, ButtonEntity): def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): super().__init__(client, modbus_index, tag_device, "reset reactive energy received") diff --git a/custom_components/powertag_gateway/powertag_features.py b/custom_components/powertag_gateway/device_features.py similarity index 90% rename from custom_components/powertag_gateway/powertag_features.py rename to custom_components/powertag_gateway/device_features.py index 59a9138..b24b401 100644 --- a/custom_components/powertag_gateway/powertag_features.py +++ b/custom_components/powertag_gateway/device_features.py @@ -18,6 +18,9 @@ class FeatureClass(Enum): M3 = auto() R1 = auto() C = auto() + TEMP0 = auto + TEMP1 = auto() + CO2 = auto() class UnknownDevice(IntegrationError): @@ -38,7 +41,10 @@ def from_commercial_reference(commercial_reference: str) -> FeatureClass: '^LV434022$': FeatureClass.M2, '^LV434023$': FeatureClass.M3, '^A9MEM1590|A9MEM1591|A9MEM1592|A9MEM1593|PLTR.$': FeatureClass.R1, - '^A9TAA....|A9TAB....|A9TDEC...|A9TDFC...|A9TDFD...|A9TPDD...|A9TPED...|A9TYAE...|A9TYBE...$': FeatureClass.C + '^A9TAA....|A9TAB....|A9TDEC...|A9TDFC...|A9TDFD...|A9TPDD...|A9TPED...|A9TYAE...|A9TYBE...$': FeatureClass.C, + '^EMS59440$': FeatureClass.TEMP0, + '^SED-TRH-G-5045|ZBRTT1|ESST010B0400|A9XST114|EMS59443$': FeatureClass.TEMP1, + '^SED-CO2-G-5045$': FeatureClass.CO2 }.items(): if re.match(regex, commercial_reference): return result diff --git a/custom_components/powertag_gateway/entity_base.py b/custom_components/powertag_gateway/entity_base.py index f86ddd2..4ddabdf 100644 --- a/custom_components/powertag_gateway/entity_base.py +++ b/custom_components/powertag_gateway/entity_base.py @@ -8,22 +8,23 @@ from .const import CONF_CLIENT, DOMAIN from .const import GATEWAY_DOMAIN, TAG_DOMAIN -from .powertag_features import FeatureClass, from_commercial_reference, UnknownDevice, from_wireless_device_type_code +from .device_features import FeatureClass, from_commercial_reference, UnknownDevice, from_wireless_device_type_code from .schneider_modbus import SchneiderModbus, Phase, LineVoltage, PhaseSequence, TypeOfGateway _LOGGER = logging.getLogger(__name__) def gateway_device_info(client: SchneiderModbus, presentation_url: str) -> DeviceInfo: + serial = client.serial_number() return DeviceInfo( configuration_url=presentation_url, - identifiers={(GATEWAY_DOMAIN, client.serial_number())}, + identifiers={(GATEWAY_DOMAIN, serial)}, hw_version=client.hardware_version(), sw_version=client.firmware_version(), manufacturer=client.manufacturer(), model=client.product_code(), name=client.name(), - serial_number=client.serial_number() + serial_number=serial ) @@ -113,7 +114,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): raise NotImplementedError() -class PowerTagEntity(Entity): +class WirelessDeviceEntity(Entity): def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo, entity_name: str): self._client = client self._modbus_index = modbus_index @@ -134,7 +135,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): def collect_entities(client: SchneiderModbus, entities: list[Entity], feature_class: FeatureClass, modbus_address: int, - powertag_entity: type[PowerTagEntity], tag_device: DeviceInfo, tag_phase_sequence: PhaseSequence): + powertag_entity: type[WirelessDeviceEntity], tag_device: DeviceInfo, tag_phase_sequence: PhaseSequence): params_raw = inspect.signature(powertag_entity.__init__).parameters params = [name for name in params_raw.items() if name[0] != "self" and name[0] != "kwargs"] args = [] @@ -171,7 +172,7 @@ def collect_entities(client: SchneiderModbus, entities: list[Entity], feature_cl entities.append(powertag_entity(*args)) -def setup_entities(hass: HomeAssistant, config_entry: ConfigEntry, powertag_entities: list[type[PowerTagEntity]]): +def setup_entities(hass: HomeAssistant, config_entry: ConfigEntry, powertag_entities: list[type[WirelessDeviceEntity]]): data = hass.data[DOMAIN][config_entry.entry_id] client = data[CONF_CLIENT] presentation_url = data[CONF_INTERNAL_URL] diff --git a/custom_components/powertag_gateway/manifest.json b/custom_components/powertag_gateway/manifest.json index 63e7350..cee8b7c 100644 --- a/custom_components/powertag_gateway/manifest.json +++ b/custom_components/powertag_gateway/manifest.json @@ -7,5 +7,5 @@ "iot_class": "local_polling", "issue_tracker": "https://github.com/Breina/PowerTagGateway/issues", "requirements": ["pymodbus==3.5.4"], - "version": "0.1.1" + "version": "0.4.0" } diff --git a/custom_components/powertag_gateway/schneider_modbus.py b/custom_components/powertag_gateway/schneider_modbus.py index a3b1b26..4969b8a 100644 --- a/custom_components/powertag_gateway/schneider_modbus.py +++ b/custom_components/powertag_gateway/schneider_modbus.py @@ -45,21 +45,24 @@ class PanelHealth(enum.Enum): OUT_OF_ORDER = 2 -class AlarmStatus: +class AlarmDetails: def __init__(self, bitmask: int): - lower_mask = bitmask & 0b1111_1111 - - self.has_alarm = lower_mask != 0 - self.alarm_voltage_loss = (lower_mask & 0b0000_0001) != 0 - self.alarm_current_overload = (lower_mask & 0b0000_0010) != 0 - # self.alarm_reserved = (lower_mask & 0b0000_0100) != 0 - self.alarm_overload_45_percent = (lower_mask & 0b0000_1000) != 0 - self.alarm_load_current_loss = (lower_mask & 0b0001_0000) != 0 - self.alarm_overvoltage = (lower_mask & 0b0010_0000) != 0 - self.alarm_undervoltage = (lower_mask & 0b0100_0000) != 0 - self.alarm_heattag_alarm = (lower_mask & 0b0001_0000_0000) != 0 - self.alarm_heattag_maintenance = (lower_mask & 0b0100_0000_0000) != 0 - self.alarm_heattag_replacement = (lower_mask & 0b1000_0000_0000) != 0 + self.has_alarm = bitmask != 0 + + self.voltage_loss = 0b1 & bitmask != 0 + self.current_overload_when_voltage_loss = 0b1 << 1 & bitmask != 0 + self.current_short_circuit = 0b1 << 2 & bitmask != 0 + self.current_overload_45_percent = 0b1 << 3 & bitmask != 0 + self.load_current_loss = 0b1 << 4 & bitmask != 0 + self.overvoltage_120_percent = 0b1 << 5 & bitmask != 0 + self.undervoltage_80_percent = 0b1 << 6 & bitmask != 0 + self.battery_almost_low = 0b1 << 7 & bitmask != 0 + self.heat = 0b1 << 8 & bitmask != 0 + self.battery_low = 0b1 << 9 & bitmask != 0 + self.preventive_maintenance = 0b1 << 10 & bitmask != 0 + self.device_replacement = 0b1 << 11 & bitmask != 0 + self.current_50_percent = 0b1 << 12 & bitmask != 0 + self.current_80_percent = 0b1 << 13 & bitmask != 0 class DeviceUsage(enum.Enum): @@ -249,298 +252,301 @@ def date_time(self) -> datetime | None: # Current Metering Data - def tag_current(self, power_tag_index: int, phase: Phase) -> float | None: + def tag_current(self, tag_index: int, phase: Phase) -> float | None: """RMS current on phase""" - return self.__read_float_32(0xBB7 + phase.value, power_tag_index) + return self.__read_float_32(0xBB7 + phase.value, tag_index) - def tag_current_neutral(self, power_tag_index: int) -> float | None: + def tag_current_neutral(self, tag_index: int) -> float | None: """RMS current on Neutral""" - return self.__read_float_32(0xBBD, power_tag_index) + return self.__read_float_32(0xBBD, tag_index) # Voltage Metering Data - def tag_voltage(self, power_tag_index: int, line_voltage: LineVoltage) -> float | None: + def tag_voltage(self, tag_index: int, line_voltage: LineVoltage) -> float | None: """RMS phase-to-phase voltage""" - return self.__read_float_32(0xBCB + line_voltage.value, power_tag_index) + return self.__read_float_32(0xBCB + line_voltage.value, tag_index) # Power Metering Data - def tag_power_active(self, power_tag_index: int, phase: Phase) -> float | None: + def tag_power_active(self, tag_index: int, phase: Phase) -> float | None: """Active power on phase""" - return self.__read_float_32(0xBED + phase.value, power_tag_index) + return self.__read_float_32(0xBED + phase.value, tag_index) - def tag_power_active_total(self, power_tag_index: int) -> float | None: + def tag_power_active_total(self, tag_index: int) -> float | None: """Total active power""" - return self.__read_float_32(0xBF3, power_tag_index) + return self.__read_float_32(0xBF3, tag_index) - def tag_power_reactive(self, power_tag_index: int, phase: Phase) -> float | None: + def tag_power_reactive(self, tag_index: int, phase: Phase) -> float | None: """Reactive power on phase""" - return self.__read_float_32(0xBF5 + phase.value, power_tag_index) + return self.__read_float_32(0xBF5 + phase.value, tag_index) - def tag_power_reactive_total(self, power_tag_index: int) -> float | None: + def tag_power_reactive_total(self, tag_index: int) -> float | None: """Total reactive power""" - return self.__read_float_32(0xBFB, power_tag_index) + return self.__read_float_32(0xBFB, tag_index) - def tag_power_apparent(self, power_tag_index: int, phase: Phase) -> float | None: + def tag_power_apparent(self, tag_index: int, phase: Phase) -> float | None: """Apparent power on phase""" - return self.__read_float_32(0xBFD + phase.value, power_tag_index) + return self.__read_float_32(0xBFD + phase.value, tag_index) - def tag_power_apparent_total(self, power_tag_index: int) -> float | None: + def tag_power_apparent_total(self, tag_index: int) -> float | None: """Total apparent power (arithmetric)""" - return self.__read_float_32(0xC03, power_tag_index) + return self.__read_float_32(0xC03, tag_index) # Power Factor Metering Data - def tag_power_factor(self, power_tag_index: int, phase: Phase) -> float | None: + def tag_power_factor(self, tag_index: int, phase: Phase) -> float | None: """Power factor on phase""" - return self.__read_float_32(0xC05 + phase.value, power_tag_index) + return self.__read_float_32(0xC05 + phase.value, tag_index) - def tag_power_factor_total(self, power_tag_index: int) -> float | None: + def tag_power_factor_total(self, tag_index: int) -> float | None: """Total power factor""" - return self.__read_float_32(0xC0B, power_tag_index) + return self.__read_float_32(0xC0B, tag_index) - def tag_power_factor_sign_convention(self, power_tag_index: int) -> PowerFactorSignConvention: + def tag_power_factor_sign_convention(self, tag_index: int) -> PowerFactorSignConvention: """Power factor sign convention""" - return PowerFactorSignConvention(self.__read_int_16(0xC0D, power_tag_index)) + return PowerFactorSignConvention(self.__read_int_16(0xC0D, tag_index)) # Frequency Metering Data - def tag_ac_frequency(self, power_tag_index: int) -> float | None: + def tag_ac_frequency(self, tag_index: int) -> float | None: """AC frequency""" - return self.__read_float_32(0xC25, power_tag_index) + return self.__read_float_32(0xC25, tag_index) # Device Temperature Metering Data - def tag_device_temperature(self, power_tag_index: int) -> float | None: + def tag_device_temperature(self, tag_index: int) -> float | None: """Device internal temperature""" - return self.__read_float_32(0xC3B, power_tag_index) + return self.__read_float_32(0xC3B, tag_index) # Energy Data – Legacy Zone - def tag_energy_active_delivered_plus_received_total(self, power_tag_index: int) -> int | None: + def tag_energy_active_delivered_plus_received_total(self, tag_index: int) -> int | None: """Total active energy delivered + received (not resettable)""" - return self.__read_int_64(0xC83, power_tag_index) + return self.__read_int_64(0xC83, tag_index) - def tag_energy_active_delta(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_active_delta(self, tag_index: int, phase: Phase) -> int | None: """Active energy on phase delivered - received (not resettable)""" - return self.__read_int_64(0xC8F + phase.value * 2, power_tag_index) + return self.__read_int_64(0xC8F + phase.value * 2, tag_index) - def tag_energy_active_delivered_plus_received_partial(self, power_tag_index: int) -> int | None: + def tag_energy_active_delivered_plus_received_partial(self, tag_index: int) -> int | None: """Partial active energy delivered + received (resettable)""" - return self.__read_int_64(0xCB7, power_tag_index) + return self.__read_int_64(0xCB7, tag_index) - def tag_reset_energy_active_partial(self, power_tag_index: int): + def tag_reset_energy_active_partial(self, tag_index: int): """Set partial active energy counter. The value returns to zero by PowerTag Link gateway""" - self.__write_int_64(0xCBB, power_tag_index, 1) + self.__write_int_64(0xCBB, tag_index, 1) - def tag_reset_energy_active_delivered_partial(self, power_tag_index: int): + def tag_reset_energy_active_delivered_partial(self, tag_index: int): """Set partial active energy delivered counter. The value returns to zero by PowerTag Link gateway""" - self.__write_int_64(0xCC3, power_tag_index, 1) + self.__write_int_64(0xCC3, tag_index, 1) - def tag_reset_energy_active_received_partial(self, power_tag_index: int): + def tag_reset_energy_active_received_partial(self, tag_index: int): """Set partial active energy received counter. The value returns to zero by PowerTag Link gateway.""" - self.__write_int_64(0xCCB, power_tag_index, 1) + self.__write_int_64(0xCCB, tag_index, 1) - def tag_reset_energy_reactive_delivered_partial(self, power_tag_index: int): + def tag_reset_energy_reactive_delivered_partial(self, tag_index: int): """Set partial reactive energy delivered counter. The value returns to zero by PowerTag Link gateway.""" - self.__write_int_64(0xCD3, power_tag_index, 1) + self.__write_int_64(0xCD3, tag_index, 1) - def tag_reset_energy_reactive_received_partial(self, power_tag_index: int): + def tag_reset_energy_reactive_received_partial(self, tag_index: int): """Set partial reactive energy received counter. The value returns to zero by PowerTag Link gateway.""" - self.__write_int_64(0xCDB, power_tag_index, 1) + self.__write_int_64(0xCDB, tag_index, 1) # Energy Data – New Zone - def tag_energy_active_delivered_partial(self, power_tag_index: int) -> int | None: + def tag_energy_active_delivered_partial(self, tag_index: int) -> int | None: """Active energy delivered (resettable)""" - return self.__read_int_64(0x1390, power_tag_index) + return self.__read_int_64(0x1390, tag_index) - def tag_energy_active_delivered_total(self, power_tag_index: int) -> int | None: + def tag_energy_active_delivered_total(self, tag_index: int) -> int | None: """Active energy delivered count positively (not resettable)""" - return self.__read_int_64(0x1394, power_tag_index) + return self.__read_int_64(0x1394, tag_index) - def tag_energy_active_received_partial(self, power_tag_index: int) -> int | None: + def tag_energy_active_received_partial(self, tag_index: int) -> int | None: """Active energy received (resettable)""" - return self.__read_int_64(0x1398, power_tag_index) + return self.__read_int_64(0x1398, tag_index) - def tag_energy_active_received_total(self, power_tag_index: int) -> int | None: + def tag_energy_active_received_total(self, tag_index: int) -> int | None: """Active energy received count negatively (not resettable)""" - return self.__read_int_64(0x139C, power_tag_index) + return self.__read_int_64(0x139C, tag_index) - def tag_energy_active_delivered_partial_phase(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_active_delivered_partial_phase(self, tag_index: int, phase: Phase) -> int | None: """Active energy on phase delivered (resettable)""" - return self.__read_int_64(0x13B8 + phase.value * 0x14, power_tag_index) + return self.__read_int_64(0x13B8 + phase.value * 0x14, tag_index) - def tag_energy_active_delivered_total_phase(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_active_delivered_total_phase(self, tag_index: int, phase: Phase) -> int | None: """Active energy on phase delivered (not resettable)""" - return self.__read_int_64(0x13BC + phase.value * 0x14, power_tag_index) + return self.__read_int_64(0x13BC + phase.value * 0x14, tag_index) - def tag_energy_active_received_partial_phase(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_active_received_partial_phase(self, tag_index: int, phase: Phase) -> int | None: """Active energy on phase received (resettable)""" - return self.__read_int_64(0x13C0 + phase.value * 0x14, power_tag_index) + return self.__read_int_64(0x13C0 + phase.value * 0x14, tag_index) - def tag_energy_active_received_total_phase(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_active_received_total_phase(self, tag_index: int, phase: Phase) -> int | None: """Active energy on phase received (not resettable)""" - return self.__read_int_64(0x13C4 + phase.value * 0x14, power_tag_index) + return self.__read_int_64(0x13C4 + phase.value * 0x14, tag_index) - def tag_energy_reactive_delivered_partial(self, power_tag_index: int) -> int | None: + def tag_energy_reactive_delivered_partial(self, tag_index: int) -> int | None: """Reactive energy delivered (resettable)""" - return self.__read_int_64(0x1438, power_tag_index) + return self.__read_int_64(0x1438, tag_index) - def tag_energy_reactive_delivered_total(self, power_tag_index: int) -> int | None: + def tag_energy_reactive_delivered_total(self, tag_index: int) -> int | None: """Reactive energy delivered count positively (not resettable)""" - return self.__read_int_64(0x143C, power_tag_index) + return self.__read_int_64(0x143C, tag_index) - def tag_energy_reactive_received_partial(self, power_tag_index: int) -> int | None: + def tag_energy_reactive_received_partial(self, tag_index: int) -> int | None: """Reactive energy received (resettable)""" - return self.__read_int_64(0x1488, power_tag_index) + return self.__read_int_64(0x1488, tag_index) - def tag_energy_reactive_received_total(self, power_tag_index: int) -> int | None: + def tag_energy_reactive_received_total(self, tag_index: int) -> int | None: """Reactive energy received count negatively (not resettable)""" - return self.__read_int_64(0x144C, power_tag_index) + return self.__read_int_64(0x144C, tag_index) - def tag_energy_reactive_delivered_partial_phase(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_reactive_delivered_partial_phase(self, tag_index: int, phase: Phase) -> int | None: """Reactive energy on phase delivered (resettable)""" - return self.__read_int_64(0x1470 + phase.value * 0x14, power_tag_index) + return self.__read_int_64(0x1470 + phase.value * 0x14, tag_index) - def tag_energy_reactive_delivered_total_phase(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_reactive_delivered_total_phase(self, tag_index: int, phase: Phase) -> int | None: """Reactive energy on phase delivered (not resettable)""" - return self.__read_int_64(0x1474 + phase.value * 0x14, power_tag_index) + return self.__read_int_64(0x1474 + phase.value * 0x14, tag_index) - def tag_energy_reactive_received_partial_phase(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_reactive_received_partial_phase(self, tag_index: int, phase: Phase) -> int | None: """Reactive energy on phase received (resettable)""" - return self.__read_int_64(0x1478 + phase.value * 0x14, power_tag_index) + return self.__read_int_64(0x1478 + phase.value * 0x14, tag_index) - def tag_energy_reactive_received_total_phase(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_reactive_received_total_phase(self, tag_index: int, phase: Phase) -> int | None: """Reactive energy on phase received (not resettable)""" - return self.__read_int_64(0x147C + phase.value * 0x14, power_tag_index) + return self.__read_int_64(0x147C + phase.value * 0x14, tag_index) - def tag_energy_apparent_partial(self, power_tag_index: int) -> int | None: + def tag_energy_apparent_partial(self, tag_index: int) -> int | None: """Apparent energy delivered + received (resettable)""" - return self.__read_int_64(0x14F4, power_tag_index) + return self.__read_int_64(0x14F4, tag_index) - def tag_energy_apparent_total(self, power_tag_index: int) -> int | None: + def tag_energy_apparent_total(self, tag_index: int) -> int | None: """Apparent energy delivered + received (not resettable)""" - return self.__read_int_64(0x14F8, power_tag_index) + return self.__read_int_64(0x14F8, tag_index) - def tag_energy_apparent_partial_phase(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_apparent_partial_phase(self, tag_index: int, phase: Phase) -> int | None: """Apparent energy on phase (resettable)""" - return self.__read_int_64(0x150C + phase.value * 0x14, power_tag_index) + return self.__read_int_64(0x150C + phase.value * 0x14, tag_index) - def tag_energy_apparent_total_phase(self, power_tag_index: int, phase: Phase) -> int | None: + def tag_energy_apparent_total_phase(self, tag_index: int, phase: Phase) -> int | None: """Apparent energy on phase A (not resettable)""" - return self.__read_int_64(0x1510 + phase.value * 0x14, power_tag_index) + return self.__read_int_64(0x1510 + phase.value * 0x14, tag_index) # Power Demand Data - def tag_power_active_demand_total(self, power_tag_index: int) -> float | None: + def tag_power_active_demand_total(self, tag_index: int) -> float | None: """Demand total active power""" - return self.__read_float_32(0x0EB5, power_tag_index) + return self.__read_float_32(0x0EB5, tag_index) - def tag_power_active_power_demand_total_maximum(self, power_tag_index: int) -> float | None: + def tag_power_active_power_demand_total_maximum(self, tag_index: int) -> float | None: """Maximum Demand total active power""" - return self.__read_float_32(0x0EB9, power_tag_index) + return self.__read_float_32(0x0EB9, tag_index) - def tag_power_active_demand_total_maximum_timestamp(self, power_tag_index: int) -> datetime | None: + def tag_power_active_demand_total_maximum_timestamp(self, tag_index: int) -> datetime | None: """Maximum Demand total active power""" - return self.__read_date_time(0x0EBB, power_tag_index) + return self.__read_date_time(0x0EBB, tag_index) # Alarm - def tag_is_alarm_valid(self, power_tag_index: int) -> bool | None: + def tag_is_alarm_valid(self, tag_index: int) -> AlarmDetails | bool | None: """Validity of the alarm bitmap""" - return (self.__read_int_16(0xCE1, power_tag_index) & 0b1) != 0 + if self.type_of_gateway is TypeOfGateway.PANEL_SERVER: + return AlarmDetails(self.__read_int_16(0xCE1, tag_index)) + else: + return (self.__read_int_16(0xCE1, tag_index) & 0b1) != 0 - def tag_get_alarm(self, power_tag_index: int) -> AlarmStatus: + def tag_get_alarm(self, tag_index: int) -> AlarmDetails: """Alarms""" - return AlarmStatus(self.__read_int_16(0xCE3, power_tag_index)) + return AlarmDetails(self.__read_int_16(0xCE3, tag_index)) - def tag_current_at_voltage_loss(self, power_tag_index: int, phase: Phase) -> float | None: + def tag_current_at_voltage_loss(self, tag_index: int, phase: Phase) -> float | None: """RMS current on phase at voltage loss (last RMS current measured when voltage loss occurred)""" - return self.__read_float_32(0xCE5 + phase.value, power_tag_index) + return self.__read_float_32(0xCE5 + phase.value, tag_index) # Load Operating Time - def tag_load_operating_time(self, power_tag_index: int) -> int | None: + def tag_load_operating_time(self, tag_index: int) -> int | None: """Load operating time counter.""" - return self.__read_int_32(0xCEB, power_tag_index) + return self.__read_int_32(0xCEB, tag_index) - def tag_load_operating_time_active_power_threshold(self, power_tag_index: int) -> float | None: + def tag_load_operating_time_active_power_threshold(self, tag_index: int) -> float | None: """Active power threshold for Load operating time counter. Counter starts above the threshold value.""" - return self.__read_float_32(0xCED, power_tag_index) + return self.__read_float_32(0xCED, tag_index) - def tag_load_operating_time_start(self, power_tag_index: int) -> datetime | None: + def tag_load_operating_time_start(self, tag_index: int) -> datetime | None: """Date and time stamp of last Set or reset of Load operating time counter.""" - return self.__read_date_time(0xCEF, power_tag_index) + return self.__read_date_time(0xCEF, tag_index) # Configuration Registers - def tag_name(self, power_tag_index: int) -> str | None: + def tag_name(self, tag_index: int) -> str | None: """User application name of the wireless device. The user can enter maximum 20 characters.""" - return self.__read_string(0x7918, 10, power_tag_index, 20) + return self.__read_string(0x7918, 10, tag_index, 20) - def tag_circuit(self, power_tag_index: int) -> str: + def tag_circuit(self, tag_index: int) -> str: """Circuit identifier of the wireless device. The user can enter maximum five characters.""" - return self.__read_string(0x7922, 3, power_tag_index, 5) + return self.__read_string(0x7922, 3, tag_index, 5) - def tag_usage(self, power_tag_index: int) -> DeviceUsage: + def tag_usage(self, tag_index: int) -> DeviceUsage: """Indicates the usage of the wireless device.""" - return DeviceUsage(self.__read_int_16(0x7925, power_tag_index)) + return DeviceUsage(self.__read_int_16(0x7925, tag_index)) - def tag_phase_sequence(self, power_tag_index: int) -> PhaseSequence: + def tag_phase_sequence(self, tag_index: int) -> PhaseSequence: """Phase sequence.""" - return PhaseSequence(self.__read_int_16(0x7926, power_tag_index)) + return PhaseSequence(self.__read_int_16(0x7926, tag_index)) - def tag_position(self, power_tag_index: int) -> Position: + def tag_position(self, tag_index: int) -> Position: """Mounting position""" - return Position(self.__read_int_16(0x7927, power_tag_index)) + return Position(self.__read_int_16(0x7927, tag_index)) - def tag_circuit_diagnostic(self, power_tag_index: int) -> Position: + def tag_circuit_diagnostic(self, tag_index: int) -> Position: """Circuit diagnostics""" - return Position(self.__read_int_16(0x7928, power_tag_index)) + return Position(self.__read_int_16(0x7928, tag_index)) - def tag_rated_current(self, power_tag_index: int) -> int | None: + def tag_rated_current(self, tag_index: int) -> int | None: """Rated current of the protective device to the wireless device""" - return self.__read_int_16(0x7929, power_tag_index) + return self.__read_int_16(0x7929, tag_index) - def tag_electrical_network_system_type(self, power_tag_index: int) -> ElectricalNetworkSystemType: - code = self.__read_int_16(0x792A, power_tag_index) + def tag_electrical_network_system_type(self, tag_index: int) -> ElectricalNetworkSystemType: + code = self.__read_int_16(0x792A, tag_index) system_type = [e for e in ElectricalNetworkSystemType if e.value[0] == code] return system_type[0] if system_type else None - def tag_rated_voltage(self, power_tag_index: int) -> float | None: + def tag_rated_voltage(self, tag_index: int) -> float | None: """Rated voltage""" if self.type_of_gateway == TypeOfGateway.SMARTLINK: return None - return self.__read_float_32(0x792B, power_tag_index) + return self.__read_float_32(0x792B, tag_index) - def tag_reset_peak_demands(self, power_tag_index: int): + def tag_reset_peak_demands(self, tag_index: int): """Reset All Peak Demands""" - self.__write_int_16(0x792E, power_tag_index, 1) + self.__write_int_16(0x792E, tag_index, 1) - def tag_power_supply_type(self, power_tag_index: int) -> Position: + def tag_power_supply_type(self, tag_index: int) -> Position: """Power supply type""" if self.type_of_gateway == TypeOfGateway.SMARTLINK: return Position.INVALID - return Position(self.__read_int_16(0x792F, power_tag_index)) + return Position(self.__read_int_16(0x792F, tag_index)) # Device identification - def tag_device_identification(self, power_tag_index: int): - return self.__identify(power_tag_index) + def tag_device_identification(self, tag_index: int): + return self.__identify(tag_index) - def tag_product_identifier(self, power_tag_index: int) -> int | None: + def tag_product_identifier(self, tag_index: int) -> int | None: """Wireless device code type""" if self.type_of_gateway == TypeOfGateway.SMARTLINK: - return self.__read_int_16(0x7930, power_tag_index) + return self.__read_int_16(0x7930, tag_index) raise NotImplementedError() - def tag_product_type(self, power_tag_index: int) -> ProductType | None: + def tag_product_type(self, tag_index: int) -> ProductType | None: """Wireless device code type""" if self.type_of_gateway == TypeOfGateway.SMARTLINK: try: - identifier = self.__read_int_16(0x7930, power_tag_index) + identifier = self.__read_int_16(0x7930, tag_index) if not identifier: _LOGGER.error("The powertag returned an error while requesting its product type") return None @@ -554,13 +560,13 @@ def tag_product_type(self, power_tag_index: int) -> ProductType | None: except ConnectionError as e: _LOGGER.warning( - f"Could not read product type of device on slave ID {power_tag_index}: {str(e)}. " + f"Could not read product type of device on slave ID {tag_index}: {str(e)}. " f"Might be because there's device, or an actual error. Either way we're stopping the search.", exc_info=True ) return None else: - identifier = self.__read_int_16(0x7937, power_tag_index) + identifier = self.__read_int_16(0x7937, tag_index) product_type = [p for p in ProductType if p.value[1] == identifier] if not product_type: _LOGGER.warning( @@ -570,95 +576,128 @@ def tag_product_type(self, power_tag_index: int) -> ProductType | None: return product_type[0] if product_type else None - def tag_slave_address(self, power_tag_index: int) -> int | None: + def tag_slave_address(self, tag_index: int) -> int | None: """Virtual Modbus server address""" - return self.__read_int_16(0x7931, power_tag_index) + return self.__read_int_16(0x7931, tag_index) - def tag_rf_id(self, power_tag_index: int) -> int | None: + def tag_rf_id(self, tag_index: int) -> int | None: """Wireless device Radio Frequency Identifier""" - return self.__read_int_64(0x7932, power_tag_index) + return self.__read_int_64(0x7932, tag_index) - def tag_vendor_name(self, power_tag_index: int) -> str | None: + def tag_vendor_name(self, tag_index: int) -> str | None: """Vendor name""" - return self.__read_string(0x7944, 16, power_tag_index, 32) + return self.__read_string(0x7944, 16, tag_index, 32) - def tag_product_code(self, power_tag_index: int) -> str | None: + def tag_product_code(self, tag_index: int) -> str | None: """Wireless device commercial reference""" if self.type_of_gateway is TypeOfGateway.SMARTLINK: return None - return self.__read_string(0x7954, 16, power_tag_index, 32) + return self.__read_string(0x7954, 16, tag_index, 32) - def tag_firmware_revision(self, power_tag_index: int) -> str | None: + def tag_firmware_revision(self, tag_index: int) -> str | None: """Firmware revision""" - return self.__read_string(0x7964, 6, power_tag_index, 12) + return self.__read_string(0x7964, 6, tag_index, 12) - def tag_hardware_revision(self, power_tag_index: int) -> str | None: + def tag_hardware_revision(self, tag_index: int) -> str | None: """Hardware revision""" - return self.__read_string(0x796A, 6, power_tag_index, 12) + return self.__read_string(0x796A, 6, tag_index, 12) - def tag_serial_number(self, power_tag_index: int) -> str | None: + def tag_serial_number(self, tag_index: int) -> str | None: """Serial number""" - return self.__read_string(0x7970, 10, power_tag_index, 20) + return self.__read_string(0x7970, 10, tag_index, 20) - def tag_product_range(self, power_tag_index: int) -> str | None: + def tag_product_range(self, tag_index: int) -> str | None: """Product range""" - return self.__read_string(0x797A, 8, power_tag_index, 16) + return self.__read_string(0x797A, 8, tag_index, 16) - def tag_product_model(self, power_tag_index: int) -> str | None: + def tag_product_model(self, tag_index: int) -> str | None: """Product model""" - return self.__read_string(0x7982, 8, power_tag_index, 16) + return self.__read_string(0x7982, 8, tag_index, 16) - def tag_product_family(self, power_tag_index: int) -> str | None: + def tag_product_family(self, tag_index: int) -> str | None: """Product family""" if self.type_of_gateway is TypeOfGateway.SMARTLINK: return None - return self.__read_string(0x798A, 8, power_tag_index, 16) + return self.__read_string(0x798A, 8, tag_index, 16) # Diagnostic Data Registers - def tag_radio_communication_valid(self, power_tag_index: int) -> bool: + def tag_radio_communication_valid(self, tag_index: int) -> bool: """Validity of the RF communication between PowerTag system and PowerTag Link gateway status.""" - return self.__read_int_16(0x79A8, power_tag_index) != 0 + return self.__read_int_16(0x79A8, tag_index) != 0 - def tag_wireless_communication_valid(self, power_tag_index: int) -> bool: + def tag_wireless_communication_valid(self, tag_index: int) -> bool: """Communication status between PowerTag Link gateway and wireless devices.""" - return self.__read_int_16(0x79A9, power_tag_index) != 0 + return self.__read_int_16(0x79A9, tag_index) != 0 - def tag_radio_per_tag(self, power_tag_index: int) -> float | None: + def tag_radio_per_tag(self, tag_index: int) -> float | None: """Packet Error Rate (PER) of the device, received by PowerTag Link gateway""" - return self.__read_float_32(0x79B4, power_tag_index) + return self.__read_float_32(0x79B4, tag_index) - def tag_radio_rssi_inside_tag(self, power_tag_index: int) -> float | None: + def tag_radio_rssi_inside_tag(self, tag_index: int) -> float | None: """RSSI of the device, received by PowerTag Link gateway""" - return self.__read_float_32(0x79B6, power_tag_index) + return self.__read_float_32(0x79B6, tag_index) - def tag_radio_lqi_tag(self, power_tag_index: int) -> int | None: + def tag_radio_lqi_tag(self, tag_index: int) -> int | None: """Link Quality Indicator (LQI) of the device, received by PowerTag Link gateway""" - return self.__read_int_16(0x79B8, power_tag_index) + return self.__read_int_16(0x79B8, tag_index) - def tag_radio_per_gateway(self, power_tag_index: int) -> float | None: + def tag_radio_per_gateway(self, tag_index: int) -> float | None: """PER of gateway, calculated inside the PowerTag Link gateway""" - return self.__read_float_32(0x79AF, power_tag_index) + return self.__read_float_32(0x79AF, tag_index) - def tag_radio_rssi_inside_gateway(self, power_tag_index: int) -> float | None: + def tag_radio_rssi_inside_gateway(self, tag_index: int) -> float | None: """Radio Signal Strength Indicator (RSSI) of gateway, calculated inside the PowerTag Link gateway""" - return self.__read_float_32(0x79B1, power_tag_index) + return self.__read_float_32(0x79B1, tag_index) - def tag_radio_lqi_gateway(self, power_tag_index: int) -> float | None: + def tag_radio_lqi_gateway(self, tag_index: int) -> float | None: """LQI of gateway, calculated insider the PowerTag Link gateway""" - return self.__read_int_16(0x79B3, power_tag_index) + return self.__read_int_16(0x79B3, tag_index) - def tag_radio_per_maximum(self, power_tag_index: int) -> float | None: + def tag_radio_per_maximum(self, tag_index: int) -> float | None: """PER–Maximum value between device and gateway""" - return self.__read_float_32(0x79B4, power_tag_index) + return self.__read_float_32(0x79B4, tag_index) - def tag_radio_rssi_minimum(self, power_tag_index: int) -> float | None: + def tag_radio_rssi_minimum(self, tag_index: int) -> float | None: """RSSI–Minimal value between device and gateway""" - return self.__read_float_32(0x79B6, power_tag_index) + return self.__read_float_32(0x79B6, tag_index) - def tag_radio_lqi_minimum(self, power_tag_index: int) -> float | None: + def tag_radio_lqi_minimum(self, tag_index: int) -> float | None: """LQI–Minimal value between device and gateway""" - return self.__read_int_16(0x79B8, power_tag_index) + return self.__read_int_16(0x79B8, tag_index) + + # Environmental sensors + def env_battery_voltage(self, tag_index: int) -> float | None: + """Battery voltage""" + return self.__read_float_32(0x0CF3, tag_index) + + def env_temperature(self, tag_index: int) -> float | None: + """Temperature value""" + return self.__read_float_32(0x0FA0, tag_index) + + def env_temperature_maximum(self, tag_index: int) -> float | None: + """Maximum value that the device is able to read (maximum measurable temperature).""" + return self.__read_float_32(0x0FA2, tag_index) + + def env_temperature_minimum(self, tag_index: int) -> float | None: + """Minimum value that the device is able to read (minimum measurable temperature).""" + return self.__read_float_32(0x0FA4, tag_index) + + def env_humidity(self, tag_index: int) -> float | None: + """"Relative humidity value Example: 50% represented as 0.50""" + return self.__read_float_32(0x0FA6, tag_index) + + def env_humidity_maximum(self, tag_index: int) -> float | None: + """Maximum value that the device is able to read (maximum measurable humidity).""" + return self.__read_float_32(0x0FA8, tag_index) + + def env_humidity_minimum(self, tag_index: int) -> float | None: + """Minimum value that the device is able to read (minimum measurable humidity).""" + return self.__read_float_32(0x0FAA, tag_index) + + def env_co2(self, tag_index: int) -> float | None: + """CO2 (Example:5000 ppm represented as 0,005) """ + return self.__read_float_32(0x0FAE, tag_index) # Identification and Status Register diff --git a/custom_components/powertag_gateway/sensor.py b/custom_components/powertag_gateway/sensor.py index 6c747bc..2027b0f 100644 --- a/custom_components/powertag_gateway/sensor.py +++ b/custom_components/powertag_gateway/sensor.py @@ -9,8 +9,8 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import CONF_CLIENT, DOMAIN -from .entity_base import GatewayEntity, PowerTagEntity, setup_entities, gateway_device_info -from .powertag_features import FeatureClass +from .device_features import FeatureClass +from .entity_base import GatewayEntity, WirelessDeviceEntity, setup_entities, gateway_device_info from .schneider_modbus import SchneiderModbus, Phase, LineVoltage, PowerFactorSignConvention, \ TypeOfGateway @@ -19,7 +19,7 @@ _LOGGER = logging.getLogger(__name__) -def list_sensors() -> list[type[PowerTagEntity]]: +def list_sensors() -> list[type[WirelessDeviceEntity]]: return [ PowerTagTotalActiveEnergy, PowerTagTotalActiveEnergyPerPhase, @@ -60,12 +60,16 @@ def list_sensors() -> list[type[PowerTagEntity]]: PowerTagActivePower, PowerTagActivePowerPerPhase, PowerTagDemandActivePower, - PowerTagRssiTag, - PowerTagRssiGateway, - PowerTagLqiTag, - PowerTagLqiGateway, - PowerTagPerTag, - PowerTagPerGateway + EnvTagBatteryVoltage, + EnvTagTemperature, + EnvTagHumidity, + EnvTagCO2, + DeviceRssiTag, + DeviceRssiGateway, + DeviceLqiTag, + DeviceLqiGateway, + DevicePerTag, + DevicePerGateway, ] @@ -102,7 +106,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalActiveEnergy(PowerTagEntity, SensorEntity): +class PowerTagTotalActiveEnergy(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL @@ -124,7 +128,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalActiveEnergyPerPhase(PowerTagEntity, SensorEntity): +class PowerTagTotalActiveEnergyPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL @@ -147,7 +151,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagReactivePower(PowerTagEntity, SensorEntity): +class PowerTagReactivePower(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.REACTIVE_POWER _attr_native_unit_of_measurement = "var" _attr_state_class = SensorStateClass.MEASUREMENT @@ -168,7 +172,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagReactivePowerPerPhase(PowerTagEntity, SensorEntity): +class PowerTagReactivePowerPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.REACTIVE_POWER _attr_native_unit_of_measurement = "var" _attr_state_class = SensorStateClass.MEASUREMENT @@ -189,7 +193,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagApparentPower(PowerTagEntity, SensorEntity): +class PowerTagApparentPower(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.APPARENT_POWER _attr_native_unit_of_measurement = "VA" _attr_state_class = SensorStateClass.MEASUREMENT @@ -211,7 +215,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagApparentPowerPerPhase(PowerTagEntity, SensorEntity): +class PowerTagApparentPowerPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.APPARENT_POWER _attr_native_unit_of_measurement = "VA" _attr_state_class = SensorStateClass.MEASUREMENT @@ -232,7 +236,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPowerFactor(PowerTagEntity, SensorEntity): +class PowerTagPowerFactor(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.POWER_FACTOR _attr_native_unit_of_measurement = "%" _attr_state_class = SensorStateClass.MEASUREMENT @@ -261,7 +265,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPowerFactorPerPhase(PowerTagEntity, SensorEntity): +class PowerTagPowerFactorPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.POWER_FACTOR _attr_native_unit_of_measurement = "%" _attr_state_class = SensorStateClass.MEASUREMENT @@ -288,7 +292,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialActiveEnergyDelivered(PowerTagEntity, SensorEntity): +class PowerTagPartialActiveEnergyDelivered(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL_INCREASING @@ -311,7 +315,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalActiveEnergyDelivered(PowerTagEntity, SensorEntity): +class PowerTagTotalActiveEnergyDelivered(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL @@ -333,7 +337,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialActiveEnergyDeliveredPerPhase(PowerTagEntity, SensorEntity): +class PowerTagPartialActiveEnergyDeliveredPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL_INCREASING @@ -357,7 +361,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalActiveEnergyDeliveredPerPhase(PowerTagEntity, SensorEntity): +class PowerTagTotalActiveEnergyDeliveredPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL @@ -378,7 +382,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialActiveEnergyReceived(PowerTagEntity, SensorEntity): +class PowerTagPartialActiveEnergyReceived(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL_INCREASING @@ -401,7 +405,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalActiveEnergyReceived(PowerTagEntity, SensorEntity): +class PowerTagTotalActiveEnergyReceived(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL @@ -423,7 +427,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialActiveEnergyReceivedPerPhase(PowerTagEntity, SensorEntity): +class PowerTagPartialActiveEnergyReceivedPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL_INCREASING @@ -447,7 +451,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalActiveEnergyReceivedPerPhase(PowerTagEntity, SensorEntity): +class PowerTagTotalActiveEnergyReceivedPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL @@ -468,7 +472,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialActiveEnergyDeliveredAndReceived(PowerTagEntity, SensorEntity): +class PowerTagPartialActiveEnergyDeliveredAndReceived(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL @@ -490,7 +494,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalActiveEnergyDeliveredAndReceived(PowerTagEntity, SensorEntity): +class PowerTagTotalActiveEnergyDeliveredAndReceived(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "Wh" _attr_state_class = SensorStateClass.TOTAL @@ -536,7 +540,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): # return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialReactiveEnergyDelivered(PowerTagEntity, SensorEntity): +class PowerTagPartialReactiveEnergyDelivered(WirelessDeviceEntity, SensorEntity): # TODO lobby for Reactive-energy _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VARh" @@ -558,7 +562,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalReactiveEnergyDelivered(PowerTagEntity, SensorEntity): +class PowerTagTotalReactiveEnergyDelivered(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VARh" _attr_state_class = SensorStateClass.TOTAL @@ -578,7 +582,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialReactiveEnergyDeliveredPerPhase(PowerTagEntity, SensorEntity): +class PowerTagPartialReactiveEnergyDeliveredPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VARh" _attr_state_class = SensorStateClass.TOTAL_INCREASING @@ -601,7 +605,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalReactiveEnergyDeliveredPerPhase(PowerTagEntity, SensorEntity): +class PowerTagTotalReactiveEnergyDeliveredPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VARh" _attr_state_class = SensorStateClass.TOTAL @@ -624,7 +628,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialReactiveEnergyReceived(PowerTagEntity, SensorEntity): +class PowerTagPartialReactiveEnergyReceived(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VARh" _attr_state_class = SensorStateClass.TOTAL_INCREASING @@ -645,7 +649,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalReactiveEnergyReceived(PowerTagEntity, SensorEntity): +class PowerTagTotalReactiveEnergyReceived(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VARh" _attr_state_class = SensorStateClass.TOTAL @@ -665,7 +669,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialReactiveEnergyReceivedPerPhase(PowerTagEntity, SensorEntity): +class PowerTagPartialReactiveEnergyReceivedPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VARh" _attr_state_class = SensorStateClass.TOTAL_INCREASING @@ -688,7 +692,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalReactiveEnergyReceivedPerPhase(PowerTagEntity, SensorEntity): +class PowerTagTotalReactiveEnergyReceivedPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VARh" _attr_state_class = SensorStateClass.TOTAL @@ -711,7 +715,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialApparentEnergy(PowerTagEntity, SensorEntity): +class PowerTagPartialApparentEnergy(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VAh" _attr_state_class = SensorStateClass.TOTAL_INCREASING @@ -731,7 +735,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalApparentEnergy(PowerTagEntity, SensorEntity): +class PowerTagTotalApparentEnergy(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VAh" _attr_state_class = SensorStateClass.TOTAL @@ -751,7 +755,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPartialApparentEnergyPerPhase(PowerTagEntity, SensorEntity): +class PowerTagPartialApparentEnergyPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VAh" _attr_state_class = SensorStateClass.TOTAL_INCREASING @@ -772,7 +776,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTotalApparentEnergyPerPhase(PowerTagEntity, SensorEntity): +class PowerTagTotalApparentEnergyPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.ENERGY _attr_native_unit_of_measurement = "VAh" _attr_state_class = SensorStateClass.TOTAL @@ -793,7 +797,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagCurrent(PowerTagEntity, SensorEntity): +class PowerTagCurrent(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.CURRENT _attr_native_unit_of_measurement = "A" _attr_state_class = SensorStateClass.MEASUREMENT @@ -820,7 +824,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagCurrentNeutral(PowerTagEntity, SensorEntity): +class PowerTagCurrentNeutral(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.CURRENT _attr_native_unit_of_measurement = "A" _attr_state_class = SensorStateClass.MEASUREMENT @@ -844,7 +848,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagVoltage(PowerTagEntity, SensorEntity): +class PowerTagVoltage(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.VOLTAGE _attr_native_unit_of_measurement = "V" _attr_state_class = SensorStateClass.MEASUREMENT @@ -874,7 +878,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagFrequency(PowerTagEntity, SensorEntity): +class PowerTagFrequency(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.FREQUENCY _attr_native_unit_of_measurement = "Hz" _attr_state_class = SensorStateClass.MEASUREMENT @@ -895,7 +899,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagTemperature(PowerTagEntity, SensorEntity): +class PowerTagTemperature(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.TEMPERATURE _attr_native_unit_of_measurement = "C" _attr_state_class = SensorStateClass.MEASUREMENT @@ -921,7 +925,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagActivePower(PowerTagEntity, SensorEntity): +class PowerTagActivePower(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.POWER _attr_native_unit_of_measurement = "W" _attr_state_class = SensorStateClass.MEASUREMENT @@ -943,7 +947,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagActivePowerPerPhase(PowerTagEntity, SensorEntity): +class PowerTagActivePowerPerPhase(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.POWER _attr_native_unit_of_measurement = "W" _attr_state_class = SensorStateClass.MEASUREMENT @@ -966,7 +970,7 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagDemandActivePower(PowerTagEntity, SensorEntity): +class PowerTagDemandActivePower(WirelessDeviceEntity, SensorEntity): _attr_device_class = SensorDeviceClass.POWER _attr_native_unit_of_measurement = "W" _attr_state_class = SensorStateClass.MEASUREMENT @@ -992,7 +996,96 @@ def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.SMARTLINK, TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagRssiTag(PowerTagEntity, SensorEntity): +class EnvTagBatteryVoltage(WirelessDeviceEntity, SensorEntity): + _attr_entity_category = EntityCategory.DIAGNOSTIC + _attr_device_class = SensorDeviceClass.VOLTAGE + _attr_native_unit_of_measurement = "V" + _attr_state_class = SensorStateClass.MEASUREMENT + + def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): + super().__init__(client, modbus_index, tag_device, "battery voltage") + + async def async_update(self): + self._attr_native_value = self._client.env_battery_voltage(self._modbus_index) + + @staticmethod + def supports_feature_set(feature_class: FeatureClass) -> bool: + return feature_class in [FeatureClass.TEMP1, FeatureClass.CO2] + + @staticmethod + def supports_gateway(type_of_gateway: TypeOfGateway): + return type_of_gateway in [TypeOfGateway.PANEL_SERVER] + + +class EnvTagTemperature(WirelessDeviceEntity, SensorEntity): + _attr_device_class = SensorDeviceClass.TEMPERATURE + _attr_native_unit_of_measurement = "°C" + _attr_state_class = SensorStateClass.MEASUREMENT + + def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): + super().__init__(client, modbus_index, tag_device, "temperature") + self._attr_extra_state_attributes = { + "Minimum measurable temperature (°C)": client.env_temperature_minimum(modbus_index), + "Maximum measurable temperature (°C)": client.env_temperature_maximum(modbus_index) + } + + async def async_update(self): + self._attr_native_value = self._client.env_temperature(self._modbus_index) + + @staticmethod + def supports_feature_set(feature_class: FeatureClass) -> bool: + return feature_class in [FeatureClass.TEMP0, FeatureClass.TEMP1, FeatureClass.CO2] + + @staticmethod + def supports_gateway(type_of_gateway: TypeOfGateway): + return type_of_gateway in [TypeOfGateway.PANEL_SERVER] + + +class EnvTagHumidity(WirelessDeviceEntity, SensorEntity): + _attr_device_class = SensorDeviceClass.HUMIDITY + _attr_native_unit_of_measurement = "%" + _attr_state_class = SensorStateClass.MEASUREMENT + + def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): + super().__init__(client, modbus_index, tag_device, "humidity") + self._attr_extra_state_attributes = { + "Minimum measurable humidity (%)": client.env_humidity_minimum(modbus_index), + "Maximum measurable humidity (%)": client.env_humidity_maximum(modbus_index) + } + + async def async_update(self): + self._attr_native_value = self._client.env_humidity(self._modbus_index) + + @staticmethod + def supports_feature_set(feature_class: FeatureClass) -> bool: + return feature_class in [FeatureClass.TEMP1, FeatureClass.CO2] + + @staticmethod + def supports_gateway(type_of_gateway: TypeOfGateway): + return type_of_gateway in [TypeOfGateway.PANEL_SERVER] + + +class EnvTagCO2(WirelessDeviceEntity, SensorEntity): + _attr_device_class = SensorDeviceClass.CO2 + _attr_native_unit_of_measurement = "ppm" + _attr_state_class = SensorStateClass.MEASUREMENT + + def __init__(self, client: SchneiderModbus, modbus_index: int, tag_device: DeviceInfo): + super().__init__(client, modbus_index, tag_device, "CO2") + + async def async_update(self): + self._attr_native_value = self._client.env_co2(self._modbus_index) * 1000 + + @staticmethod + def supports_feature_set(feature_class: FeatureClass) -> bool: + return feature_class in [FeatureClass.CO2] + + @staticmethod + def supports_gateway(type_of_gateway: TypeOfGateway): + return type_of_gateway in [TypeOfGateway.PANEL_SERVER] + + +class DeviceRssiTag(WirelessDeviceEntity, SensorEntity): _attr_entity_category = EntityCategory.DIAGNOSTIC _attr_device_class = SensorDeviceClass.SIGNAL_STRENGTH _attr_native_unit_of_measurement = "dBm" @@ -1011,14 +1104,15 @@ async def async_update(self): def supports_feature_set(feature_class: FeatureClass) -> bool: return feature_class in [FeatureClass.A1, FeatureClass.A2, FeatureClass.P1, FeatureClass.F1, FeatureClass.F2, FeatureClass.F3, FeatureClass.FL, FeatureClass.M0, FeatureClass.M1, FeatureClass.M2, - FeatureClass.M3, FeatureClass.R1, FeatureClass.C] + FeatureClass.M3, FeatureClass.R1, FeatureClass.C, + FeatureClass.TEMP0, FeatureClass.TEMP1, FeatureClass.CO2] @staticmethod def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagRssiGateway(PowerTagEntity, SensorEntity): +class DeviceRssiGateway(WirelessDeviceEntity, SensorEntity): _attr_entity_category = EntityCategory.DIAGNOSTIC _attr_device_class = SensorDeviceClass.SIGNAL_STRENGTH _attr_native_unit_of_measurement = "dBm" @@ -1037,14 +1131,15 @@ async def async_update(self): def supports_feature_set(feature_class: FeatureClass) -> bool: return feature_class in [FeatureClass.A1, FeatureClass.A2, FeatureClass.P1, FeatureClass.F1, FeatureClass.F2, FeatureClass.F3, FeatureClass.FL, FeatureClass.M0, FeatureClass.M1, FeatureClass.M2, - FeatureClass.M3, FeatureClass.R1, FeatureClass.C] + FeatureClass.M3, FeatureClass.R1, FeatureClass.C, + FeatureClass.TEMP0, FeatureClass.TEMP1, FeatureClass.CO2] @staticmethod def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagLqiTag(PowerTagEntity, SensorEntity): +class DeviceLqiTag(WirelessDeviceEntity, SensorEntity): _attr_entity_category = EntityCategory.DIAGNOSTIC _attr_state_class = SensorStateClass.MEASUREMENT @@ -1061,14 +1156,15 @@ async def async_update(self): def supports_feature_set(feature_class: FeatureClass) -> bool: return feature_class in [FeatureClass.A1, FeatureClass.A2, FeatureClass.P1, FeatureClass.F1, FeatureClass.F2, FeatureClass.F3, FeatureClass.FL, FeatureClass.M0, FeatureClass.M1, FeatureClass.M2, - FeatureClass.M3, FeatureClass.R1, FeatureClass.C] + FeatureClass.M3, FeatureClass.R1, FeatureClass.C, + FeatureClass.TEMP0, FeatureClass.TEMP1, FeatureClass.CO2] @staticmethod def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagLqiGateway(PowerTagEntity, SensorEntity): +class DeviceLqiGateway(WirelessDeviceEntity, SensorEntity): _attr_entity_category = EntityCategory.DIAGNOSTIC _attr_state_class = SensorStateClass.MEASUREMENT @@ -1085,14 +1181,15 @@ async def async_update(self): def supports_feature_set(feature_class: FeatureClass) -> bool: return feature_class in [FeatureClass.A1, FeatureClass.A2, FeatureClass.P1, FeatureClass.F1, FeatureClass.F2, FeatureClass.F3, FeatureClass.FL, FeatureClass.M0, FeatureClass.M1, FeatureClass.M2, - FeatureClass.M3, FeatureClass.R1, FeatureClass.C] + FeatureClass.M3, FeatureClass.R1, FeatureClass.C, + FeatureClass.TEMP0, FeatureClass.TEMP1, FeatureClass.CO2] @staticmethod def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPerTag(PowerTagEntity, SensorEntity): +class DevicePerTag(WirelessDeviceEntity, SensorEntity): _attr_entity_category = EntityCategory.DIAGNOSTIC _attr_state_class = SensorStateClass.MEASUREMENT @@ -1109,14 +1206,15 @@ async def async_update(self): def supports_feature_set(feature_class: FeatureClass) -> bool: return feature_class in [FeatureClass.A1, FeatureClass.A2, FeatureClass.P1, FeatureClass.F1, FeatureClass.F2, FeatureClass.F3, FeatureClass.FL, FeatureClass.M0, FeatureClass.M1, FeatureClass.M2, - FeatureClass.M3, FeatureClass.R1, FeatureClass.C] + FeatureClass.M3, FeatureClass.R1, FeatureClass.C, + FeatureClass.TEMP0, FeatureClass.TEMP1, FeatureClass.CO2] @staticmethod def supports_gateway(type_of_gateway: TypeOfGateway): return type_of_gateway in [TypeOfGateway.POWERTAG_LINK, TypeOfGateway.PANEL_SERVER] -class PowerTagPerGateway(PowerTagEntity, SensorEntity): +class DevicePerGateway(WirelessDeviceEntity, SensorEntity): _attr_entity_category = EntityCategory.DIAGNOSTIC _attr_state_class = SensorStateClass.MEASUREMENT @@ -1133,7 +1231,8 @@ async def async_update(self): def supports_feature_set(feature_class: FeatureClass) -> bool: return feature_class in [FeatureClass.A1, FeatureClass.A2, FeatureClass.P1, FeatureClass.F1, FeatureClass.F2, FeatureClass.F3, FeatureClass.FL, FeatureClass.M0, FeatureClass.M1, FeatureClass.M2, - FeatureClass.M3, FeatureClass.R1, FeatureClass.C] + FeatureClass.M3, FeatureClass.R1, FeatureClass.C, + FeatureClass.TEMP0, FeatureClass.TEMP1, FeatureClass.CO2] @staticmethod def supports_gateway(type_of_gateway: TypeOfGateway): diff --git a/doc/DOCA0241EN-06.xlsx b/doc/DOCA0241EN-06.xlsx index fddfb5302a842484865bd24093fa725bffc1382c..779e1b0589c6c7d95d773fe80104e514f9ba139d 100644 GIT binary patch delta 105075 zcmcHhby$>L_XZ3jf=Eb7DJ>n+pwb}H2#hq0gdidyDJXSGi%3W+Ac%xC(j|;^2}6f; zcX!Ra*9_|I{XDZ9PS2a{FVv%87!nllq zfx(E;qff3bUU2meCh*;b(355aL+RDSYYr?06!eolL1zbPi#R^tLv!1tUled_iV0Sc z$^WFC;MR(l@V;xc>-W`6PM|A|1TuJa+a4(hyK&7e58Eyz09PL~B7UivXyzmh`-g0C z6Ry>_vcV{`;aAgoRQRGfT1_15^_kh3b8~M8rQz}^DhAirWKMulS1NN+1R;4+ndC{q z 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 z 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 Ju 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 LuIgEx0Hpp0f;NI<