Aller au contenu

Module Virtuel \ Phase De La Journée


Nvince76

Messages recommandés

Voici ma modeste première contribution.

Je sais qu'il existe déjà  des scènes, modules Jour/Nuit mais j'ai voulu aller un peu plus loin en créant un module décomposant la journée en 6 phase (+ une en cas d'erreur).

 

0 - Erreur

1 - Aube

2 - Aurore

3 - Matin

4 - Apres-Midi

5 - Crepuscule

6 - Soir

7 - Nuit

 

 

J'ai créé pour cela un module virtuel délivrant 2 variables :

  • Day_Phase           : la Phase de la journée, explicite, en texte (Créée dans le panneau de variables, en tant que variable prédéfinie contenant les 7 états ci-dessus)
  • Day_Phase_Num : le numéro de la Phase, en entier, facilitant son utilisation dans des scènes (Créée dans le panneau de variables, en tant que variable recevant le numéro de la phase)

 

Pour fonctionner, une variable supplémentaire doit être créée :

  • Day_Phase_Nuit   : Permet de fixer l'heure de basculement de l'état '6 - Soir' à  l'état '7 - Nuit'. Format HHmm. Le code gère si cette heure est avant ou après minuit....

 

Il faut donc créer ces 3 variables dans un premier temps, puis importer le module virtuel

 

A l'intérieur de ce dernier, dans le code LUA, il faut corriger l'ID du module virtuel (48 dans la version proposée) et modifier l'ID du détecteur de luminosité de référence (43 ans la version proposée).

 

 

C'est un premier jet, et des améliorations vont venir (exemple, ID du module virtuel géré en interne du code, corriger le franglais..., ajout d'une icone par phase de la journée, etc...). Je voulais quelque chose de rapidement opérationnel...

 

 

Je l'utilise actuellement avec deux petites scènes 

  • Allumage des éclairages extérieurs si Day_Phase_Num = 6
  • Extinction dans le cas contraire

Day_Phase.vfib

post-155-0-79915000-1420413703_thumb.jpg

  • Upvote 3
Lien vers le commentaire
Partager sur d’autres sites

Voici la version 2

 

Ajout d'une icone par phase 

Intégration du selfID, il n'est donc plus nécessaire de corriger le code LUA pour mettre à  jour l'ID du module virtuel.

Seul l'ID du capteur de luminosité est à  renseigner (dans la section de déclaration des variables du code).

Day_Phase V2.0.vfib

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Hello

J'arrive pas à  le faire fonctionner chez moi, je suis tjs en phase "erreur"

 

j'ai bien crée les variables prédéfinies avec les 7 états( Erreur, Aube ...)

Les variables 'simples' avec la date nuit (2300) par exemple et la variable DAY_PHASE_NUM en laissant la valeur par defaut

j'ai modifié l'ID du capteur (N° 13 dans mon cas)

 

Mais je reste en phase 0

Lien vers le commentaire
Partager sur d’autres sites

si tu vas dans le module, onglet avancé, en bas du code lue, tu vas dans debug et tu click sur start..

que te donne la fenêtre?

 

day_phase_num est automatiquement renseigné par le module

 

et les phases de la variable pré-définie sont "0 - erreur", "1 - Aube", .. et non, "Erreur", "Aube", ...

Lien vers le commentaire
Partager sur d’autres sites

oui,  je peux éventuellement sortir le seuil dans une variable... pas sur que ce soit très utile, mais pourquoi pas, ou utiliser une variable interne à  configurer en début de code, afin d'éviter de rechercher les instances du seuil

Content que cela fonctionne

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
  • 1 mois après...

@Nvince76

 

je vois avec le module de steven sur l'état des variables que c'est toujours la variable day_phase qui est en tete 

est ce qu'il y a pas moyen d'optimiser et de pas mettre le code dans le main loop ?

 

http://www.domotique-fibaro.fr/index.php/topic/4205-virtual-device-variables-globales/?p=62555

Lien vers le commentaire
Partager sur d’autres sites

oui, certainement.

Honnêtement ces dernières semaines (mois) ont été bien chargées et je n'ai pas remis le nez dans le code.

A savoir, qu'un de mes objectifs est de le faire tourner àla minute... pas en permanence...il faut que je remette le sleep comme zozotte l'a mentionné

Lien vers le commentaire
Partager sur d’autres sites

Voici la version V3.0

 

Update les variables globales uniquement sur changement.

J'ai par contre du désactiver l'initialisation des variables sur le code 0 (erreur) en début du code car sinon un changement est détecté à  chaque cycle...donc n'apporterait rien de plus

Je réintégrerai la gestion du statut d'erreur ultérieurement

Day_Phase V3.0.vfib

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...