sMug@replicatorbe
~/Publications/Domotique/vera-relever-temperature-et-humidite-en-luup

Vera : relever température et humidité en LUUP

Domotique / /2 min de lecture

Lire la température et l'humidité de plusieurs capteurs sur une box Vera, en LUUP, et pousser les valeurs vers un script PHP externe. Avec l'avertissement qui compte : ne pas confier la planification à la box.

Note ajoutée depuis : le plus ancien billet domotique de ces archives, et celui qui date le début de l'installation — en mai 2015, elle tournait sous Vera. Huit mois plus tard je basculais sur Jeedom, notamment pour les raisons décrites ici.

Vous trouverez dans ce sujet un exemple de code de relevé de température et du taux d'humidité de différents capteurs :

luup.variable_get ("urn:upnp-org:serviceId:TemperatureSensor1", "CurrentTemperature", device)
luup.variable_get ("urn:micasaverde-com:serviceId:HumiditySensor1", "CurrentLevel", device)

Remplacez device par le numéro de votre périphérique-capteur.

Code LUUP :

-- Id du device dans cet exemple 37
local temp_ambiante = luup.variable_get ("urn:upnp-org:serviceId:TemperatureSensor1", "CurrentTemperature", 37) or 0
    -- On transforme le retour en nombre
    local temp_ambiante = tonumber(temp_ambiante)

-- Id du device dans cet exemple 41
local temp_ambiante1 = luup.variable_get ("urn:upnp-org:serviceId:TemperatureSensor1", "CurrentTemperature", 41) or 0
    -- On transforme le retour en nombre
    local temp_ambianteX = tonumber(temp_ambiante1)

-- Id du device dans cet exemple 51
local temp_ambiante2 = luup.variable_get ("urn:upnp-org:serviceId:TemperatureSensor1", "CurrentTemperature", 51) or 0
    -- On transforme le retour en nombre
    local temp_ambianteY = tonumber(temp_ambiante2)

-- On récupère le taux d'humidité du capteur device 53 dans cet exemple :
local temp_hum = luup.variable_get ("urn:micasaverde-com:serviceId:HumiditySensor1", "CurrentLevel", 53) or 0
    -- On transforme le retour en nombre
    local temp_hum1 = tonumber(temp_hum)

-- et dans cet exemple-ci, on envoie plusieurs requêtes PHP sur un script externe

luup.inet.wget('http://192.168.0.16/sqltemp.php?action='..temp_hum1..'&periph=53')
luup.inet.wget('http://192.168.0.16/sqltemp.php?action='..temp_ambiante..'&periph=37')
luup.inet.wget('http://192.168.0.16/sqltemp.php?action='..temp_ambianteX..'&periph=41')
luup.inet.wget('http://192.168.0.16/sqltemp.php?action='..temp_ambianteY..'&periph=51')

return true

Remarque importante : je vous déconseille de lancer un cron température toutes les xxx minutes/heures via la box Vera. La box Vera gère difficilement les crons et par conséquent plante sévèrement (c'est-à-dire que vous allez devoir réaliser une opération de maintenance assez importante pour tenter de récupérer votre box).