fmplaw Posté(e) le 7 décembre 2016 Auteur Signaler Posté(e) le 7 décembre 2016 Merci ! Je viens donc de faire ma première scène en LUA pour m'alerter en cas d'incendie chez moi : --[[ %% properties 22 value 26 value 30 value 5 value 9 value %% events %% globals --]] local sujet = "Alerte Fibaro SS" local VarP = fibaro:getValue(22, "value") local VarJ = fibaro:getValue(26, "value") local VarC = fibaro:getValue(30, "value") local VarM = fibaro:getValue(5, "value") local VarSDJ = fibaro:getValue(9, "value") fibaro:debug("SS Pierre. Valeur = " ..VarP) if tonumber(fibaro:getValue(22, "value")) > 0 then fibaro:debug("SS Pierre. Valeur = " ..VarP) fibaro:call(34, "sendEmail", sujet, "Le détecteur de fumée de la chambre de Pierre est en alerte"); fibaro:call(12, "sendPush", "Le détecteur de fumée de la chambre de Pierre est en alerte"); fibaro:call(15, "sendEmail", sujet, "Le détecteur de fumée de la chambre de Pierre est en alerte"); fibaro:call(33, "sendPush", "Le détecteur de fumée de la chambre de Pierre est en alerte"); end fibaro:debug("SS Juliette. Valeur = " ..VarJ) if tonumber(fibaro:getValue(26, "value")) > 0 then fibaro:debug("SS Juliette. Valeur = " ..VarJ) fibaro:call(34, "sendEmail", sujet, "Le détecteur de fumée de la chambre de Juliette est en alerte"); fibaro:call(12, "sendPush", "Le détecteur de fumée de la chambre de Juliette est en alerte"); fibaro:call(15, "sendEmail", sujet, "Le détecteur de fumée de la chambre de Pierre est en alerte"); fibaro:call(33, "sendPush", "Le détecteur de fumée de la chambre de Pierre est en alerte"); end fibaro:debug("SS Cuisine. Valeur = " ..VarC) if tonumber(fibaro:getValue(30, "value")) > 0 then fibaro:debug("SS Juliette. Valeur = " ..VarC) fibaro:call(34, "sendEmail", sujet, "Le détecteur de fumée de la Cuisine est en alerte"); fibaro:call(12, "sendPush", "Le détecteur de fumée de la Cuisine est en alerte"); fibaro:call(15, "sendEmail", sujet, "Le détecteur de fumée de la Cuisine est en alerte"); fibaro:call(33, "sendPush", "Le détecteur de fumée de la Cuisine est en alerte"); end fibaro:debug("SS Mezzanine. Valeur = " ..VarM) if tonumber(fibaro:getValue(5, "value")) > 0 then fibaro:debug("SS Mezzanine. Valeur = " ..VarM) fibaro:call(34, "sendEmail", sujet, "Le détecteur de fumée de la Mezzanine est en alerte"); fibaro:call(12, "sendPush", "Le détecteur de fumée de la Mezzanine est en alerte"); fibaro:call(15, "sendEmail", sujet, "Le détecteur de fumée de la Mezzanine est en alerte"); fibaro:call(33, "sendPush", "Le détecteur de fumée de la Mezzanine est en alerte"); end fibaro:debug("SS Salle de jeux. Valeur = " ..VarSDJ) if tonumber(fibaro:getValue(9, "value")) > 0 then fibaro:debug("SS Salle de jeux. Valeur = " ..VarSDJ) fibaro:call(34, "sendEmail", sujet, "Le détecteur de fumée de la Salle de jeux est en alerte"); fibaro:call(12, "sendPush", "Le détecteur de fumée de la Salle de jeux est en alerte"); fibaro:call(15, "sendEmail", sujet, "Le détecteur de fumée de la Salle de jeux est en alerte"); fibaro:call(33, "sendPush", "Le détecteur de fumée de la Salle de jeux est en alerte"); end Qu'en pensez vous ?
pepite Posté(e) le 7 décembre 2016 Signaler Posté(e) le 7 décembre 2016 Bonjour, Beaucoup de if-end, mais ca fonctionne non ? C'est le principal. Et suis un noob aussi lol Vite fait pour te montrer ce qui est faisable, attention, non testé et me connassant, il doit y avoir des erreurs de syntaxe et peut-etre de logique --[[ %% properties 22 value 26 value 30 value 5 value 9 value %% events %% globals --]] ------------------------------- local Capteurs = {22, 26, 30, 5, 9} local IdTel = {12, 33) local MailUsers = 15, 34} local sujet = "Alerte Fibaro SS" ----------------------------------- local trigger = fibaro:getSourceTrigger() local name = trigger["name"] local DeviceID = trigger["deviceID"] local msg ------------------------------------- -- Envoi Notification MAIL et PUSH -- ------------------------------------- function Notification(sujet,message) fibaro:debug(Message) for i = 1, #IdTel do fibaro:call(IdTel[i], "sendPush", message) end for i = 1, #MailUsers do fibaro:call(MailUsers[i], "sendEmail", sujet, message) end end -------------------------------------- -- Device Declencheur --------------- -------------------------------------- function DeviceDeclencheur() if (trigger["type"] == "property") then for i = 1, #Capteurs do if tonumber(fibaro:getValue(Capteurs[i], "value")) > 0 then fibaro:debug("Module Déclencheur : "..DeviceID.. " Nom : " ..name) msg = "Le détecteur de fumée : " ..name.. " est en alerte" end return name, DeviceID, msg end end end ----- Execution---- DeviceDeclencheur() Notification(sujet,msg)
fmplaw Posté(e) le 8 décembre 2016 Auteur Signaler Posté(e) le 8 décembre 2016 Merci @pepite ! C'est intéressant de voir ce qu'il est possible au niveau syntaxe... Par contre pourrais tu m'éclairer sur quelques points : Dans ta bouche for, à quel moment la condition i=1 est rempli ? Je ne comprends pas bien ce test : if (trigger["type"] == "property") then En te remerciant.
Steven Posté(e) le 8 décembre 2016 Signaler Posté(e) le 8 décembre 2016 Je me permet quelques petites corrections et explication local trigger = fibaro:getSourceTrigger() permet d'obtenir les informations de ce qui a déclenché le scénario. trigger["deviceID"] contiendra l'ID du module ayant déclenché le scénario for i = 1, #idTel signifie de 1 à (nombre d'éléments dans le tableaux idTel), ayant 2 éléments dans ce tableau (12 et 33), cette boucle sera parcourue 2 fois. --[[ %% properties 22 value 26 value 30 value 5 value 9 value %% events %% globals --]] ------------------------------- local idTel = {12, 33) local mailUsers = {15, 34} local sujet = "Alerte Fibaro SS" ----------------------------------- local trigger = fibaro:getSourceTrigger() ------------------------------------- -- Envoi Notification MAIL et PUSH -- ------------------------------------- function notification(message) fibaro:debug(message) for i = 1, #idTel do fibaro:call(idTel[i], "sendPush", message) end for i = 1, #mailUsers do fibaro:call(mailUsers[i], "sendEmail", sujet, message) end end ----- Execution---- if (trigger["type"] == "property") then local deviceID = trigger["deviceID"] local name = fibaro:getName(deviceID) local msg = "Le détecteur de fumée : " ..name.. " est en alerte" notification(msg) end 1
pepite Posté(e) le 8 décembre 2016 Signaler Posté(e) le 8 décembre 2016 (modifié) @Steven, oui tu peux te permettre master J'avais une fonction de trop ;-) ;-). Plus simple avec le fibaro;getName plutot que trigger"name", j'y avais pas pense lol Bon ben pas de code du 1er coup alors ;-). Plutot simple normalement celui la ;-) Modifié le 8 décembre 2016 par pepite
Steven Posté(e) le 8 décembre 2016 Signaler Posté(e) le 8 décembre 2016 le trigger["name"] fonctionne uniquement lorsque le déclencheur est une variable globale et name contiendra le nom de la variable globale. Dans le cas d'un déclenchement pas "properties" tu auras "nil" dans cette variable. Oui, une petite boucle en trop. Tu vas rechercher un Capteur que tu as déjà reçu dans le trigger.
pepite Posté(e) le 8 décembre 2016 Signaler Posté(e) le 8 décembre 2016 Tout est clair, merci master ;-) @Steven
fmplaw Posté(e) le 9 décembre 2016 Auteur Signaler Posté(e) le 9 décembre 2016 Merci messieurs, c'est très intéressant ! Par contre je ne comprends toujours pas lz condition d’exécution du script : if (trigger["type"] == "property") Faut il la lire de cette manière : Si le module déclencheur == à l'un des module présent dans l'en-tête %%properties ?
Steven Posté(e) le 9 décembre 2016 Signaler Posté(e) le 9 décembre 2016 Tu as tout compris. C'est ici si tu veux plus d'info : http://www.fibarouk.co.uk/support/lua/library/fibarogetsourcetrigger/ Il y a "property", "global", "autostart" et "other" ... soit respectivement : déclenché par un changement de module, une variable globale, l'enregistrement de la scène ou un autre type de lancement. 1
fmplaw Posté(e) le 9 décembre 2016 Auteur Signaler Posté(e) le 9 décembre 2016 Merci beaucoup @Steven
fmplaw Posté(e) le 21 mai 2017 Auteur Signaler Posté(e) le 21 mai 2017 Bonjour à vous, je rencontre depuis maintenant environ 2 mois des erreurs récurrentes 503... Je n'ai vraiment pas eu le temps de m'y consacrer jusqu’à aujourd'hui ! En gros, je suis obligé de redémarrer ma HC2 et je récupère la webui pour environ une journée.... Le lendemain rebelote erreur 503 !?! Existe-t-il des journaux qui pourraient m'aider a savoir ce qu'il se passe ? En vous remerciant !
fmplaw Posté(e) le 25 mai 2017 Auteur Signaler Posté(e) le 25 mai 2017 J'ai essayé de prêter attention au fonctionnement de la box. J'ai petit a petit désactiver toutes les scènes mas rien n'y fait. Voici par exemple l'état de la mémoire de la box : Avez vous une idée de la manière d'identifier quel process utilise toute la mémoire ? Que puis-je faire pour tenter de résoudre le problème ? Je précise que la mémoire sature petit à petit.... Après un reboot les choses rentrent dans l'ordre pour un temps.... En vous remerciant.
Nico Posté(e) le 25 mai 2017 Signaler Posté(e) le 25 mai 2017 Hum, pas normal effectivement. Quand tu boot, elle démarre à combien ? Sinon la seule chose que je vois, c'est un recovery, mais tu vas perdre tes icônes.
Lazer Posté(e) le 25 mai 2017 Signaler Posté(e) le 25 mai 2017 Euh attends, c'est normal ça, en 4.102 il y avait encore les problèmes de fuite mémoire il me semble bien. Ce firmware est assez ancien. Met à jour ça devrait aller mieux. EDIT : n'importe quoi.... ton screenshot indique bien la bonne version 4.130, c'est donc juste ta signature qui n'est pas à jour.
fmplaw Posté(e) le 26 mai 2017 Auteur Signaler Posté(e) le 26 mai 2017 Effectivement, je mets ma signature a jour ! @Nico Quand je boot j'ai 67% de mémoire free mais ca mon progressivement et en général en 24h je suis full et les services tombent un à un (dont le serveur web)...
Nico Posté(e) le 26 mai 2017 Signaler Posté(e) le 26 mai 2017 Je pense qu'une recovery réglera ton souci, mais tu perdras tes icônes. Fais bien une sauvegarde avant et une copie du répertoire backups de la clef recovery sur un PC, au cas où.
fmplaw Posté(e) le 27 mai 2017 Auteur Signaler Posté(e) le 27 mai 2017 @nico Quand tu parles d'une recovery, c'est une restauration à une date antérieure, ou bien une raz complète ? Devrais-je ré associer tous mes périphériques Z-wave ? En te remerciant.
fmplaw Posté(e) le 27 mai 2017 Auteur Signaler Posté(e) le 27 mai 2017 Je viens de faire une raz. J'ai ensuite mis à jour en 4.130 puis un restore de ma config. En espérant que cela résoudra mon problème ! 1
Nico Posté(e) le 27 mai 2017 Signaler Posté(e) le 27 mai 2017 Et, résultat ? Cela monte de suite ou c'est mieux ? 1
fmplaw Posté(e) le 27 mai 2017 Auteur Signaler Posté(e) le 27 mai 2017 @Nico J'ai attendu un petit peu et rebelote la mémoire se remplit petit à petit... Quand j'ai reboot j'étais a 67% de mémoire libre. J'en suis a 16% maintenant.... Une idée de ce que je peux faire d'autres ?
Nico Posté(e) le 27 mai 2017 Signaler Posté(e) le 27 mai 2017 Tu as beaucoup de scène et de VDs ? Sinon commencer par les sauvegarder, puis tu en supprimes une , tu regardes ce que a donne, et ainsi de suite. Si cela ce trouve tu as en une qui à un gros souci.
fmplaw Posté(e) le 27 mai 2017 Auteur Signaler Posté(e) le 27 mai 2017 J'ai 109 modules et 11 scènes... J'ai désactivé toutes mes scènes mais le souci est identique. Tu penses que la désactivation ne suffit pas ? Une suppression est nécessaire ?
Nico Posté(e) le 27 mai 2017 Signaler Posté(e) le 27 mai 2017 Je ne sais pas trop te dire. Tu as aussi des VDs avec des mainloops ? Sino tu attends lundi et tu demandes au support de se connecter pour voir lequel pose souci.
Messages recommandés