起因:海尔设备是用单独的海尔智家app进行控制,无法使用siri控制或者接入homekit

目标:让海尔热水器能够接入homekit,实现用Siri调节温度,模式等等

方法:
1.安装Node-Red,并安装节点node-red-contrib-home-assistant-websocket以及ode-red-contrib-haier
2.安装Homeassistant,安装集成node-red-contrib-home-assistant-websocket
3.在Node-Red中建立flow

已上具体安装方法不做赘述。目前已实现功能有:

  • 开/关机
  • 升高温度/降低温度
  • 直接调节温度
  • 关闭厨宝洗模式

PS:因Haier本身的缺陷无法实现打开厨宝洗模式

2023-8-26更新

获取天然气余额的时候报错:

Error: Request Error
url: http://ai.haier.net:11000/access/ai-access/nlp?engine=uapp&needcontent=yes&opmode=remote&syncmode=yes&ttssplit=no
retInfo: undefined
code: undefined

解决办法:找到haier模块文件夹,找到const.js,修改里面的版本号为现状的新版app版本号即可,最后重启homeassistant和node-red
另外再说一下如何给http request添加请求头和请求体的新方法,可以直接加一个function函数

msg.headers = {
    "Host": "www.klrqkm.com",
    "Connection": "keep-alive",
    "Content-Length": "42",
    "wechat-header-token": "1553e026ba4c4009a2b750bc*******",
    "content-type": "application/x-www-form-urlencoded",
    "x-requested-with": "XMLHttpRequest",
    "Accept-Encoding": "gzip,compress,br,deflate",
    "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.40(0x18002830) NetType/WIFI Language/zh_CN",
    "Referer": "https://servicewechat.com/wx12bf8a6be3cc97ec/11/page-frame.html"
}

msg.payload = "accountId=f452427d249f2**********"
return msg;

这样的方式比在http request中一个个加请求头方便很多,而且可以避免一些报错。