Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Programmer la fermeture des volets sur l'heure du coucher du soleil
#1
Hello tout le monde,

Nous aimerions programmer la fermeture de tous nos volets en fonction de l'heure du coucher du soleil (ou du crépuscule si besoin). J'ai trouvé un site qui me permet d'obtenir ces valeurs en fonction de la latitude et de la longitude de notre lieu. Les données renvoyées sont au format XML.

Je comptais faire ça via un script lua appelé périodiquement (genre une fois par jour). Peut-on parser du xml en lua ?
Ou alors peut être je ne prends pas la bonne approche pour mon besoin ?

Merci par avance,

Tanguy
Reply
#2
je vais repondre un peu à coté parce que j'ai pas essayé de parser du xml en lua
mais j'ai utilisé un script perl appelé par le cron pour calculer l'aube et le crepuscule en fonction de la longit/lat et integré ces deux valeurs dans des variables calaos via json (le xml ne fonctionnant aps encore) par le biais du webanaloginput de captainigloo
Reply
#3
La gestion de l'heure de lever/coucher/midi solaire du soleil est intégré dans calaos v2 sur le github. Faire ca en lua risque d'etre un peu lourd du coup...

Pour faire fonctionner ca, il faut ajouter la longitude et latitude dans local_config.xml:

Code:
<calaos:option name="longitude" value="7.494156" />
<calaos:option name="latitude" value="47.636507" />

Puis on peut utiliser ca dans les plages horaires:

Code:
<calaos:input gui_type="time_range" id="input_trange_1" months="111111111111" name="coucher soleil" type="InPlageHoraire" visible="false">
    <calaos:lundi>
        <calaos:plage start_type="2" start_hour="0" start_min="30" start_sec="0" start_offset="1" end_type="2" end_hour="0" end_min="30" end_sec="0" end_offset="1" />
    </calaos:lundi>
......
</calaos:input>

On est obligé de le faire a la main pour l'instant. Voila a quoi correspondent les valeurs:
Code:
months="111111111111"
1 ou 0 pour chaque mois de l'année.

Code:
start_type="2" ou end_type="2"
Valeurs possibles:
  • 0: Heure fixe
  • 1: Lever du soleil
  • 2: Coucher du soleil
  • 3: Midi solaire

hour/min/sec correspondent soit a une heure fixe, soit a une decalage qu'on peut donner sur une heure de lever/coucher de soleil. Dans l'exemple ici c'est 30 min apres le coucher du soleil.

On peut ensuite dire si on veut ajouter les 30 minutes ou les soustraire en spécifiant start_offset/end_offset
avec 1 ou -1 comme valeur.

Il y aura bientot une interface dans calaos installer pour gerer tout cela plus facilement...
Raoul,
Calaos Core Dev.
Calaos git sur NUC NUC5PPYH | Wago 750-849 | DALI RGB | Sondes NTC sur 750-464 | Sondes 1Wire DS18B20 avec adaptateur USB DS9490R | Nodes MySensors avec gateway USB | Ecran tactile ELO avec adaptateur USB/RS232 | Squeezebox Duet et Radio | Logitech Harmony Ultimate | Ampli Pioneer VSX921
Reply
#4
Super ! Je vais y jeter un oeil.
Reply
#5
Salut,

Sympa cette fonction! Bon faut juste pas avoir la tête par la fenêtre quand ça se ferme Wink

<calaos:plage start_type="2" start_hour="0" start_min="01" start_sec="0" start_offset="1" end_type="2" end_hour="0" end_min="01" end_sec="0" end_offset="1" />

Si j'ai bien compris, dans l'exemple, il s'agit de la plage horaire qui définit la nuit, avec "start" coucher et "end" lever du soleil?
On peut déclencher une action sur le front montant de cette plage (au moment ou les variables "start" passent à 1?
Est-ce qu'on peut afficher cette variable à l'écran?
Reply
#6
Ca marche exactement comme les plages horaires d'avant, sauf que la gestion des heures dynamique lever/coucher de soleil a ete rajouté ainsi que la possibitilite de specifier les mois ou la plage est active.

Donc le fonctionne est le suivant dans calaos. On definit un IO InPlageHoraire avec pour chaque jour voulu une ou plusieurs plage d'heure. Il faut faire attention une plage peut etre uniquement dans l'intervalle 00:00:00 -> 23:59:59. Si on veut une plage qui empiete sur 2 jours du genre 22h -> 03h il faut 2 plages (22:00:00 -> 23:59:59 et 00:00:00 -> 03:00:00). On peut specifier plusieurs plages dans une journée.

Ensuite pour la programation des regles, la variable InPlageHoraire est a true lorsqu'on est dans la plage et a false en dehors. Le changement d'etat se fait sur front montant et descendant, donc on peut l'utiliser dans les regles facilement comme ca:

Code:
IF plage == true
Faire...

IF plage == false
Faire...

Et on peut aussi utiliser une plage pour uniquement lancer une action a une heure precise. Pour ca on specifie la meme heure de début et de fin. Pour ouvrir des volets au lever du soleil ca marche tres bien.
Raoul,
Calaos Core Dev.
Calaos git sur NUC NUC5PPYH | Wago 750-849 | DALI RGB | Sondes NTC sur 750-464 | Sondes 1Wire DS18B20 avec adaptateur USB DS9490R | Nodes MySensors avec gateway USB | Ecran tactile ELO avec adaptateur USB/RS232 | Squeezebox Duet et Radio | Logitech Harmony Ultimate | Ampli Pioneer VSX921
Reply
#7
(03-07-2014, 11:06 AM)raoulh Wrote: ...
Il faut faire attention une plage peut etre uniquement dans l'intervalle 00:00:00 -> 23:59:59. Si on veut une plage qui empiete sur 2 jours du genre 22h -> 03h il faut 2 plages (22:00:00 -> 23:59:59 et 00:00:00 -> 03:00:00). On peut specifier plusieurs plages dans une journée.
...

Pour info, je confirme que que cette facon de faire ne provoque pas de "glitch" en passant de 23:59:59 a 00:00:00, c-a-d que la variable reste true de 22:00 a 3:00.

Dans mon cas j'utilise 2 variables plage horaire. La 1ere passe a true 30 minutes avant le leve du soleil et passe a false 20 minutes apres le coucher. La 2e est a true de mars a septembre de 00:00:00 a 23:59:59. En combinant les 2 variables dans les conditions, cela me permet de monter/descendre mes stores exterieures completement en saison froide et juste d'ouvrir/fermer les lamelles en saison plus chaude.
  calaos-os-raspberrypi2-v3.0-alpha6-14-g341535a-2021-01-17 on Raspberry Pi 2 ▶ Wago_2.2/wago_881.pro on Wago 750-881 ▶ DS18B20 sensors on Pi GPIO ▶ Node-RED









Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)