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

 找回密码
 立即注册
查看: 1830|回复: 0

[技术探讨] 脚本状态保持

[复制链接]

80

主题

388

帖子

1680

积分

金牌会员

Rank: 6Rank: 6

积分
1680
金钱
1292
HASS币
0
发表于 2022-8-2 23:12:06 | 显示全部楼层 |阅读模式
本帖最后由 ciasdmxhxjjpd@c 于 2022-8-2 23:39 编辑

RT,

在ha里写的脚本,会同步到 homekit,当点击脚本,1s后,自动变成off。ha开发者里,查看脚本状态,执行时为on,执行后为off。

比如通过脚本开灯后,在homekit里就不能实现状态保持。


松下灯,共四种模式,日光,暖白,夜灯,全量。博联学习后,写成四个脚本调用send command,每个命令发2次,再用一个switch template 实现。

为什么不直接用 switch template broadlink 呢,因为 command_off 只能填一个code,不是一个字典数据,松下的灯,在全量模式下,要按2次关闭才能立即关闭,否则,要延时20s左右才关。

现在的问题是,当我打开夜灯时,希望其他模式的开关都是off状态。

这里有个矛盾,通过switch turn off 关闭其他模式的开关时,由于要执行 off,off里是关闭灯的操作,所以,每切换一次模式,就要关灯一次,再点亮。请问,有什么办法解决。

switch:
  - platform: template
    switches:
      keting_night_mode:
        unique_id: keting_night_mode
        turn_on:
          service: script.turn_on
          target:
            entity_id: script.keting_light_night_mode
        turn_off:
          service: script.turn_on
          target:
            entity_id: script.keting_light_off
            
  - platform: template
    switches:
      keting_full_bright:
        unique_id: keting_full_bright
        turn_on:
          service: script.turn_on
          target:
            entity_id: script.keting_light_full_bright           
        turn_off:
          service: script.turn_on
          target:
            entity_id: script.keting_light_off                

  - platform: template
    switches:
      keting_light_warm_white:
        unique_id: keting_light_warm_white
        turn_on:
          service: script.turn_on
          target:
            entity_id: script.keting_light_warm_white           
        turn_off:
          service: script.turn_on
          target:
            entity_id: script.keting_light_off  

  - platform: template
    switches:
      keting_light_sun:
        unique_id: keting_light_sun
        turn_on:
          service: script.turn_on
          target:
            entity_id: script.keting_light_sun           
        turn_off:
          service: script.turn_on
          target:
            entity_id: script.keting_light_off   

脚本,部分
keting_light_night_mode:
  sequence:
  - service: remote.send_command
    data:
      device: keting ceiling light
      command: night mode
      num_repeats: 2
    target:
      device_id: 1e27cbad6d761c45e9c141214021e273
  mode: single
  alias: keting light night mode
  icon: mdi:weather-night
keting_light_off:
  alias: keting light off
  sequence:
  - service: remote.send_command
    data:
      device: keting ceiling light
      command: turn off
      num_repeats: 2
    target:
      device_id: 1e27cbad6d761c45e9c141214021e273
  mode: single
  icon: mdi:alarm-light-off


期望,达到的效果是:在夜灯模式下,当按下 客厅暖白,客厅夜灯开关自动关,但灯没有关闭,而是直接toggle成暖白模式。
捕获.PNG





回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-29 02:29 , Processed in 0.124130 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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