Aller au contenu principal

Intégration domotique OpenSprinkler, gratuite et open source

Intégration OpenSprinkler pour Gladys Assistant

Arrosage OpenSprinkler : stations, programmes, délai de pluie et capteurs, en réseau local.

Pilotez votre programmateur d'arrosage OpenSprinkler ou OpenSprinkler Pi depuis Gladys, en réseau local : voyez quelles stations arrosent et pour combien de temps, arrosez un massif tout de suite, lancez un programme, suspendez le calendrier avec un délai de pluie, lisez les capteurs de pluie, de sol et de débit.

Développée sans le matériel : vos retours sont les bienvenus. Cette intégration a été écrite d'après la documentation de l'API OpenSprinkler et des réponses enregistrées sur le firmware officiel (version Demo), pas sur un contrôleur physique. Dites ce qui marche et ce qui ne marche pas sur GitHub.

Cette intégration n'est pas affiliée à OpenSprinkler ni à OpenThings Inc.

Prérequis​

  • Un contrôleur OpenSprinkler (2.x, 3.x, 4.x) ou OpenSprinkler Pi avec un firmware 2.x (2.1.9 ou plus récent conseillé, éprouvé sur la 2.2.1(6)).
  • Le contrôleur et Gladys sur le même réseau local. L'intégration parle directement au contrôleur (pas de cloud, pas de compte OpenThings Cloud).
  • Le mot de passe de l'appareil : celui que vous tapez dans l'application OpenSprinkler (par défaut : opendoor).
  • Gladys 5.2.0 ou plus récent (les boutons du widget ouvrent des formulaires).

Configuration​

Dans Gladys, allez dans Intégrations → OpenSprinkler → Configuration :

  • Adresse : l'adresse IP ou le nom du contrôleur, par exemple 192.168.1.20. Ajoutez :port si le serveur web n'écoute pas sur le port 80 (un OpenSprinkler Pi écoute souvent sur :8080). Donnez au contrôleur une adresse IP fixe dans votre box.
  • Mot de passe de l'appareil : le mot de passe de l'application OpenSprinkler. Il est envoyé au contrôleur sous forme de hachage MD5, comme le fait l'application officielle, et n'est jamais écrit dans les journaux.
  • Nom (facultatif) : le nom de l'appareil dans Gladys ; vide, c'est le nom réglé sur le contrôleur.
  • Jusqu'à trois contrôleurs (deuxième et troisième sections).
  • Intervalle de rafraîchissement : 30 secondes ou 1 minute. Le contrôleur est aussi relu juste après chaque commande.
  • Durée d'arrosage d'un interrupteur de station : combien de temps une station arrose quand vous allumez son interrupteur dans Gladys (10 minutes par défaut). Le contrôleur l'arrête lui-même à la fin.
  • Unité du débit par impulsion : litres ou gallons US, l'unité du volume par impulsion réglé dans les options d'OpenSprinkler (seulement avec un débitmètre).
  • Langue des noms de fonctionnalités : les noms donnés aux fonctionnalités à l'ajout de l'appareil, et les textes des événements de scène.

Utilisez ensuite Tester la connexion : l'intégration lit chaque contrôleur et indique son firmware, ses stations et ses programmes. Ouvrez enfin l'onglet Découverte et ajoutez le contrôleur à Gladys.

Appareils et fonctionnalités​

Un appareil par contrôleur, identifié par son adresse MAC : changer son adresse IP ou sa place dans la configuration garde l'appareil et son historique.

FonctionnalitéTypeRôle
Contrôleur activéinterrupteurActive ou désactive le fonctionnement du contrôleur (aucun programme ne tourne quand il est désactivé).
Un interrupteur par station, au nom de la stationinterrupteurAllumé pendant que la station arrose. L'allumer arrose la station pendant la durée configurée ; l'éteindre l'arrête.
Programme : …interrupteurAllumé tant que le programme est actif. L'éteindre désactive le programme (il ne tourne plus selon son calendrier).
Niveau d'arrosageniveau (%)Le pourcentage d'arrosage appliqué aux programmes (0 à 250 %), réglé par l'ajustement météo ou à la main.
Délai de pluiedurée (heures)Les heures restantes avant que les programmes reprennent, 0 sans délai de pluie.
Capteur de pluiedétecteur de pluieSeulement avec un capteur de pluie sur une entrée capteur : 1 quand la pluie est détectée.
Capteur de sol (humide)entréeSeulement avec un capteur de sol : 1 quand le sol est humide.
Débit d'eaudébit (m³/h)Seulement avec un débitmètre : le débit actuel.
Compteur d'eauvolume (litres)Seulement avec un débitmètre : l'eau consommée depuis l'ajout de l'appareil. Le contrôleur compte les impulsions depuis sa mise sous tension ; l'intégration les additionne d'un redémarrage à l'autre et garde le total dans /data.

Les noms sont figés à l'ajout de l'appareil. Une station renommée, un programme ajouté ou un capteur branché plus tard : l'onglet Découverte propose Mettre à jour pour l'appareil.

Les stations maîtres (pompe, vanne maîtresse) apparaissent comme les autres et montrent quand elles tournent, mais ne se lancent pas seules : le contrôleur les ouvre avec les stations qu'elles desservent.

Widget de tableau de bord​

Ajoutez le widget OpenSprinkler à un tableau de bord (choisissez le contrôleur dans ses réglages, ou laissez vide pour le premier). Il montre :

  • le Niveau d'arrosage, le Délai de pluie et le Débit d'eau (avec un débitmètre) en tuiles ;
  • l'état du contrôleur (Au repos, Arrosage en cours, En pause, Désactivé, délai de pluie), le capteur de pluie quand il détecte la pluie, et chaque station qui arrose avec son temps restant ou qui attend son tour ;
  • quatre boutons : Arroser… (choisir une station et une durée), Programme… (choisir un programme, avec ou sans le niveau d'arrosage), Tout arrêter (demande confirmation) et Délai de pluie… (un nombre d'heures), qui devient Annuler le délai pendant un délai de pluie.

Déclencheurs de scène​

  • Station OpenSprinkler terminée : une station a fini d'arroser. Filtres : le contrôleur, et ce qui l'avait lancée (arrosage manuel, calendrier d'un programme, ou programme lancé à la main / programme unique). Variables : le numéro et le nom de la station, la durée d'arrosage en minutes, ce qui l'avait lancée, le nom du contrôleur.
  • OpenSprinkler injoignable : le contrôleur ne répond plus sur le réseau (deux lectures de suite). Variables : le nom du contrôleur et la raison.

Actions de scène​

  • Arroser une station OpenSprinkler : ouvre une station (numéro 1 = la première) pendant un nombre de minutes (1 à 1080), à la suite des stations qui arrosent déjà.
  • Arrêter l'arrosage OpenSprinkler : arrête toutes les stations qui arrosent ou attendent.
  • Lancer un programme OpenSprinkler : lance un programme maintenant (numéro 1 = le premier), avec ou sans le niveau d'arrosage. Ce qui arrose s'arrête et le programme prend la suite.
  • Régler le délai de pluie OpenSprinkler : suspend les programmes pendant un nombre d'heures (0 à 720 ; 0 annule le délai).

Exemples de scènes​

  • La pluie arrive : quand votre intégration météo lève une alerte de pluie, Régler le délai de pluie OpenSprinkler à 24 heures.
  • Arroser le potager depuis la tablette murale : le bouton Arroser… du widget, ou une scène lancée par un bouton qui exécute Arroser une station OpenSprinkler pendant 15 minutes.
  • Compte rendu d'arrosage : sur Station OpenSprinkler terminée, envoyer un message « {{triggerEvent.data.station_name}} a arrosé {{triggerEvent.data.duration_minutes}} min ».
  • Les enfants jouent dans le jardin : quand une présence est détectée dans le jardin, Arrêter l'arrosage OpenSprinkler.
  • Contrôleur hors ligne : sur OpenSprinkler injoignable, envoyer une notification.

Dépannage​

  • « ne répond pas » : vérifiez l'adresse et le port (ouvrez http://<adresse> dans un navigateur : la page OpenSprinkler doit s'afficher). L'intégration tourne dans un conteneur Docker : le contrôleur doit être joignable depuis le serveur Gladys.
  • « mot de passe refusé » : retapez le mot de passe de l'application OpenSprinkler (sensible à la casse). Celui d'usine est opendoor.
  • « aucun OpenSprinkler à cette adresse » : quelque chose répond à cette adresse, mais pas l'API OpenSprinkler (un autre appareil, une page web).
  • Un interrupteur de station se rééteint tout seul : le contrôleur a refusé l'arrosage. Une station qui arrose ou attend déjà, une station maître ou un contrôleur désactivé ne se lancent pas ; le message d'erreur dit lequel.
  • Plus de détails : réglez la variable d'environnement LOG_LEVEL sur debug dans les réglages de l'intégration ; les journaux montrent alors chaque lecture. Ils ne contiennent jamais le mot de passe.

Limites​

  • Fréquence de lecture et charge du contrôleur : le contrôleur (un ESP8266 sur l'OpenSprinkler 2.3 / 3.x) sert une requête à la fois. L'intégration le lit toutes les 30 secondes ou toutes les minutes par une seule requête /ja (cinq requêtes sur les firmwares antérieurs à 2.1.6, envoyées l'une après l'autre), plus une lecture après chaque commande. Aucun service cloud n'est utilisé, donc aucun quota ; ne descendez pas sous 30 secondes.
  • Les stations et les programmes sont identifiés par leur numéro sur le contrôleur, seul identifiant que donne l'API : supprimer ou réordonner des programmes dans l'application OpenSprinkler décale les interrupteurs de programme (les noms restent ceux de la création jusqu'à Mettre à jour).
  • Un programme lancé à la main tourne comme un programme « unique » (run-once) sur le contrôleur : son interrupteur montre seulement s'il est actif, et le déclencheur « station terminée » le signale comme lancé à la main.
  • Le déclencheur station terminée lit le dernier arrosage terminé du contrôleur à chaque lecture : quand deux stations finissent entre deux lectures, seule la dernière est signalée.
  • Le compteur d'eau part de 0 à l'ajout de l'appareil, et perd l'eau consommée pendant un arrêt de l'intégration qui couvre un redémarrage du contrôleur.
  • Les capteurs étendus (capteurs analogiques du firmware 2.2.1), les stations spéciales et l'édition des programmes ne sont pas gérés : utilisez l'application OpenSprinkler.
  • L'intégration parle HTTP au contrôleur, comme l'application officielle en réseau local ; le hachage du mot de passe circule en clair sur le réseau local.

Paramètres de configuration​

Voici les paramètres demandés par OpenSprinkler dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Votre OpenSprinklersectionNonOpenSprinkler ou OpenSprinkler Pi avec un firmware 2.x, sur votre réseau local. Jusqu'à trois contrôleurs.
AdressestringOuiAdresse IP ou nom du contrôleur, avec :port s'il n'est pas 80 (OpenSprinkler Pi : souvent :8080).
Mot de passe de l'appareilsecretNonLe mot de passe de l'application OpenSprinkler (par défaut : opendoor). Envoyé au contrôleur sous forme de hachage MD5.
NomstringNonNom de l'appareil dans Gladys. Vide : le nom réglé sur le contrôleur.
Deuxième OpenSprinkler (facultatif)sectionNonLes mêmes champs, pour un autre contrôleur de votre réseau.
AdressestringNonAdresse IP ou nom du contrôleur, avec :port s'il n'est pas 80 (OpenSprinkler Pi : souvent :8080).
Mot de passe de l'appareilsecretNonLe mot de passe de l'application OpenSprinkler (par défaut : opendoor). Envoyé au contrôleur sous forme de hachage MD5.
NomstringNonNom de l'appareil dans Gladys. Vide : le nom réglé sur le contrôleur.
Troisième OpenSprinkler (facultatif)sectionNonLes mêmes champs, pour un autre contrôleur de votre réseau.
AdressestringNonAdresse IP ou nom du contrôleur, avec :port s'il n'est pas 80 (OpenSprinkler Pi : souvent :8080).
Mot de passe de l'appareilsecretNonLe mot de passe de l'application OpenSprinkler (par défaut : opendoor). Envoyé au contrôleur sous forme de hachage MD5.
NomstringNonNom de l'appareil dans Gladys. Vide : le nom réglé sur le contrôleur.
OptionssectionNon
Intervalle de rafraîchissementselectNonFréquence de lecture des contrôleurs. Ils sont relus juste après chaque commande.
Durée d'arrosage d'un interrupteur de stationselectNonAllumer une station dans Gladys l'arrose pendant cette durée, puis le contrôleur l'arrête.
Unité du débit par impulsionselectNonSeulement avec un débitmètre : l'unité du volume par impulsion réglé dans les options d'OpenSprinkler.
Langue des noms de fonctionnalitésselectNonNoms donnés aux fonctionnalités à l'ajout d'un appareil, et textes des événements de scène.

Comment installer OpenSprinkler dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : OpenSprinkler apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/guim31/gladys-opensprinkler:1.0.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/guim31/gladys-opensprinkler.

OpenSprinkler nécessite Gladys >=5.2.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

OpenSprinkler est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par guim31, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂