
jjacques68
Membres confirmés-
Compteur de contenus
4 364 -
Inscription
-
Dernière visite
-
Jours gagnés
39
Tout ce qui a été posté par jjacques68
-
nan c’est toujours la misère. la j’arrive plus a me connecter sur le fofo. et quand j’y arrive, je ne reçois pas les notifications...
-
[Résolu] Créer variable d'état en fonction du capteur qui a détecté un mouvement en dernier
jjacques68 a répondu à un(e) sujet de J3R3M dans HC2
ah bien vu @Berale24, ça marche pas en effet. suis allé trop vite... Le %%killOtherInstances c'est ok, mais il faut tester en le passage à un 1 du détecteur. J'ai vérifié, et chez moi je procède en faite différemment, j'utilise une boucle : while fibaro:getValue(xx, "value") == 1 do end et la durée est gérée grâce au paramètre 6 du détecteur. Donc quand le détecteur passe à 0, il sort de la boucle et exécute le code qui suivra. Je teste bien le passage à 1 du détecteur au préalable. -
Création variable globale dans une scène
jjacques68 a répondu à un(e) sujet de Titof_44 dans HC 2 & Lite
ouuuuh mais c'est bon ça !! je prends, mercii -
[Résolu] Créer variable d'état en fonction du capteur qui a détecté un mouvement en dernier
jjacques68 a répondu à un(e) sujet de J3R3M dans HC2
??? Ah faut que je vérifie, parce que j’en ai du même genre chez moi... -
[Résolu] Créer variable d'état en fonction du capteur qui a détecté un mouvement en dernier
jjacques68 a répondu à un(e) sujet de J3R3M dans HC2
alors voilà un premier essai : (j’ai pas testé, y a certainement des erreurs...) - il faut remplacer les XX par l’ID du détecteur de ta chambre (ou autre pièce). - créer la Varaible Globale (VG) Dodo. - ensuite créer une scène en lua et copier ce code. - et tester... --[[ %% killOtherInstances %% properties XX value %% events %% globals --]] --déclaration de variables locales local IdDevice = XX local Delai = 5 --délai (en minute) avant mise à 1 de la VG --ne pas traiter le passage à 0 du détecteur (quand il détecte plus rien) if tonumber(fibaro:getValue(IdDevice, "value") == 0 then fibaro:abort() end print("Mouvement détecté") print("Début du délai de "..Delai.." minutes") --début du code qui sera executé en différé (après le délai)--------------------- setTimeout(function() print("Délai terminé") print("Mise à 1 de la variable Dodo") fibaro:setGlobal("Dodo", 1) --mise à jour de la variable globale end, Delai * 60 * 1000) -- *60*1000 car ce temps est millisecondes --fin du code qui sera executé après le délai------------------------------------- --ce code est exécuté avant le bloc précédent car pas de settimeout. print("Valeur par defaut de la Variable Globale (0)") fibaro:setGlobal("Dodo", 0) --mise à 0 (valeur par défaut) de la variable globale normalement, lors d’iune détection, la scène se lance (les print dans le debug) te le confirmeront. Si plus de détection pendant 5 minutes, la VG passe à 1. Si nouvelle détection pendant les 5 minutes, on recommence tout le cycle. Ainsi de suite. Attention à ce que le paramètre du détecteur (le 6 de mémoire), ne soit pas supérieure au délai dans le script ! -
[Résolu] Créer variable d'état en fonction du capteur qui a détecté un mouvement en dernier
jjacques68 a répondu à un(e) sujet de J3R3M dans HC2
AH voilà, j’ai retrouvé la « fonction » permettant de supprimer les instances en cours pour ne garder que seulement la nouvelle instance ! il faut ajouter dans l’entête de la scène : %%killOtherInstances Et oui du coup en effet ça peut être utile dans ce cas... - mais jamais testé ! Par contre ça me donne des idées -
[Résolu] Créer variable d'état en fonction du capteur qui a détecté un mouvement en dernier
jjacques68 a répondu à un(e) sujet de J3R3M dans HC2
ah oui donc tu autorise do,c plusieurs instances de scènes ? y a pas une fonction qui permet de démarrer une nouvelle instance de scène en tuant les précédente ? je crois qu’on en a parlé y a pas si longtemps que ça ... mais je me souviens plus... -
[Résolu] Créer variable d'état en fonction du capteur qui a détecté un mouvement en dernier
jjacques68 a répondu à un(e) sujet de J3R3M dans HC2
j’y avais pensé, mais je vois pas comment l’exploiter. il faudrait faire un sleep ou un timeout de 15 min !? et après ? et que faire en cas de nouveau déclenchement ? -
[Résolu] Créer variable d'état en fonction du capteur qui a détecté un mouvement en dernier
jjacques68 a répondu à un(e) sujet de J3R3M dans HC2
à froid comme ça, tu crées une scène qui analyse en boucle (toutes les minutes) le dateTime de la dernière modification de tes détecteurs. Si la différence entre l’heure système (donc l’heure actualisée toutes les minutes) et le dateTime est > 15 min tu fais telle ou telle action. http://www.fibarouk.co.uk/support/lua/library/fibarogetmodificationtime/ Ensuite tes variables globales DODO ou DEHORS sont de toute façon de type string, donc que tu mettes 0, 1, YES, NO, ne changera rien. Mais la logique voudrait mettre 0 ou 1. -
Envoyé de mon iPhone en utilisant Tapatalk Pro
-
on semble tous avoir le même soucis sur iPhone, donc à part attendre une nouvelle update...
-
Connaitre le nombre de device selon leur type
jjacques68 a répondu à un(e) sujet de jjacques68 dans Tutoriels
et voilà, la version 2 est faite avec le nombre réel de device présent. Chez moi ça colle pil poil -
Connaitre le nombre de device selon leur type
jjacques68 a répondu à un(e) sujet de jjacques68 dans Tutoriels
ah !! ok -
Connaitre le nombre de device selon leur type
jjacques68 a répondu à un(e) sujet de jjacques68 dans Tutoriels
intéressant en effet... En tout cas chez moi ça colle, et je viens de rajouter un FGS, et il me la bien compter (en double biensûr à cause des 2 relais) Si j'ai le temps ce weekend, j'essaye de faire un script qui permette de lister les device physique réel... Il faut pour ça que je joue avec les parentId, et je sens que je vais y passer du temps... -
Connaitre le nombre de device selon leur type
jjacques68 a répondu à un(e) sujet de jjacques68 dans Tutoriels
tu en as combien physiquement des FGS ? 22 ? -
Connaitre le nombre de device selon leur type
jjacques68 a répondu à un(e) sujet de jjacques68 dans Tutoriels
?? alors là ?? ben normalement il compte un FGS en double ! -
D’accord Et bien bonne continuation et suite au prochain épisode !
-
Ah ok !! et tu as déjà atteint les 85 °C ???
-
Oui un lien sur un site pour trouver des infos ! Elle est fiable question température mesurée ?
-
Ensuite tu peux mettre en commentaire tous les debug qui ne te sont pas utiles...
-
Juste pour propre dans les commentaires, j’ai oublié de préciser dans le dernier code complet, dans la ligne : --update label VD (le "°C" est dans value) il faut maintenant mettre : --update label VD (le "°C" N’EST PAS dans value !!) tu as un lien sur cette sonde de température ?
-
Ok alors maintenant sans perdre ton code actuel (au cas où ), essaye ce code complet là : local selfId = fibaro:getSelfId() --ID du VD de type integer local WEB = Net.FHttp("192.168.1.24",80) -- IP to your espeasy local VgHc2 = tonumber(fibaro:getGlobalValue("TempHc2")) --valeur mémorisée de type number local tempMax = 38 --de type number local tempMin = 32 --de type number local tempNan = 10 --de type number local response ,status, err = WEB:GET("/json?tasknr=1") -- task id on espeasy if (tonumber(status) == 200 and tonumber(err)==0) then -- si réponse ok local jsonTable = json.decode(response) --recupère la table des valeurs de retour local value = jsonTable.Temperature -- sélectionne que la température --force value à tempNan si réponse = nan if string.match(value, "[0-9.]+") == nil then value = tempNan end --debug fibaro:debug("Valeur mesurée = "..value) --update label VD (le "°C" est dans value) fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.." °C") --Comparaison entre la Temperature mémorisée et la température mesurée fibaro:debug("Comparaison pour stockage dans variable : ") fibaro:debug("Valeur mémorisée actuelle = "..VgHc2) if value > VgHc2 then fibaro:debug("température mesurée supérieure -> Mise à jour de la VG") fibaro:setGlobal("TempHc2", value) else fibaro:debug("température mesurée inférieure ou égal -> pas de mémorisation") end --si temperature = 85 alors appui sur Btn 5 du device 747 fibaro:debug("Comparaison avec 85 °C :") if tonumber(fibaro:getGlobalValue("VgHc2")) == 85 then fibaro:call(747, "pressButton", "5"); fibaro:debug("= 85 °C -> eraz variable") else fibaro:debug("<> 85 °C -> rien à faire") end --allumage ou pas du ventilo fibaro:debug("Comparaison pour allumage du ventilo :") fibaro:debug("tempMax = "..tempMax) fibaro:debug("tempMin = "..tempMin) if value > tempMax then fibaro:call(747, "pressButton", "2"); fibaro:debug("allumage ventilo") elseif value < tempMin then fibaro:call(747, "pressButton", "3"); fibaro:debug("extinction ventilo") end fibaro:sleep(10*1000) -- en option : petite tempo pour calmer le code dans le VD end
-
On pourrait nettement le simplifier, car les températures renvoyées sont de type entier, il n’y a pas de « °c » après... Mais le nan me pose problème... Je sais pas ce que c’est... Mais peut être que... avec ceci qui remplacecompletement la ligne pour forcer value ?? if string.match(value, "[0-9.]+") == nil then value = tempNan end
-
Essayes voir en replaçant “nan *C” par “nan” dans le paragraphe force value à tempNan... If value == “nan”... Envoyé de mon iPhone en utilisant Tapatalk Pro
-
Alors la faut que je fasse des essais, car le nan dans le json n’est pas de type string, il a pas de guillemet ! Envoyé de mon iPhone en utilisant Tapatalk Pro