-
Compteur de contenus
4 434 -
Inscription
-
Dernière visite
-
Jours gagnés
201
Tout ce qui a été posté par Steven
-
Si tu souhaites contrôler tes tableaux d'ID, il faut les mettre dans "ids" comme ceci : local ids = { USER1 = 141, USER2 = 8, USER3 = 12, MOBILE1 = 100, MOBILE2 = 32, }
-
QUIZ : 1. Trouver la courbe en erreur 2. Trouver la légende de cette courbe Courbes des températures des 2 derniers mois.
-
VERIFICATEUR D'ID Très souvent, trop souvent, notre HC2 plante car nous utilisons des IDs (identifiants) qui n'existent pas/plus. Ces identifiants ont tendance à changer lors : d'une mise à jour de la box de la reconfiguration d'un device Parfois, même un simple changement de pile Bref, il est difficile de contrôler périodiquement tous nos scènarios, VD, ... Voici donc un scénario qui va "tenter" de faire cette vérification pour vous. Ce scénario N'EST PAS intelligent, il analyse votre code sans le comprendre et vous affiche des éléments qui méritent d'être vérifiés. Ce scénario peut vous envoyer un push en cas d'avertissement rencontré, peux tourner à intervalle régulier et vous envoyer un rapport par email. Lorsque ce scénario rencontre quelque chose d'étrange, il vous affiche la ligne suivante : [DEBUG] 09:57:24: checking scene : [425] Graphs pull [DEBUG] 09:57:24: code --> contient une référence erronée dans fibaro:call(81, "pressButton", "1") [ignored = {id=425, field="81"}] Vous allez donc vérifier le code de votre scène (Graphs pull) dans cet exemple. Si effectivement l'ID n'existe plus, il vous suffit de corriger votre code. Inversement, si cet avertissement n'a pas de sens, il vous suffit de copier le code commencant par ignored [ignored = {id=425, field="81"}] situé en fin de ligne et de le copier entre les deux lignes suivantes local ignored = { -- {id=425, field="81"}, -- Graph pull - Ligne en commentaire } Ainsi cette scène ignorera cet avertissement pour les prochaines fois. Cette scène nécessite un petit effort de mise en place mais permet de corriger et prévenir des erreurs d'ID qui peuvent être désagréable. Courage et n'hésitez pas si vous avez des questions. Ci-joint la scène en question et l'icone créé par @sebcbien. Historique : 1.0 -> Initialisaton 2.0 -> vérifie ou non les scènes et VDs désactivés (voir local checkDisabled = false) 2.0 -> corrige l'analyse de l'entête des scènes (du mois, je crois) 2.0 -> permet d'ignorer certaines erreurs (voir local ignored = {}) 2.1 -> optimisation du code 2.2 -> lors de la recherche de la valeur d'une variable, prend en compte la position dans le code 2.3 -> Vérifie les variables courantes : "id", "deviceid", ... (voir local mostUseVariables = {}) 3.0 -> Auto-détection de GEA 3.1 -> Ignore les warnings liés à cette propre scène 3.2 -> Autostart et envoi de push + notification en cas de problème 3.3 -> Envoi de mail + relancement automatique toutes les X heures 3.4 -> Mise à disposition des utilisateurs 3.5 -> Affichage du nom du bouton en cas d'avertissement 3.6 -> Ne confond plus les variables contenant caractères et chiffres (Windows5, Radiateur_4) avec des IDs de module 3.6 -> Ne confond plus le numéro du CentralSceneEvent avec un ID de module CheckAll_v3.6.lua
-
Mise à jour Béta Hc2 & Hc Lite 4.092 Beta - 20/09/2016
Steven a répondu à un(e) sujet de speedoxx007 dans Firmware
https://developer.fibaro.com/docs/fghc-luaapi#fibarocallGroupAction https://developer.fibaro.com/docs/fghc-luaapi#FGHCLuaAPI-EN-Notoficationscontrol -
Mise à jour Béta Hc2 & Hc Lite 4.092 Beta - 20/09/2016
Steven a répondu à un(e) sujet de speedoxx007 dans Firmware
Il faut que tu regardes la doc, cela doit être indiqué. http://hc2_ip/docs -
Mise à jour Béta Hc2 & Hc Lite 4.092 Beta - 20/09/2016
Steven a répondu à un(e) sujet de speedoxx007 dans Firmware
Pour les curieux, il y a quelques nouvelles fonctions LUA dans cette version : . -- api : ...../devices/groupAction/ fibaro:callGroupAction(actionName, actionData) split(text, delimiter) -- attention, le code la derrière est beuuuurrrkkkkk -- api : .../notificationCenter/ HomeCenter.NotificationService.publish(request) HomeCenter.NotificationService.update(id, request) HomeCenter.NotificationService.remove(id) .. Je vous laisse vous amuser, je ne vais pas installer cette version. -
Pour être plus exact : Cela sous-entend {Value, id, > 0} ... 0 = éteint. Toute valeur en dessus de 0 = allumé avec variation possible.
- 12 330 réponses
-
- 2
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
GEA.add(id["Dporte_ced"], 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}})
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
J'ai un vieux code que j'ai pas testé depuis longtemps. Je te laisse voir si ça fonctionne encore. Il faudra changer ton scénario (sonnette) pour qu'il ne soit pas lancer automatiquement. Il va : Mémoriser l'état de ton ruban LED Executer ta scène qui change la couleur (sonnette) Remettre le ruban LED a l'état précédent 2000 doit être remplacer par l'ID de ta sonnette 154 par l'id de ton ruban 1000 par l'id de ta scène qui change la couleur de ton ruban --[[ %% properties 2000 value --]] local RGB_ID = 154 local SCENE_SONNETTE_ID = 1000 --get last color local colorSet = fibaro:getValue(RGB_ID, "lastColorSet"); local state = fibaro:getValue(RGB_ID, "value"); local prog = fibaro:getValue(RGB_ID, "currentProgramID"); --lancer la scene de la sonette fibaro:startScene(SCENE_SONNETTE_ID) fibaro:sleep(2000) -- Retour à l'état d'origine if (tonumber(state) > 0 or tonumber(prog) > 0) then if (tonumber(prog) > 0) then fibaro:call(RGB_ID, "startProgram", prog) return end --set old color local RGBWTable= {}; local i = 1; for value in string.gmatch(colorSet,"(%d+)") do RGBWTable[i] = value; i = i + 1; end fibaro:call(RGB_ID, "setColor", RGBWTable[1], RGBWTable[2], RGBWTable[3], RGBWTable[4]); fibaro:call(RGB_ID, "setValue", state) else fibaro:call(RGB_ID, "turnOff") end
-
Merci @moicphil Je cherche un script plus générique avec la possibilité de tracer toutes les cycles d'une machine à laver, chauffe-eau, ... et un peu moins coà»tant en terme de ressources CPU. Pour l'instant, l'avantage du tien est QU'IL FONCTIONNE mais j'ai bon espoir que le mien aussi dans pas longtemps Bon, quand je regarde le script que j'ai fourni, cela prouve que je suis capable de fournir de la m... j'ai pas encore testé mais en tout cas, le 1er bug est déjà à la 2ème ligne ... et oui, j'ai oublié un % ... dans l'entête, il doit toujours y avoir %%.
-
J'ai pu testé et c'est la même chose chez moi...rien. J'analyse et testé comme il faut ce week-end et je reviens avec un script qui fonctionne.
-
Topic unique Fibaro - Capteur D'ouverture Fgk
Steven a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Oui en effet, il y a 2 état Ouvert = en alerte Fermé = Normal Ensuite tu as l'alarme activée ou non Armé = Alarme activée Désarmé = Alarme désactivé Sabotage = C'est quand quelqu'un manipule le module -
Topic unique Fibaro - Capteur D'ouverture Fgk
Steven a répondu à un(e) sujet de Moicphil dans Modules Fibaro
EGALE "en alerte" en alerte = ouvert -
Volontiers car j'ai déjàfait toute la lessive ce weekend donc pour tester il faudra attendre encore un peu :-)
-
Topic unique Récupérer La Temperature Max De La Veille
Steven a répondu à un(e) sujet de Allan2b dans Chauffage et Energie
Tordu ton code mais belle tentative Voici le correctif --[[ %% properties %% events %% globals --]] function getMaxTempYesterday(id) local t = os.date("*t") t.day = t.day - 1 local debut = os.time{year=t.year, month=t.month, day=t.day, hour=0, min=0, sec=0} local fin = os.time{year=t.year, month=t.month, day=t.day, hour=23, min=59, sec=59} local res = api.get("/temperature/"..debut.."/"..fin.."/compare/devices/temperature/"..id) return res[1].max end local currentDate = os.date("*t"); if (string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "08:30") then local max_hier = getMaxTempYesterday(91) fibaro:debug("La température maximum était de " .. max_hier) end La function ne doit pas être entre IF .. END sinon elle n'est pas visibile. Lorsque tu vois le message "attempt to call global ... " cela ne concerne pas les variables globales de la HC2, cela veux dire que le code n'est pas capable de trouver quelque chose. -
I don't have all the answers. About the restart, it means you have something in your header which trigger GEA but GEA find nothing to do with this trigger. @jompa68 The good syntax and usage for dates is : {“Datesâ€, <from>, <to>} and should ne be part of a IF. There is nothing for the last day of month so you will have to do GEA.add(..... {{"Dates", "31/01", "31/01"}, {"Dates", "28/02", "28/02"}, {"Dates", "31/03", "31/03"}, ...})
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
J'ai pas la possibilité de tester mais si quelqu'un a le courage : --[[ % properties 120 value --]] local smartphone = 504 -- identifiant du smartphone pour recevoir les push local wallplug = 120 -- identifiant de wallplug du lave-linge local autoOff = true -- true si le wallplug doit être éteint àla fin des cycles -- --------------------------------------- -- Paramétrage des cycles de lavage -- respecter l'ordre -- ---------------------------------------- local cycles = { {name="Preparation", watts={min=0, max=5.0}, push="En attente de démarrage"}, {name="Chauffage", watts={min=500, max=5000}, push="Chauffage en cours"}, {name="Lavage", watts={min=0,max=500}, push="Lavage détecté"}, {name="Fin", watts={min=0, max=5.0}, push="Fin du programme"} } -- ======================================== -- NE PAS TOUCHER -- ======================================== function getConso(seconds) local fin = os.time() local t = os.date("*t", fin) t.sec = t.sec - seconds local debut = os.time{year=t.year, month=t.month, day=t.day, hour=t.hour, min=t.min, sec=t.sec} local res = api.get("/energy/"..debut.."/"..fin.."/compare/devices/power/"..wallplug) return res[1].min, res[1].max, res[1].avg end local estAllume = tonumber(fibaro:getValue(wallplug, "value")) > 0 function check() -- Si le module est allumé if (tonumber(fibaro:getValue(wallplug, "value")) > 0 ) then -- on regarde la conso des 5 dernières secondes local min,max = getConso(5) local prochaine = cycles[1] if (min >= prochaine.watts.min and max <= prochaine.watts.max) then -- si c'est la bonne, on envoi un push print(prochaine.name) fibaro:call(smartphone, "sendPush", prochaine.push) --fibaro:setGlobal("Pushbullet", prochaine.push) table.remove(cycles, 1) end --print(min .. " " .. max) -- si toutes les étapes n'ont pas encore été consumée, on relance la contrôle dans 5 secondes if (#cycles > 0) then setTimeout(function() check() end, 5000) else if (autoOff) then fibaro:call(wallplug, "turnOff") end end end end if (estAllume) then print("Wallplug .. [" .. wallplug .. "] allumé") check() else print("Wallplug .. [" .. wallplug .. "] éteint") end
-
Strange, all seems quiet good : Try this please but it will not change a lot : GEA.add(true, 10*60, "",{ {"Global", "presence_ext", "0"}, {"Global", "presence_int", "0"}, {"Global", "presence_p1", "0"}, {"Global", "presence_p2", "0"}, {"Global", "presence_pt", "0"}, {"Global", "presence_cucina", "0"}, {"Repeat"} }) --Se l'allarme è attivato chiudi la persiana in soggiorno GEA.add({"Global", "allarme_notte", "1"}, 2*60, "", {{"Close",id["PERSIANA_SOGG"],100}}) --Se l'allarme è disattivato apri leggermente la persiana in soggiorno GEA.add({"Global", "allarme_notte", "0"}, 3*60, "", {{"Open",id["PERSIANA_SOGG"],99}}) --Se la variabile pioggia giornaliera è superiore a 0.1 e se è estate imposta ritardo irrigazione di 24 ore GEA.add({"Global+", "rain_for_day", 0.1}, 60, "piove", {{"DST"}, {"VirtualDevice", 2336, 2}}) No other script can change the global variable "presence_xxx" during GEA is runing ?
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
info/temperatureUnit c'est uniquement °C ou °F et non pas la température de ta HC2 http://ip/docs te donnera la liste de tous les apis dont : /api/diagnostics mais toujours pas de température.
-
Topic unique Récupérer La Temperature Max De La Veille
Steven a répondu à un(e) sujet de Allan2b dans Chauffage et Energie
Je comprends pas, pour une fois que cela fonctionne chez moi et pas chez quelqu'un d'autre. Sinon, voici les infos que j'ai dans "Advance Settings -> Push" -
Il n'y a rien sur la température de la HC2 ... de mémoire.
-
Show us your GEA.add lines and scripts if you want us to be able to help you. But for sure the delay is not your problem.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Topic unique Récupérer La Temperature Max De La Veille
Steven a répondu à un(e) sujet de Allan2b dans Chauffage et Energie
Il est en quel version ton IPX ? Je suis en Firmware version: 3.05.59c -
Here is a sample I use right now and working : GEA.add({"Label", id["VD_FILTRE"], "Etat", "Auto"}, 30, "", {{"Time", "21:00", "21:00"}, {"VirtualDevice", id["VD_FILTRE"], "5"}, {"Repeat"}}) GEA.add( {"Label",466,"Label1","Ouvert"}, 10*60, "The door is open since #duration#", {{"Global", "Notification", "The door is open since #durationfull#"}, karotz, {"Repeat"}}) . . For immediat ( -1 ) add 485 ui.Etat.value in your header
- 12 330 réponses
-
- 2
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Duration is the time your HC2 takes to run all your GEA.add instance this may change if your HC2 is buzy or not. New Delay = 30s - duration : this calculation is to run the next time at the right time This "Error" is not an error so I don't understand your meaning.
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :