-
Compteur de contenus
6 715 -
Inscription
-
Dernière visite
-
Jours gagnés
124
Tout ce qui a été posté par Krikroff
-
Voici un autre script publié sur le forum Fibaro http://forum.fibaro.com/viewtopic.php?p=16320 pour démarrer un ordinateur complètement éteint à partir du réseau: "wake on lan". La seule chose à faire ici est de remplacer "00:00:00:00:00:00" par votre adresse mac. Utilisez ce code dans le bouton d'un périphérique virtuel. Je l'utilise pour démarrer mon micro serveur HP. --[[ %% properties %% globals --]] -- Wake On Lan v 1.0.0 [02-2013] -- Copyright © 2013 Jean-christophe Vermandé -- convert MAC adress, every 2 Chars (7-bit ASCII), to one Byte Char (8-bits) function convertMacAddress(address) local s = string.gsub(address, ":", ""); local x = ""; -- will contain converted MAC for i=1, 12, 2 do x = x .. string.char(tonumber(string.sub(s, i, i+1), 16)); end return x; end fibaro:log("Start process"); local _selfId = fibaro:getSelfId(); -- MAC adress local _macAddress = convertMacAddress("00:00:00:00:00:00"); -- Create Magic Packet 6 x FF local _magicPacket = string.char(0xff, 0xff, 0xff, 0xff, 0xff, 0xff); -- Broadcast Address local _broadcastAddress = "255.255.255.255"; -- Default port used local _wakeOnLanPort = 9; fibaro:sleep(750); for i = 1, 16 do _magicPacket = _magicPacket .. _macAddress; end fibaro:log("Magic packet successfully created"); fibaro:sleep(1000); socket = Net.FUdpSocket(); socket:setBroadcast(true); local bytes, errorCode = socket:write(_magicPacket, _broadcastAddress, _wakeOnLanPort); --check for error if errorCode == 0 then fibaro:log("Successfully sent"); else fibaro:log("Transfer failed"); end -- clean up memory socket = nil; fibaro:sleep(1000); fibaro:log("Please wait for the server startup.");
- 67 réponses
-
- 9
-
- Script LUA
- WOL
-
(et 1 en plus)
Étiqueté avec :
-
I nie mówią słowa po polsku! Dziękuję google translate ...
-
Suite aux multiples mises àjour, l'emplacement des icônes àété modifié àplusieurs reprises. Essayez de recréer les périphériques virtuels qui posent des problèmes, puis de ré uploader les icônes.
-
http://www.domotique-fibaro.fr/index.php/topic/101-script-contr%C3%B4le-des-noeuds-mort-et-leur-r%C3%A9veil/
- 19 réponses
-
- Script Lua
- Etat
-
(et 2 en plus)
Étiqueté avec :
-
Comment détecter les nÅ“uds morts... A ma sauce . Le script est paramétrable: debug: permet d'avoir une sortie vers la fenêtre 'debug' du HC2 et d’historiser les messages. userID: l'id de l'utilisateur souhaitant recevoir la notification par email. nodes: la liste des nÅ“uds à surveiller et c'est la toute la différence, attention aux périphériques sur batteries, Danfoss LC, moi je dis ça, je dis rien! repeatTime: le temps d'attente chaque interrogation. La scène doit être active, avec démarrage automatique. --[[ %% autostart %% globals --]] -- LUA Script for dead nodes handling V1.0.1 -- Copyright © 2013 Jean-christophe Vermandé fibaro:debug("HC2 start script at " .. os.date()); -- check script instance count in memory if (fibaro:countScenes() > 1) then fibaro:abort(); fibaro:debug("Script already running."); end -- SETTINGS -- Debug true or false (output information in HC2 debug window) local debug = true; -- User ID (email used to notify) local userID = 2; -- List of nodes you want to check local nodes = {4,6,7,8,10,11,12,16,17,18,19,34,35,36,44,45,46,47,48,52,54,59,351,352,353,354}; -- Interval between polling local repeatTime = (30*60*1000); -- 30 minutes -- DO NOT EDIT THE CODE BELOW (except to suit your needs) -- local lookFor = function() local id, status, dtLog; for i = 1, #nodes do id = nodes[i]; status = fibaro:getValue(id, 'dead'); dtLog = os.date(); if status == "1" then -- dead node found local name = fibaro:getName(id); local room = fibaro:getRoomNameByDeviceID(id); local message = dtLog .. " [status] device (" .. name .. " ID#" .. id .. " in room [" .. room .. "]) is flagged as dead node." if debug then fibaro:debug(message) end -- try to wakeUp device fibaro:wakeUpDeadDevice(id); -- send mail fibaro:call(userID, "sendEmail", "Dead Nodes", message); end end end -- START ENGINE LOOP PROCESS while true do lookFor(); fibaro:sleep(repeatTime); end --[[ v 1.0.1 (06-2013) Implement new getRoomName / getRoomNameByDeviceID from 3.552+ v 1.0.0 (01-2013) First stable release --]]
- 147 réponses
-
- 2
-
- Script Lua
- Controle
-
(et 3 en plus)
Étiqueté avec :
-
Actualité C'est pour bientôt!... Détecteur de fumée
Krikroff a répondu à un(e) sujet de Moicphil dans Le bistrot
:D :D :D :D :D -
Bon ce n'est pas encore pour tout de suite, se sont des versions bêta, voir RC ... Mais la v4.xx du HC2 va finir de placer le HC2 au TOP des box Z-wave du marché
-
Est-il possible d'avoir le bloc extrait de code plus lisible: Typo plus petite, de type console pourquoi pas la cerise sur le gâteau, le support du LUA
- 80 réponses
-
- Suggestion
- idée
-
(et 3 en plus)
Étiqueté avec :
-
Je ressors un vieux bout de lua basé sur les équations de robert penner et posté à l'origine ici http://forum.fibaro.com/viewtopic.php?t=1656 Tout est dans le titre. Vous pouvez utiliser cette scène de manière autonome ou bien dans le cadre d'une programmation horaire . Amusez vous bien Pour la mise en place, il faut créer donc une nouvelle scène en mode LUA puis copier le code ci-dessous. ensuite, renseigner tous les identifiants des périphériques de type "dimmer" dans la variable devices, c'est eux qui varieront d'intensité lumineuse. local devices = {23, 45, 55}; Renseigner dans la variable local curve = "inExpo" la courbe choisie pour la variation lumineuse ou bien conserver celle par défaut. cf. tableau des courbes. local duration = 20; La variable duration correspond à la durée totale en seconde de la scène pour faire une transition de la valeur basse à la valeur haute. --[[ %% 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 = "inExpo"; -- Type of equation used to generate the curve (dimming). local debug = false; -- To log in HC2 debug area local devices = {36}; -- 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 = 100; -- 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
- 23 réponses
-
- 7
-
- Script lua
- Simulateur
-
(et 2 en plus)
Étiqueté avec :
-
Pour ceux qui n'utilisent que des modules Fibaro, il est possible de programmer les modules pour réagir ou non àla commande All On/ All Off. L'envoi d'une trame "All Off" éteint tous les modules . Par contre il faut être certain de son affaire sous peine d'éteindre la pompe de son aquarium, son frigo ou pire sa cave àvin
-
Bravo pour ce script moicphil . Cependant il est important de préciser un point: Le script peut participer à vider les batteries, l'interrogation et la sortie de veille d'un périphérique sur batterie est consommateur d’énergie... Bon 1x par jour c'est pas bien grave . ET puis cela peut aider pour ceux qui ont des problèmes de "Dead nodes" en ajoutant 2, 3 lignes dans le code... Cette fonctionnalité est incluse dans le HC2: vous pouvez choisir ou non d'être averti par mail en cas de niveau faible de batterie sur les périphériques de votre choix. Le HC2 examine le niveau à chaque sortie de veille automatiquement
- 19 réponses
-
- Script Lua
- Etat
-
(et 2 en plus)
Étiqueté avec :
-
Compatible V3-V4 Aeon Labs - Minimote
Krikroff a répondu à un(e) sujet de Moicphil dans Aeon Labs / Aeotec
Il me semblait bien -
Salut Bernie , merci pour le partage... HS: J’espère que ton portail va bien
-
Jean-Christophe aka Krikroff 37 ans, j’ai sauté à pieds joints dans la domotique lors d’une grosse rénovation suite à l’achat de notre maison en 2011. J’utilise le Home Center 2 de Fibaro depuis sa version 1.xx (numéro de série inférieur à 1000 c’est pour dire) et comme pour beaucoup j’ai essuyé de nombreux plâtres ! J'ai toujours cru en cette petite boite d'aluminium qui n’a pas encore révélé tout son potentiel. Auteur du SDK .NET pour le HC2, de l’application HC2 Toolkit pour aider à l’intégration et plus récemment d’un Framework LUA dédié à l’environnement du home center 2, j’apporte mon aide lorsque cela est dans mes cordes sinon je passe ! Merci à moicphil et Yohan pour cette initiative qui aidera beaucoup d’utilisateur du HC2 c’est certain !