forumAD Posté(e) le 22 novembre 2014 Signaler Posté(e) le 22 novembre 2014 Bonsoir, J'ai quelques petits soucis avec mon code attaché. Le code fonctionne correctement c'est à dire à chaque détection, la lumière s'allume pour le temps spécifié. Mais le problème set que vu que je 'aimerais pas allumer la lumière la journée, j'ai spécifié avec la fonction os.date l'intervalle horaire. Dès lors, le code ne fonctionne plus; j'ai entre autre une erreur du style: " [ERROR] 20:59:20: line 12: attempt to compare number with nil" Quelqu'un pourrait m'aider? Merci :
fab971 Posté(e) le 22 novembre 2014 Signaler Posté(e) le 22 novembre 2014 Je ne peux pas t'aider sur ton code mais le mieux pour tous est d'utiliser les balises pour le code LUA. Sinon voici la scène que j'utilise en mode bloc avec une variable jour/nuit.
forumAD Posté(e) le 22 novembre 2014 Auteur Signaler Posté(e) le 22 novembre 2014 Merci @fab971; Tu pense qu'il n'y a rien àfaire en LUA ?
Nico Posté(e) le 22 novembre 2014 Signaler Posté(e) le 22 novembre 2014 Pourquoi passer par du LUA ou un scénario : Tu peux associer directement le FGMS au FGS, et cela fonctionne parfaitement. Et après dans les paramètres du FGMS tu lui dis de ne s'allumer que lorsqu'il fait moins qu'un seuil de luminosité. Exemple de paramètre àentrer (Que j'ai chez moi sur 3 FGMS) : name;value;description UIMessageSendTime;0; ClassConfigure;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; ClassGeneric;49; ClassSupport;48,49,86,112,114,122,128,132,133,134,142,143,145,156,239; ClassVersion;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1; DeviceControlType;0; DeviceIcon;51; Disabled;0; EmailNotificationID;0; EmailNotificationType;0; EndPoint;0; IsBatteryOperated;1; Log; ; LogTemp;; NeedConfigure;5; NodeID;28; ParametersTemplate;270; ParentID;1; PollingRetryError;0; PollingTime;; PollingTimeNext;; PollingTimeSec;0; ProductInfo;1,15,8,0,16,1,2,4; PushNotificationID;0; PushNotificationType;0; RequestNodeNeighborState;0; RequestNodeNeighborStateTimeStemp;0; SensorSupport;; ShowChildren;0; SmsNotificationID;0; SmsNotificationType;0; SortOrder;999; Type;; Unit;kPa; UnitSensor;; UserDescription;; Value;0; ValueSensor;; ZwaveCompany;Fibar Group; ZwaveInfo;3,3,67; ZwaveVersion;2,4; Parameters;[ { "id": 1, "size": 1, "value": 15, "lastSetValue": 15 }, { "id": 2, "size": 1, "value": 8, "lastSetValue": 8 }, { "id": 3, "size": 1, "value": 0, "lastSetValue": 0 }, { "id": 4, "size": 1, "value": 2, "lastSetValue": 2 }, { "id": 6, "size": 2, "value": 8, "lastSetValue": 8 }, { "id": 8, "size": 1, "value": 2, "lastSetValue": 2 }, { "id": 9, "size": 2, "value": 100, "lastSetValue": 100 }, { "id": 12, "size": 1, "value": 0, "lastSetValue": 0 }, { "id": 14, "size": 1, "value": 255, "lastSetValue": 255 }, { "id": 16, "size": 1, "value": 0, "lastSetValue": 0 }, { "id": 20, "size": 1, "value": 30, "lastSetValue": 30 }, { "id": 22, "size": 2, "value": 30, "lastSetValue": 30 }, { "id": 24, "size": 1, "value": 0, "lastSetValue": 0 }, { "id": 26, "size": 1, "value": 0, "lastSetValue": 0 }, { "id": 40, "size": 2, "value": 0, "lastSetValue": 0 }, { "id": 42, "size": 2, "value": 300, "lastSetValue": 300 }, { "id": 60, "size": 1, "value": 0, "lastSetValue": 0 }, { "id": 62, "size": 2, "value": 600, "lastSetValue": 600 }, { "id": 64, "size": 2, "value": 600, "lastSetValue": 600 }, { "id": 66, "size": 2, "value": 65531, "lastSetValue": 65531 }, { "id": 80, "size": 1, "value": 6, "lastSetValue": 6 }, { "id": 81, "size": 1, "value": 10, "lastSetValue": 10 }, { "id": 82, "size": 2, "value": 0, "lastSetValue": 0 }, { "id": 83, "size": 2, "value": 1000, "lastSetValue": 1000 }, { "id": 86, "size": 1, "value": 18, "lastSetValue": 18 }, { "id": 87, "size": 1, "value": 28, "lastSetValue": 28 }, { "id": 89, "size": 1, "value": 1, "lastSetValue": 1 } ]; AssociationSet;[ { "groupID": 1, "devices": [ 1, 2 ] }, { "groupID": 2, "devices": [ 1 ] }, { "groupID": 3, "devices": [ 1 ] } ]; AssociationView;[ { "groupID": 1, "devices": [ 1, 2 ] }, { "groupID": 2, "devices": [ 1 ] }, { "groupID": 3, "devices": [ 1 ] } ]; Dead;0;
fab971 Posté(e) le 22 novembre 2014 Signaler Posté(e) le 22 novembre 2014 Merci @fab971; Tu pense qu'il n'y a rien àfaire en LUA ? Oui, mais il faut attendre que les spécialistes du LUA se lancent. Fait une recherche sur le site, tu auras des exemples.
forumAD Posté(e) le 22 novembre 2014 Auteur Signaler Posté(e) le 22 novembre 2014 Merci@ Nico, mais tu ne trouves pas que c'est plus élégant en juste quelques lignes en LUA? C'est formidable ton association mais un peu trop lourd non? Mais je te remercie pour cette idée.
Lazer Posté(e) le 22 novembre 2014 Signaler Posté(e) le 22 novembre 2014 Je ne suis pas spécialiste LUA, mais dans ton code, ligne 12, tu mélanges un peu tout. Je ne peux pas copier coller la ligne car tu as mis un screenshot, mais làtu compares un coup une chaine, un coup un nombre, un coup tu appelles la variable direct, et l'autre comme si c'était un tableau[] J'ai du mal àcomprendre ce que tu voulais tester sur cette ligne...
forumAD Posté(e) le 22 novembre 2014 Auteur Signaler Posté(e) le 22 novembre 2014 if (sonde_mouvement == '1' and sonde_mouvement['hour'] >= 18 and sonde_mouvement['hour'] <= 07) then Sur cette ligne j'aimerais juste dire que si les condition du variable "sonde_mouvement" sont réunis c'est à dire si la variable est active et l'heure est comprise entre 18:00 et 07:00 alors il faut exécuter la routine; @Lazer, Tu penses que ce n'est pas juste comme façon de déclarer?
Lazer Posté(e) le 22 novembre 2014 Signaler Posté(e) le 22 novembre 2014 j'avais pas vu non plus, au dessus, tu déclares ta variable sonde_mouvement puis tu l'écrase immédiatement ligne suivante par autre chose. Poste tout ton code, j'essaierai de bricoler quelque chose avec
forumAD Posté(e) le 22 novembre 2014 Auteur Signaler Posté(e) le 22 novembre 2014 OK, voici le code: ------------------- --[[%% properties7 value%% globals--]]--local sonde_mouvement local sonde_mouvement = os.date("*t");sonde_mouvement = fibaro:getValue(7, 'value') if (sonde_mouvement == '1' and sonde_mouvement['hour'] >= 18 and sonde_mouvement['hour'] <= 07) then --if (sonde_mouvement == '1') then fibaro:debug("statut lumiere rez= ON"); fibaro:call(39, 'turnOn'); fibaro:sleep(500000); fibaro:debug("statut lumiere rez= OFF"); fibaro:call(39, 'turnOff'); end -------------------
Lazer Posté(e) le 22 novembre 2014 Signaler Posté(e) le 22 novembre 2014 Essaye ça, non testé : --[[ %% properties 7 value %% globals --]] --local sonde_mouvement local currentDate = os.date("*t") local sonde_mouvement = fibaro:getValue(7, 'value') if ( sonde_mouvement and (currentDate.hour >= 18 or currentDate.hour <= 7) ) then fibaro:debug("statut lumiere rez= ON"); fibaro:call(39, 'turnOn'); fibaro:sleep(500000); fibaro:debug("statut lumiere rez= OFF"); fibaro:call(39, 'turnOff'); end Par contre, le gros sleep() c'est crade. Ce que tu veux faire se fait simplement avec GEA, sans coder de LUA, tu devrais faire un tour sur les topics GEA et Support GEA. 1
forumAD Posté(e) le 22 novembre 2014 Auteur Signaler Posté(e) le 22 novembre 2014 Yes!! ça fonctionne du premier coup. Normalement après 7:00 demain, la détection ne devrait plus être en marche jusqu'à 18:00. Merci beaucoup @Lazer. Je veis suivre ton conseil et voir un peu à quoi ça ressemble ce GEA.
PITP2 Posté(e) le 23 novembre 2014 Signaler Posté(e) le 23 novembre 2014 @Nico , comment passes tu ces paramètres ? cela ne retire en rien l'association entre la box et le device ?
Steven Posté(e) le 24 novembre 2014 Signaler Posté(e) le 24 novembre 2014 Mode GEA ON --[[ %% properties 7 value %% globals --]] -- Eteint la lampe après 5 minutes local autoOff = GEA.add(39, 5*60, "", {{"turnOff"}}) -- Allume la lampe et redémarre le timer des 5 minutes GEA.add(7, -1, "", {{"turnOn", 39}, {"RestartTask", autoOff}, {"Time", "18:00", "07:00"} })
PITP2 Posté(e) le 24 novembre 2014 Signaler Posté(e) le 24 novembre 2014 GEA Power !!!!!!!!!!!!!!!!!!!!!!!! Faudrait faire des tee shirts
Lazer Posté(e) le 24 novembre 2014 Signaler Posté(e) le 24 novembre 2014 Ça existe déjàle t-shirt Gea
Steven Posté(e) le 24 novembre 2014 Signaler Posté(e) le 24 novembre 2014 Lol Envoyé de mon portable grâce àmes petits doigts.
forumAD Posté(e) le 24 novembre 2014 Auteur Signaler Posté(e) le 24 novembre 2014 Merci bien Steven; je vais essayer ce soir et te ferai un feed-back;
PITP2 Posté(e) le 24 novembre 2014 Signaler Posté(e) le 24 novembre 2014 @Lazer, On les trouve ou les tee shirt ????? en suisse ?
Lazer Posté(e) le 24 novembre 2014 Signaler Posté(e) le 24 novembre 2014 je ne citerai pas mes sources mais je crois bien que c'est un exemplaire unique.
Steven Posté(e) le 24 novembre 2014 Signaler Posté(e) le 24 novembre 2014 Photo prise par un traître qui mérite le bà»cher. J'avais préparer le T-Shirt pour faire concurrence au badge miniature de fredo lors d'une rencontre entre personne de bonne compagnie ... bien évidement à l'exception du traître qui a pris la photo. 3
forumAD Posté(e) le 24 novembre 2014 Auteur Signaler Posté(e) le 24 novembre 2014 @ OK Steven, Ce soir je vais débuter par tester ton code pour les lumières pour l'initiation. J'aimerais comprendre vraiment le fonctionnement de GEA. J'ai bien compris que ce n'est pas un module virtuel qu'il faut importer et juste adapter les identifiants et l'adresse IP plus les id des modules. ça a l'air beaucoup plus complexe et demande plus de logique de programmation. Donc si je comprends bien les choses: J'ai crée le GEA_tasks, j'ai crée un scenario" vide" dans scène que j'avais appelé GEA. J'ai inséré ton script GEA.lua dans ma scène GEA. basé sur ton code, tu me conseilles de tout supprimer et de réadapter tout ce dont j'ai besoin? Par exemple, comme je ne vais pas faire de scénario concernant l'ouverture d'un garage ou frigo,....je peux enlever cette partie. Mes questions peuvent paraître bêtes, mais le but c'est de commencer sur une bonne base. Merci d'avance de ton précieux support.
ggpublic Posté(e) le 2 février 2016 Signaler Posté(e) le 2 février 2016 Mode GEA ON --[[ %% properties 7 value %% globals --]] -- Eteint la lampe après 5 minutes local autoOff = GEA.add(39, 5*60, "", {{"turnOff"}}) -- Allume la lampe et redémarre le timer des 5 minutes GEA.add(7, -1, "", {{"turnOn", 39}, {"RestartTask", autoOff}, {"Time", "18:00", "07:00"} }) je déterre ce topic pour poser une petite question: dans l'exemple GEA donné qui consiste à créer un allumage automatique sur détection avec extinction automatique au bout de 5 minutes, je comprends que s'il y a détection pendant le premier intervalle de 5 minutes, GEA va quand même éteindre la lampe au bout de 5 minutes. Y a t'il un moyen avec GEA de repousser le timer de 5 minutes en 5 minutes en cas de détection ?
Messages recommandés