传感器实体
传感器是一个只读实体,它提供了一些信息。信息具有一个值以及可选的测量单位。从 homeassistant.components.sensor.SensorEntity
派生实体平台。
属性
tip
属性应该始终只从内存返回信息,而不做输入/输出(如网络请求)。实现 update()
或 async_update()
来获取数据。
名称 | 类型 | 默认 | 描述 |
---|---|---|---|
device_class | SensorDeviceClass | None | None | 传感器的类型。 |
last_reset | datetime.datetime | None | None | 像电力使用表、燃气表、水表等累积传感器初始化的时间。如果初始化时间未知,设置为 None 。请注意,last_reset 属性返回的 datetime.datetime 将在实体状态属性更新时转换为 ISO 8601 格式的字符串。当更改 last_reset 时,state 必须是有效数字。 |
native_unit_of_measurement | str | None | None | 传感器值表示的测量单位。如果 native_unit_of_measurement 为 °C 或 °F,且其 device_class 为温度,则传感器的 unit_of_measurement 为用户配置的首选温度单位,传感器的 state 在可选单位转换后将是 native_value 。如果提供了 单位转换,则不应定义 native_unit_of_measurement 。 |
native_value | str | int | float | date | datetime | Decimal | None | 必需 | 传感器在其 native_unit_of_measurement 中的值。使用 device_class 可能会限制此属性返回的类型。 |
options | list[str] | None | None | 在传感器提供文本状态的情况下,此属性可用于提供可能的状态列表。需要设置 enum 设备类。不可与 state_class 或 native_unit_of_measurement 结合使用。 |
state_class | SensorStateClass | str | None | None | 状态类型。如果不是 None ,则假定传感器为数值类型,并将作为前端的折线图显示,而不是离散值。 |
suggested_display_precision | int | None | None | 显示时应使用的传感器状态中的小数位数。 |
suggested_unit_of_measurement | str | None | None | 用于传感器状态的测量单位。对于具有 unique_id 的传感器,这将用作初始测量单位,用户可以覆盖。对于没有 unique_id 的传感器,这将是传感器状态的测量单位。此属性旨在被集成用来覆盖自动单位转换规则,例如,使温度传感器始终显示为 °C ,无论配置的单位系统是否偏好 °C 或 °F ,或者使距离传感器即使在配置的单位系统为公制时也始终显示为英里。 |
tip
对于传感器实体,不要添加 extra_state_attributes
,而是创建一个额外的传感器实体。不变的属性只在数据库中保存一次。如果 extra_state_attributes
和传感器值都频繁变化,这可能会迅速增加数据库的大小。
可用的设备类
如果指定设备类,则传感器实体也需要返回正确的测量单位。
常量 | 支持的单位 | 描述 |
---|---|---|
SensorDeviceClass.APPARENT_POWER | VA | 表观功率 |
SensorDeviceClass.AQI | None | 空气质量指数 |
SensorDeviceClass.AREA | m², cm², km², mm², in², ft², yd², mi², ac, ha | 面积 |
SensorDeviceClass.ATMOSPHERIC_PRESSURE | cbar, bar, hPa, mmHG, inHg, kPa, mbar, Pa, psi | 大气压力 |
SensorDeviceClass.BATTERY | % | 剩余电池百分比 |
SensorDeviceClass.BLOOD_GLUCOSE_CONCENTRATION | mg/dL, mmol/L | 血糖浓度 |
SensorDeviceClass.CO2 | ppm | 二氧化碳浓度 |
SensorDeviceClass.CO | ppm | 一氧化碳浓度 |
SensorDeviceClass.CONDUCTIVITY | S/cm, mS/cm, µS/cm | 导电率 |
SensorDeviceClass.CURRENT | A, mA | 电流 |
SensorDeviceClass.DATA_RATE | bit/s, kbit/s, Mbit/s, Gbit/s, B/s, kB/s, MB/s, GB/s, KiB/s, MiB/s, GiB/s | 数据速率 |
SensorDeviceClass.DATA_SIZE | bit, kbit, Mbit, Gbit, B, kB, MB, GB, TB, PB, EB, ZB, YB, KiB, MiB, GiB, TiB, PiB, EiB, ZiB, YiB | 数据大小 |
SensorDeviceClass.DATE | 日期。要求 native_value 是一个 Python datetime.date 对象,或 None 。 | |
SensorDeviceClass.DISTANCE | km, m, cm, mm, mi, nmi, yd, in | 通用距离 |
SensorDeviceClass.DURATION | d, h, min, s, ms, µs | 时间段。仅因时间流逝不应更新。设备或服务需要提供一个新的数据点以进行更新。 |
SensorDeviceClass.ENERGY | J, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, Gcal | 能量,此设备类应当用于表示能耗的传感器,例如电表。表示单位时间内的_功率_。不要与 power 混淆。 |
SensorDeviceClass.ENERGY_DISTANCE | kWh/100km, Wh/km, mi/kWh, km/kWh | 每单位距离的能量,此设备类应当用于表示按距离的能耗,例如电动车消耗的电能量。 |
SensorDeviceClass.ENERGY_STORAGE | J, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, Gcal |