Initialize docker stack repo

This commit is contained in:
g4st3r
2026-03-07 17:28:59 +00:00
commit 319d4eeb3e
458 changed files with 67215 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
"""Adds sensors for each appliance."""
from homeassistant.components.sensor import (
SensorEntity,
SensorStateClass,
SensorDeviceClass
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
PERCENTAGE,
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from custom_components.midea_dehumidifier_lan.appliance_coordinator import (
ApplianceEntity,
)
from custom_components.midea_dehumidifier_lan.const import DOMAIN, UNIQUE_CLIMATE_PREFIX
from custom_components.midea_dehumidifier_lan.hub import Hub
async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Sets up current environment humidity and temperature sensors"""
hub: Hub = hass.data[DOMAIN][config_entry.entry_id]
# Dehumidifier sensors
async_add_entities(
CurrentHumiditySensor(c) for c in hub.coordinators if c.is_dehumidifier()
)
async_add_entities(
CurrentTemperatureSensor(c) for c in hub.coordinators if c.is_dehumidifier()
)
async_add_entities(
TankLevelSensor(c)
for c in hub.coordinators
if c.is_dehumidifier() and c.dehumidifier().capabilities.get("water_level")
)
# Climate sensors
async_add_entities(
OutsideTemperatureSensor(c) for c in hub.coordinators if c.is_climate()
)
class CurrentHumiditySensor(ApplianceEntity, SensorEntity):
"""Crrent environment humidity sensor"""
_attr_device_class = SensorDeviceClass.HUMIDITY
_attr_native_unit_of_measurement = PERCENTAGE
_attr_state_class = SensorStateClass.MEASUREMENT
_name_suffix = " Humidity"
def on_update(self) -> None:
self._attr_native_value = self.dehumidifier().current_humidity
class CurrentTemperatureSensor(ApplianceEntity, SensorEntity):
"""Current environment temperature sensor"""
_attr_device_class = SensorDeviceClass.TEMPERATURE
_attr_native_unit_of_measurement = UnitOfTemperature.CELSIUS
_attr_state_class = SensorStateClass.MEASUREMENT
_name_suffix = " Temperature"
def on_update(self) -> None:
self._attr_native_value = self.dehumidifier().current_temperature
class TankLevelSensor(ApplianceEntity, SensorEntity):
"""Current tank water level sensor"""
_attr_native_unit_of_measurement = PERCENTAGE
_attr_state_class = SensorStateClass.MEASUREMENT
_name_suffix = " Water Level"
def on_online(self, update: bool) -> None:
self._attr_entity_registry_enabled_default = (
self.dehumidifier().capabilities.get("water_level", False)
)
return super().on_online(update)
def on_update(self) -> None:
self._attr_native_value = self.dehumidifier().tank_level
class OutsideTemperatureSensor(ApplianceEntity, SensorEntity):
"""Current outside temperature sensor"""
_attr_device_class = SensorDeviceClass.TEMPERATURE
_attr_native_unit_of_measurement = UnitOfTemperature.CELSIUS
_attr_state_class = SensorStateClass.MEASUREMENT
_unique_id_prefx = UNIQUE_CLIMATE_PREFIX
_name_suffix = " Outdoor Temperature"
def on_update(self) -> None:
self._attr_native_value = self.airconditioner().outdoor_temperature