LIRC红外控制空调接入HomeBridge

目录

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 ,就是确保以下命令工作:

  • OFF MODE: irsend SEND_ONCE YOUR_DEVICE_NAME off
  • HEAT MODE: irsend SEND_ONCE YOUR_DEVICE_NAME heat_CELSIUS_TEMP (ex: heat_24)
  • COOL MODE: 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
          }
        }
      ]
    }