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

 找回密码
 立即注册
查看: 5782|回复: 5

[技术探讨] 用自动化实现红外开关的状态显示和反馈

[复制链接]

26

主题

304

帖子

1670

积分

金牌会员

Rank: 6Rank: 6

积分
1670
金钱
1366
HASS币
0
发表于 2018-4-1 22:26:49 | 显示全部楼层 |阅读模式
本帖最后由 窗寒轻雨 于 2018-8-5 23:44 编辑

详细实现方法见5楼:


(因为现实中功放模式是红外码,无法反馈状态,所以用此方法在ha主界面里显示下当前为什么模式)

定义了一个input_number.gongfangmoshi,取值1 2 3 ,分别为ktv模式,蓝牙模式,fm模式,
自动化规则是,当检测到switch.gongfangmoshi的开关被打开,就将数值加1,当到3的时候,循环到1

这是代码(查了中文ha文档,英文网站的ha文档,还有jinjia2的文档,又参照了论坛~)
QQ图片20180401220457.png

好不容易检查配置通过了,重启ha也看到了自动生成的entity

QQ图片20180401220525.png

但是却没效果,查日志说模板无效o(╯□╰)o
QQ图片20180401220623.png

改了两天,实在改不出来~只能求助下论坛了,各位帮忙看看该怎么写这段基本代码~

回复

使用道具 举报

123

主题

4659

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16367
金钱
11623
HASS币
45
发表于 2018-4-1 22:49:16 | 显示全部楼层
思路不错,但用法错了。提醒一下,service_template和data_template需要分开来写的,不能全写到service_template里面。
回复

使用道具 举报

26

主题

553

帖子

2728

积分

金牌会员

Rank: 6Rank: 6

积分
2728
金钱
2150
HASS币
100

教程狂人

发表于 2018-4-2 01:07:16 | 显示全部楼层
萌新猜想为什么:
第一,data_template需要和service_template对齐不是么;
第二,正如Jones大大所述,在service_template中使用if 语句的任何结果必然跳不出service_template,所以不可能在service_template中设置data_template,data_template的内容就应该在data_template中设置。

萌新猜想怎么办:
1.把if语句用在service_template的前面,也就是action里面会不会就OK了?这个方法不确定能否奏效。
2.让本来只有1次的判断分别在service_template和data_template中做1次,
service_template: >
{% if  .........  %} input_number.increment {% else %} input_number.set_value {% endif %}
data_template: >
    entity_id: *******
     {% if  .........  %} {% else %} value: '1' {% endif %}
回复

使用道具 举报

26

主题

304

帖子

1670

积分

金牌会员

Rank: 6Rank: 6

积分
1670
金钱
1366
HASS币
0
 楼主| 发表于 2018-4-2 23:18:49 | 显示全部楼层
本帖最后由 窗寒轻雨 于 2018-4-2 23:20 编辑
Jones 发表于 2018-4-1 22:49
思路不错,但用法错了。提醒一下,service_template和data_template需要分开来写的,不能全写到service_tem ...

QQ图片20180402225028.png QQ图片20180402231210.png QQ图片20180402231252.png QQ图片20180402231606.png QQ图片20180402231700.png

分开了,但是各种格式尝试都报错~
回复

使用道具 举报

26

主题

304

帖子

1670

积分

金牌会员

Rank: 6Rank: 6

积分
1670
金钱
1366
HASS币
0
 楼主| 发表于 2018-4-10 19:40:33 | 显示全部楼层
本帖最后由 窗寒轻雨 于 2018-8-5 23:46 编辑

开启debug模式,自己摸索出来了,写法如下
可以开启debug日志,然后点击按钮,看日志里的信息来获取
tigger平台为event,
类型为call_service
data里:
域为homeassistant(debug日志里的,用switch不报错但是不能触发)
注意service和service_data的写法
id估计每个人的值可能不同吧,在debug日志里可以查看到

QQ图片20180410190414.png



不知道还没有没有其他更简洁的写法,这还是分了两个自动化来写的~总之测试完美通过~~

经过长期测试,id可以不要,id每次重启hass都会变动~

评分

参与人数 1金钱 +10 收起 理由
+ 10 不错,主贴是不是改个标题?

查看全部评分

回复

使用道具 举报

26

主题

553

帖子

2728

积分

金牌会员

Rank: 6Rank: 6

积分
2728
金钱
2150
HASS币
100

教程狂人

发表于 2018-4-11 01:54:54 | 显示全部楼层
我也试了,想在字典的值内通过jinja向下选择性地构建字典。
绕过了各种坑,但是最后HA还是无法通过配置,说我构建的不是有效的键。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-9-20 09:12 , Processed in 0.057296 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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