模板
这模板
集成允许创建从其他数据得出其值的实体。这是通过指定完成的模板对于实体的属性,例如名称或状态。
传感器,二进制(开/关)传感器,按钮,数字和选择在此页面上。对于其他类型,请参阅特定页面:
传感器,二进制传感器,按钮,数字和选择模板实体在您的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)}}'测量单位:“天”
配置变量
定义自动化触发器以更新实体。选修的。如果省略,将根据引用实体进行更新。请参阅触发文档。
传感器列表
定义一个模板以获取传感器的状态。
这state_class传感器。这还将根据用户配置文件编号格式设置显示该值,并影响历史可视化中的图形表示作为连续值。
二进制传感器列表
传感器是在
如果模板评估为真的
,,,,是的
,,,,在
,,,,使能够
或正数。任何其他价值都将其作为离开
。前端的实际外观(打开
/关闭
,,,,检测到
/清除
等)取决于传感器的device_class值
可以用于传感器和二进制传感器的字段。
为传感器的实体图片定义模板。
设置设备的类,更改UI上显示的设备状态和图标(见下文)。它没有设置测量单位
。
数字列表
选择列表
可以用于传感器,二进制传感器,按钮,数字和选择的字段。
定义一个模板以获取实体的名称。
为实体图标定义模板。
定义一个模板以获取可用的
实体状态。如果模板无法渲染或返回真的
,,,,“ 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_id:my-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_horizon')%}向上{% 别的 %}向下{% 万一 %}
具有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_horizon”)}}}}图标:>{%如果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}}}
配置变量
传感器列表。
传感器的铃声。
设置设备类,更改前端上显示的设备状态和图标。
传感器是在
如果模板评估为真的
和离开
除此以外。前端的实际外观(打开
/关闭
,,,,检测到
/清除
等)取决于传感器的device_class值
定义一个模板以获取可用的
实体状态。如果模板无法渲染或返回真的
,,,,“ 1”
,,,,“真的”
,,,,“是的”
,,,,“在”
,,,,“使能够”
,或一个非零的数字,实体将是可用的
。如果模板返回任何其他值,则实体将为不可用
。如果未配置,实体将始终是可用的
。请注意,字符串比较不敏感;“真的”
和“是的”
被允许。
定义传感器图标的模板。
为传感器的实体图片定义模板。
旧传感器配置格式
这种格式仍然有效,但不再建议使用。使用现代配置。
此格式被配置为传感器
集成,而不是直接模板
一体化。
#示例Configuration.yaml条目传感器:-平台:模板传感器:solar_angle:友好名称:“太阳角度”测量单位:“学位”value_template:“{{{state_attr('sun.sun','海拔')}}””日出:value_template:“{{{state_attr('sun.sun','Next_rising')}}””
配置变量
传感器的地图。
定义要在前端中使用的名称的模板(此覆盖友好anme)。
定义一个模板以获取传感器的状态。
定义传感器图标的模板。
为传感器的实体图片定义模板。
定义一个模板以获取可用的
组件的状态。如果模板返回真的
,设备是可用的
。如果模板返回任何其他值,则设备将为不可用
。如果availability_template
未配置,组件将始终为可用的
。
设置设备的类,更改UI上显示的设备状态和图标(见下文)。它没有设置测量单位
。
Event event_template_reloaded
事件event_template_reloaded
当模板实体被重新加载时被解雇,因此实体可能已经改变。
此事件没有其他数据。