csl0524 发表于 2023-4-1 20:16:43

求助 如何判断客厅没亮灯

使用场景是这样的,回家开门之后,判断客厅有没有亮灯,没亮灯就打开灯
因为灯比较多,用多个current state一盏一盏的判断有的时候比较慢,后来就另外添加了一个自定义sensor的节点来记录开灯的数量
这样设置判断的速度是很快的,但是有的时候统计数量会出错,导致不能正常工作
有什么好的方法来判断一个区域是否有灯亮着

以下是目前在用的,只是统计开灯数量会出错


sctale 发表于 2023-4-1 21:06:52

本帖最后由 sctale 于 2023-4-1 21:20 编辑

我目前是给每个区域的灯建了个group,这样比较方便。这个同样适用于一堆传感器一起判断。

ghostist 发表于 2023-4-1 21:08:48

sensor:
- platform: template
    sensors:
      current_light_on:
      value_template: >-
          {% set light = [
            states.light.door,
            states.light.aisle,
            states.light.balcony,
            states.light.bathroom,
            states.light.bedroom_backlight,
            states.light.bedroom_main,
            states.light.diningroom_backlight,
            states.light.diningroom_spotlight,
            states.light.livingroom_main,
            states.light.second_bedroom,
          ] %}
          {% set light_on = light | selectattr('state','eq','on') | list %}
            {{light_on | length}}

cjnt007 发表于 2023-4-1 21:18:32

HA里自定义一个传感器
- platform: template
sensors:
    number_lights_on:    # 开灯数量统计
      unique_id: "number_lights_on"
      friendly_name: "开灯数量"
      value_template: >-
      {{ states.switch
                  | selectattr('state', 'eq', 'on')
                  | selectattr('attributes.friendly_name', 'in', ['客厅灯1','客厅灯2','客厅灯3'])
                  | list | count }}
客厅有几个灯,按它们的名称依次替换到['客厅灯1','客厅灯2','客厅灯3']数组里,NR里就读取sensor.number_lights_on进行判断就行了

hackyjso 发表于 2023-4-2 10:38:52

用 get entities 节点

csl0524 发表于 2023-4-2 20:59:48

用二楼的方法完美实现我的需求,由于太过小白,其他几位的方法不会试验,感谢各位的解答

lszjl 发表于 2023-7-7 23:24:52

sctale 发表于 2023-4-1 21:06
我目前是给每个区域的灯建了个group,这样比较方便。这个同样适用于一堆传感器一起判断。

...

你好兄弟,能否贴一下完整的代码
页: [1]
查看完整版本: 求助 如何判断客厅没亮灯