Après vous avoir parlé de mon installation permettant de domotiser mes volets roulants il y a peu, je vous explique maintenant comment j’ai automatisé leurs fonctionnements par rapport aux heures de lever et de coucher du Soleil. Le tutoriel suivant est valable pour la solution Jeedom, mais il y a des chances pour que vous puissiez vous en inspirer pour une autre solution domotique.
Ouvrir et fermer ses volets automatiquement avec le Soleil
Avant même de domotiser mes volets, je savais que pour au moins l’un d’entre eux, à savoir celui de la chambre à l’étage, j’allais faire en sorte qu’il puisse s’ouvrir et se fermer automatiquement. J’ai donc commencé par domotiser ce volet, afin de pouvoir le fermer à distance. Étant donné qu’il peut m’arriver de ne pas aller dans la chambre pendant plusieurs jours, le volet peut alors rester ouvert ou fermé. La domotique vient donc corriger tout ça.
Maintenant que j’ai domotisé mon volet, je peux le contrôler via l’interface de Jeedom, et donc tout faire sans aller spécialement à l’étage. Suite à ça j’ai commencé à chercher comment faire pour que l’ouverture du volet se fasse suite au lever du soleil, et la fermeture suite au coucher.
Après quelques recherches, je suis tombé sur le post suivant sur l’excellent forum de Jeedom qui explique comment récupérer les horaires de lever et de coucher de Soleil. Je me suis également aidé de l’article sur le site de lofurol.fr qui est très complet également.
Récupérer les heures de lever et coucher en fonction de votre domicile
Pour commencer, il faudra vous rendre sur le site https://www.openstreetmap.org afin de récupérer la latitude et la longitude de votre habitation.
Pour cela, il vous faut saisir l’adresse dans le champ de recherche, puis faites un clic droit sur l’emplacement de votre maison, et cliquez sur Afficher l’adresse.
Le site vous indique alors les coordonnées de latitude/longitude dont on se servira bientôt.

Passons maintenant dans Jeedom.
Utilisation du plug-in Virtuel
La première chose à faire dans Jeedom, pour la suite de ce tutoriel, est d’installer le plug-in Virtuel disponible dans le market Jeedom et de l’activer.
Il faut ensuite vous rendre dans Plugins puis Programmation et enfin Virtuel.

On va ensuite cliquer sur Ajouter, et lui donner un nom.
Dans mon cas, je l’ai appelé Soleil mais vous pouvez le nommer comme vous le souhaitez.

Charge à vous ensuite de l’affecter à la catégorie, et à l’objet parent de votre choix. Pensez à activer votre virtuel, et également à définir une auto-actualisation (cron), afin que le virtuel s’exécute tous les jours (dans mon cas, à 3h du matin chaque jour).
Dans les commandes, nous allons ajouter 4 infos virtuelles.

Les deux premières (Lever de Soleil et Coucher de Soleil) vont servir à récupérer les horaires et à les afficher.
Voici les informations à saisir :
- Lever de Soleil :
date_sunrise(#timestamp# ,1,votre latitude,votre longitude,90+35/60,date("Z",#timestamp#)/3600)
- Coucher de Soleil :
date_sunset(#timestamp# ,1,votre latitude,votre longitude,90+35/60,date("Z",#timestamp#)/3600)

Si vous voulez en savoir plus sur la commande, n’hésitez pas à lire le post sur le forum Jeedom, mais pour faire simple, l’heure de lever (et de coucher) est récupérée en fonction de votre position (latitude/longitude). Le calcul 90+35/60 permet de prendre en compte le Zénith du Soleil, et enfin la dernière partie permet de gérer le passage de l’heure d’hiver à l’heure d’été.
Les deux suivantes (Lever_Soleil et Coucher_Soleil) serviront à convertir l’heure récupérée afin de pouvoir l’utiliser ensuite dans un scénario. En effet, Jeedom ne va pas pouvoir utiliser l’heure telle qu’elle est via les informations virtuelles précédentes.
Nous allons donc saisir les valeurs suivantes :
- Lever_Soleil :
str_replace(":","",#[Maison][Soleil][Lever de Soleil]#)
- Coucher_Soleil :
str_replace(":","",#[Maison][Soleil][Coucher de Soleil]#)

Les commandes ci-dessus, vont donc supprimer les deux points (:) de l’heure, afin d’obtenir un résultat qui sera interprétable par Jeedom. Par exemple, si le lever de soleil est à 07:35, on convertit cette valeur en 0735 afin que Jeedom puisse l’utiliser pour un scénario.
Lorsque c’est terminé, nous pouvons retourner sur le Dashboard, et ainsi voir le rendu de notre virtuel.

Création du scénario
Maintenant que nous pouvons récupérer les horaires, il faut passer à la création d’un scénario. Pour cela, il faut aller dans Outils puis Scénarios
Cliquez sur Ajouter puis donnez-lui le nom de votre choix.
Je l’ai personnellement appelé Volet Auto.
Il faut ensuite passer le mode du scénario en Provoqué et ajouter deux déclencheurs évènements correspondant au lever/coucher de soleil, à savoir :
#[Maison][Soleil][Lever_Soleil]#
#[Maison][Soleil][Coucher_Soleil]#
Ainsi, le scénario sera exécuté à l’heure de lever et de coucher du soleil.
On va maintenant éditer le scénario à l’aide de l’onglet correspondant.

On y ajoute deux blocs « A » qui vont permettre d’exécuter une action à une heure précise.
Dans mon cas, je souhaite ouvrir le volet avec un temps aléatoire (compris entre 15 et 60 minutes) après l’heure de lever du soleil. On va donc dans le premier bloc, spécifier l’heure de lever du Soleil via la commande :
time_op(#[Maison][Soleil][Lever_Soleil]#, rand(15,60)
Si vous voulez que l’action fonctionne à l’heure exacte , vous pouvez utiliser la commande #[Maison][Soleil][Lever_Soleil]#
.
Ensuite dans l’action à effectuer, on indique qu’il faut monter le volet roulant de la chambre via la commande suivante : #[Chambre Etage][Volet Chambre Etage][Up]#
Même chose pour le second bloc « A » avec la commande suivante pour l’heure time_op(#[Maison][Soleil][Coucher_Soleil]#, rand(15,60)
et dans l’action à exécuter la commande #[Chambre Etage][Volet Chambre Etage][Down]#
.
Et voilà, il ne vous reste plus qu’à activer votre scénario, et votre volet va s’ouvrir et se fermer automatiquement en fonction du soleil !
J’espère que ce tutoriel sur Jeedom vous a plu, si c’est le cas, n’hésitez pas à le partager autour de vous.
Si vous avez des questions ou des remarques, vous pouvez me laisser un commentaire, ou bien me contacter sur Twitter.
À bientôt sur cloriou.fr !
Sylvain
14 décembre 2020 — 17 h 46 min
Bonjour, très bon article, merci
J’aimerai appliquer ce genre de manipulation, mais dans le sens inverse !
En effet, je voudrais que certain de mes volets s’ouvrent quelques dizaines de minutes AVANT le levé du soleil. Car, heureusement il fait déjà jour avant que le soleil se lève.
Autant c’est simple quand on veut le faire après, car il suffit de mettre un bloc « Dans X minutes » à l’intérieur du scénario.
Mais pour faire l’inverse ?
cloriou
15 décembre 2020 — 19 h 43 min
Bonjour,
Merci pour ce retour positif concernant l’article 🙂
Avez-vous essayé avec des valeurs négatives ?
Sylvain
16 décembre 2020 — 17 h 19 min
Je ne comprend pas. Des valeur négative dans le scénario ?
Je ne vois pas comment cela peut fonctionner car il faut déjà que le scénario se lance.
J’ai pensé a faire une opération de calcul sur l’heure mais jeedom ne permet pas de faire des calculs en base temps (24/60) ?
cloriou
16 décembre 2020 — 18 h 57 min
Si vous suivez l’article en entier, il y a un ajout aléatoire compris en 15 et 60 minute par rapport à l’heure de lever et de coucher pour déclencher le scénario.
Il suffit d’adapter ces valeurs, et de mettre du négatif, cela devrait fonctionner.
Sylvain
17 décembre 2020 — 11 h 39 min
Mais oui, merci pour l’astuce, avec la fonction time_op c’est ok.
Je n’avais pas fait attention, a cette partie de l’article, car je ne voyais pas trop pourquoi ajouter un délai aléatoire comme ca..
Ferron
2 janvier 2021 — 9 h 09 min
Parfait, merci
Alexandre
12 janvier 2021 — 12 h 03 min
Bonjour,
Merci pour ce tuto! cela fonctionne parfaitement chez moi!
Mais j’aurai voulu ajouter une condition de déclenchement, a savoir si mon alarme est activé alors les volets se ferment et ouvrent automatiquement et si désactivé alors rien mais je n’y arrive pas!
Une solution?
cloriou
17 janvier 2021 — 12 h 18 min
Bonjour,
Je n’ai pas testé, mais je pense qu’en ajoutant une condition « IF » dans le scénario au tout début, cela devrait fonctionner.
Biero
15 mars 2024 — 13 h 51 min
Super procédure
Merci
Sudira Kevin
21 juin 2024 — 14 h 41 min
Bonjour, merci pour cet article.
Il me semble avoir trouvé un « bug » que j’ai subi et que je vais tenter d’expliquer :
J’utilise cette config depuis 3 ans.
Certains jours de certaines périodes de l’année, mes volets ne s’ouvraient pas.
Je pense que la raison est que les évènements « provoqués » déclencheurs du scénario :
#[Maison][Soleil][Lever_Soleil]# et #[Maison][Soleil][Coucher_Soleil]# ne déclenchent pas le scénario au lever du soleil et au coucher du soleil (comme je le pensais), mais au moment où ces variables sont mises à jour. Et en réalité, seulement si elles changent !!!
Donc ce qu’il se passe, c’est qu’à 3h du matin (heure d’actualisation des horaires de lever et coucher du soleil) les horaires sont actualisés. Si au moins un des 2 change, alors le scénario se déclenche (à 3h du matin !) et programme les horaires où il ouvrira et fermera les volets en fonction de time_op (c’est pour ça que ça marche avec des valeurs négatives !)
Or…….., si lorsque l’on s’approche des solstices, les minutes de jour gagnées ou perdues s’amenuisent… si bien que parfois, entre 2 journées, ni l’horaire de lever, ni l’horaire de coucher ne bougent ! Et donc le scénario ne se lance pas ! et les volets ne s’ouvrent pas !
Pour corriger cela, j’ai simplement remplacé les conditions de lancement du scénario « provoqué » par les 2 variables, par une condition « programmée » avec un cron à 4h. Depuis 1 semaine cela fonctionne chez moi.