尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何快速把设备与脚本接入 Home Assistant:三类通道实战指南

如何快速把设备与脚本接入 Home Assistant:三类通道实战指南 如何快速把设备与脚本接入 Home Assistant三类通道实战指南【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io你的脚本还在每 30 秒轮询一次灯光状态你的 ESP32 采到的温度只能打印在串口监视器里你的第三方平台想推条通知进 HA却不知道往哪儿送Home Assistant 是开源智能家居中枢内置 REST、WebSocket、MQTT 三类对外接口能接进几乎任何语言、任何硬件。这篇 Home Assistant 接口集成指南带你走一遍完整流程选通道、拿凭据、发第一条消息、接住回包再把安全加固和排错一次讲清。先选通道一张表定方向这一节帮你 30 秒决定走哪条路避免写一半代码才发现方向错了。通道你的请求方式实时性典型用途接入成本REST一问一答靠你轮询偶尔查状态、下发一条控制命令最低WebSocket建一次长连接HA 主动推实时看板、事件监听低MQTT发布 / 订阅主题设备与 HA 双向推送自研设备、传感器批量上报需先配 broker判断逻辑很简单需求里出现实时推送就走 WebSocket 或 MQTT只是偶尔查一下、控一下REST 就够了。设备是 ESP32 这类裸硬件MQTT 是最省事的选择你写的是 Python 脚本或第三方平台对接前两条更直接。拿凭据令牌和 broker 账号这一节解决敲门之前先领门禁卡的问题。REST 和 WebSocket 共用同一张长期访问令牌登录 HA点右下角头像进入个人资料页切到安全标签页在长期访问令牌里起个名字如 my-script生成只显示一次抄下来存好。这张卡是你的门禁卡泄露等于交出你的账户别贴进代码仓库。MQTT 走另一套身份先在设置里添加 MQTT 集成填好 broker 的地址、端口、用户名密码把账号密码记下来设备端要用。发第一条消息三条通道各跑一段最小代码拿好令牌之后每条通道用最短的片段验证链路。A. REST一条命令查状态GET http://你的HA地址:8123/api/states/light.living_room Authorization: Bearer 你的长期访问令牌返回 JSON 里state是on或off。要关灯就把方法换成POST路径改成/api/services/light/turn_offbody 传{entity_id: light.living_room}。B. WebSocket让 HA 主动推给你import json, websocket ws websocket.create_connection(ws://你的HA地址:8123/api/websocket) ws.send(json.dumps({type: auth, access_token: 你的长期访问令牌})) print(ws.recv()) # 应返回 auth_ok ws.send(json.dumps({id: 1, type: subscribe_events, event_type: state_changed})) while True: print(ws.recv())跑起来之后每盏灯的变动都会滚进终端——你不再轮询是它找你。C. MQTT设备双向通信先让 HA 替你发一条消息给设备验证 broker 链路POST /api/services/mqtt/publish Authorization: Bearer 你的长期访问令牌 Content-Type: application/json {topic: home/living/switch/command, payload: ON, qos: 1}设备端订阅这个主题就能收到ON温度回传则把值发到home/living/temperature。接住回包与推送三种模式这一段帮你分清三种通道钱货两清的方式不同别用轮询的思路写推送的代码。REST 是同步的请求出去JSON 回来连接即断脚本里用if status 200判断成败即可。WebSocket 是长连接相当于一个开着的对讲机频道。你只发一次订阅之后 HA 主动推事件格式固定{id: 1, type: event, event: {event_type: state_changed, data: {entity_id: light.living_room, new_state: {state: on}}}}收到消息别阻塞丢进队列让主循环处理网络抖动断开后要自动重连并重新订阅。MQTT 方向相反设备发布、HA 订阅。在configuration.yaml里补上mqtt: sensor: - name: Living Temperature state_topic: home/living/temperature重启 HA设备往该主题发23.5仪表盘立刻变数。加固与排错上线前过一遍最后一节帮你把接口从能跑变成敢跑。加固三件事 给 HA 套上 HTTPS令牌在公网传输才安全用权限收紧的专用账户跑脚本别拿管理员令牌令牌定期轮换。排错按症状对请求 401多半是令牌过期或复制少了空格WebSocket 认证回auth_invalid检查令牌是否被撤销MQTT 设备一直显示unknown先确认 broker 连通、topic 拼写一致再看发布时是否带了 retain 标志。进阶读者可以翻 REST API 参考 和 MQTT 传感器集成 查完整参数。三条通道都是同一扇门的三把钥匙先把 A 方案跑通再挑顺手的那把拧开。下期预告用 API 事件流给自动化加一层传感器。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表