本帖最后由 sxjml 于 2020-3-19 02:01 编辑
遇到的需求:有两个地方都有HA,A地有个HA,B地有个HA,想让A地作为主HA,再A地的HA里面实时显示B地HA的传感器数值
现状:两地HA都是电信大内网,宽带获取到没公网ip,没法映射
找了半天,愣是没找到,ha的官方坛子里面找了下似乎有个第三方插件可以解决,但又担心升级后挂掉~而且还得外网ip
然后就想,能否给外网扔个mqtt服务器,让俩ha都接入这个mqtt,然后就在官方主页找mqtt的相关说明,结果还是找到了一个,算是很简单解决这个问题!
我是这样做的:
先搞了个便宜的云服务器,国外的,反正是测试,装了个mqtt服务(先用的是emq测试,这个很容易装)
B地里面有温度传感器平均值、湿度传感器平均值、nh3传感器这三个传感器都需要在A地的HA里面显示,我是这样干的
B地的HA里面configuration.yaml增加了配置
mqtt_statestream:
base_topic: xiwang
include:
entities:
- sensor.xwtempmean
- sensor.xwhummean
- sensor.nh3sensor
publish_attributes: true
publish_timestamps: true
mqtt:
broker: 公网mqtt服务器地址
port: 1883
username: 用户名
password: 密码
A地的HA里面configuration.yaml增加了配置
mqtt:
broker: 公网mqtt服务器地址
port: 1883
username: 用户名
password: 密码
sensor:
- platform: mqtt
state_topic: "xiwang/sensor/xwtempmean/mean"
name: "xw temp"
unit_of_measurement: '°C'
- platform: mqtt
state_topic: "xiwang/sensor/xwhummean/mean"
name: "xw hum"
unit_of_measurement: '%'
- platform: mqtt
state_topic: "xiwang/sensor/nh3sensor/state"
name: "xw nh3"
unit_of_measurement: 'ppm'
经过这样配置就A地的HA就能显示出来B地的传感器了数值了,大概目测了一下,肉眼观察数字几乎无延迟。
至于这个mqtt那串state_topic: "xiwang/sensor/nh3sensor/state“看起来像地址”是啥,我是用mqtt.fx测试出来的,我也不是很明白,总之就是解决了,至于开关什么的,我也没有,暂时也没这个需求,应该类似都能实现吧~
参考资料:
https://www.home-assistant.io/integrations/mqtt_statestream/
https://www.home-assistant.io/integrations/sensor.mqtt/
https://www.home-assistant.io/docs/mqtt/broker
http://mqttfx.jensd.de/index.php/download
|