『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 629|回复: 7

[技术探讨] 扫地机选择清扫模式自动化怎么写?

[复制链接]

54

主题

353

帖子

1577

积分

金牌会员

Rank: 6Rank: 6

积分
1577
金钱
1219
HASS币
0
发表于 2023-10-16 10:35:39 | 显示全部楼层 |阅读模式
我的石头扫地机我设置了两个模式,一个模式比如称为a,另外一个模式比如称为b。我需要做一个自动化,当为离家模式,且离家模式持续20分钟,且家庭成员离家5公里距离上,触发自动化,然后自动化的类型为如果执行过两次a后,那么久执行b,同理,如果之前执行的是b,且执行了一次,那么这次久执行a,请问各位大佬。如何写呢。
a和b为目前用的是小爱触发,如果集合在一起,是否直接用调用里面的激活自动化比较好还是另外再建一个开关。
比如A是以下
alias: 小爱同学打扫阳台(仅扫地)
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.xiaomi_x10a_c590_conversation
      - sensor.xiaomi_l17a_d74c_conversation
    to: 打扫阳台
condition: []
action:
  - service: vacuum.send_command
    data:
      command: set_water_box_custom_mode
      params:
        - 200
    target:
      entity_id: vacuum.shi_tou_g10s
  - service: vacuum.send_command
    data:
      command: set_custom_mode
      params:
        - 103
    target:
      entity_id: vacuum.shi_tou_g10s
  - service: vacuum.send_command
    data:
      command: app_segment_clean
      params:
        - segments:
            - 22
    target:
      entity_id: vacuum.shi_tou_g10s
mode: single
比如以下是b
alias: 小爱同学打扫阳台(先扫后拖)
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.xiaomi_x10a_c590_conversation
      - sensor.xiaomi_l17a_d74c_conversation
    to: 阳台大扫除
condition: []
action:
  - service: vacuum.send_command
    data:
      command: set_water_box_custom_mode
      params:
        - 200
    target:
      entity_id: vacuum.shi_tou_g10s
  - service: vacuum.send_command
    data:
      command: set_custom_mode
      params:
        - 103
    target:
      entity_id: vacuum.shi_tou_g10s
  - service: vacuum.send_command
    data:
      command: app_segment_clean
      params:
        - segments:
            - 22
    target:
      entity_id: vacuum.shi_tou_g10s
  - wait_for_trigger:
      - platform: state
        entity_id:
          - camera.shi_tou_g10s_map
        from: streaming


回复

使用道具 举报

26

主题

1190

帖子

5384

积分

元老级技术达人

积分
5384
金钱
4169
HASS币
100
发表于 2023-10-16 16:14:45 | 显示全部楼层
做一个计数器,初始化为0,每执行一次自动化counter+1
然后执行的时候做一次取模计算 result=(counter%3)result=0 或result=1就执行自动化A,result=2执行自动化B
回复

使用道具 举报

24

主题

623

帖子

2758

积分

金牌会员

Rank: 6Rank: 6

积分
2758
金钱
2125
HASS币
40
发表于 2023-10-17 00:25:24 | 显示全部楼层
你的条件说的不是很清楚, 离家模式持续20分钟,且家庭成员离家5公里距离, 如果离家20分钟的时候没有5公里,30分钟的时候,5公里了,这时要触发自动化吗?
另外这个两次a是指同一天吗?
最后一个问题答案是的,直接用调用里面的激活自动化就好
回复

使用道具 举报

29

主题

944

帖子

4222

积分

论坛元老

Rank: 8Rank: 8

积分
4222
金钱
3268
HASS币
70
发表于 2023-10-17 01:57:49 | 显示全部楼层
本帖最后由 relliky 于 2023-10-17 02:11 编辑

>> 当为离家模式,且离家模式持续20分钟,且家庭成员离家5公里距离上
这个好写,看你需要的实效性也不强,trigger就用time_pattern(参考我链接里面的代码),每几分钟判断一次就行,condition用你这上面的条件就好

至于跑两次执行a,之后执行b,这个叫状态机,除了2楼说的以外,还可以写明白一点,比如用一个input_select装3个状态,
a1,a2,b
然后切换到a1,a2的时候,执行自动化a
切换到b的时候,执行自动化b

把状态变化的自动化和状态执行的自动化写两格就行。

我有个类似的自动化,每按一下无线卡片,循环不同的灯的场景,用状态机写的
这个是切换状态 https://github.com/relliky/Tais_ ... ving_room.yaml#L977
这个是执行当前状态 https://github.com/relliky/Tais_ ... ing_room.yaml#L1030



我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

54

主题

353

帖子

1577

积分

金牌会员

Rank: 6Rank: 6

积分
1577
金钱
1219
HASS币
0
 楼主| 发表于 2023-10-17 08:54:18 | 显示全部楼层
sasukebinbin 发表于 2023-10-17 00:25
你的条件说的不是很清楚, 离家模式持续20分钟,且家庭成员离家5公里距离, 如果离家20分钟的时候没有5公里,3 ...

感谢大佬回复!就是离家模式超过20分钟,30分钟也是超过20分钟,并且距离超过5公里。
回复

使用道具 举报

54

主题

353

帖子

1577

积分

金牌会员

Rank: 6Rank: 6

积分
1577
金钱
1219
HASS币
0
 楼主| 发表于 2023-10-17 09:01:22 | 显示全部楼层
25989406 发表于 2023-10-16 16:14
做一个计数器,初始化为0,每执行一次自动化counter+1
然后执行的时候做一次取模计算 result=(counter%3) ...

大佬,计数器是这样吗?
my_custom_counter:
  initial: 0
  step: 1
  min: 0
  max: 2  # 设置为触发两次后切换清扫模式


然后执行的代码应该是?
回复

使用道具 举报

54

主题

353

帖子

1577

积分

金牌会员

Rank: 6Rank: 6

积分
1577
金钱
1219
HASS币
0
 楼主| 发表于 2023-10-17 09:03:06 | 显示全部楼层
relliky 发表于 2023-10-17 01:57
>> 当为离家模式,且离家模式持续20分钟,且家庭成员离家5公里距离上
这个好写,看你需要的实效性也不强,t ...

大佬,感谢,这个方案看起来可行。我先看下。
回复

使用道具 举报

26

主题

1190

帖子

5384

积分

元老级技术达人

积分
5384
金钱
4169
HASS币
100
发表于 2023-10-17 14:56:51 | 显示全部楼层
lichao622 发表于 2023-10-17 09:01
大佬,计数器是这样吗?

应该可以 你看文档试一下呗。
你设置了max应该可以自己循环,就不需要取模了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-8 01:18 , Processed in 0.177120 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表