-
Compteur de contenus
4 434 -
Inscription
-
Dernière visite
-
Jours gagnés
201
Tout ce qui a été posté par Steven
-
Exemple des modifications de la v 1.70 - == Gestion du chauffage ==- -- Il fait trop froid (moins de 20° depuis plus de 10mn, on démarre le chauffage Wtdiso.add({"Value-", 8, 20}, 10*60, "Il fait froid au salon #value# à #time#", {{"Scenario", 20}}) -- Il fait suffisament chaud (plus de 20° depuis plus de 10mn, on arrête le chauffage Wtdiso.add({"Value+", 8, 20}, 10*60, "Il fait froid au salon #value# à #time#", {{"Scenario", 21}}) - == Controle congélateur ==- Wtdiso.add({"Value+", 8, 0}, 10*60, "Le congélateur est trop chaud #value#", {{"Repeat"}, {"Email",2}}) -== NÅ“ud mort ==- Wtdiso.add({"Dead", 27}, 5*60, "Le périphérique #name# ne répond plus, tentative de réveil", {{"WakeUp", 27}}) @Frederic #value# contient la dernière valeur du périphérique, dans le cas de ton frigo c'est très pratique Wtdiso.add({"Sensor+", 54, 450}, 2*60, "Consommation excessive du frigo #value# > 450") Les mots clés pouvant être contenu dans le message sont : #time# L'heure de l'action HH:MM:ss #duration# La durée en secondes #value# La dernière valeur enregistrée (dépend) du type de demande et de périphérique #date# La date de l'action dd/MM/AAAA #seconds# Le nombre de secondes programmé #name# Le nom du périphérique analysé #value# : Si l'action est {"Sensor+/-"} pour un périphérique avec relevé de consommation, "value" contiendra le dernier relevé de consommation. Si l'action est {"Value+/-") sur un thermomètre, "value" contiendra la dernière température Pour un dimmer "value" contient la valeur du dimmer.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Edit : code mise àjour en version 1.70[Nouveauté] Ajout du déclencheur "Value" et "Dead" [Nouveauté] Ajout du actions "Email", "Label" et "WakeUp" [Nouveauté] Ajout de variables dans le message : time, duration, value, date, seconds, name Cettte version est compatible avec la version 1.30 et supérieur. Vous pouvez donc garder votre section [A VOUS DE JOUER]
- 905 réponses
-
- 1
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Héhé, en effet, cela serait avec plaisir. Je confirme, mon métier est Ingénieur de Développement. Codeur si on veut
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Il faudrait pour cela que lorsque tu augmentes la température souhaitée de ton SRT ce dernier mette àjour la valeur dans dans le panneau de chauffage, ce qui n'est pas de mon ressort malheureusement. Du côté du module virtuel, ce dernier te permet d'ajouter une correction (-100 degré, ..., -1 degré, +1 degré, ... +100 degré) sans touchez ton thermostat ou panneau de chauffage. Cette correction n'est valable QUE pour la durée d'une plage. Exemple, dans le panneau de chauffage "Lundi matin : 20°". Le système allume ton IPX jusqu'àatteindre 20° dans la pièce. Si tu ajoute une correction de +2, le système va allumer ton IPX jusqu'à22° dans la pièce et remettre automatiquement à20° quand tu basculeras sur "Lundi après-midi". Il y a aussi la notion d'hystérésis. 21° avec une hystérésis de 0.5° signifie, je chauffe dès qu'il fait moins de 20.5° (21-0.5) et je m'arrête à21.5° (21+0.5). Cela évite les on/off trop fréquent. Voilà, je suis toujours làsi besoin.
-
@Domodial Si la variable globale "etat_portail" est à"open" plus d'une minute, on lance le scénario 58. Le script ne fera pas de push car le message est vide "" -- Le portail est ouvert depuis plus de une minute Wtdiso.add({"Global", "etat_portail", "open"}, 1*60, "", {{"Scenario", 58}}) @FredericSi la consommation du périphérique 54 est supérieur à450W = {"Sensor+", 54, 450} alors ... Si la consommation du périphérique 54 est inférieur à3W = {"Sensor-", 54, 450} alors ... local sarahVd = {"VirtualDevice", 216,1} -- Si le frigo comsomme trop (plus de 450W), on l'arrête Wtdiso.add({"Sensor+", 54, 450}, 5*60, "Attention: Le le frigo àune consommation anormalement haute > 450W", {{"VirtualDevice", 217, "1"},, {"Global", "parleaussi", "Attention+le+frigo+à+une+consommation+anormalement+haute"}, sarahVd}) -- Si le frigo ne comsomme pas assez (moins de 3W), on averti Wtdiso.add({"Sensor-", 54, 3}, 5*60, "Attention: Le le frigo àune consommation anormalement basse < 3W", {{"Repeat"}, {"VirtualDevice", 217, "1"}, {"Global", "parleaussi", "Attention+le+frigo+à+une+consommation+anormalement+basse"}, sarahVd}) Tu pourrais aussi mettre un {"turnOff"} pour éteindre automatiquement le frigo si la consommation est supérieur à450W.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Edit : code mise àjour en version 1.60 [Nouveauté] Ajout de déclencheur Avant, il n'était possible uniquement d'avoir comme déclencheur l'identifiant d'un périphérique et le système utilisait sont état (actif ou non). Il est maintenant possible d'avoir comme déclencheur une variable global ou la valeur d'un sensor Cettte version est compatible avec la version 1.30 et supérieur. Vous pouvez donc garder votre section [A VOUS DE JOUER]
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Si tu mets le message à vide "" au lieu de "Le portail.." je n'envoi pas de push Je code une solution a ta problématique et on test dans les 30 prochaines minutes.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Cela veux dire : Si le module 108 est activé depuis plus d'une minute : Mettre la variable globale "etat_portail" à "close" Lancer le scénario 58 Envoyer un push "Le portail est ouvert..." Alors que toi tu souhaiterais que Si le module 108 est activé la variable global "etat_portail" est à "open" depuis plus d'une minute : Lancer le scénario 58 Envoyer un push "Le portail est ouvert..." Si on est d'accord avec cela, je vais trouver une solution.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Je te le confirme, je n'aime pas re-développer les choses qui fonctionnent. Je suis un flemmard. En gros, le module virtuel : - reçoit une température (elle peux venir d'un module virtuel, d'une sonde fibaro, ...) - lit la température souhaitée depuis le panneau de chauffage indiqué (1 par module virtuel) - agit sur un ou plusieurs modules (url, module fibaro, ...) Par contre, l'extinction et le mode vacances n'utilise pas le panneau de chauffage. Il y a l'utilisateur "sgirod" qui a installer entre 4 et 10 modules virtuels de ce type pour gérer ces zones et cela semble fonctionner correctement. Personnellement, j'utilise ce module depuis plus de 2 mois maintenant avec comme seul soucis, le jour ou j'ai eu une panne électrique.
-
Tout dépend si tu utilises OpenKarotz ou le firmware officiel ? Sinon l'idée de base est de mettre le message souhaité dans une variable global puis activer un module virtuel qui va récupérer le contenu de cette variable pour faire parler le Karotz. .. {"Global", "Karotz", "la lumière extérieure+est allumée"} , {"VirtualDevice", 216, 1}, ...
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Organisation Des Scènes Dans L'interface
Steven a répondu à un(e) sujet de Moicphil dans HC 2 & Lite
Tes 3 derniers scénarios (gestion automatique) peuvent être remplacés par celui-ci --[[ %% properties 207 value %% globals ETATALARME VAR LEVERCOUCHER --]] local startSource = fibaro:getSourceTrigger(); if (startSource['type'] == 'property') then -- Ouverture de la porte de garage if (tonumber(fibaro:getValue(207, "value")) > 0 and tonumber(fibaro:getGlobalValue("ETATALARME")) == 1) ) then fibaro:call(7, "pressButton", "4"); end else -- Modification d'une variable globale if (tonumber(fibaro:getGlobalValue("VAR")) == 3 and tonumber(fibaro:getGlobalValue("LEVERCOUCHER")) == "1") then fibaro:call(7, "pressButton", "3"); end if (tonumber(fibaro:getGlobalValue("VAR")) == 6 and tonumber(fibaro:getGlobalValue("LEVERCOUCHER")) == "0") then fibaro:call(7, "pressButton", "1"); end end Allez dodo.En est donc à 9 scénarios remplacés par 3 soit environ 65-70% de gain. -
Organisation Des Scènes Dans L'interface
Steven a répondu à un(e) sujet de Moicphil dans HC 2 & Lite
Exemple de scénario qui regroupe les scénarios détection intrusion jours, nuit et silence --[[ %% properties 133 value 25 value 26 value 228 value 28 value 29 value 30 value 31 value 132 value 103 value 131 value 229 value %% globals --]] -- ====================================================== -- Regroupement des scénarios de détections d'intrusion -- jours (var=3), nuit (var=4) et silence (var=6) -- ====================================================== local startSource = fibaro:getSourceTrigger(); local alarmed = startSource["type"] == "other" if (startSource['type'] == 'property') then local id_declencheur = trigger['deviceID'] alarmed = tonumber(fibaro:getValue(id_declencheur, "value")) > 0 and tonumber(fibaro:getValue(id_declencheur, "armed")) > 0 end local mode = tonumber(fibaro:getGlobalValue("VAR")) if (alarmed and (mode == 3 or mode == 4 or mode == 6)) then fibaro:call(138, "pressButton", "1");--ftp fibaro:call(138, "pressButton", "3"); --ftp fibaro:call(138, "pressButton", "5");--ftp fibaro:call(13, "startProgram", "5") --PROGRAMME RGBW salon fibaro:call(122, "startProgram", "5") --PROGRAMME RGBW automatismes fibaro:call(186, "startProgram", "5") --PROGRAMME RGBW cuisine fibaro:call(11, "turnOn");--lampe salon if (mode == 3) then -- mode jour fibaro:call(42, "turnOn");--sirene salon fibaro:call(38, "turnOn");--sirene garage fibaro:call(82, "pressButton", "1");--sirene exterieure on fibaro:call(5, "pressButton", "5");--pushover fibaro:call(24, "pressButton", "10");--sms fibaro:sleep(180000);--pause 3minutes fibaro:call(42, "turnOff");--sirene salon fibaro:call(38, "turnOff");--sirene garage fibaro:call(82, "pressButton", "2");--sirene exterieure off elseif (mode == 4) then -- mode nuit fibaro:call(5, "pressButton", "8");--pushover intrusion fibaro:call(43, "turnOn");--halogenes ext fibaro:call(184, "setValue", "100");--lampes bar fibaro:sleep(120000); fibaro:call(43, "turnOff");--halogenes ext fibaro:call(184, "turnOff");--lampes bar else -- mode silence fibaro:call(43, "turnOn");--halogènes exterieure fibaro:call(5, "pressButton", "11");--pushover fibaro:call(24, "pressButton", "10");--sms fibaro:sleep(180000);--pause 3minutes fibaro:call(43, "turnOff");--halogènes exterieure end fibaro:call(13, "turnOff");--PROGRAMME RGBW salon fibaro:call(11, "turnOff");--lampe salon fibaro:call(122, "turnOff");--PROGRAMME RGBW automatismes fibaro:call(186, "turnOff"); --PROGRAMME RGBW cuisine end Soit une transformation de 3 scénario (environ 180 lignes de code) en 1 scénario de 80 lignes regroupant tout au même endroit ce qui rend la maintenance beaucoup plus simple.Regroupement des 3 scénarios permettant de vérifier l'état des portes, de les armer et d'activer le bon mode (jours, nuit, silence) --[[ %% properties %% globals VAR --]] -- ============================================= -- Regroupement des scénarios vérifications des portes -- armés les portes et basculer le mode (VAR) -- ============================================= local startSource = fibaro:getSourceTrigger(); if fibaro:countScenes() > 1 then fibaro:abort() end local portes = {229, 133, 25,26,103, 131, 132, 228, 29, 30, 28, 31} local tout_ferme = true -- Vérification des portes fermées for i = 1, #portes do if (tonumber(fibaro:getValue(#portes[i], "value")) > 0) then tout_ferme = false end end local mode = tonumber(fibaro:getGlobalValue("VAR")) -- si toutes les portes sont fermées ou que le scénario a été lancé manuellement if (( tout_ferme and (mode == 1 or mode == 2 or mode == 5) ) or startSource["type"] == "other") then -- On arme les portes for i = 1, #portes do fibaro:call(#portes[i], "setArmed", "1") end fibaro:setGlobal("ETATALARME", "1"); fibaro:call(42, "setValue", "30"); fibaro:call(38, "setValue", "30"); if (mode == 1) then -- mode jour fibaro:setGlobal("JOURNUIT", "0"); fibaro:setGlobal("VAR", "3"); fibaro:call(122, "turnOff"); fibaro:call(11, "turnOff"); fibaro:call(13, "turnOff"); fibaro:call(184, "turnOff"); fibaro:call(186, "turnOff"); fibaro:call(43, "turnOff"); fibaro:call(225, "turnOff"); fibaro:call(7, "setProperty", "ui.Label1.value", " JOUR ON " ) fibaro:call(185, "setProperty", "ui.Label1.value", " JOUR ON " ) fibaro:sleep(2*1000) fibaro:setGlobal("pushover", "Alarme Jour activée..." ); fibaro:call(198, "pressButton", "3"); --pushover lua fibaro:sleep(2*1000) fibaro:setGlobal("VAR", "3"); elseif (mode == 2) then -- mode nuit fibaro:call(122, "turnOff"); fibaro:call(11, "turnOff"); fibaro:call(13, "turnOff"); fibaro:call(184, "turnOff"); fibaro:call(186, "turnOff"); fibaro:call(43, "turnOff"); fibaro:call(225, "turnOff"); fibaro:setGlobal("VAR", "4"); fibaro:setGlobal("JOURNUIT", "1"); fibaro:call(7, "setProperty", "ui.Label1.value", " NUIT ON " ) fibaro:call(185, "setProperty", "ui.Label1.value", " NUIT ON " ) fibaro:sleep(2*1000) fibaro:setGlobal("pushover", "Alarme nuit activée...Bonne nuit !" ); fibaro:call(198, "pressButton", "2"); --pushover lua fibaro:sleep(4*1000) else -- mode silence fibaro:setGlobal("VAR", "6"); fibaro:setGlobal("JOURNUIT", "1"); fibaro:sleep(2*1000) fibaro:setGlobal("pushover", "Alarme Silence activée..." ); fibaro:call(198, "pressButton", "2"); --pushover lua fibaro:sleep(2*1000) end end A nouveau 3 scénarios (env. 180 lignes) transformé en 1 scénario d'environ 80 lignes plus facilement maintenable.On pourrait continuer ainsi un petit bout de temps, mais il est tard Bien évidemment, ces scénarios ont été crée à l'aveugle (dans le bloc note) ils peuvent donc contenir des erreurs et n'ont pas été testés. -
Je recherche des testeurs : http://www.domotique-fibaro.fr/index.php/topic/1082-wtdiso-avertisseur-de-portes-ouvertes/?p=12428
-
Mon code actuel centralise les appels "on/off" dans une méthode Heating.switch = function(choice) fibaro:call(33, choice) fibaro:debug(choice) end Il suffit de modifier cette dernière ainsi Heating.switch = function(choice) IPX = Net.FHttp("192.168.0.10",80) if (choice == "turnOn") response = IPX:GET("<URL POUR ACTIVER>") else response = IPX:GET("<URL POUR DESACTIVER>") end end Pour une fois que c'est pas compliqué
-
Mon module virtuel est adaptable en 10mn si besoin. C'est àdire que la température peut venir d'un module virtuel et il pourrait actionner un ipx (via http). Il n'y a qu'une méthode àchanger. Tiens moi au courant si besoin.
-
Oui tu peux le faire. Il faut juste bien les écrire dans l'ordre car le script respect cela. Soit {{"Global", "parle", "bbbbb"}, {"VirtualDevice", 36,1}} C'est bien évidement un exemple. Tiens moi au courant car je peux pas tester. Pas àla maison.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
J'ai lu que tu avais aussi eu des soucis avec le script de Shad ? Il y aurait un lien ?
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Juste une légère panne
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Juste une légère panne
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
J'avais pas vu venir ta coquille, je m'en occupe cet après-midi. Pour le lever / coucher du soleil {"Time", "Sunset", "Sunrise"} est déjàprévu et fonctionnel.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Te manque une { avant {"Global Il doit y en avoir 2.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Tiens moi au courant car j'ai fait plein de test avec succès mais j'ai pu oublier quelque chose. De plus, chaque installation est différente donc difficile de créer un scénario qui fonctionne parfaitement chez tous le monde. Néanmoins avec votre aide on aura un scénario universel qui contrôle 1000 trucs.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Organisation Des Scènes Dans L'interface
Steven a répondu à un(e) sujet de Moicphil dans HC 2 & Lite
Moi j'avais rien promis... Donc je me marre comme un fou. Mon conseil serait de : 1. Reprendre la programmation de chaque scénario car on peut les diminuer de 50%. Permettant une meilleure lisibilité. 2. Si les scénarios Jour, Nuit et Silence ne sont appelés que depuis ton module ont peu en faire plus qu'un. Sinon comme Shad, je suis bluffé par deux trucs : la quantité de travail que tu as fait et... que cela fonctionne :-) Plus sérieusement tu as réussi ce que tu voulais alors... Bravo. -
Edit : code mise àjour en version 1.55 [Optimisation] Grose optimisation du code Cettte version est compatible avec la version 1.30 et supérieur. Vous pouvez donc garder votre section [A VOUS DE JOUER]
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :
-
Tout àchanger Je te laisse regarder et si tu as besoin, je suis làce soir.
- 905 réponses
-
- SCRIPT LUA
- Contrôle
-
(et 1 en plus)
Étiqueté avec :