Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 21 additions & 21 deletions custom_components/intergas_local/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,49 +116,49 @@ def _mode_name(data: dict[str, Any], key: str, lookup: dict[int, str]) -> str |
SENSOR_DEFINITIONS: list[XtendSensorSpec] = [
XtendSensorSpec("4133", "xtend_errorCode", lambda d: _mode_name(d, "4133", ERROR_CODES), icon="mdi:alert-circle-outline", entity_category=EntityCategory.DIAGNOSTIC, translation_key="error_code"),
XtendSensorSpec("47e0", "xtend_software_version", lambda d: _as_raw_value(d, "47e0"), entity_category=EntityCategory.DIAGNOSTIC, translation_key="software_version"),
XtendSensorSpec("503e", "xtend_currentHpPowerThermal", lambda d: _as_float(d, "503e", divisor=1000), unit="kW", device_class=None, state_class=SensorStateClass.MEASUREMENT, icon="mdi:thermometer-lines", translation_key="current_heat_pump_power_thermal"),
XtendSensorSpec("503e", "xtend_currentHpPowerThermal", lambda d: _as_float(d, "503e", divisor=1000), unit="kW", device_class=SensorDeviceClass.POWER, state_class=SensorStateClass.MEASUREMENT, icon="mdi:thermometer-lines", translation_key="current_heat_pump_power_thermal"),
XtendSensorSpec("5041", "xtend_currentCop", lambda d: _as_float(d, "5041", divisor=10), unit="thermal/kWh", state_class=SensorStateClass.MEASUREMENT, icon="mdi:gauge", translation_key="current_cop"),
XtendSensorSpec("5077", "xtend_currentPowerThermal", lambda d: _as_float(d, "5077", divisor=1000), unit="kW", state_class=SensorStateClass.MEASUREMENT, icon="mdi:thermometer-lines", translation_key="current_power_thermal"),
XtendSensorSpec("5088", "xtend_currentBoilerPowerThermal", lambda d: _as_float(d, "5088", divisor=1000), unit="kW", state_class=SensorStateClass.MEASUREMENT, icon="mdi:thermometer-lines", translation_key="current_boiler_power_thermal"),
XtendSensorSpec("50f2", "xtend_currentPowerElectric", lambda d: _as_int(d, "50f2"), unit="W", state_class=SensorStateClass.MEASUREMENT, icon="mdi:power-plug-outline", translation_key="current_power_electric"),
XtendSensorSpec("5077", "xtend_currentPowerThermal", lambda d: _as_float(d, "5077", divisor=1000), unit="kW", device_class=SensorDeviceClass.POWER, state_class=SensorStateClass.MEASUREMENT, icon="mdi:thermometer-lines", translation_key="current_power_thermal"),
XtendSensorSpec("5088", "xtend_currentBoilerPowerThermal", lambda d: _as_float(d, "5088", divisor=1000), unit="kW", device_class=SensorDeviceClass.POWER, state_class=SensorStateClass.MEASUREMENT, icon="mdi:thermometer-lines", translation_key="current_boiler_power_thermal"),
XtendSensorSpec("50f2", "xtend_currentPowerElectric", lambda d: _as_int(d, "50f2"), unit="W", device_class=SensorDeviceClass.POWER, state_class=SensorStateClass.MEASUREMENT, icon="mdi:power-plug-outline", translation_key="current_power_electric"),
XtendSensorSpec("777d", "xtend_heatpumpMode", lambda d: _mode_name(d, "777d", HEAT_PUMP_MODES), icon="mdi:fire", translation_key="heat_pump_mode"),
XtendSensorSpec("79b3", "xtend_roomtemperature_1", lambda d: _as_float(d, "79b3", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:home-thermometer-outline", translation_key="room_temperature"),
XtendSensorSpec("6280", "xtend_tHpReturn", lambda d: _as_float(d, "6280", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:water-thermometer-outline", translation_key="heat_pump_return_temperature"),
XtendSensorSpec("629c", "xtend_fSystem", lambda d: _as_float(d, "629c", divisor=100), unit="l/min", state_class=SensorStateClass.MEASUREMENT, icon="mdi:waves-arrow-right", translation_key="system_flow"),
XtendSensorSpec("629c", "xtend_fSystem", lambda d: _as_float(d, "629c", divisor=100), unit="l/min", device_class=SensorDeviceClass.VOLUME_FLOW_RATE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:waves-arrow-right", translation_key="system_flow"),
XtendSensorSpec("62d1", "xtend_tOutdoor", lambda d: _as_float(d, "62d1", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:sun-thermometer-outline", translation_key="outdoor_temperature"),
XtendSensorSpec("62e7", "xtend_tHpSupply", lambda d: _as_float(d, "62e7", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:water-thermometer", translation_key="heat_pump_supply_temperature"),
XtendSensorSpec("63b3", "xtend_electricEnergyHeating", lambda d: _as_int(d, "63b3"), unit="kWh", device_class=SensorDeviceClass.ENERGY, state_class=SensorStateClass.TOTAL_INCREASING, icon="mdi:power-plug-outline", translation_key="electric_energy_heating"),
XtendSensorSpec("63df", "xtend_thermalEnergyBoiler", lambda d: _as_int(d, "63df"), unit="kWh", state_class=SensorStateClass.TOTAL_INCREASING, icon="mdi:thermometer-lines", translation_key="thermal_energy_boiler"),
XtendSensorSpec("63f0", "xtend_thermalEnergyHeating", lambda d: _as_int(d, "63f0"), unit="kWh", state_class=SensorStateClass.TOTAL_INCREASING, icon="mdi:thermometer-lines", translation_key="thermal_energy_heating"),
XtendSensorSpec("6505", "xtend_suctionTemperature", lambda d: _as_float(d, "6505", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, icon="mdi:coolant-temperature", translation_key="suction_temperature"),
XtendSensorSpec("63df", "xtend_thermalEnergyBoiler", lambda d: _as_int(d, "63df"), unit="kWh", device_class=SensorDeviceClass.ENERGY, state_class=SensorStateClass.TOTAL_INCREASING, icon="mdi:thermometer-lines", translation_key="thermal_energy_boiler"),
XtendSensorSpec("63f0", "xtend_thermalEnergyHeating", lambda d: _as_int(d, "63f0"), unit="kWh", device_class=SensorDeviceClass.ENERGY, state_class=SensorStateClass.TOTAL_INCREASING, icon="mdi:thermometer-lines", translation_key="thermal_energy_heating"),
XtendSensorSpec("6505", "xtend_suctionTemperature", lambda d: _as_float(d, "6505", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:coolant-temperature", translation_key="suction_temperature"),
XtendSensorSpec("6578", "xtend_workingMode", lambda d: _mode_name(d, "6578", WORKING_MODES), icon="mdi:fire", translation_key="working_mode"),
XtendSensorSpec("6579", "xtend_suctionPressure", lambda d: _as_float(d, "6579", divisor=100), unit="bar", state_class=SensorStateClass.MEASUREMENT, icon="mdi:timeline-clock-outline", translation_key="suction_pressure"),
XtendSensorSpec("65a7", "xtend_actualFrequency", lambda d: _as_float(d, "65a7", divisor=100), unit="hertz", state_class=SensorStateClass.MEASUREMENT, icon="mdi:sine-wave", translation_key="compressor_frequency"),
XtendSensorSpec("65b0", "xtend_exhaustPressure", lambda d: _as_float(d, "65b0", divisor=100), unit="bar", state_class=SensorStateClass.MEASUREMENT, icon="mdi:timeline-clock-outline", translation_key="exhaust_pressure"),
XtendSensorSpec("65c1", "xtend_coilTemperature", lambda d: _as_float(d, "65c1", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, icon="mdi:coolant-temperature", translation_key="coil_temperature"),
XtendSensorSpec("65d9", "xtend_exhaustTemperature", lambda d: _as_float(d, "65d9", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, icon="mdi:coolant-temperature", translation_key="exhaust_temperature"),
XtendSensorSpec("6579", "xtend_suctionPressure", lambda d: _as_float(d, "6579", divisor=100), unit="bar", device_class=SensorDeviceClass.PRESSURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:timeline-clock-outline", translation_key="suction_pressure"),
XtendSensorSpec("65a7", "xtend_actualFrequency", lambda d: _as_float(d, "65a7", divisor=100), unit="hertz", device_class=SensorDeviceClass.FREQUENCY, state_class=SensorStateClass.MEASUREMENT, icon="mdi:sine-wave", translation_key="compressor_frequency"),
XtendSensorSpec("65b0", "xtend_exhaustPressure", lambda d: _as_float(d, "65b0", divisor=100), unit="bar", device_class=SensorDeviceClass.PRESSURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:timeline-clock-outline", translation_key="exhaust_pressure"),
XtendSensorSpec("65c1", "xtend_coilTemperature", lambda d: _as_float(d, "65c1", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:coolant-temperature", translation_key="coil_temperature"),
XtendSensorSpec("65d9", "xtend_exhaustTemperature", lambda d: _as_float(d, "65d9", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:coolant-temperature", translation_key="exhaust_temperature"),
XtendSensorSpec("6a53", "xtend_startDefrostCounter", lambda d: _as_raw_value(d, "6a53"), icon="mdi:counter", entity_category=EntityCategory.DIAGNOSTIC, translation_key="defrost_start_count"),
XtendSensorSpec("6a8e", "xtend_startHeatingCounter", lambda d: _as_int(d, "6a8e"), icon="mdi:counter", entity_category=EntityCategory.DIAGNOSTIC, translation_key="heating_start_count"),
XtendSensorSpec("6ac5", "xtend_operationHeatingHours", lambda d: _as_int(d, "6ac5"), unit="h", device_class=SensorDeviceClass.DURATION, state_class=SensorStateClass.TOTAL_INCREASING, icon="mdi:clock-outline", entity_category=EntityCategory.DIAGNOSTIC, translation_key="heating_operation_hours"),
XtendSensorSpec("6c26", "xtend_temperatureCondensor_refrigrerant_gas", lambda d: _as_float(d, "6c26", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, icon="mdi:coolant-temperature", translation_key="condenser_refrigerant_gas_temperature"),
XtendSensorSpec("6c33", "xtend_exhaustOverheat", lambda d: _as_float(d, "6c33", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, icon="mdi:coolant-temperature", translation_key="exhaust_overheat"),
XtendSensorSpec("6c53", "xtend_temperatureSubcooling", lambda d: _as_float(d, "6c53", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, icon="mdi:coolant-temperature", translation_key="subcooling_temperature"),
XtendSensorSpec("6c26", "xtend_temperatureCondensor_refrigrerant_gas", lambda d: _as_float(d, "6c26", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:coolant-temperature", translation_key="condenser_refrigerant_gas_temperature"),
XtendSensorSpec("6c33", "xtend_exhaustOverheat", lambda d: _as_float(d, "6c33", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:coolant-temperature", translation_key="exhaust_overheat"),
XtendSensorSpec("6c53", "xtend_temperatureSubcooling", lambda d: _as_float(d, "6c53", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:coolant-temperature", translation_key="subcooling_temperature"),
XtendSensorSpec("6c66", "xtend_EEVSteps", lambda d: _as_int(d, "6c66"), unit="steps", icon="mdi:numeric", translation_key="eev_steps"),
XtendSensorSpec("6c8a", "xtend_actualFan1Speed", lambda d: _as_int(d, "6c8a"), unit="rpm", icon="mdi:fan", translation_key="fan_speed"),
XtendSensorSpec("6ceb", "xtend_temperatureCondensor_refrigrerant_liquid", lambda d: _as_float(d, "6ceb", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, icon="mdi:coolant-temperature", translation_key="condenser_refrigerant_liquid_temperature"),
XtendSensorSpec("6cfb", "xtend_suctionOverheat", lambda d: _as_float(d, "6cfb", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, icon="mdi:coolant-temperature", translation_key="suction_overheat"),
XtendSensorSpec("6ceb", "xtend_temperatureCondensor_refrigrerant_liquid", lambda d: _as_float(d, "6ceb", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:coolant-temperature", translation_key="condenser_refrigerant_liquid_temperature"),
XtendSensorSpec("6cfb", "xtend_suctionOverheat", lambda d: _as_float(d, "6cfb", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:coolant-temperature", translation_key="suction_overheat"),
XtendSensorSpec("7160", "xtend_poweron_number", lambda d: _as_int(d, "7160"), icon="mdi:counter", entity_category=EntityCategory.DIAGNOSTIC, translation_key="power_on_count"),
XtendSensorSpec("71a7", "xtend_poweron_hours", lambda d: _as_int(d, "71a7"), unit="h", device_class=SensorDeviceClass.DURATION, state_class=SensorStateClass.TOTAL_INCREASING, icon="mdi:clock-outline", entity_category=EntityCategory.DIAGNOSTIC, translation_key="power_on_hours"),
XtendSensorSpec("7767", "xtend_RequestedTemperature", lambda d: _as_float(d, "7767", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, icon="mdi:thermometer-auto", translation_key="requested_temperature"),
XtendSensorSpec("7921", "xtend_roomtemperature_set_1", lambda d: _as_float(d, "7921", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, icon="mdi:home-thermometer", translation_key="room_temperature_setpoint"),
XtendSensorSpec("7940", "xtend_notification_code", lambda d: _mode_name(d, "7940", NOTIFICATION_CODES), icon="mdi:bell-outline", entity_category=EntityCategory.DIAGNOSTIC, translation_key="notification_code"),
XtendSensorSpec("7e2c", "xtend_lockout_code", lambda d: _mode_name(d, "7e2c", LOCKOUT_CODES), icon="mdi:alert-outline", entity_category=EntityCategory.DIAGNOSTIC, translation_key="lockout_code"),
XtendSensorSpec("7e51", "xtend_heatdemand_status", lambda d: _mode_name(d, "7e51", HEAT_DEMAND_STATUS), icon="mdi:message-badge-outline", translation_key="heat_demand_status"),
XtendSensorSpec("7ed3", "xtend_water_pressure", lambda d: _as_float(d, "7ed3", divisor=100), unit="bar", state_class=SensorStateClass.MEASUREMENT, icon="mdi:timeline-clock-outline", translation_key="water_pressure"),
XtendSensorSpec("7ed3", "xtend_water_pressure", lambda d: _as_float(d, "7ed3", divisor=100), unit="bar", device_class=SensorDeviceClass.PRESSURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:timeline-clock-outline", translation_key="water_pressure"),
XtendSensorSpec("77dd", "xtend_systemStatus", lambda d: _mode_name(d, "77dd", SYSTEM_STATUS), icon="mdi:power", entity_category=EntityCategory.DIAGNOSTIC, translation_key="system_status"),
XtendSensorSpec("cop_total", "xtend_cop_total", lambda d: _calculate_cop(d), unit="thermal/kWh", state_class=SensorStateClass.MEASUREMENT, icon="mdi:gauge", translation_key="total_cop"),
XtendSensorSpec("delta_t", "xtend_deltaT", lambda d: _calculate_delta_t(d, "62e7", "6280"), unit="°C", state_class=SensorStateClass.MEASUREMENT, icon="mdi:thermometer-check", translation_key="delta_t"),
XtendSensorSpec("thermal_total", "xtend_thermal_total", lambda d: _calculate_thermal_total(d), unit="kWh", state_class=SensorStateClass.MEASUREMENT, icon="mdi:thermometer-lines", translation_key="total_thermal_energy"),
XtendSensorSpec("delta_t", "xtend_deltaT", lambda d: _calculate_delta_t(d, "62e7", "6280"), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:thermometer-check", translation_key="delta_t"),
XtendSensorSpec("thermal_total", "xtend_thermal_total", lambda d: _calculate_thermal_total(d), unit="kWh", device_class=SensorDeviceClass.ENERGY, state_class=SensorStateClass.TOTAL_INCREASING, icon="mdi:thermometer-lines", translation_key="total_thermal_energy"),
XtendSensorSpec("625b", "xtreme_tBoilerSupply", lambda d: _as_float(d, "625b", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:water-thermometer", is_xtreme=True, translation_key="boiler_supply_temperature"),
XtendSensorSpec("623c", "xtreme_tBoilerReturn", lambda d: _as_float(d, "623c", divisor=100), unit="°C", device_class=SensorDeviceClass.TEMPERATURE, state_class=SensorStateClass.MEASUREMENT, icon="mdi:water-thermometer-outline", is_xtreme=True, translation_key="boiler_return_temperature"),
XtendSensorSpec("7e7a", "xtreme_burner_status", lambda d: _mode_name(d, "7e7a", XTREME_BURNER_STATUS), icon="mdi:fire", is_xtreme=True, translation_key="burner_status"),
Expand Down
Loading