openHAB, leer temperatura CPU mqtt

Creado en Martes, 01 Octubre 2019 ƚltima actualizaciĆ³n el Jueves, 17 Octubre 2019 Publicado el Martes, 01 Octubre 2019 Escrito por Guillermo Sanchez
Ratio:  / 1
MaloBueno 

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)

openHAB-MQTT1.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!