Surveiller les températures à l’aide de modules Z-Wave ST814 et VERA

Il y a quelque semaines, j’ai mis en service une surveillance pour des locaux très distants.

L’idée, c’était d’avoir une possibilité d’adapter facilement la plage de valeurs de température et d’humidité qui déclencherait une alarme optique et sonore sur place, ainsi que d’avoir l’information sur plusieurs « IPhone » des valeurs relevées au moment de l’alerte.

Ce petit article décrit pas-à-pas la mise en pratique de mesure de la température et de l’humidité à l’aide de 2 sondes Everspring ST814, avec enclenchement d’une alarme lumineuse et acoustique SE812-1.

Deux devices virtuels sont créés pour indiquer quelle sonde dépasse les valeurs.

Pour avoir un suivi des températures et d’humidité, nous allons créer des graphiques à l’aide de Pachube.

Et pour finir recevoir des messages Push à l’aide de Prowl.

 

I. Pré requis

 

Pour ce tutorial, nous utiliserons donc:

En premier lieu, les 2 sondes ST814 doivent être inclues dans la Vera ainsi que la sirène SE812-1.

Il faudra ensuite créer deux devices virtuels comme expliqué dans l’article de Cédric sur l’IPX.

Voici la liste des modules utilisés dans cet article (attention, les numéros devront être modifiés selon votre installation):

  •  Sonde 1: 36 (numéro du device général)
  • Sonde 2: 32 (numéro du device général)
  • Alarme: 45
  • Virtuel 1: 46
  • Virtuel 2: 47

II. La gestion des valeurs

 

Cette scène vérifiera périodiquement si les valeurs limites sont atteintes et enclenchera le device virtuel concerné.

Elle enclenchera également la sirène.

Note: Il semblerait que le ST814 envoie les valeurs quand elles se modifient, mais la Vera ne fait l’actualisation que toutes les 30 minutes.

Créez un timer de 5 minutes par exemple qui lancera cette scène périodiquement.

Dans l’onglet Luup entrez le code suivant:

(C’est dans cette scène que vous allez définir les valeurs limites)

— Valeurs limites à définir
— ==========================================================

— Sonde 1
tmax1=23
tmin1=17
hmax1=80
hmin1=45

— Sonde 2
tmax2=15
tmin2=5
hmax2=70
hmin2=50

— ===========================================================

— NE PAS MODIFIER CE QUI SUIT

— (Définition des services)
temp1=luup.variable_get(« urn:upnp-org:serviceId:TemperatureSensor1″, »CurrentTemperature »,36)
temp2=luup.variable_get(« urn:upnp-org:serviceId:TemperatureSensor1″, »CurrentTemperature »,32)
humi1=luup.variable_get(« urn:micasaverde-com:serviceId:HumiditySensor1″, »CurrentLevel »,36)
humi2=luup.variable_get(« urn:micasaverde-com:serviceId:HumiditySensor1″, »CurrentLevel »,32)

— (Déclenche l’alarme en cas de dépassement d’une valeur limite)

— Sonde 1
if ((tonumber(temp1)>=tmax1
or tonumber(temp1)< =tmin1)
or (tonumber(humi1)>=hmax1
or tonumber(humi1)< =hmin1)

— Sonde 2
or (tonumber(temp2)>=tmax2
or tonumber(temp2)< =tmin2)
or (tonumber(humi2)>=hmax2
or tonumber(humi2)< =hmin2))

then
luup.call_action(« urn:upnp-org:serviceId:SwitchPower1″, »SetTarget »,{ newTargetValue= »1″ },45)
else
luup.call_action(« urn:upnp-org:serviceId:SwitchPower1″, »SetTarget »,{ newTargetValue= »0″ },45)
end

— (Activation de la signalisation)
if (tonumber(temp1)>=tmax1
or tonumber(temp1)< =tmin1)
or (tonumber(humi1)>=hmax1
or tonumber(humi1)< =hmin1)
then
luup.call_action(« urn:upnp-org:serviceId:SwitchPower1″, »SetTarget »,{ newTargetValue= »1″ },46)
else
luup.call_action(« urn:upnp-org:serviceId:SwitchPower1″, »SetTarget »,{ newTargetValue= »0″ },46)
end

if (tonumber(temp2)>=tmax2
or tonumber(temp2)< =tmin2)
or (tonumber(humi2)>=hmax2
or tonumber(humi2)< =hmin2)
then
luup.call_action(« urn:upnp-org:serviceId:SwitchPower1″, »SetTarget »,{ newTargetValue= »1″ },47)
else
luup.call_action(« urn:upnp-org:serviceId:SwitchPower1″, »SetTarget »,{ newTargetValue= »0″ },47)
end

III. Envoi des notifications via Prowl

 

Cette scène enverra en cas d’alarme, un message Push sur Prowl avec information des valeurs actuelles des 2 sondes.

Elle sera déclenchée par le module sirène.

Créez un Event similaire à l’image suivante

 

 

Mettre dans l’onglet Luup le code suivant:

luup.inet.wget(« https://prowl.weks.net/publicapi/add?apikey=VOTRE_API_KEY&application=Vera&event=ALARM&description=Sonde+1+ » .. temp1 .. »+°C+ » .. humi1.. »+%RH+__+Sonde+2+ » .. temp2 .. »+°C+ » .. humi2 .. « +%RH&priority=+2 »)

return true

En cas d'alerte voici ce que vous devriez obtenir

 

IV. Envoi des informations à Pachube

 

Si c’est la première fois que vous utilisez Pachube, je vous conseille de voir l’article de Cédric, où tout est bien expliqué.

Ensuite il faut définir 4 scènes afin d’envoyer les valeurs relevées des sondes vers le Feed de Pachube que vous aurez préalablement créé ainsi que les 4 Datastreams (temp1, humi1, temp2, humi2).

 

Scène Envoi temp1

 

Créez un timer de 15 minutes par exemple qui lancera cette scène périodiquement.

Dans l’onglet Luup entrer le code suivant:

my_send_pachube (« Numéro_de_votre_Feed », « Datastream1 », temp1)

return true

Remplacez « Datastream1 » par le nom que vous aurez créé sous Pachube pour la température de la sonde 1.

Les 3 autres scènes sont identiques , n’oubliez pas de remplacer temp1 par respectivement humi1, temp2, humi2 (variables globales définies dans la première scène).

 

 

Vous pouvez voir ci-dessus deux façons différentes d’afficher les graphes.

 

V. Conclusion

 

Au premier contact la Vera peut paraitre compliquée, mais plus on expérimente et plus on remarque une souplesse d’utilisation assez remarquable.

Alors, à vos claviers et ne manquez pas de nous faire part de vos découvertes !


4 Commentaires

      Laisser un commentaire

      Ne ratez plus aucune news !

      Inscrivez vous à notre newsletter, et recevez chaque mois toute l'actualité du blog pour ne plus rien louper: actualité, guides, tutoriaux, concours !

      Merci pour votre inscription !