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 la version de openHAB y raspbian (oh_version_mqtt.sh)
Items para mostrar en nuestro sitemap (oh_version.items)
Regla para tomar los datos cada 59 minutos (oh_version.rule)
Sitemap para mostrar nuestros items (oh_version.sitemap)
creamos el script en la carpeta /etc/openhab2/scripts/oh_version_mqtt.sh
#!/bin/bash
cd /etc/openhab2/scripts
echo 'Ejecutando script....'
cmd=$(openhab-cli info | grep Version | sed -e 's/Version://g' | sed -e 's/(Build)//g')
echo 'Version openHAB:' $cmd
mosquitto_pub -h 127.0.0.1 -p 1883 -t 'openhab_server/OHVersion' -m $cmd
cmd=$(cat /etc/debian_version)
echo 'Version Raspbian:' $cmd
mosquitto_pub -h 127.0.0.1 -p 1883 -t 'openhab_server/RBVersion' -m $cmd
Ahora cremos los items /etc/openhab2/scripts/oh_version.items
String OH_Version "openHAB Version: [%s]" {mqtt="<[broker:openhab_server/OHVersion:state:default]"}
String RB_Version "Raspbian Version: [%s]" {mqtt="<[broker:openhab_server/RBVersion:state:default]"}
Cremos la regla para que se actualice cada 59 minutos /etc/openhab/rules/oh_version.rule
rule "OH_Version Actualizacion"
when
Time cron "0 0/59 * * * ?" // Cada 59 Minutos
then
logInfo('Info', 'Actualizando Version openHAB')
executeCommandLine("sudo/etc/openhab2/scripts/oh_version_mqtt.sh")
end
Creamos nuestro sitemap /etc/openhab2/scripts/sitemaps/oh_version.sitemap
sitemap oh_version label="Version openHAB - Raspbian" {
Text item=OH_Version icon="keyring"
Text item=RB_Version icon="keyring"
}
Asi se ve nuestro sitemap
Espero les sea de utilidad!!
Saludos