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

 找回密码
 立即注册
查看: 2612|回复: 4

求教:关于根据state值执行不同service(script)的问题

[复制链接]

5

主题

322

帖子

1345

积分

金牌会员

Rank: 6Rank: 6

积分
1345
金钱
1023
HASS币
0
发表于 2019-5-22 10:52:24 | 显示全部楼层 |阅读模式
各位大佬,有个问题求教:
       我有一非特定人语音识别,能够将识别结果输出为命令序列值,也就是一个数值,反馈到自动化中,可以依据此值执行不同的action或script。
不知能否实现根据值或值的范围执行不同的service或script。
比如:state值 1:light.turn_on,entity_id=xxx,brightness=50
                      2:   switch.trun_off,entity_id=yyy
                      3:   switch.trun_on,entity_id=yyy
                      等等
理想目标是:有一个命令执行字符串列表,对应state值,可通过下标直接调用,使得action或script最简洁!
比如:
       order[3][4] ={
           {3,"light.turn_on","entity_id=xxx","brightness=50"},
           {2,"switch.trun_off","entity_id=yyy",""},
           {2,"switch.trun_on","entity_id=yyy",""}
       }
这样,通过 order[state][0] 得到 参数个数
          通过 order[state][1] 得到 service
          通过 order[state][2] 得到 entity_id
          通过 order[state][3] 得到 附加参数

然后直接使用 order[state] 和相应action或script完成!

目前采用笨办法,直接返回service和entity_id文本,造成只能两参数调用,其他参数的不好统一处理!

回复

使用道具 举报

26

主题

2096

帖子

8514

积分

论坛元老

Rank: 8Rank: 8

积分
8514
金钱
6413
HASS币
30

论坛元老

发表于 2019-5-22 11:09:41 | 显示全部楼层
条件是这么写的,下半部分就不知道你在说啥了


automation:

  trigger:
    platform: template
    value_template: "{% if is_state_attr('switch.xxx', 'brightness', 40) %}true{% endif %}"
 
  trigger:
    platform: state
    entity_id: switch.yyy
    from: 'on'
    to: 'off'

  trigger:
    platform: state
    entity_id: switch.yyy
    from: 'off'
    to: 'on'
回复

使用道具 举报

7

主题

1975

帖子

5663

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
5663
金钱
3688
HASS币
145

灌水之王

发表于 2019-5-22 14:18:18 | 显示全部楼层
玩node red吧, 感觉写判断用HA会弄死人
回复

使用道具 举报

5

主题

322

帖子

1345

积分

金牌会员

Rank: 6Rank: 6

积分
1345
金钱
1023
HASS币
0
 楼主| 发表于 2019-5-22 14:23:25 | 显示全部楼层
情非殇 发表于 2019-5-22 11:09
条件是这么写的,下半部分就不知道你在说啥了

[code]

我的意思是,state是一个数值,对应每个数值要做一个事情,所以才有后半部分的设想。
主要是类似case i
                     1:
                     2:
等等,但好像没看到能定义这种类似结构的写法!
回复

使用道具 举报

5

主题

322

帖子

1345

积分

金牌会员

Rank: 6Rank: 6

积分
1345
金钱
1023
HASS币
0
 楼主| 发表于 2019-5-24 15:32:43 | 显示全部楼层
好了,基本搞定!写个component,可以充分发挥python的灵活!
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-3 09:58 , Processed in 0.060579 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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