您缺少的模板的方面是类型,您似乎正在将事物更改为字符串,而不理解为什么错误。有7种主要对象类型,这是对所有物体的淡化描述。
int
一个没有小数位的数字。
1
漂浮
一个有十进制位置的数字。
1.234234
细绳
一系列字符。用单个引号或双引号包裹的字符表示。
'324dalkfsdjlk234'“ 32342FSDKJ32L4K2J3; 523423442KJA”
布尔
是的,错误,1或0
true false 1 0
元组
项目的集合。它无法改变形状,一旦定义它始终保持如此尺寸。IE。如果我有4个项目,则无法删除或添加一个项目。每个项目都通过将其放入集合中的顺序标识。
(1,2,3,'a','b','c')
访问项目:
my_tuple [0]#返回1(元组中的第一个项目)my_tuple [1]#返回2(tuple中的第二个项目)my_tuple [n]#返回?(元组中的n+1个项目)my_tuple [-1]#返回'c'(tuple中的lastItem)
列表
项目的集合。您可以从中添加或删除项目。您可以将其过滤。还有其他一些操作。每个人都通过将其放入集合中的顺序识别。
[1,2,3,'a','b','c']
访问项目:
my_list [0]#返回1(列表中的第一个项目)my_list [1]#返回2(列表中的第二个项目)my_list [n]#返回?(列表中的n+1个项目)my_list [-1]#返回'c'(列表中的最后一项)
字典
项目的集合。每个都通过唯一标识符(通常为字符串)来识别。
{'foo':1,'bar':2,'blah':3,'状态':'my_state'}
访问项目:
my_dict ['foo']#returns 1 my_dict.foo#returns 1 my_dict.get('foo')#returns 1 my_dict.get('junk',74)#如果存在,如果它不返回,则返回'垃圾的值74
扳机
触发对象是一堆嵌套词典。这不是字符串。通过文档。
您的代码
因此,这一切都在说,您拥有的唯一有效的代码是
{{trigger.to_state.attributes [“电池”] == 100}}
其余的似乎有效,但您会犯一些小错误。因此,让我们看看它们。
{{is_state(“ trigger.to_state.attributes ['电池']”,100)}}}}
IS_STATE()接受Entity_ID作为第一个参数,而状态为第二个参数。状态始终是字符串,除非它来自属性。在属性的情况下,它可以是任何对象类型。
错误:
- 您正在喂绳子
“ trigger.to_state.attributes ['电池']”
作为第一个论点。这是一个entity_id吗?否。触发甚至应该是字符串吗?不。
- 所有州都是字符串。是
100
字符串?不,周围没有报价。
但是,即使您要纠正这些错误,它仍然不会得到正确的答案,因为您正在尝试获得属性的结果。IS_STATE仅比较状态,而不是属性。
{{is_state_attr('trigger.to_state','电池',100)}}}
IS_STATE_ATTR获取与结果比较的属性。第一个参数是entity_id,第二个是属性名称,第三个是您要比较的值。
错误:
- 您正在喂绳子
'trigger.to_state'
作为第一个论点。这是一个entity_id吗?不。
- 即使您要纠正错误1并删除报价,也您正在访问错误的信息。您正在抓住触发器。而不是Entity_id。
将所有这些放在一起
{{is_state_attr(trigger.to_state.entity_id,'Battery',100)}}} {{state_attr(trigger.to_state.tatate.entity_id,'cowteral''''}}}}}}}}} {{} {{触发['to_state'] ['属性'] ['电池'] == 100}} ...等...