Review
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:
- 2 sondes Everspring ST814
- une alarme lumineuse et acoustique SE812-1
- une Vera
- un compte Prowl
- un compte Pachube
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)
endif (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
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 !
Rejoindre le forum pour en discuter


















Bonsoir
Très bon article.
Quand vous dite locaux très distants, ça veut dire combien de mètres? J ai un abris en pierre à 10m de ma maison et impossible d avoir la prise Vera dans le local.
Vous savez comment augmenter cette distance?
Merci
En fait, je parlais de distance en milliers de kilomètres entre moi et ces locaux!
Par contre, la portée entre les modules ST814 et la Vera peut varier en fonction de la distance bien sûr mais surtout de la présence de murs. La portée des modules ZWave est typiquement de 30m environ sans obstacles. Sachez aussi que certains modules font office de répéteur de signal.
Dans votre cas, 10m et 2 murs par exemple, peut affaiblir trop le signal. Il faudrait essayer de mettre entre-deux un module intermédiaire.
Bonjour
Merci pour votre reponce.
J ai essayé, mais rien a faire, après je suis obligé de placer un module dehors sans abris.
Je ne sais pas comment le signal émet enfermé dans une boite étanche. :-)
Dernier article de Mika:pb pour effacer un fichier.sparsebundle dans la time
Dans une boite en PVC, pas de problème en principe. J'ai plusieurs modules installé de cette façon.