-
Compteur de contenus
496 -
Inscription
-
Dernière visite
-
Jours gagnés
5
Tout ce qui a été posté par lolomail
-
La chaleur monte donc si tu as tes combles de mal isolé y a des risques que tu aies une grosse déperdition par le haut même si tu ne chauffe pas l'étage d'en haut
-
Non mais tu peux créer une scène et un virtual device pour le faire en automatique
-
Bonne année à tous J'ai remis le nez dans ce script après avoir regardé celui de Krikroff sur la gestion de la déshum, cela m'a donné une idée. J'ai testé plusieurs modifs et celle là marche, y surement de quoi optimiser: Dans le slider j'ai mis: --[[ %% properties %% globals --]] fibaro:setGlobal("Aube_duree", _sliderValue_); Puis dans le script j'ai remplacé: local duration = 40; -- Execution time in seconds of the scene Par: local duree = fibaro:getGlobal("Aube_duree") local duration = tonumber(duree) -- Execution time in seconds of the scene Au final cela marche, réglage possible entre 0 et 100 secondes
- 23 réponses
-
- Script lua
- Simulateur
-
(et 2 en plus)
Étiqueté avec :
-
Dans le panneau config au niveau de l'onglet reseau z-wave
- 19 réponses
-
- Script Lua
- Etat
-
(et 2 en plus)
Étiqueté avec :
-
Cool bonne nouvelle pour le plugin, cela me donne des idées!!!
- 12 réponses
-
- Script Lua
- reboot
-
(et 2 en plus)
Étiqueté avec :
-
Moi ce sont des dimmer qui commandent mes plafonniers. Les ampoules de sont des incandescences actuellement saut une pièce ou il y a un led dimmable avec un fibaro bypass.
- 23 réponses
-
- Script lua
- Simulateur
-
(et 2 en plus)
Étiqueté avec :
-
Trop bien ton plugin Freebox!!! Tu as mis le détail sur le forum de Fibaro?
- 12 réponses
-
- Script Lua
- reboot
-
(et 2 en plus)
Étiqueté avec :
-
Depuis que j'ai testé ce script j'avais une idée dans le coin de la tête. La nuit permettant de reposer le cerveau, ce matin je me suis attelé à faire ce que j'avais en tête. Mon idée était de mettre tout cela dans un virtual device pour choisir la courbe, la pièce ou l'on veut exécuter le script, voici les modifs: 1- Créer deux variables: "Aube_courbe" avec les valeurs linear, inQuad, inExpo, outExpo, inOutQuad, inOutExpo, outInExpo "Aube_pièces" avec les valeurs du module correspondant de la pièce 2- Créer un virtual device avec: A- Autant de bouton que de pièce qu'on veut utiliser, mettre aussi une label pour avoir l'info de la pièce sélectionnée, mettre le code suivant dans chaque bouton --[[ %% properties %% globals --]] fibaro:setGlobal("Aube_module", "39"); fibaro:call(151, "setProperty", "ui.Label1.value", "Bureau"); "39" est le numéro de module dimmer de la pièce à reporter dans la variable "Aube_module" "151" est le numéro du virtual device "ui.Label1.value" est le numéro de label pour afficher l'info "bureau" Répéter cela en modifiant les données pour chaque pièce B- 7 boutons pour choisir la courbe de variation avec le code suivant dans chaque bouton: --[[ %% properties %% globals --]] fibaro:setGlobal("Aube_courbe", "linear"); fibaro:call(151, "setProperty", "ui.Label2.value", "linear"); "linear" est le type de courbe à reporter dans la variable "Aube_courbe" "151" est le numéro du virtual device "ui.Label2.value" est le numéro de label pour afficher l'info "linear" Répéter cela pour les 6 autres courbes C- 1 bouton "Début réveil" pour lancer le réveil en douceur suivant le variable "Aube_module" et "Aube_courbe" avec le code suivant: --[[ %% properties %% globals --]] fibaro:debug("HC2 start script at " .. os.date()); -- LUA - Dawn simulator V1.0.1 -- -- Wake up "naturally", illuminated by a soft light and progressive. -- Based on open source Robert Penner's original easing equations (Copyright © 2001 Robert Penner) -- Copyright © 2013 Jean-christophe Vermandé -- USER SETTINGS : -- Type of equation used to generate the curve (dimming). -- Possible values are: linear, inQuad, inExpo, outExpo, inOutQuad, inOutExpo, outInExpo local curve = fibaro:getGlobal("Aube_courbe") -- Type of equation used to generate the curve (dimming). local debug = false; -- To log in HC2 debug area local devices = {fibaro:getGlobal("Aube_module")}; -- IDs of devices to be varied (only dimmable device), eg. {1, 16, 10} local startValue = 0; -- Begin value local endValue = 100; -- End value local duration = 40; -- Execution time in seconds of the scene -- DO NOT EDIT THE CODE BELOW (except to suit your needs) -- dawnSimulatorEngine = { version = "1.0.1" }; function dawnSimulatorEngine:init(startValue, endValue, duration, devices, curve, debug) self._lastValue = 0 self._startValue = startValue or 0; self._endValue = endValue or 100; self._duration = duration or 1; self._devices = devices or {}; self._curve = equations.map[curve or 'linear']; -- require 'equations' to operate self._debug = debug or true; end function dawnSimulatorEngine:_update(value) self._lastValue = value; -- keep in memory the last value to compare later -- loop in deveices local name, id; for i=1, #self._devices do id = tonumber(self._devices[i]); fibaro:call(id, "setValue", value); if (self._debug) then name = fibaro:getName(id); if (name == nil or name == string.char(0)) then name = "Unknown" end fibaro:debug("Device:" .. name .. " setValue: " .. value); end end end function dawnSimulatorEngine:_compute(time) return math.ceil(tonumber(self._curve(time, self._startValue, self._endValue, self._duration))); end function dawnSimulatorEngine:start() local computedValue; local doWhile = true; local time = 0; -- timeline while (doWhile == true) do computedValue = self:_compute(time); -- prevent multiple call with same value if (computedValue ~= self._lastValue) then -- update device value self:_update(computedValue); end time = time + 1; if (time > self._duration) then doWhile = false; if (self._lastValue < self._endValue) then -- force target value self:_update(computedValue); end else fibaro:sleep(1000); end -- do while end end -- Easing function (Penner's Easing Equations) equations = equations or { version = "1.0.1", -- Linear linear = function(t, b, c, d) return c * t / d + b; end, -- InQuad inQuad = function(t, b, c, d) t = t / d; return c * math.pow(t, 2) + b; end, -- InOutQuad inOutQuad = function(t, b, c, d) t = t / d * 2; if t < 1 then return c / 2 * math.pow(t, 2) + b; else return -c / 2 * ((t - 1) * (t - 3) - 1) + b; end end, -- InOutExpo inOutExpo = function(t, b, c, d) if t == 0 then return b end if t == d then return b + c end t = t / d * 2; if t < 1 then return c / 2 * math.pow(2, 10 * (t - 1)) + b - c * 0.0005; else t = t - 1; return c / 2 * 1.0005 * (-math.pow(2, -10 * t) + 2) + b; end end, -- OutInExpo outInExpo = function(t, b, c, d) if t < d / 2 then return equations.outExpo(t * 2, b, c / 2, d); else return equations.inExpo((t * 2) - d, b + c / 2, c / 2, d); end end, -- InExpo inExpo = function(t, b, c, d) if t == 0 then return b; else return c * math.pow(2, 10 * (t / d - 1)) + b - c * 0.001; end end, -- OutExpo outExpo = function(t, b, c, d) if t == d then return b + c; else return c * 1.001 * (-math.pow(2, -10 * t / d) + 1) + b; end end }; -- Equations map equations.map = { ['linear'] = equations.linear, ['inQuad'] = equations.inQuad, ['inExpo'] = equations.inExpo, ['outExpo'] = equations.outExpo, ['inOutQuad'] = equations.inOutQuad, ['inOutExpo'] = equations.inOutExpo, ['outInExpo'] = equations.outInExpo } -- START SIMULATOR ENGINE if (debug) then fibaro:debug("Starting the process"); end --startEngine(equations.map[curve]); dawnSimulatorEngine:init(startValue, endValue, duration, devices, curve, debug); dawnSimulatorEngine:start(); if (debug) then fibaro:debug("End of the process"); end Voila ce que cela donne graphiquement dans l'image attachée. Y a plus qu'à faire mumuse. Maintenant y a un truc que je voudrais faire et que l'on voit sur le screenshot c'est utiliser le slider pour régler la durée, mais je n'y arrive pas car je n'ai jamais utilisé un slider. J'ai tenté dans le code LUA du slider: --[[ %% properties %% globals --]] fibaro:setGlobal("Aube_duree", fibaro:getValue(151, "ui.Slider1.value")); --[[ %% properties %% globals --]] fibaro:setGlobal("Aube_duree", _sliderValue_); Cela ne marche pas. et dans le code principal local duration = _sliderValue_; -- Execution time in seconds of the scene Mais là , la lumière s'allume trop vite comme si je l'allumais normalement. "Aube_duree" est une variable avec valeur numérique. Si quelqu'un peut m'aider
- 23 réponses
-
- 2
-
-
- Script lua
- Simulateur
-
(et 2 en plus)
Étiqueté avec :
-
Cela marche nickel, merci pour le partage
- 23 réponses
-
- Script lua
- Simulateur
-
(et 2 en plus)
Étiqueté avec :
-
HC toolkit pour avoir l'ID du virtual device
-
Krikroff, pourrais tu partager comment tu mets l'adresse IP public et la date de MAJ dans ton module virtuel? Merci
- 12 réponses
-
- Script Lua
- reboot
-
(et 2 en plus)
Étiqueté avec :
-
Question comme je vois que LUA n'a pas de secret pour toi, pourrais-tu me dire comment faire pour faire ouvrir mes volets soit àpartir de 7h soit au lever du soleil si le soleil se lève après 7h?
- 147 réponses
-
- Script Lua
- Controle
-
(et 3 en plus)
Étiqueté avec :
-
Trop bien tu peux tester que certains modules du coup cela évite d’interroger les vannes danfoss, les sondes de température... Merci, je vais tester
- 147 réponses
-
- Script Lua
- Controle
-
(et 3 en plus)
Étiqueté avec :
-
Cédric Locqueneux a sur son site fait un tuto pour améliorer le chauffage avec les scripts suivant qui sont insérés dans un module virtuel: fibaro:setGlobal("Mode_Chauffage_SSA","ETE") fibaro:log("Mode ETE") HC2 = Net.FHttp("192.168.1.83",80) HC2:setBasicAuthentication("admin", "admin") local strefa = 1 response ,status, errorCode = HC2:GET("/api/panels/heating?id="..strefa) jsonTable = json.decode(response) jsonTable.properties.vacationTemperature = 7; json = json.encode(jsonTable); HC2:PUT("/api/panels/heating?id="..strefa, json) et fibaro:setGlobal("Mode_Chauffage_SSA","HIVER") fibaro:log("Mode HIVER") HC2 = Net.FHttp("192.168.1.83",80) HC2:setBasicAuthentication("admin", "admin") local strefa = 1 response ,status, errorCode = HC2:GET("/api/panels/heating?id="..strefa) jsonTable = json.decode(response) jsonTable.properties.vacationTemperature = 0; json = json.encode(jsonTable); HC2:PUT("/api/panels/heating?id="..strefa, json) Puis il a crée une scène afin de couper son chauffage suivant l'ouverture des fenêtres / portes. J'ai modifié les scripts comme suivant car je veux m'en servir pour basculer mon chauffage en mode été ou hiver avec un seul bouton plutot que d'aller dans le panneau chauffage et faire tout à la mimine. De plus j'ai ajouté un label histoire de visualiser dans le virtual device le statut du chauffage. HC2 = Net.FHttp("IP_HC2",80) HC2:setBasicAuthentication("ID", "Password") local strefa = 1 response ,status, errorCode = HC2:GET("/api/panels/heating?id="..strefa) jsonTable = json.decode(response) jsonTable.properties.vacationTemperature = 0; json = json.encode(jsonTable); HC2:PUT("/api/panels/heating?id="..strefa, json) fibaro:call(143, "setProperty", "ui.Label1.value", "Hiver - ON"); et HC2 = Net.FHttp("IP_HC2",80) HC2:setBasicAuthentication("ID", "Password") local strefa = 1 response ,status, errorCode = HC2:GET("/api/panels/heating?id="..strefa) jsonTable = json.decode(response) jsonTable.properties.vacationTemperature = 15; json = json.encode(jsonTable); HC2:PUT("/api/panels/heating?id="..strefa, json) fibaro:call(143, "setProperty", "ui.Label1.value", "Eté - OFF"); Mais voila j'ai un problème, je n'arrive pas à savoir comme "sélectionner" toutes mes zones de chauffage, j'ai essayer "local strefa = 1, 2" marche pas, "local strefa = {1, 2}" marche pas, une idée de comment faire?
-
Merci pour la recherche chez ton voisin, c'est super sympa. Oui a ce que j'ai regardé c'est un interphone à bus 2 fil, donc chaud pour récupérer le signal sur l'arrivée de l'inter. D'où l'idée de s'orienter plus vers le buzzer de l'interphone pour récupérer le signal via le petit montage qui est mis en lien dans le fil. Faut que j'aille acheter les qqs composants pour le monter.
-
Bonjour, Sur le post du script pour le contrôle du niveau des piles j'ai abordé le sujet nÅ“uds morts pour les détecter et voici un script tip top qui/ - Contrôle les nÅ“uds morts, - Chercher a les réveiller, - Envoie des notifications pour avertir --[[ %% autostart %% properties %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "07", "00")) and tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "23", "00"))) and (math.floor(os.time()/60)-math.floor(1369026000/60))%2 == 0 ) ) then local i = 1 local TotalDevices = 156 + 1 while i < TotalDevices do local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:setGlobal('lastDeadNode', i); -- fibaro:call(30, "pressButton", "6"); fibaro:call(1, "wakeUpDeadDevice",i); fibaro:debug("Try to wake up node "..i); fibaro:call(68, "sendPush", "Try to wake up node "..i); fibaro:sleep(5*1000); local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:debug("Device "..i.." still dead"); fibaro:call(68, "sendPush", "Device "..i.." still dead"); -- fibaro:call(30, "pressButton", "6"); -- fibaro:call(65, "sendDefinedPushNotification", "9"); -- fibaro:call(2, "sendEmail", "DEAD "..i); else -- fibaro:call(30, "pressButton", "7"); fibaro:debug("Device "..i.." fixed"); fibaro:call(68, "sendPush", "Device "..i.." fixed"); end else end i = i + 1 end end fibaro:sleep(60*1000); end else local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( startSource["type"] == "other" ) then fibaro:debug("send notification"); fibaro:call(68, "sendPush", "start check dead node"); local i = 1 local TotalDevices = 156 + 1 while i < TotalDevices do local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:setGlobal('lastDeadNode', i); -- fibaro:call(30, "pressButton", "6"); fibaro:call(1, "wakeUpDeadDevice",i); fibaro:debug("Try to wake up node "..i); fibaro:call(68, "sendPush", "Try to wake up node "..i); fibaro:sleep(5*1000); local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:debug("Device "..i.." still dead"); fibaro:call(68, "sendPush", "Device "..i.." still dead"); -- fibaro:call(30, "pressButton", "6"); -- fibaro:call(65, "sendDefinedPushNotification", "9"); -- fibaro:call(2, "sendEmail", "DEAD "..i); else -- fibaro:call(30, "pressButton", "7"); fibaro:debug("Device "..i.." fixed"); fibaro:call(68, "sendPush", "Device "..i.." fixed"); end else end i = i + 1 end end end Voici le script,son auteur est Olivier MALE. Il faut l'adapter pour le N° d'ID pour le push. Son auteur a aussi mis des "--" devant certaines lignes de notifications push et de virtual device, perso j'ai supprimé ces lignes. Le script fonctionne nickel chez moi.
- 147 réponses
-
- Script Lua
- Controle
-
(et 3 en plus)
Étiqueté avec :
-
Super je ne l'avais pas vu celui là, je viens de le mettre en place. Faire un post avec un lien serait bien et pourrait servir àd'autres
- 19 réponses
-
- Script Lua
- Etat
-
(et 2 en plus)
Étiqueté avec :
-
Yes! Merci pour ta présence et ton taff, ton HC2 tool est top!!!
-
Krikroff, par hasard existerait-il un code pour checker les noeuds morts et les reveiller àintervalle régulier?
- 19 réponses
-
- Script Lua
- Etat
-
(et 2 en plus)
Étiqueté avec :
-
Je viens de rajouter les deux lignes de codes, je vous dirais si cela marche demain
- 19 réponses
-
- Script Lua
- Etat
-
(et 2 en plus)
Étiqueté avec :
-
Super sympa comme code pour surveiller les niveaux des piles. Tu ajoutes quelle ligne pour lancer ce script une fois par jour?
- 19 réponses
-
- Script Lua
- Etat
-
(et 2 en plus)
Étiqueté avec :
-
Oui j'ai vu celui làaussi, je vais le tester sur un radio réveil a deux balles avant
-
De mémoire elle ne fonctionnera que pour les personnes ayant été listé en beta testeur de l'appli car Apple limite le nombre de licence liée à l'UID de l'Idevice