Skip to main content

数字实体

number 是一种实体,允许用户向集成输入任意值。从 homeassistant.components.number.NumberEntity 派生实体平台。

属性

tip

属性应始终仅从内存中返回信息,而不应进行 I/O 操作(如网络请求)。实现 update()async_update() 来获取数据。

名称类型默认值描述
device_classstringNone数字类型。
modestringauto定义数字在 UI 中的显示方式。建议使用默认的 auto。可以为 boxslider 以强制设置显示模式。
native_max_valuefloat100在数字的 native_unit_of_measurement 中接受的最大值(包括)。
native_min_valuefloat0在数字的 native_unit_of_measurement 中接受的最小值(包括)。
native_stepfloat见下文定义值的分辨率,即数字的最小增量或减量。
native_valuefloat必需数字在 native_unit_of_measurement 中的值。
native_unit_of_measurementstringNone表示传感器值的计量单位。如果 native_unit_of_measurement 为 °C 或 °F,且其 device_class 为温度,则传感器的 unit_of_measurement 将是用户配置的首选温度单位,传感器的 state 将是在可选单位转换后的 native_value。如果提供了 单位转换,则不应定义 native_unit_of_measurement

其他适用于所有实体的属性,如 iconname 等也是适用的。

默认的步长值根据范围(最大值 - 最小值)动态选择。如果 max_value 和 min_value 之间的差大于 1.0,则默认步长为 1.0。否则,如果范围较小,则步长会通过 10 迭代地除以 10,直到它小于范围。

可用的设备类别

如果指定设备类别,则您的数字实体还需要返回正确的计量单位。

常量支持的单位描述
NumberDeviceClass.APPARENT_POWERVA视在功率
NumberDeviceClass.AQINone空气质量指数
NumberDeviceClass.AREAm², cm², km², mm², in², ft², yd², mi², ac, ha面积
NumberDeviceClass.ATMOSPHERIC_PRESSUREcbar, bar, hPa, mmHG, inHg, kPa, mbar, Pa, psi大气压
NumberDeviceClass.BATTERY%剩余电池百分比
NumberDeviceClass.BLOOD_GLUCOSE_CONCENTRATIONmg/dL, mmol/L血糖浓度
NumberDeviceClass.CO2ppm二氧化碳浓度。
NumberDeviceClass.COppm一氧化碳浓度。
NumberDeviceClass.CONDUCTIVITYS/cm, mS/cm, µS/cm导电性
NumberDeviceClass.CURRENTA, mA电流
NumberDeviceClass.DATA_RATEbit/s, kbit/s, Mbit/s, Gbit/s, B/s, kB/s, MB/s, GB/s, KiB/s, MiB/s, GiB/s数据速率
NumberDeviceClass.DATA_SIZEbit, kbit, Mbit, Gbit, B, kB, MB, GB, TB, PB, EB, ZB, YB, KiB, MiB, GiB, TiB, PiB, EiB, ZiB, YiB数据大小
NumberDeviceClass.DISTANCEkm, m, cm, mm, mi, nmi, yd, in通用距离
NumberDeviceClass.DURATIONd, h, min, s, ms, µs时间段。 不应仅因时间流逝而更新。设备或服务需要提供新的数据点以进行更新。
NumberDeviceClass.ENERGYJ, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, Gcal能量,此设备类别应用于表示能量消耗,例如电表。表示 功率时间 的变化。与 power 不要混淆。
NumberDeviceClass.ENERGY_DISTANCEkWh/100km, Wh/km, mi/kWh, km/kWh每距离的能量,此设备类别应用于表示按距离计算的能量消耗,例如电动车消耗的电能。
NumberDeviceClass.ENERGY_STORAGEJ, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, Gcal储存的能量,此设备类别应用于表示存储的能量,例如当前在电池中存储的电能或电池的容量。表示 功率时间 的变化。与 power 不要混淆。
NumberDeviceClass.FREQUENCYHz, kHz, MHz, GHz频率
NumberDeviceClass.GASL, m³, ft³, CCF气体体积。气体消耗应以能量 kWh 而不是体积来衡量,应归类为能源。
NumberDeviceClass.HUMIDITY%相对湿度
NumberDeviceClass.ILLUMINANCElx光照水平
NumberDeviceClass.IRRADIANCEW/m², BTU/(h⋅ft²)辐照度
NumberDeviceClass.MOISTURE%湿度
NumberDeviceClass.MONETARYISO 4217带有货币的货币价值。
NumberDeviceClass.NITROGEN_DIOXIDEµg/m³二氧化氮浓度
NumberDeviceClass.NITROGEN_MONOXIDEµg/m³一氧化氮浓度
NumberDeviceClass.NITROUS_OXIDEµg/m³一氧化二氮浓度
NumberDeviceClass.OZONEµg/m³臭氧浓度
NumberDeviceClass.PHNone水溶液的氢离子浓度(pH)
NumberDeviceClass.PM1µg/m³小于 1 微米的颗粒物浓度
NumberDeviceClass.PM25µg/m³小于 2.5 微米的颗粒物浓度
NumberDeviceClass.PM10µg/m³小于 10 微米的颗粒物浓度
NumberDeviceClass.POWERmW, W, kW, MW, GW, TW功率。
NumberDeviceClass.POWER_FACTOR%, None功率因数
NumberDeviceClass.PRECIPITATIONcm, in, mm累积降水量
NumberDeviceClass.PRECIPITATION_INTENSITYin/d, in/h, mm/d, mm/h降水强度
NumberDeviceClass.PRESSUREcbar, bar, hPa, mmHg, inHg, kPa, mbar, Pa, psi压力。
NumberDeviceClass.REACTIVE_ENERGYvarh, kvarh无功能量
NumberDeviceClass.REACTIVE_POWERvar, kvar无功功率
NumberDeviceClass.SIGNAL_STRENGTHdB, dBm信号强度
NumberDeviceClass.SOUND_PRESSUREdB, dBA声压
NumberDeviceClass.SPEEDft/s, in/d, in/h, in/s, km/h, kn, m/s, mph, mm/d, mm/s通用速度
NumberDeviceClass.SULPHUR_DIOXIDEµg/m³二氧化硫浓度
NumberDeviceClass.TEMPERATURE°C, °F, K温度。
NumberDeviceClass.VOLATILE_ORGANIC_COMPOUNDSµg/m³, mg/m³挥发性有机化合物浓度
NumberDeviceClass.VOLATILE_ORGANIC_COMPOUNDS_PARTSppm, ppb挥发性有机化合物的比例
NumberDeviceClass.VOLTAGEV, mV, µV, kV, MV电压
NumberDeviceClass.VOLUMEL, mL, gal, fl. oz., m³, ft³, CCF通用体积,此设备类别应用于表示消费,例如汽车消耗的燃料量。
NumberDeviceClass.VOLUME_FLOW_RATEm³/h, ft³/min, L/min, gal/min, mL/s体积流量,此设备类别应用于表示某种体积的流动,例如瞬时消耗的水量。
NumberDeviceClass.VOLUME_STORAGEL, mL, gal, fl. oz., m³, ft³, CCF通用存储体积,此设备类别应用于表示存储的体积,例如油箱中的燃料量。
NumberDeviceClass.WATERL, gal, m³, ft³, CCF水消耗
NumberDeviceClass.WEIGHTkg, g, mg, µg, oz, lb, st通用质量; weight 用于替代 mass 以符合日常语言。
NumberDeviceClass.WIND_DIRECTION°风向
NumberDeviceClass.WIND_SPEEDft/s, km/h, kn, m/s, mph风速

恢复数字状态

在重启或重载后恢复状态的数字不应扩展 RestoreEntity,因为那并不存储 native_value,而是存储可能已被数字基础实体修改的 state。恢复状态的数字应扩展 RestoreNumber,并在 async_added_to_hass 中调用 await self.async_get_last_number_data 以访问存储的 native_min_valuenative_max_valuenative_stepnative_unit_of_measurementnative_value

方法

设置值

当用户或自动化想要更新值时调用。

class MyNumber(NumberEntity):
# 实现这两个方法之一。

def set_native_value(self, value: float) -> None:
"""更新当前值。"""

async def async_set_native_value(self, value: float) -> None:
"""更新当前值。"""