本帖最后由 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)
实现效果与功能阐述
- 滑块调整温度
- 下拉选单选择风速
- 一键关空调
未实现功能:
- 模式选择(我家空调只有制冷除湿,懒得弄)
- 上下左右摆风(增加好几倍学码过程,懒得弄)
控客插座学码
学码步骤
- 打开开发者工具 - 服务
- 选择服务:remote.koneke_ir_learn
- 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,请在此处做相应修改。
至此,图上的功能应该都已经实现了。如果有坑,烦请提出或指点。感谢
待优化
- [ ] 学码功能应该可以做成脚本,降低操作难度
- [ ] command部分感觉可以改成 ir_温度组件+if elifp判断风速 的方式来实现,而不是将引用温度组件重复三次(但是我搞不定,总是调试不通过)
- [ ] slot 改成1+两位数温度+一位数风力 似乎会比较科学一点……一开始脑抽了,也懒得改了
HA新手瞎摸索,还请大家多多指教。谢谢
|