https://github.com/Taosky/homebridge-lirc-aircon
可以直接看README,下面讲的比较啰嗦。
注意:本文内容已过时,仅做参考!
过程
因为转移到HomeBridge,找了一圈没找到MQTT协议(之前HomeAssistant用的)的插件,后来发现一个有些类似的但是很奇怪的插件,好在代码终于能看懂,就修改了一下。
首先之前的插件是用的每个按键单独指令的控制方法,而平常用的空调都是一个指令发送所有数据。原先是 “加减2度”这种调整温度的方法,关机开机的操作也都是单独的,删除了其中转换温度差的过程,修改为直接发送对应温度相应指令。
其次原来是用的‘htu21d’或是‘dht22’这两个传感器,再通过i2c-tool获得的房间温度,而我其实用的是‘DS18B20’。于是修改为command形式的获取温度信息,也不用专门配置别的工具了。
最后删除了一堆配置参数和湿度控制华氏度之类的东西。
配置
首先要确保你的指令名字和我是一样的,比如制热24摄氏度是
heat_24
,制冷19摄氏度是
cool_19
,关闭是
off
,就是确保以下命令工作:
irsend SEND_ONCE YOUR_DEVICE_NAME off
irsend SEND_ONCE YOUR_DEVICE_NAME heat_CELSIUS_TEMP
(ex: heat_24)irsend SEND_ONCE YOUR_DEVICE_NAME cool_CELSIUS_TEMP
(ex: cool_19)这样之后其实只要设置红外设备名字
ir:{“name”: “”}
就行了。
temp
节点用于设置获得房间温度的命令,
multiple
是除数,比如命令结果的是
16500
,就需要设置为
1000
来得到温度数值16.5摄氏度,没办法获得温度需要删除整个
temp
,房间温度将会默认为20摄氏度。最高温度、最低温度取决于你录制的空调温度区键,比如我把16-30摄氏度的制冷制热全部录制了一遍,
defaultSetpoint
是启动HomeBridge时默认设定温度。
{
"accessories": [
{
"accessory": "aircon-ir-remote",
"name": "Air Conditioner",
"minSetpoint": 16,
"defaultSetpoint": 20,
"maxSetpoint": 30,
"ir": {
"name": "lirc_device_name"
},
"temp": {
"command": "cat /sys/bus/w1/devices/28-01131650xxx/w1_slave |grep t= | cut -d '=' -f 2",
"multiple": 1000
}
}
]
}