Para que el script funcione se deben cumplir los siguientes requerimientos:
Tener instalado openHAB 2.x
Tener instalado mosquitto-server
Tener instalado mosquitto-clients
Utilizar openHAB mqtt Binding 1.x
Tener habilitada la ejecucion de sudo para el usuario openhab
Ahora vamos a poner manos a la obra, para esto vamos a generar lo siguiente:
Script que publica por mqtt CPU y TMP de nuestra raspberry (ver_cpu_tmp_mqtt.sh)
Items para mostrar en nuestro sitemap (cpu_tmp.items)
Regla para tomar los datos cada 1 minuto (cpu_tmp.rule)
Sitemap para mostrar nuestros items (cpu_tmp.sitemap)
creamos el script en la carpeta /etc/openhab2/scripts/cpu_tmp_mqtt.sh
#!/bin/bash
cmd=$(vcgencmd measure_temp | sed 's/temp=//' | sed 's/C//' | sed 's/.$//g')
echo 'Temperatura CPU:' $cmd
mosquitto_pub -h 127.0.0.1 -p 1883 -t 'rpi3/cpu_tmp' -m $cmd
cmd=$(echo $[100-$(vmstat 1 2|tail -1|awk '{print $15}')])
echo 'Carga CPU:' $cmd
mosquitto_pub -h 127.0.0.1 -p 1883 -t 'rpi3/cpu_carga' -m $cmd
Luego creamos los items en la carpeta /etc/openhab2/items/cpu_tmp.items
Number CPU_TMP "Temperatura CPU[%.1f]" {mqtt="<[broker:rpi3/cpu_tmp:state:default]"}
Number CPU_CARGA "Carga CPU[%.1f]" {mqtt="<[broker:rpi3/cpu_carga:state:default]"}
Para que se actualice cada 1 minutos creamos la regla /etc/openhab2/rules/cpu_tmp.rule
rule "CPU TEMP - Inicio"
when
System started
then
executeCommandLine("sudo /etc/openhab2/scripts/ver_cpu_tmp_mqtt.sh")
logInfo('Info','Actualizando CPU Temperatura')
end
rule "CPU TEMP"
when
Time cron "0 0/1 * * * ?" // every 1 minuto
then
executeCommandLine("sudo /etc/openhab2/scripts/ver_cpu_tmp_mqtt.sh")
executeCommandLine("sudo/etc/openhab2/scripts/ver_cpu_tmp_mqtt.sh")
logInfo('Info','Actualizando CPU Temperatura')
end
Por ultimo armamos nuestro sitemap /etc/openhab2/sitemaps/cpu_tmp.sitemap
sitemap cpu_tmp label="Temperatura y uso de CPU" {
Text item=CPU_TMP label="Temperatura: " icon="temperature_cold"
Text item=CPU_CARGA label="Carga CPU: " icon="pie"
}
Asi se ve en el sitemap
Espero les sea de utilidad!!
Saludos