Entita sensor
Pro vývojáře integrací: entita sensor reprezentuje měřenou nebo odečtenou hodnotu — teplotu, vlhkost, spotřebu energie a mnoho dalšího.
Sensor poskytuje jediný stav (číselný nebo textový) a sadu atributů. Aby Richpear Home hodnotu správně zobrazil, dlouhodobě ukládal a používal ve statistikách, popíšete ji pomocí třídy zařízení, stavové třídy a měrné jednotky.
Klíčové vlastnosti
| Vlastnost | Popis |
|---|---|
native_value | Aktuální hodnota senzoru ve výchozí jednotce. |
native_unit_of_measurement | Měrná jednotka hodnoty (např. °C, kWh). |
device_class | Třída zařízení — určuje ikonu, formátování a chování (viz níže). |
state_class | Stavová třída pro dlouhodobé statistiky. |
device_class
Třída zařízení říká, co sensor měří. Ovlivňuje ikonu, výchozí jednotku a způsob zobrazení.
| device_class | Typická jednotka |
|---|---|
temperature | °C, °F |
humidity | % |
power | W, kW |
energy | Wh, kWh |
pressure | hPa, bar |
battery | % |
illuminance | lx |
state_class
Stavová třída řídí, jak se hodnota ukládá do dlouhodobých statistik:
measurement— okamžitá měřená hodnota (teplota, výkon). Ukládá se průměr/min/max.total— narůstající hodnota, která se může i snížit (např. po resetu).total_increasing— monotónně rostoucí počítadlo (spotřeba energie); reset se detekuje automaticky.
Pro měřič spotřeby použijte device_class: energy, state_class: total_increasing a jednotku kWh. Sensor se pak objeví v energetických přehledech.
Příklad v Pythonu
from homeassistant.components.sensor import (
SensorEntity, SensorDeviceClass, SensorStateClass,
)
from homeassistant.const import UnitOfTemperature
class TeplotaSenzor(SensorEntity):
_attr_name = "Teplota obývák"
_attr_device_class = SensorDeviceClass.TEMPERATURE
_attr_state_class = SensorStateClass.MEASUREMENT
_attr_native_unit_of_measurement = UnitOfTemperature.CELSIUS
@property
def native_value(self) -> float:
return self._zarizeni.teplota
Uvádějte hodnotu v native_unit_of_measurement. Richpear Home se postará o případný převod do jednotek, které si zvolil uživatel (např. °C ↔ °F).