数值实体

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_valuemin_value 之间的差值大于 1.0,则默认步长为 1.0。否则,步长会持续除以 10,直到小于该范围为止。

可用设备类别

如果指定了设备类别,你的数值实体还需要返回正确的测量单位。

设备类别支持的单位说明
NumberDeviceClass.ABSOLUTE_HUMIDITYg/m³, mg/m³绝对湿度
NumberDeviceClass.APPARENT_POWERmVA, VA, kVA视在功率
NumberDeviceClass.AQINone空气质量指数
NumberDeviceClass.AREAm², cm², km², mm², in², ft², yd², mi², ac, ha面积
NumberDeviceClass.ATMOSPHERIC_PRESSUREcbar, bar, hPa, mmHG, inHg, inH₂O, kPa, mbar, Pa, psi大气压
NumberDeviceClass.BATTERY%剩余电量百分比
NumberDeviceClass.BLOOD_GLUCOSE_CONCENTRATIONmg/dL, mmol/L血糖浓度
NumberDeviceClass.CO2ppm二氧化碳浓度
NumberDeviceClass.COppb, ppm, µg/m³, mg/m³一氧化碳浓度
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, MCF气体体积。若气体消耗以 kWh 等能量形式表示,应归类为能量。
NumberDeviceClass.HUMIDITY%相对湿度
NumberDeviceClass.ILLUMINANCElx照度
NumberDeviceClass.IRRADIANCEW/m², BTU/(h⋅ft²)辐照度
NumberDeviceClass.MOISTURE%含湿量
NumberDeviceClass.MONETARYISO 4217货币数值
NumberDeviceClass.NITROGEN_DIOXIDEppb, ppm, µg/m³二氧化氮浓度
NumberDeviceClass.NITROGEN_MONOXIDEppb, µg/m³一氧化氮浓度
NumberDeviceClass.NITROUS_OXIDEµg/m³一氧化二氮浓度
NumberDeviceClass.OZONEppb, ppm, µg/m³臭氧浓度
NumberDeviceClass.PHNone水溶液的 pH 值
NumberDeviceClass.PM1µg/m³小于 1 微米颗粒物浓度
NumberDeviceClass.PM25µg/m³小于 2.5 微米颗粒物浓度
NumberDeviceClass.PM4µg/m³小于 4 微米颗粒物浓度
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, mPa压力
NumberDeviceClass.REACTIVE_ENERGYvarh, kvarh无功电能
NumberDeviceClass.REACTIVE_POWERmvar, var, 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_DIOXIDEppb, µg/m³二氧化硫浓度
NumberDeviceClass.TEMPERATURE°C, °F, K温度
NumberDeviceClass.TEMPERATURE_DELTA°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, MCF通用体积。此设备类别应用于表示消耗量,例如车辆消耗的燃油量。
NumberDeviceClass.VOLUME_FLOW_RATEm³/h, m³/min, m³/s, ft³/min, L/h, L/min, L/s, gal/d, gal/h, gal/min, mL/s体积流量。此设备类别应用于表示某种体积的流动,例如瞬时用水量。
NumberDeviceClass.VOLUME_STORAGEL, mL, gal, fl. oz., m³, ft³, CCF, MCF储存体积。此设备类别应用于表示储量,例如油箱中的燃油量。
NumberDeviceClass.WATERL, gal, m³, ft³, CCF, MCF用水量
NumberDeviceClass.WEIGHTkg, g, mg, µg, oz, lb, st通用重量;使用 weight 而不是 mass,以符合日常语言习惯。
NumberDeviceClass.WIND_DIRECTION°风向
NumberDeviceClass.WIND_SPEEDft/s, km/h, kn, m/s, mph风速

恢复数值状态

如果数值实体需要在重启或重新加载后恢复状态,不应继承 RestoreEntity,因为它保存的是 state,而不是 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:
        """Update the current value."""

    async def async_set_native_value(self, value: float) -> None:
        """Update the current value."""