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

 找回密码
 立即注册
查看: 12020|回复: 24

[经验分享] 控客插座红外控制空调(滑块温度+风速选择)

[复制链接]

21

主题

188

帖子

1481

积分

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1288
HASS币
60
发表于 2019-2-26 10:13:29 | 显示全部楼层 |阅读模式
本帖最后由 chiunownow 于 2019-3-20 20:15 编辑

控客插座红外空调(滑块温度+风速选择)

以下方法有点傻,但还挺实用的……代码比较丑,求大神优化。本帖可能不适用与所有人所有空调,实现方法挺不优雅的,大家参考着看看就好。还请大神多多指点。感谢感谢

更新:新增iOS捷径控制空调,详情 https://bbs.hassbian.com/thread-6617-1-1.html

首先:感谢jedmeng大神开发控客插件。原贴 https://bbs.hassbian.com/thread-5391-1-1.html

适用设备:带有红外功能的控客设备(如控客minikpro)

实现效果与功能阐述

UTOOLS1551144766784.png

  1. 滑块调整温度
  2. 下拉选单选择风速
  3. 一键关空调

未实现功能:

  1. 模式选择(我家空调只有制冷除湿,懒得弄)
  2. 上下左右摆风(增加好几倍学码过程,懒得弄)

控客插座学码

UTOOLS1551145398330.png

学码步骤

  1. 打开开发者工具 - 服务
  2. 选择服务:remote.koneke_ir_learn
  3. Service Data 填入以下内容
{
  "entity_id": "[你的控客remote entity id]",
  "slot": ****
}

其中slot的部分需要注意

slot均使用四位数,前两位为温度,后两位为风速(自动:00;小风:01;中风:02;大风:03)
例如:
24度自动风速:2400
24度小风:2401
18度大风:1803
另外,请在 slot: 1000 学习关机红外码
再另外,slot取值范围1000~99999,请注意通知栏提醒学码是否成功

Package

此处不回复也可见(

input_number:
  remote_temp_bedroom:
    min: 16
    max: 28
    initial: 24
    step: 1
    name: 空调温度
    unit_of_measurement: "℃"
    icon: mdi:thermometer

input_select:
  remote_fanspeed_bedroom:
    name: 风速
    icon: mdi:weather-windy
    options:
      - "自动"
      - "小"
      - "中"
      - "大"

automation:
  - alias: "控客黑自动发送空调遥控信号"
    trigger:
      - platform: state
        entity_id: input_number.remote_temp_bedroom
      - platform: state
        entity_id: input_number.remote_fanspeed_bedroom
    action:
      service: remote.send_command
      data_template:
        entity_id: remote.wo_shi_yao_kong
        # 注意!此处需修改为你的控客遥控entity_id!
        command: >
          {% if states.input_select.remote_fanspeed_bedroom.state == "自动" %}ir_{{ states('input_number.remote_temp_bedroom') | int }}00
          {%  elif states.input_select.remote_fanspeed_bedroom.state == "小" %}ir_{{ states('input_number.remote_temp_bedroom') | int }}01
          {%  elif states.input_select.remote_fanspeed_bedroom.state == "中" %}ir_{{ states('input_number.remote_temp_bedroom') | int }}02
          {%  elif states.input_select.remote_fanspeed_bedroom.state == "大" %}ir_{{ states('input_number.remote_temp_bedroom') | int }}03
          {% endif %}

script:
  remote_minikpro_turnoff_ac:
    alias: 关空调
    sequence:
      - service: remote.send_command
        data:
          entity_id: remote.wo_shi_yao_kong
          # 注意!此处需修改为你的控客遥控entity_id!
          command: ir_1000# 3月20日更新,增加开空调脚本
  remote_minikpro_turnon_ac:
    alias: 开空调
    sequence:
      - service: remote.send_command
        data_template:
          entity_id: remote.wo_shi_yao_kong
          command: >
            {% if states.input_select.remote_fanspeed_bedroom.state == "自动" %}ir_{{ states('input_number.remote_temp_bedroom') | int }}00
            {%  elif states.input_select.remote_fanspeed_bedroom.state == "小" %}ir_{{ states('input_number.remote_temp_bedroom') | int }}01
            {%  elif states.input_select.remote_fanspeed_bedroom.state == "中" %}ir_{{ states('input_number.remote_temp_bedroom') | int }}02
            {%  elif states.input_select.remote_fanspeed_bedroom.state == "大" %}ir_{{ states('input_number.remote_temp_bedroom') | int }}03
            {% endif %}

在package文件夹下新建yaml文件,将以上内容粘贴后保存,重启HA

Lovelace 卡片配置

# 3月20日更新,增加开空调脚本
entities:
  - entity: input_number.remote_temp_bedroom
  - entity: input_select.remote_fanspeed_bedroom
  - entity: script.remote_minikpro_turnon_ac
  - entity: script.remote_minikpro_turnoff_ac
type: entities

如果修改了package中的组件id,请在此处做相应修改。

UTOOLS1551144766784.png

至此,图上的功能应该都已经实现了。如果有坑,烦请提出或指点。感谢

待优化

  • [ ] 学码功能应该可以做成脚本,降低操作难度
  • [ ] command部分感觉可以改成 ir_温度组件+if elifp判断风速 的方式来实现,而不是将引用温度组件重复三次(但是我搞不定,总是调试不通过)
  • [ ] slot 改成1+两位数温度+一位数风力 似乎会比较科学一点……一开始脑抽了,也懒得改了

HA新手瞎摸索,还请大家多多指教。谢谢





评分

参与人数 2金钱 +14 HASS币 +10 收起 理由
jyz_0501 + 4 论坛有你更精彩!
Roger + 10 + 10 厉害了word楼主!

查看全部评分

回复

使用道具 举报

5

主题

354

帖子

1395

积分

金牌会员

Rank: 6Rank: 6

积分
1395
金钱
1041
HASS币
0
发表于 2019-2-26 10:17:02 | 显示全部楼层
感谢分享~~~!!牛X了~~!
回复

使用道具 举报

39

主题

2048

帖子

7698

积分

元老级技术达人

积分
7698
金钱
5635
HASS币
110
发表于 2019-2-26 10:25:13 | 显示全部楼层
学习了,自动化没搞过,准备看你的入门了
同样minipro 不过我需要制冷制热切换 准备自己加一下

还学习了你大方的帖子,大方刚入手,内存卡还在路上....运气好是个老版本 hack应该没问题
到时候接入遇到问题还得请教了
回复

使用道具 举报

21

主题

188

帖子

1481

积分

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1288
HASS币
60
 楼主| 发表于 2019-2-26 10:30:04 | 显示全部楼层
ghostist 发表于 2019-2-26 10:25
学习了,自动化没搞过,准备看你的入门了
同样minipro 不过我需要制冷制热切换 准备自己加一下

大方那个不要学了……重新发明轮子了
lovelace有自定义组件可以实现,把cover组件的前端显示为滑块的功能……我更新一下帖子
回复

使用道具 举报

39

主题

2048

帖子

7698

积分

元老级技术达人

积分
7698
金钱
5635
HASS币
110
发表于 2019-2-26 10:36:18 | 显示全部楼层
chiunownow 发表于 2019-2-26 10:30
大方那个不要学了……重新发明轮子了
lovelace有自定义组件可以实现,把cover组件的前端显示为滑块的功能 ...

感觉自己像是在催更
回复

使用道具 举报

21

主题

188

帖子

1481

积分

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1288
HASS币
60
 楼主| 发表于 2019-2-26 10:56:53 | 显示全部楼层
ghostist 发表于 2019-2-26 10:36
感觉自己像是在催更

https://bbs.hassbian.com/thread-6325-1-1.html
已更新,请用这个比我靠谱一万倍的方法……
回复

使用道具 举报

26

主题

2096

帖子

8506

积分

论坛元老

Rank: 8Rank: 8

积分
8506
金钱
6405
HASS币
30

论坛元老

发表于 2019-2-27 13:46:03 | 显示全部楼层
考不考虑增加homekit支持
回复

使用道具 举报

2

主题

237

帖子

2284

积分

金牌会员

Rank: 6Rank: 6

积分
2284
金钱
2047
HASS币
0
发表于 2019-2-28 04:34:27 | 显示全部楼层
高手。正好要。
回复

使用道具 举报

39

主题

2048

帖子

7698

积分

元老级技术达人

积分
7698
金钱
5635
HASS币
110
发表于 2019-3-2 20:45:48 | 显示全部楼层
本帖最后由 ghostist 于 2019-3-2 20:49 编辑

我发现 增加3个模式 学习要X3
就是每种可能都要学一遍 捂脸16~32度X4风速X3模式  要学习204种  
要不还是温度2度步长 模式不要除湿了 72种 捂脸捂脸捂脸
回复

使用道具 举报

39

主题

2048

帖子

7698

积分

元老级技术达人

积分
7698
金钱
5635
HASS币
110
发表于 2019-3-2 20:46:51 | 显示全部楼层
trigger第二项是不是多余了?
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-25 08:52 , Processed in 0.057289 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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