目标是发送OpenWRT的CPU温度数据给HomeAssistant。需要准备HomeAssitant的IP地址、MQTT用户名、密码。
连接OpenWRT的SSH,
安装MQTT客户端:
opkg update
opkg install mosquitto-client-nossl
新建一个sh脚本:
touch /root/report_cpu_temp.sh
利用你熟悉的编辑器vi 或nano 对这个文件内容进行编辑:
#!/bin/sh
MQTT_HOST="192.168.2.123"
MQTT_PORT="1883"
MQTT_USER="mqtt"
MQTT_PASS="你的密码"
TEMP=$(awk '{printf "%.1f",$1/1000}' /sys/class/thermal/thermal_zone0/temp)
mosquitto_pub \
-h "$MQTT_HOST" \
-p "$MQTT_PORT" \
-u "$MQTT_USER" \
-P "$MQTT_PASS" \
-r \
-t "openwrt/cpu_temp" \
-m "{\"temperature\":$TEMP}"
其中192.168.2.123是HomeAssistant局域网IP,改成你自己的。
改脚本权限为可执行,然后发送一次,看看HomeAssistant能不能收到:
chmod +x /root/report_cpu_temp.sh
/root/report_cpu_temp.sh
如果正常,就加入定时任务:
crontab -e
每30秒发送一次:
* * * * * /root/report_cpu_temp.sh
* * * * * sleep 30;/root/report_cpu_temp.sh
重启cron:
/etc/init.d/cron restart