本帖最后由 JectXie 于 2024-9-1 19:16 编辑
通过Wi-Fi,利用MQTT协议接入到开源的智能家居平台HA(HomeAssistant)
什么是HA(HomeAssistant)
HA是当天非常流行的一个物联网平台,各种设备都可以接入,包括了现在的米家,里面内置了很多厂商,设备可以直接接入HA,如果你的HA网关有蓝牙,也可直接通过蓝牙对接。
下面的介绍,由于我只有一台NAS,并且现在Docker国内被禁用了,我无法再演示HA的下载过程。这一部分我就不写了。安装过程如下
打开NAS的Container Manager
选择homeassistant/home-assistant
唯一注意的是网络配置这里,要选择host,你如果有公网ip在外面直接就可以访问了
其他的就是一路下一步,安装完以后。直接浏览器打开NAS的ip地址。
他会叫你配置,你可配置也可不配置。
输入地址 http:// [yourip]:8123,例如我的192.168.124.4:8123,进入后面登录页面
我记得账号密码可以是nas的账号密码
登录以后,需要配置MQTT,
配置-设备与服务-右下角添加集成,搜素MQTT
添加完成了以后,对配置相应的MQTT地址,账号密码即可。
MQTT服务安装完成登录以后如下。
1、连接wifi
char ssid[] = "CMCC-NxAn";
char pass[] = "mhcsm2m4";
void setup() {
Serial.begin(9600);
while (!Serial) {
}
Serial.print("Attempting to connect to WPA SSID: ");
Serial.println(ssid);
while (WiFi.begin(ssid, pass) != WL_CONNECTED) {
Serial.print(".");
delay(5000);
}
Serial.println("\nYou're connected to the network");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
Serial.print("Gateway IP: ");
Serial.println(WiFi.gatewayIP());
Serial.print("Subnet Mask: ");
Serial.println(WiFi.subnetMask());
Serial.println();
}
void loop() {
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
delay(1000);
}
1、路由器中可以看到连接的设备
2、串口打印出获取到的ip地址
说明wifi连接成功
利用MQTT协议接入到开源的智能家居平台HA(HomeAssistant)
这个问题,在没用过HA和没人指导加上英文不好的情况下真的很难搞,但是看懂了就很简单了。
HA MQTT接入说明
因为自己做的设备,没有在HA上有品牌注册,所以需要让HA知道你的设备。我看到是说有2种办法。
1、修改配置文件YAML(我的NAS这一步无法实现。这个配置文件我试了好大一圈,可能我没看懂英文吧,单身事在是没办法,我用ssh连接到nas的linux,也无法找到对应的文件)所以这个方法被我放弃了。
2、发布相应的设备发现主题,让HA知道有一台设备要接入。(这个办法是我看下来可以使用的,但是资料里面都说的摸棱两可)后面发现是被是用的是这种办法。
按照规则Publish json数据,HA就可以识别到设备了。
继续调整代码,让HA发现Arduino UNO Device
添加到仪表盘就可以在HA中看到这个设备并且当又数据进来的时候就可以看到详细的数据情况。