
Создаем кастомный сенсор. Web HOMEd - Custom - Add
Name = имя сенсора
ID = id сенсора
Exposes = cpuidle, cpuuse, freemem, diskused, diskfree, diskusedpers
Options = {"cpuidle":{"unit":"%"},"cpuuse":{"unit":"%"},"diskfree":{"unit":"MiB"},"diskused":{"unit":"MiB"},"diskusedpers":{"unit":"%"},"freemem":{"unit":"MiB"}}
В Exposes создаем все сенсоры за которыми будем наблюдать, а в Options задаем величины в которых эти сенсоры измеряются.
Если требуется накопительная статистика (а мы же хотим видеть графики), то в рекордере создаем записи для каждой сущности. Web HOMEd - Recorder - Add
Создаем файл shell-скрипта:
#!/bin/sh
# Mini System Monitor для HOMEd - запрашивает инфу о CPU, RAM, ROM и обновляет
# custom sensor в HOMEd установленном на OpenWRT
# Free Memory
freemem=`free -h |grep Mem | awk -F ' ' '{print $4}'`
freemem_k=$(( $freemem / 1024 ))
#echo $freemem
#echo $freemem_k
# CPU idle
cpuidle=`top -n1 | head -n2 |grep CPU | awk -F ' ' '{print $8}' | sed 's/%//'`
#echo $cpuidle
# CPU use
cpuuse=$(( 100 - $cpuidle ))
#echo $cpuuse
# disk /dev/root
dskf=`df -m |grep /dev/root`
#echo $dskf
diskused=$(echo $dskf | cut -d " " -f 3)
#echo $diskused
diskfree=$(echo $dskf | cut -d " " -f 4)
#echo $diskfree
diskusedpers=$(echo $dskf | cut -d " " -f 5 | sed 's/%//')
#echo $diskusedpers
mosquitto_pub -h localhost -p 1883 -t homed/fd/custom/gwt360sysmon -m "{\"cpuidle\":$cpuidle,\"cpuuse\":$cpuuse,\"freemem\":$freemem_k,\"diskused\":$diskused,\"diskfree\":$diskfree,\"diskusedpers\":$diskusedpers}" -u "homed" -P "pass_mqtt_homed"
переменные в коде:
-h localhost -p 1883
- адрес и порт mosquitto брокера (mqtt)
-t homed/fd/custom/gwt360sysmon
- топик mqtt куда кладем данные
-u "homed" -P "pass_mqtt_homed"
- логин пароль от mqtt
Даем права на выполнение скрипта chmod +x
Создаем автоматизацию, которая дергать наш файл скрипта с заданной периодичностью. Web HOMEd - Automation - Add
:
Trigger = interval - срабатывать каждые 5 минут
Actions = выполнить shell команду - запустить наш скрипт