Comme beaucoup de possesseurs du plugin OpenSprinkler l’ont constaté, ce dernier n’est plus fonctionnel depuis plusieurs versions mineures de Jeedom. En attendant OpenSprinkler et sa correction qui permettra de le réutiliser, et suite à la demande d’un membre du forum, je vais partager ce que j’ai fait pour quand même pouvoir piloter les électro-vannes de mon arrosage sans le plugin.
Le script pour les vannes OpenSprinkler
Il faut donc utiliser le plugin script pour pouvoir faire une requête HTTP afin de demander à OpenSprinkler d’ouvrir une vanne en particulier pendant un temps déterminé.
J’ai donc créé deux commandes:
“start” qui appelle la requête permettant d’ouvrir la vanne choisie sur base de l’ID grâce à l’argument sid et le temps grâce à l’argument t. Le type est Action / Message. Cela permettra par le scénario d’envoyer l’ID de la vanne et le temps à l’exécution de la commande script.
http://ipduopensprinkler/cm?pw=votremotdepasseconvertienmd5&sid=#title#&en=1&t=#message#
“stop” qui appelle la requête permettant de stopper une vanne. La première commande doit normalement fermer automatiquement la vanne après le temps déterminé mais j’ai préféré aussi créer une commande pour stopper d’urgence si nécessaire
http://ipduopensprinkler/cm?pw=votremodedepasseconvertienmd5&sid=#title#&en=0
Le virtuel pour le visuel du OpenSprinkler
J’ai ensuite créé un virtuel en utilisant le plugin virtuel pour pouvoir afficher l’état de mes vannes. J’ai un peu triché car je ne suis pas arrivé à récupérer le statut de la vanne convenablement et cela ne se met pas à jour. J’ai préféré faire cela via scénario pour “simuler” l’ouverture et la fermeture sur mon design
Il y a 3 vannes actives chez moi. J’ai donc créé une commande par vanne plus une commande pour le retard de pluie que je gère via un scénario en fonction de mon capteur d’humidité et le plugin météo.
Les modes pour le temps d’arrosage
J’ai également créé des modes avec le plugin mode afin de multiplier le temps d’arrosage par 2 ou par 3 en fonction de l’état de la pelouse car l’humidité est une chose mais il arrive que certains endroits de la pelouse sont moins humides que d’autres. Je choisis manuellement d’augmenter le temps d’arrosage par le biais du mode.
A chaque changement de mode, je joue sur la variable PONDERATION_ARROSAGE que j’utilise pour multiplier le temps d’arrosage.
Les scenarii
Le premier scénario est celui qui détermine le temps d’arrosage. Je ne vais pas le détailler ici car il est assez long et est propre à mon environnement. En résumé, il assigne une valeur en secondes une variable qui sera utilisée dans le scénario qui exécutera l’ouverture des vannes. Il sera provoqué par une changement du mode, du retard de pluie
Le second scénario est celui qui ouvrira les vannes de manière séquentielle, donc une après les autres.
J’utilise la fonction event pour mettre à 1 au début de l’ouverture et puis 0 à la fin du cycle.
Cette méthode fonctionne très bien en attendant OpenSprinkler et me permet de récupérer l’interface entre Jeedom et ce dernier.
Je rajoute le lien vers l’API d’OpenSprinkler pour ceux qui veulent aller un peu plus loin.
Publié le 27 juillet 2019
Mis à jour le 8 septembre 2022
hello,
Merci pour ton blog que je découvre, c’est du très bon boulot.
J’ai une question sur OpenSprinkler et Jeedom, mais plus orienté OS :
Dans station/advanced/http, je crée une commande on/off avec dans les champs server, on et off le chemin qui va bien :
Server : jeedom
On : /core/api/jeeApi.php?apikey=xxxxxxxxx&type=cmd&id=xxxxxxx
On : /core/api/jeeApi.php?apikey=xxxxxxxxx&type=cmd&id=xxxxxxx
et bien ca ne lance pas le virtuel….. (alors que ca fonctionne à parti d’un navigateur)
La ou je sèche c’est que j’ai un retour 400 lorsque je fais un TCPDUMP :
09:16:43.311506 IP opensprinkler.caz.65158 > jeedom.caz.http: Flags [S], seq 4463764, win 2144, options [mss 536,nop,nop,sackOK], length 0
09:16:43.311540 IP jeedom.caz.http > opensprinkler.caz.65158: Flags [S.], seq 1449089032, ack 4463765, win 29200, options [mss 1460,nop,nop,sackOK], length 0
09:16:43.313883 IP opensprinkler.caz.65158 > jeedom.caz.http: Flags [.], ack 1, win 2144, length 0
09:16:43.325325 IP opensprinkler.caz.65158 > jeedom.caz.http: Flags [P.], seq 1:94, ack 1, win 2144, length 93: HTTP: GET /core/api/jeeApi.php?apikey=sssssssssss&type=cmd&id=sssssss HTTP/1.0
09:16:43.325355 IP jeedom.caz.http > opensprinkler.caz.65158: Flags [.], ack 94, win 29200, length 0
09:16:43.325511 IP jeedom.caz.http > opensprinkler.caz.65158: Flags [P.], seq 1:514, ack 94, win 29200, length 513: HTTP: HTTP/1.1 400 Bad Request
09:16:43.325537 IP jeedom.caz.http > opensprinkler.caz.65158: Flags [F.], seq 514, ack 94, win 29200, length 0
09:16:43.328306 IP opensprinkler.caz.65158 > jeedom.caz.http: Flags [R.], seq 94, ack 515, win 24584, length 0
Et ca m’énérve !!!!! :):)
Tu pourrais tester de ton coté voir si c mon firmware d’OS qui poserait problème ?
Thanks