你好,

我正在尝试在触发器中使用模板作为“ for”值。我似乎无法正常工作。

我有:

类型:no_motion平台:device [...] for:小时:0分钟:'{{“ 8” if now.hour()in [7,8] else“ else” else“ 2”}}'秒:0

我会收到以下错误:

消息畸形:字典值 @ data ['for'] ['分钟']的预期浮点

为任何帮助而高兴。请原谅我在手机上输入此内容的格式不好。

干杯

1喜欢

我怀疑你想要现在()。小时, 不是现在.hour()。另外,您正在引用数字,这将它们变成字符串,因此请删除8和2。0.117允许模板返回本机类型,只要您指定LEGACY_TEMPLATES:false在下面乡亲:,只要您的表达评估整数,就可以了。

您的电话文本条目可能有问题,但是您已经重复了分钟:那里。

1喜欢

感谢您的建议@rccoleman- 这是我的最终版本:

类型:no_motion平台:device [...] for:hours:0分钟:'{{8 if现在()。小时[8,9,10] else 2}}'秒:0

但是,我仍然收到相同的错误消息畸形:字典值 @ data ['for'] ['分钟']的预期浮点。我正在使用最新的0.117.1版本,甚至确保设置LEGACY_TEMPLATES:false

我怀疑这实际上是家庭助理的错误,因为19463331伟德国际分钟:'{{8}}'输出相同的错误。

这对我有用:

- 别名:测试pinitial_state:true触发器: - 平台:state entity_id:input_boolean.test1 for:seconds:'{{10}}'action: -  service: -  service:persistent_notification.create.create.create.create.create data:test:test:test:test:test:Test

当您遇到该错误时,您在做什么?

我正在尝试创建一个自动化,在按下保存按钮时发生错误。

别名:Badezimmer Licht Aus描述:''触发器: - 键入:no_motion平台:device device_id:1234 entity_id:binary_sensor.badezimmer域域:binary_sensor:biary_sensor:for:hours:0分钟:'{10}}}}}}'seconds:0条件:0:0:0:0:0。操作: - 服务:light.turn_off数据:{} entity_id:light.badezimmer模式:单身

这是我的完整自动化。仍会收到相同的错误…

1喜欢

我将您的自动化粘贴到我的自动化文件并传递了“检查配置”。

您是否使用自动化编辑器来创建此自动化?

使用自动化编辑器,我也会收到此错误。此外,我尝试了直接在自动化中进行此更改。yaml文件并重新加载自动化,但它也不接受该领域的模板

欢迎来到HA论坛!

您可以发布自动化吗?根据文档,模板可以在为了:陈述。所以也许是其他的。

谢谢回复@ksc,这是我得到的……

alias: Motion activated light (office) description: '' trigger: - platform: device domain: binary_sensor entity_id: binary_sensor.tradfri_motion_sensor device_id: 0a4565a7835e24ba258831901ae824d1 type: motion - type: no_motion platform: device device_id: 0a4565a7835e24ba258831901ae824d1 entity_id: binary_sensor.tradfri_motion_sensor domain: binary_sensorfor:小时:0分钟:'{{10 if(现在()。小时> = 7 and()。。

我已经彻底测试了此脚本的其余部分,唯一无效的是

分钟:'{{10 if(now()。

尝试保存自动化编辑器时,我会收到错误
“消息畸形:字典值 @ data ['for'] ['分钟']”

如果我尝试使用…

'{{10 if(now()。小时> = 7 and now()。小时<= 16 else 1)|漂浮 }}'

我真的很感谢您提供的任何指导。谢谢!

你好,@有线- 这很奇怪。它在开发人员/模板工具中工作。我尝试了以这种方式结束的各种扰动(仍然不起作用 - 但坚持我):

为:小时:0分钟:> {%set long_wait = 10.0 | float%} {%set short_wait = 1.0 | float%} {%if(now()。%} {{long_wait | float}}} {%else%} {{short_wait | float}}} {%endif%}秒:0

如您所见,我使一切都浮出水面。仍然收到与重新加载自动化时相同的错误(但在配置检查中没有)。

一时兴起,我将触发部分更改为:

- alias: Motion activated light (office) description: '' trigger: - platform: state entity_id: binary_sensor.master_bedroom_sensor_motion to: 'on' - platform: state entity_id: binary_sensor.master_bedroom_sensor_motion to: 'off' for: hours: 0 minutes:> {%set long_wait = 10.0 | float%} {%set short_wait = 1.0 | float%} {%if(now()。小时> = 7和现在()。小时<= 16)%} {{long_wait | float | float | float | float | float}}} {%else%} {{short_wait | float}}} {%endif%}秒:0条件:[]操作: -  service_template:'light.turn _ {entity_id:light.hue_color_lamp_2

我所做的就是将平台更改为状态然后检查离开条件。它尽可能地工作。

然后,我将模板恢复到您最初拥有的(其他与上面直接相同的所有内容):

{{10 if(now()。小时> = 7和现在()。小时<= 16)else 1}}}

而且这也奏效了。所以……一定有某种错误设备平台。我正在标记其他几个来帮助(@pnbruckner,,,,@123,,,,@frenck)看看我们从这里去哪里。但是以上会起作用 - 只是不适合设备平台。

1喜欢

请不要。

  • 如果您看不到我参加一个主题,那很可能是因为我不感兴趣。
  • 指南不建议使用标签#16:

是的,好吧,我不知道如何报告错误。弄清楚了你们中的一个。如果您不想提供帮助,那没关系。忽略它。

如果您有一个免费的github帐户,则可以在核心存储库中打开新问题

知道了。谢谢!

谢谢@ksc,这是一件聪明的事情。切换到使用状态平台做到了!

感谢您的确认,@有线。我在存储库中提交了有关该问题的新问题。很高兴现在正在工作!

有趣的是,为了记录了两个触发器的选项:状态触发器和数字状态触发器。设备触发器根本没有文档www.19463331.com。

为什么不?因为它是专门用于使用自动化编辑器的。当您检查其结构时,没有简单的方法可以手动创建一个,因为获取设备ID不容易(对于自动化编辑器而不是用户来说很容易)。

自动化编辑器中揭示了使用设备触发器可以完成的操作的程度……并模板为了(在UI中称为持续时间)不是那些揭示的能力之一。不建议您编辑设备触发器的YAML,特别是如果您附加了UI中没有的选项。

tl; dr
不要期望设备触发器比自动化编辑器中显示的内容更多。