Duke Yin's Technology database

OpenWRT 通过MQTT汇报CPU温度

目标是发送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

发布评论

评论

标注 * 的为必填项。