• Skype for Business - Lync Server
  • Comunicaciones Unificadas (UM)
  • Virtualización
  • Proyectos
  • openHAB, Casa Inteligente y mas...
  • Sobre el autor Guillermo Sanchez (ITSanchez)

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!