En attendant OpenSprinkler

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é.

les deux commandes script de Jeedom

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

création des 3 commandes Jeedom
3 commandes pour chaque vanne et le retard de pluie

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.

gestion des modes pour influer manuellement sur le temps d'arrosage
Mes modes pour gérer manuellement le temps d’arrosage

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.

première partie du scénario pour ouvrir la première vanne via Jeedom
ouverture de la première vanne OpenSprinkler
seconde partie du scénario pour ouvrir la deuxième vanne via Jeedom
ouverture de la seconde vanne OpenSprinkler
dernière partie du scénario pour ouvrir la troisième vanne via Jeedom
ouverture de la troisième vanne OpenSprinkler

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

1 réflexion sur “En attendant OpenSprinkler”

  1. 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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *