欢迎莅临寒舍
桃花仙人种桃树,又摘桃花换酒钱

Home Assistant中的实体和域,状态与状态对象 - [译文]


Home Assistant中,您的设备被表示为实体。实体是Home Assistant中存储数据的基本构建块。一个实体可以表示一个传感器、执行器或Home Assistant中的功能。实体用于监控物理属性控制其他实体。一个实体通常是设备服务的一部分。实体具有状态状态属性

所有实体都列在实体表中,位于设置 > 设备与服务 > 实体下。

实体表截图实体表截图。每一行代表一个实体。

Home Assistant中的每个集成都有一个唯一标识符:。Home Assistant中所有可用的实体和操作都由集成提供,因此属于某个域。实体或操作名称中  .  前的第一部分表示它们所属的域。例如,light.bed_lightlight域中的一个实体。bed_light是实体的ID。

域提供了其他集成可以使用的实体、服务和其他功能。例如,IKEA和Philips Hue都使用light集成提供的功能。这就是为什么它们在Home Assistant中的外观、感觉和行为相似。

域有不同的类型:集成域实体域

集成域主要为自己提供功能:例如Hue、Matter或Zigbee。

实体域本身并不使用自己的功能,而是为其他集成提供功能。

实体的状态(例如,如果灯是打开的,亮度为50%,颜色为橙色)可以显示在仪表板上或用于自动化。下面将介绍state、state object和entity state attribute的概念。
状态与状态对象
在Home Assistant中,状态对象是实体在特定时刻的所有属性的当前状态。这个状态被记录为一个state object。实体不断跟踪其状态并将其写入状态对象,以便其他实体/模板/前端可以访问它。在示例中——灯是打开的,亮度为50%,颜色为橙色——on是灯的实际状态。50%的亮度和颜色是实体状态属性。
关于状态对象
状态对象表示实体在特定时间点的状态及其属性。所有状态对象都将始终具有实体ID状态以及最后更新最后更改最后报告的时间。 state前缀表示此信息是状态对象的一部分(与实体相关)。例如,state.state是实体在给定时间的状态。
字段
描述
state.state
实体当前状态的字符串表示。示例off。
state.entity_id
实体ID。格式:.。示例:light.kitchen。
state.domain
实体的域。示例:light。
state.object_id
实体的对象ID。示例:kitchen。
state.name
实体的名称。基于friendly_name属性,回退到对象ID。示例:Kitchen  ceiling。
state.last_changed
状态在状态机中更改的时间(UTC时间)。如果仅状态属性更改,则不会更新。示例:2013-09-17  07:32:51.715874+00:00。
state.last_reported
状态写入状态机的时间(UTC时间)。无论状态或状态属性是否更改,此时间戳都会更新。示例:2013-09-17  07:32:51.715874+00:00。
state.last_updated
状态或状态属性在状态机中更改的时间(UTC时间)。如果状态和状态属性均未更改,则不会更新。示例:2013-09-17  07:32:51.715874+00:00。
state.attributes
与当前状态相关的额外属性的字典。
state.context
与状态上下文相关的额外属性的字典。
关于状态
截图显示了三个处于不同状态的灯(state.state):onoffunavailable。每个灯都有自己的实体状态属性,如supported_color_modessupported_features。这些属性有自己的状态:supported_color_modes属性的状态是color_temphssupported_features属性的状态是4
state.state是状态对象的核心。状态保存实体的关键信息。例如,灯是开还是关,当前温度,或使用的能量量。状态对象存储与状态相关的3个时间戳:last_updatedlast_changedlast_reported。每个实体只有一个状态,并且状态一次只保存一个值。
关于实体状态属性
状态一次保存一个值。但是,实体可以在状态对象中存储相关的实体状态属性。例如,灯的状态是on,相关属性可能是其当前亮度和颜色值。状态更改事件可以用作触发器。当前状态可以用于条件。下面的示例显示了三个具有不同实体状态属性的灯。

实体有一些与其状态无关的属性,例如friendly_name。一些属性在所有实体上都可用,例如friendly_name或icon。除此之外,每个集成都有自己的属性来表示实体的额外状态数据。例如,灯集成具有灯当前亮度和颜色的属性。当属性不可用时,Home Assistant不会将其写入状态。实体属性是可选的。

使用模板时,属性将通过其名称可用。例如state.attributes.assumed_state。

下表列出了可能存在的常见状态属性,具体取决于实体域(Domain)。

属性
描述
friendly_name
实体的名称。示例:Kitchen  Ceiling。
icon
在前端中用于实体的图标。示例:mdi:home。
entity_picture
应使用的图片的URL,而不是显示域图标。示例:http://example.com/picture.jpg。
assumed_state
布尔值,表示当前状态是否为假设。更多信息 示例:True。
unit_of_measurement
状态表示的单位。用于分组图表或理解实体。示例:°C。
attribution
数据的提供者。例如,”Data provided by  rejseplanen.dk”, “Data provided by openSenseMap”
device_class
实体表示的设备类型。用于在UI中显示设备特定信息。
supported_features
实体支持的功能。例如,对于窗帘,可能列出opening、closing、stopping、setting  position。对于媒体播放器,可能列出play、pause、stop和volume control
当属性包含空格时,可以这样检索:
state_attr(‘sensor.livingroom’, ‘Battery numeric’)
上下文
上下文是状态对象和事件中使用的一个属性。它将 events和states在Home Assistant中联系在一起。每当自动化或用户交互导致状态更改时,状态对象中都会分配一个新的上下文。此上下文将附加到因更改而发生的所有事件和状态。
字段
描述
context_id
上下文的唯一标识符。
user_id
启动更改的用户的唯一标识符。如果操作不是由用户启动的(例如,由自动化启动),则为None。
parent_id
启动更改的父上下文的唯一标识符(如果可用)。例如,如果自动化被触发,则触发器的上下文将设置为父上下文。

赞(0)
未经允许不得转载:桃花坞里桃花庵 » Home Assistant中的实体和域,状态与状态对象 - [译文]

评论 抢沙发

登录

找回密码

注册