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

 找回密码
 立即注册
查看: 523|回复: 3

[求助] 大家看看我mqtt的继电器代码,同时执行时只执行第一个。

[复制链接]

206

主题

558

帖子

4002

积分

论坛元老

Rank: 8Rank: 8

积分
4002
金钱
3444
HASS币
0
发表于 2023-9-18 13:46:47 | 显示全部楼层 |阅读模式

mqtt:
  light:
#第二个mqtt

    - name: "N_wl1"
      command_topic: "CMD1"
      state_topic: "STATUS1"
      icon: mdi:lightbulb
      qos: 1
      retain: true
      optimistic: false
      payload_on: '{"A01":110000}'
      payload_off: '{"A01":100000}' 
      state_value_template: >
        {% if value_json.A01 == 1 %}
          {"A01":110000}
        {% else %} 
          {"A01":100000}
        {% endif %}
        
        
    - name: "N_wl2"
      command_topic: "CMD1"
      state_topic: "STATUS1"
      icon: mdi:lightbulb
      qos: 1
      retain: true
      optimistic: false
      payload_on: '{"A02":110000}'
      payload_off: '{"A02":100000}'  
      state_value_template: >
        {% if value_json.A02 == 1 %}
          {"A02":110000}
        {% else %} 
          {"A02":100000}
        {% endif %}
        
    - name: "N_wl3"
      command_topic: "CMD1"
      state_topic: "STATUS1"
      icon: mdi:lightbulb
      qos: 1
      retain: true
      optimistic: false
      payload_on: '{"A03":110000}'
      payload_off: '{"A03":100000}'
      state_value_template: >
        {% if value_json.A03 == 1 %}
          {"A03":110000}
        {% else %} 
          {"A03":100000}
        {% endif %}   
        
    - name: "N_wl4"
      command_topic: "CMD1"
      state_topic: "STATUS1"
      qos: 1
      retain: true
      optimistic: false
      icon: mdi:lightbulb
      payload_on: '{"A04":110000}'
      payload_off: '{"A04":100000}'
      state_value_template: >
        {% if value_json.A04 == 1 %}
          {"A04":110000}
        {% else %} 
          {"A04":100000}
        {% endif %}


上面的代码,在ha界面里,手动一个一个点击都正常,因为手动操作时每一个动作有时间空隙。 当在脚本或自动化时执行全开或全关时,只有第一个靠前的执行。这个如何解决呀?
alias: light all on
sequence:
  - service: light.turn_on
    data: {}
    target:
      entity_id:
        - light.n_wl1
        - light.n_wl2
        - light.n_wl3
        - light.n_wl4
mode: single


回复

使用道具 举报

12

主题

478

帖子

2607

积分

金牌会员

HomeAssistant

Rank: 6Rank: 6

积分
2607
金钱
2124
HASS币
20
发表于 2023-9-18 14:35:23 | 显示全部楼层
最好监听或者查一下全开或者全关的mqtt的报文,是不是格式变了
回复

使用道具 举报

206

主题

558

帖子

4002

积分

论坛元老

Rank: 8Rank: 8

积分
4002
金钱
3444
HASS币
0
 楼主| 发表于 2023-9-18 16:27:45 | 显示全部楼层
本帖最后由 newspaper 于 2023-9-18 16:33 编辑
DDDear 发表于 2023-9-18 14:35
最好监听或者查一下全开或者全关的mqtt的报文,是不是格式变了

其实,全开全关的mqtt指令也有。 也能全开全关,我就是想通过上面每一路的己组显示在ha实体来全开全关就不行。在脚本或自动化里通过加入1秒时间间隔来暂时解决这个问题。
alias: light all on
sequence:
  - service: light.turn_on
    data: {}
    target:
      entity_id:
        - light.n_wl1
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - service: light.turn_on
    data: {}
    target:
      entity_id: light.n_wl2
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - service: light.turn_on
    data: {}
    target:
      entity_id: light.n_wl3
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - service: light.turn_on
    data: {}
    target:
      entity_id: light.n_wl4
mode: single
再想,这个时间间隔可不可以其它地方设置。
回复

使用道具 举报

206

主题

558

帖子

4002

积分

论坛元老

Rank: 8Rank: 8

积分
4002
金钱
3444
HASS币
0
 楼主| 发表于 2023-9-18 17:14:01 | 显示全部楼层
有朋友说可能是, 不能连续发指令,一问一答模式,没有等响应或者留足间隔,最好是接收响应后再发下一条。     上面这些要求如何体现在配置文件里呀?
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-7-27 15:03 , Processed in 0.098141 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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