openHAB, leer temperatura CPU mqtt
Buenas a todos comenzando con una serie de articulos breves y utiles vamos a ver como podemos leer la temperatura del CPU de nuestra Raspberry PI y publciar el valor por MQTT en openHAB 2.4
Requermientos:
Para poder utilizar este script es necesario tener instalado openHAB 2.4 sobre una raspberry PI, utilizar un broker MQTT en mi caso Mosquitto paquetes de servidor y clientes y los archivos de openHAB utilizan la sintaxis del MQTT Binding (1.x)
Ahora si con todo esto claro vamos a comenzar a crear los archivos necesarios para poder tener la temperatura de nuestra Raspberry PI,
El primer archivo que vamos a crear sera /etc/openhab2/scripts/cpu_mqtt.sh con el siguiente contenido:
#!/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
Al ejecutarlo se obtiene el siguiente resultado:
Para que nuestro indicador se actualice debemos crear una regla creando el siguiente archivo /etc/openhab2/rules/cpu_tmp.rules
(en mi ejeplo se actualiza el indicador cada 5 minutos)
rule "CPU TEMP - Inicio"
when
System started
then
executeCommandLine("sudo /etc/openhab2/scripts/cpu_tmp_mqtt.sh")
logInfo('Info','Actualizando CPU Temperatura')
end
rule "CPU TEMP"
when
Time cron "0 0/5 * * * ?" // Actualizacion cada 5 minutos
then
executeCommandLine("sudo /etc/openhab2/scripts/cpu_tmp_mqtt.sh")
logInfo('Info','Actualizando CPU Temperatura')
end
Para poder sumar la temperatura del CPU de nuestra Raspberry PI es necesario crear lo siguiente en el archivo /etc/openhab2/items/cpu_tmp.items
Number CPU_TMP "Temperatura CPU[%.1f]" {mqtt="<[broker:rpi3/cpu_tmp:state:default]"}
Por utlimo para poder la temperatura en nuestro sitemap tenemos que agregar la siguiente linea:
Text item=CPU_TMP label="Temperatura: " icon="temperature_cold"
Ejemplo en sitemap aplicacion iOS:
Espero les sea de utilidad!
Saludos!