咸鱼上淘了个360T7路由器,wifi6 3000M.,,,按照这个帖子原理,你可以把openwrt的想要的信息都接入过来,依葫芦画瓢就行了。
到手刷了openwrt的固件,怎么刷固件就不说了,反正恩山上大把帖子。
然后就是怎么把数据接入到hass了。
灵感来源于https://bbs.hassbian.com/thread-3517-1-1.html囧大的这个帖子,不过囧大的这个帖子有个麻烦点,需要创建一个input_number:中转一下麻烦。
于是自己研究了一下
创建了一个shell脚本,如下内容将脚本里面的ip换成自己的hass服务器的ip
run.sh
(626 Bytes, 下载次数: 10)
#!/bin/sh
temp_cpu=$(cat /sys/devices/virtual/thermal/thermal_zone0/temp | awk '{print $1/1000}')
temp_24g=$(iwpriv ra0 stat |grep CurrentTemperature | sed -e 's/[^0-9]//g' | tr -d "\n")
temp_5g=$(iwpriv rai0 stat |grep CurrentTemperature | sed -e 's/[^0-9]//g' | tr -d "\n")
cpuload_1m=$( cat /proc/loadavg | awk '{print $1}' | sed 's/,//')
post_data="{"temp_cpu":$temp_cpu, "temp_24g":$temp_24g, "temp_5g":$temp_5g, "cpuload_1m":$cpuload_1m}"
#echo $post_dataecho $post_data
curl --header "Content-Type: application/json" --request POST --data "$post_data" http://10.18.20.136:7123/api/webhook/openwrt-webhook-id
上传到路由器的/root目录下
然后再计划任务里面添加一个任务
* * * * * /root/run.sh
在hass里面添加配置
openwrt_temp.yaml
(583 Bytes, 下载次数: 16)
template:
- trigger:
- platform: webhook
webhook_id: openwrt-webhook-id
sensor:
- name: "openwrt Temperature_CPU"
state: "{{ trigger.json.temp_cpu }}"
unit_of_measurement: °C
- name: "openwrt Temperature_24G"
state: "{{ trigger.json.temp_24g }}"
unit_of_measurement: °C
- name: "openwrt Temperature_5G"
state: "{{ trigger.json.temp_5g }}"
unit_of_measurement: °C
- name: "openwrt cpuload_1m"
state: "{{ trigger.json.cpuload_1m }}"
unit_of_measurement: avg
重启模板实体,等1分钟就能看到数据了
这里要特别安利一下新bing,可以按照你的要求帮你写命令,就问你强不强。
|