模板


模板集成允许创建从其他数据得出其值的实体。这是通过指定完成的模板对于实体的属性,例如名称或状态。

传感器,二进制(开/关)传感器,按钮,数字和选择在此页面上。对于其他类型,请参阅特定页面:

传感器,二进制传感器,按钮,数字和选择模板实体在您的yaml配置文件中定义,直接在模板:键,不能通过UI配置。您可以将多个配置块定义为列表。每个块定义传感器/二进制传感器/数字/选择实体,并且可以包含可选的更新触发器。

对于旧传感器/二进制传感器配置格式,见下文

基于状态的模板二进制传感器,按钮,数字,选择和传感器

默认情况下,模板实体将在模板更新中的任何引用数据后立即更新。

例如,您可以拥有一个模板,该模板取平均两个传感器。必威是什么家庭助理将在任何一个源传感器更新后立即更新模板传感器。

模板-传感器-姓名平均的温度”测量单位°C”状态>{%设置卧室=状态('Sensor.bedroom_temperature')|漂浮 %}{%set厨房=状态('Sensor.kitchen_temperature')|漂浮 %}{{(((卧室 +厨房) / 2)|回合(1,默认= 0)}}}

模板变量

基于州的模板实体具有特殊模板变量在他们的模板中可用。这可变辅助工具自我引用模板中实体的状态和属性。

基于触发的模板二进制传感器,按钮,数字,选择和传感器

如果您想更多地控制实体更新何时,则可以定义触发器。触发器遵循相同格式,工作与触发自动化。此功能是基于Webhook数据创建实体的好方法(例子),或根据时间表更新实体。

每当触发触发时,所有相关实体都将重新渲染,并且可以访问触发数据在模板中。

当模板中引用的状态更改时,基于触发的实体不会自动更新。可以通过定义一个来添加此功能状态触发器对于要触发更新的每个实体。

当家庭助理重新启动时,将恢复基于触发器的传感器和二进制传感器的状态。必威是什么其他基于触发的模板实体的状态尚未恢复。

#示例配置条目模板-扳机-平台time_pattern#这将每天晚上更新小时0分钟0传感器#跟踪自约会以来过去有多少天-姓名不是抽烟”状态'{{{((((as_timestamp(now())-as_timestamp(strptime(“ 06.07.2018”,“%d。%m。%y”)))/86400|圆(默认= 0)}}'测量单位天”

配置变量

扳机 列表 ((选修的

定义自动化触发器以更新实体。选修的。如果省略,将根据引用实体进行更新。请参阅触发文档

唯一身份 细绳 ((选修的

此配置块的唯一ID。这将在此块中所有实体的所有唯一ID之前。

传感器 地图 必需的

传感器列表

状态 模板 必需的

定义一个模板以获取传感器的状态。

测量单位 细绳 ((选修的,默认:无

定义传感器测量单元(如果有)。这还将根据用户配置文件编号格式设置显示该值,并影响历史可视化中的图形表示作为连续值。

state_class 细绳 ((选修的,默认:无

state_class传感器。这还将根据用户配置文件编号格式设置显示该值,并影响历史可视化中的图形表示作为连续值。

binary_sensor 地图 必需的

二进制传感器列表

状态 模板 必需的

传感器是如果模板评估为真的,,,,是的,,,,,,,,使能够或正数。任何其他价值都将其作为离开。前端的实际外观(打开/关闭,,,,检测到/清除等)取决于传感器的device_class值

delay_on 时间 ((选修的

时间量(例如0:00:05)模板状态必须为见面在此传感器切换到。这也可以是模板。

delay_off 时间 ((选修的

模板状态必须是没见过在此传感器切换到离开。这也可以是模板。

自动关闭 时间 ((选修的

需要触发器。在实体渲染“ ON”后应关闭多少时间之后。

[传感器和binary_sensor实体] 地图 ((选修的

可以用于传感器和二进制传感器的字段。

图片 模板 ((选修的

为传感器的实体图片定义模板。

属性 地图 ((选修的

定义传感器属性的模板。

属性:模板 模板 必需的

属性和相应的模板。

device_class device_class ((选修的,默认:无

设置设备的类,更改UI上显示的设备状态和图标(见下文)。它没有设置测量单位

数字 地图 必需的

数字列表

状态 模板 必需的

数字当前值的模板。

设定值 行动 必需的

定义数字值更改时运行的动作。变量价值将包含输入的号码。

模板 必需的

数字增量/减小步骤的模板。

最小 模板 ((选修的,默认:0.0

数字最小值的模板。

最大限度 模板 ((选修的,默认:100.0

数字最大值的模板。

乐观的 布尔 ((选修的,默认:false

标志定义数字在乐观模式下工作的标志。

选择 地图 必需的

选择列表

状态 模板 必需的

选择当前值的模板。

select_option 行动 必需的

定义操作以运行以从选项列表。变量选项将包含选定的选项。

选项 模板 必需的

SELECT的可用选项的模板。

乐观的 布尔 ((选修的,默认:false

标志定义选择是否在乐观模式下工作。

按钮 地图 必需的

按钮列表

行动 必需的

定义操作以按下按钮。

[所有传感器,二进制传感器,按钮,编号,选择实体] 地图 ((选修的

可以用于传感器,二进制传感器,按钮,数字和选择的字段。

姓名 模板 ((选修的

定义一个模板以获取实体的名称。

唯一身份 细绳 ((选修的

唯一标识该实体的ID。如果可用,将与配置块的唯一ID结合使用。这允许更改姓名,,,,图标ENTITY_ID从Web界面。

图标 模板 ((选修的

为实体图标定义模板。

可用性 模板 ((选修的,默认:正确

定义一个模板以获取可用的实体状态。如果模板无法渲染或返回真的,,,,“ 1”,,,,“真的”,,,,“是的”,,,,“在”,,,,“使能够”,或一个非零的数字,实体将是可用的。如果模板返回任何其他值,则实体将为不可用。如果未配置,实体将始终是可用的。请注意,字符串比较不敏感;“真的”“是的”被允许。

上面的配置变量描述了一个配置部分。模板集成允许定义多个部分。

#示例configuration.yaml条目有两个部分模板#定义基于状态的模板实体-传感器...-binary_sensor...#定义基于触发器的模板实体-扳机...传感器...binary_sensor...

费率限制更新

当模板中存在实体并且没有定义触发器时,当一个实体改变状态时,将重新渲染模板。为了避免在家庭助理中占用太多资源,如果观察到太多州,将自动应用限制费率。必威是什么

定义触发器避免限制速率并获得对实体更新的更多控制。

什么时候状态在模板中单独使用以迭代系统上的所有状态,如果访问状态的任何部分,则每次发生任何状态更改的事件发生时,该模板都会重新渲染。仅仅计数状态时,仅当添加或从系统中删除状态时才会重新渲染模板。在繁忙的系统中,每天有许多实体或数十万个州更改事件,模板可能会重新渲染比期望的要多。

在下面的示例中,重新订阅者仅限于每分钟一次,因为我们迭代所有可用实体:

模板-binary_sensor-姓名拥有不可用状态”状态{{{状态|selectAttr('state','在',['不可用','未知','没有任何'])|列表|数数}}””

在下面的示例中,重新订阅者仅限于每秒一次,因为我们迭代单个域中的所有实体(传感器):

模板-binary_sensor-姓名拥有不可用状态”状态{{{states.sensor|selectAttr('state','在',['不可用','未知','没有任何'])|列表|数数}}””

如果模板访问系统上的每个状态,则应用每分钟一个更新的速率限制。如果模板在特定域下访问所有状态,则应用每秒一个更新的速率限制。如果模板仅访问特定状态,请接收特定引用实体的更新事件,或homeassistant.update_entity使用服务,不应用费率限制。

考虑因素

启动

如果您使用的是在启动过程中可能无法可用的平台的状态,则模板传感器可能会得到一个未知状态。为避免这种情况,请使用is_state()在模板中功能。例如,您将替换{{states.switch.source.state =='on'}}以这种等效的返回真的/错误的而且永远不会给未知结果:

{{{IS_STATE('switch.source',,,,'在'}}}

例子

在本节中,您可以找到一些如何使用此传感器的现实示例。

存储Webhook信息

模板实体可以使用任何自动化触发器(包括Webhook触发器)触发。使用基于触发的模板实体将此信息存储在模板实体中。

模板-扳机-平台webhookwebhook_idmy-super-secret-webhook-id传感器-姓名webhook温度”状态{{{trigger.json.temperature}}””测量单位°C-姓名webhook湿度”状态{{{trigger.json.Humity}}””测量单位binary_sensor-姓名运动”状态{{{trigger.json.motion}}””device_class运动

您可以使用以下curl命令测试此触发实体:

卷曲- 头“内容类型:应用程序/JSON”\ \- 要求邮政\ \- 数据'{“温度”:5,“湿度”:34,“运动”:true}'\ \http://homeassistant.local:8123/api/webhook/my-super-secret-webhook-id

将事件变成二进制传感器

您可以使用基于触发的模板实体将任何事件或其他自动化触发器转换为二进制传感器。当自动化触发器触发器时,下面的配置将打开二进制传感器5秒。

模板-扳机平台事件事件类型my_eventbinary_sensor-姓名最近被解雇的活动自动关闭5状态真的”

太阳角

此示例显示前端的太阳角。

模板-传感器-姓名太阳角测量单位°”状态{{{'%+。1f'|格式(state_attr('sun.sun',,'海拔'))}}””

重命名传感器输出

如果您不喜欢传感器输出的措辞,那么模板传感器也可以提供帮助。让我们重命名太阳组件作为一个简单的例子:

模板-传感器-姓名太阳状态”状态>{%如果IS_STATE('Sun.sun','epper_horizo​​n')%}向上{% 别的 %}向下{% 万一 %}

具有IF测试的多行示例

此示例显示了一个多行模板如果测试。它查看一个传感开关并显示/离开在前端,如果电源使用少于1000瓦,则显示“待机”。

模板-传感器-姓名水壶”状态>{%如果IS_STATE('switch.kettle','off')%}离开{%elif state_attr('switch.kettle','w')| float <1000%}支持{%elif is_state('switch.kettle','on')%}{% 别的 %}失败的{% 万一 %}

更改测量单位

使用模板传感器,如果测量单位不符合您的需求,则很容易将给定值转换为其他值。

模板-传感器-姓名传送向下速度”测量单位kb/s”状态{{{状态('sensor.transmission_down_speed')| float*1024}}””-姓名传送向上速度”测量单位kb/s”状态{{{状态('sensor.transmission_up_speed')| float*1024}}””

洗衣机运行

此示例通过监视连接到洗衣机的能量表来创建洗衣机“负载”传感器。在洗衣机的操作过程中,能量计将狂潮波动,甚至在负载完成之前就经常达到零。通过使用delay_off,我们只有在没有洗衣机活动5分钟的情况下才能关闭该传感器。

#确定洗衣机何时运行负载。模板-binary_sensor-姓名洗涤机器”delay_off分钟5状态>{{states('Sensor.washing_machine_power')| float> 0}}}

有人在家吗?

此示例是根据设备跟踪和运动传感器的组合确定任何人是否在家。如果您有孩子/保姆/祖父母,那可能仍然在您的房子里,那是非常有用的,而这些房屋中没有可跟踪的设备代表家庭助理。必威是什么这提供了基于Wi-Fi的设备跟踪和Z-WAVE多传感器的传感器的复合材料。

模板-binary_sensor-姓名人们回家状态>{{is_state('device_tracker.sean','home')或is_state('device_tracker.susan','home')或is_state('binary_sensor.office_124','on')或is_state('binary_sensor.hallway_134','on')或IS_STATE('Binary_sensor.living_room_139','on')或IS_STATE('Binary_sensor.porch_ms6_1_129','on')或IS_STATE('Binary_sensor.family_room_144','on')}}}

设备跟踪器传感器具有纬度和经度属性

此示例显示了如何组合非GP(例如NMAP)和GPS设备跟踪器,同时仍包括纬度和经度属性

模板-binary_sensor-姓名我的设备状态>{{is_state('device_tracker.my_device_nmap','home')或is_state('device_tracker.my_device_gps','home'home'}}}device_class在场”属性纬度>{%如果IS_STATE('device_tracker.my_device_nmap','home')%}{{state_attr('Zone.home','latitudity')}}}{% 别的 %}{{state_attr('device_tracker.my_device_gps','latitude')}}}}{% 万一 %}经度>{%如果IS_STATE('device_tracker.my_device_nmap','home')%}{{state_attr('Zone.home','pertutive')}}}{% 别的 %}{{state_attr('device_tracker.my_device_gps','pertutive')}}}}{% 万一 %}

当状态更改时更改图标

此示例演示了如何使用模板随着状态的变化而更改图标。该图标正在引用其自己的状态。

模板-binary_sensor-姓名阳光状态>{{is_state(“ sun.sun”,“ apper_horizo​​n”)}}}}图标>{%如果IS_STATE(“ binary_sensor.sun_up”,“ on”)%}MDI:天气未来{% 别的 %}MDI:降雨降低{% 万一 %}

自我引用

此示例说明了如何变量可以用于模板中进行自我引用。

模板-传感器-姓名测试状态{{{this.attributes.test|默认值什么时候失踪')}}””#不:“ {{state_attr('sensor.test','test')}}}”属性测试{{{现在()}}””

传统二进制传感器配置格式

这种格式仍然有效,但不再建议使用。使用现代配置

此格式被配置为binary_sensor集成,而不是直接模板一体化。

#示例Configuration.yaml条目binary_sensor-平台模板传感器sun_up友好名称太阳向上”value_template{{{state_attr('Sun.sun',,,,'海拔')> 0}}}

配置变量

传感器 地图 必需的

传感器列表。

Sensor_name 地图 必需的

传感器的铃声。

友好名称 细绳 ((选修的

在前端使用的名称。

唯一身份 细绳 ((选修的

独特地标识该二进制传感器的ID。将其设置为唯一值,以通过UI自定义。

device_class device_class ((选修的,默认:无

设置设备类,更改前端上显示的设备状态和图标。

value_template 模板 必需的

传感器是如果模板评估为真的离开除此以外。前端的实际外观(打开/关闭,,,,检测到/清除等)取决于传感器的device_class值

availability_template 模板 ((选修的,默认:正确

定义一个模板以获取可用的实体状态。如果模板无法渲染或返回真的,,,,“ 1”,,,,“真的”,,,,“是的”,,,,“在”,,,,“使能够”,或一个非零的数字,实体将是可用的。如果模板返回任何其他值,则实体将为不可用。如果未配置,实体将始终是可用的。请注意,字符串比较不敏感;“真的”“是的”被允许。

icon_template 模板 ((选修的

定义传感器图标的模板。

ENTITY_PICTURE_TEMPLATE 模板 ((选修的

为传感器的实体图片定义模板。

attribute_templates 地图 ((选修的

定义传感器属性的模板。

属性:模板 模板 必需的

属性和相应的模板。

delay_on 时间 ((选修的

模板状态必须是见面在此传感器切换到。这也可以是模板。

delay_off 时间 ((选修的

模板状态必须是没见过在此传感器切换到离开。这也可以是模板。

旧传感器配置格式

这种格式仍然有效,但不再建议使用。使用现代配置

此格式被配置为传感器集成,而不是直接模板一体化。

#示例Configuration.yaml条目传感器-平台模板传感器solar_angle友好名称太阳角度”测量单位学位”value_template{{{state_attr('sun.sun','海拔')}}””日出value_template{{{state_attr('sun.sun','Next_rising')}}””

配置变量

传感器 地图 必需的

传感器的地图。

友好名称 细绳 ((选修的

在前端使用的名称。

友好_name_template 模板 ((选修的

定义要在前端中使用的名称的模板(此覆盖友好anme)。

唯一身份 细绳 ((选修的

独特地标识该传感器的ID。将其设置为唯一值,以通过UI自定义。

测量单位 细绳 ((选修的,默认:无

定义传感器测量单元(如果有)。这还将根据用户配置文件编号格式设置显示该值,并影响历史可视化中的图形表示作为连续值。

value_template 模板 必需的

定义一个模板以获取传感器的状态。

icon_template 模板 ((选修的

定义传感器图标的模板。

ENTITY_PICTURE_TEMPLATE 模板 ((选修的

为传感器的实体图片定义模板。

attribute_templates 地图 ((选修的

定义传感器属性的模板。

属性:模板 模板 必需的

属性和相应的模板。

availability_template 模板 ((选修的,默认:正确

定义一个模板以获取可用的组件的状态。如果模板返回真的,设备是可用的。如果模板返回任何其他值,则设备将为不可用。如果availability_template未配置,组件将始终为可用的

device_class device_class ((选修的,默认:无

设置设备的类,更改UI上显示的设备状态和图标(见下文)。它没有设置测量单位

Event event_template_reloaded

事件event_template_reloaded当模板实体被重新加载时被解雇,因此实体可能已经改变。

此事件没有其他数据。