Nvince76 Posté(e) le 4 janvier 2015 Signaler Posté(e) le 4 janvier 2015 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 3
Nvince76 Posté(e) le 5 janvier 2015 Auteur Signaler Posté(e) le 5 janvier 2015 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 2
skyhooper Posté(e) le 1 février 2015 Signaler Posté(e) le 1 février 2015 Merci pour ce super travail, et pour le partage, très utile pour moi.
Sakkhho Posté(e) le 1 février 2015 Signaler Posté(e) le 1 février 2015 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
Nvince76 Posté(e) le 1 février 2015 Auteur Signaler Posté(e) le 1 février 2015 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", ...
Sakkhho Posté(e) le 1 février 2015 Signaler Posté(e) le 1 février 2015 bon j'ai bien renommé les phases correctement. en mode debug j'ai toujours [ERROR] 18:10:34: line 48: attempt to compare number with nil
Nvince76 Posté(e) le 1 février 2015 Auteur Signaler Posté(e) le 1 février 2015 il y a un problème avec la valeur numérique "Nuit" saisie as tu bien sauvegardé une fois la variable "Nuit" Configurée? tu as bien saisie 2300 et non 23:00 ou 23.00?
Sakkhho Posté(e) le 1 février 2015 Signaler Posté(e) le 1 février 2015 oui la variable est bien à 2300 si je click sur le bouton, l'icone change bien, mais la variable day_phase_num reste à 0 bizarre
Nvince76 Posté(e) le 1 février 2015 Auteur Signaler Posté(e) le 1 février 2015 Je pense que tu as déjà vérifié, mais une erreur est si vite arrivée. Pas d'erreur dans le nom des variables? Day_Phase_Nuit Day_Phase_Num Day_Phase
Nvince76 Posté(e) le 1 février 2015 Auteur Signaler Posté(e) le 1 février 2015 hummm... Le LUA serait il sensible à la casse? toutes tes variables sont en majuscule... Si ce n'est pas cela, essaye de bypasser le code en défaut pour voir, de la ligne 47 à 60
Nvince76 Posté(e) le 1 février 2015 Auteur Signaler Posté(e) le 1 février 2015 bon, ne cherche pas, il faut respecter la casse du nom des variables, je viens de faire le test et j'obtiens la même erreur que toi
Sakkhho Posté(e) le 1 février 2015 Signaler Posté(e) le 1 février 2015 j'ai remis tout en miniscule et c'est tout bon ... donc bon à savoir, c'est sensible à la casse merci c'est 400 le seuil de LUX c'est ca ? c'est elevé pour moi car le capteur en dans une piece pas en ext.
Nvince76 Posté(e) le 1 février 2015 Auteur Signaler Posté(e) le 1 février 2015 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
zozotte Posté(e) le 3 février 2015 Signaler Posté(e) le 3 février 2015 hello, j'ai vu que ton code tourne en permanence, pour quoi pas un petit fibaro:sleep(30*1000) àla fin ?
Nvince76 Posté(e) le 3 février 2015 Auteur Signaler Posté(e) le 3 février 2015 oui en effet, je l'avais bien mis initialement, et , l'ai supprimé pour faire des tests en temps réel mais pas encore remis...
joesab Posté(e) le 18 février 2015 Signaler Posté(e) le 18 février 2015 un grand merci pour cette variable. Nickel chez moi ! mes volets s'ouvrent et ser ferment impec par rapport àl'aube et soir ! sabine
Sakkhho Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 @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
Nvince76 Posté(e) le 25 mars 2015 Auteur Signaler Posté(e) le 25 mars 2015 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é
Nvince76 Posté(e) le 25 mars 2015 Auteur Signaler Posté(e) le 25 mars 2015 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 1
Sakkhho Posté(e) le 27 mars 2015 Signaler Posté(e) le 27 mars 2015 pas de changement dans cette V3 si ? la variable est tjs mis à jour en boucle.. en tout cas meme résultat dans le module de steven le problème est sur la variable ; Day_Phase
Nvince76 Posté(e) le 27 mars 2015 Auteur Signaler Posté(e) le 27 mars 2015 je reregarde... cela fonctionnait pourtant chez moi
Messages recommandés