-
Compteur de contenus
4 434 -
Inscription
-
Dernière visite
-
Jours gagnés
201
Tout ce qui a été posté par Steven
-
@Shyrka973 Je suis entrain de reécrire GEA pour simplifier justement ce type de maintenance/évolution. L'idée est de faire un tableau regroupant les fonctions afin de ne pas/plus aller changer les IF dans le code. Le tableau serait décrit ainsi : _stopscenario = { "name" = function(id) return "StopScene! : " ..id[2], "" end, "action" = function(id, entry) if (fibaro:countScenes(entry[GEA.keys["PARAMS"]][i][2])) then fibaro:killScene(entry[GEA.keys["PARAMS"]][i][2]) return true else return false end end }, _enablescenario = { "name" = function(id) return "EnableScene! : " ..id[2], "" end, "action" = function(id, entry) fibaro:setSceneEnabled(entry[GEA.keys["PARAMS"]][i][2], true) return true end } _disablescenario= { "name" = function(id) return "DisableScene! : " ..id[2], "" end, "action" = function(id, entry) fibaro:setSceneEnabled(entry[GEA.keys["PARAMS"]][i][2], false) return true end } Si tu fais GEA.add({"StopScenario", 2}, ......) GEA va automatiquement cherché _stopscenario["name"] pour afficher dans le debug et _stopscenario["action"] lorsqu'il doit lancé une action (sendAction). Ainsi, il suffit juste d'ajouter une entrée de ce tableau on on a plus besoin de modifier le code inbuvable du dessous. Il y donc ceci (exemple avec {"Global", variable, valeur}) _global["condition"] qui correspond à GEA.isActivate() .. retour vrai ou faux si la variable globale a la bonne valeur _global["name"] qui correspond à GEA.getName() ... retour le nom affiché dans le debug _global["action"] qui correspond à GEA.sendActions() ... effectue l'action souhaitée setGlobal() dans ce cas. Que penses-tu de cette idée ?
- 12 330 réponses
-
- 2
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Moi non plus ... preuve ... 2 écrans : Un avec mon VRAI travail, le 2ème pour lire tes pathétiques excuses
-
Oui mais le petit suisse a été nettement plus rapide J'ai gagné ... dit ... j'ai gagné ?
-
J'ai oublié de préciser Sensor va vérifier la propriété valueSensor (si tu es en 3.x) ou power (si tu es en 4.x) Si Sensor n'est pas clair pour toi ET que tu es en 4.x, tu peux remplacer GEA.add( {"Sensor-", .....}) par GEA.add( {"Power-", .....}) mais c'est exactement la même chose pour GEA.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
J'ai pire ... j'ai donc gagné Si le lave-linge consomme moins de 1.0W (éteint), je coupe la prise. Variable = OFF Si sa consommation est supérieure à 3.0W (en fonctionnement), Variable = RUNNING Si sa consommation est entre 1.0 et 2.5 et que la variable = RUNNING alors Variable = Waiting ... Il ne consomme plus donc est terminé Si la variable est Waiting plus de 30mn alors je rappel qu'il faut ce bouger les fesses. -- === Lave-Linge == -- GEA.add({"Global", "Lave-Linge", "WAITING"}, 30*60, "Le lave-linge est arrêté depuis #duration#", {{"Global", "Karotz", "Le lave-linge est arrêté depuis #durationfull#"},{"VirtualDevice", id["OPENKAROTZ"],"1"},{"Repeat"}}) GEA.add({"Sensor-", id["LAVE_LINGE"], 1.5}, 2*60, "", {{"turnOff"}, {"Global", "Lave-Linge", "OFF"}}) GEA.add({"Sensor+", id["LAVE_LINGE"], 3}, 2*60, "", {{"Global", "Lave-Linge", "RUNNING"}}) GEA.add({{"Sensor+", id["LAVE_LINGE"], 1},{"Sensor-", id["LAVE_LINGE"], 2.5}, {"Global", "Lave-Linge", "RUNNING"}}, 5*60, "", {{"Global", "Lave-Linge", "WAITING"}})
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
C'est le code suivant de l'entête de ta scène qui va démarrer la scène à chaque enregistrement de la scène et redémarrage de la box: --[[ %% autostart --]]
-
Autre cas de figure (que j'utilise). J'ai un module virtuel avec 10 boutons ... j'ai pas envie (je suis un flemmard) de mettre un icone derrière chaque bouton. J'en met juste un sur le module virtuel lui-même. Et je met le code soit derrière chaque bouton (copier/coller), soit dans le main loop. Donc quand on clique sur un bouton, l'icone du module virtuel sera automatiquement remis au lieu de laisser un icone pas beau. Je crois que cette astuce vient de Hansolo dans son module Jours Chômé (<-- cette phrase a pour but de contrôler, si Hansolo est cérébralement décédé ou pas).
-
Dans ton cas, j'aurais utilisé le GEA.add ({"Sensor+", ...}, .........) ou GEA.add ({"Sensor-", ...}, .........) Je ne peux plus modifier GEA pour l'instant* mais libre à toi de modifier la version GitHub disponible ICI. * GEA étant devenu une usine à gaz et à pétrole ... et à charbon, je suis entrain de tester une nouvelle façon d'écrire le code pour une plus grand maintenabilité. Edit : suppression de la fin du message qui n'avait juste rien à voir et résultait d'un coller malheureux.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Le code de GEA est celui-ci : fibaro:call(<ID>, "setProperty", "currentIcon", tostring(<ICON>) ) donc on s'enfiche des guillemets englobant le 1056. Pepite à raison mais j'avais corrigé cela il y a quelque version en arrière. Par contre ... il faut être 100% sà»r du numéro de l'icone (il a pus changer lors d'une mise à jour) et du VD.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
J'avais fait mon analyse au plus simple et au moins consommateur de temps .. je l'avoue. Tu as 100% raison et j'approuve ta modification ... comme d'habitude d'ailleurs.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@Jojo Ok merci Attention avec cela : local icone = { 99 = 105, 50 = 106, 40 = 107, 0 = 108, 20 = 109, 30 = 110 } Car cela ne fonctionne pas il faut mettre [50]=106 local icone = { [99] = 105, [50] = 106, [40] = 107, [0] = 108, [20] = 109, [30] = 110 } Info pour info
-
deviceIcon n'existe pas en 3.x ? En 4.x j'ai ceci comme début de propriété {"deviceIcon":271,"ip":"\"\"","port":0,"currentIcon":"271" ...
-
@Fredric C'est quoi cette syntaxe bizarre :-) Voici la bonne syntaxe : GEA.add(true, 30, "", {{"Scenario", 70},{"Time", "09:25", "09:26"},{"Days", "Monday,Tuesday,Wednesday,Thursday"}}) Les jours sont tous dans entre les mêmes guillemets.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
topic unique GCE Electronics IPX800 V3 - Automate Ethernet
Steven a répondu à un(e) sujet de Moicphil dans GCE Electronics
Pour le X400-CT : Tu lis cet article ... avec attention car j'ai mis un peu de temps à le comprendre mais cela fonctionne : http://www.domotique-info.fr/2014/12/x400-ajoutez-4-sondes-amperemetrique-votre-ipx800/ -
Voici le code sans appel direct àl'API : -- On reprend l'id de l'icone du module virtuel en cours local icon_id = fibaro:get(fibaro:getSelfId(), "deviceIcon"); -- Puis on en fait ce qu'on veux fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", icon_id);
-
C'est connu. Il faut redémarrer la Home Center et les événements vont redémarrer.
-
Je le fais sur mon module virtuel de Chauffage (cf ma signature). L'appui sur un bouton (+1, +0.5,...) va chercher une valeur visible d'un label, faire un calcul puis modifier la valeur du label. Les labels sont utilisable comme des variables globales.
-
Malheureusement cela n'est pas possible. Vu que chacun (main loop, bouton, ...) travail de manière étanche, il n'y a pas d'autre moyen que de dupliquer le code ou de jouer sur des variables globales pour piloter le tout. Exemple le métier se trouve dans le main loop en attente qu'un variable globale change d'état (pulling) ou une scène (pour profiter des événements). Ainsi le code métier est uniquement à un endroit et les boutons ne pilotent que des variables globales. Je suis pas très clair ... désolé.
-
Il faut remettre le port 11111. En redémarrant ta box, cela devrait repartir ... mais pour combien de temps ?
-
Voici mon code que j'ai derrière le bouton Rafraichir; HC2 = Net.FHttp("127.0.0.1",11111) response = HC2:GET("/api/panels/event?last=1000&type=id") local t = json.decode(response) local j = 0 for i = 1, 1000 do local msg = fibaro:getName(t[i].deviceID) .. " | " .. t[i].oldValue .. "->" .. t[i].newValue .. " | " .. os.date("%X", t[i].timestamp) if (string.match(t[i].deviceType, "com.fibaro.*.Sensor")) then -- pas interessant else j = j + 1 pcall(function() fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..j..".value", msg) end) end end Je te laisse tester.
-
Disons que c'est a utiliser avec parcimonie car on peut facilement planté tout GEA Mais lorsque cela n'est pas possible nativement avec GEA on peut, grâce à cela, éviter de faire un script trop compliquer et juste greffer une ou deux fonctions directement dans son code GEA.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@Fredric -- 30 mn avant le couché du soleil on active la scène ... GEA.add(true, 30, "", {{"Time", "Sunset-31", "Sunset-30"}, {"Function", function() fibaro:setSceneEnabled(<IDSCENE>, true) end}}) -- 50 mn après le couché du soleil on DESactive la scène ... GEA.add(true, 30, "", {{"Time", "Sunset+50", "Sunset+51"}, {"Function", function() fibaro:setSceneEnabled(<IDSCENE>, false) end}}) Attention : Non testé.
- 12 330 réponses
-
- 1
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@Fredric Ce n'est pas un VD pour activer/désactiver l'alarme, mais un VD style réveil. http://www.domotique-fibaro.fr/index.php/topic/1211-support-gea/?p=53670 @PITP2 Tu aurais pu en profiter pour leur dire qu'on a des perf de m... depuis la 4.x C'est clair que si tu y greffes une interface style le mode bloc ... cela devient du luxe mais faut pas rêver.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Pour corrigé le inc+ et le dec-, il suffit de chercher la ligne suivante : if (GEA.match(entry[GEA.keys["PARAMS"]][i][3], "inc+")) then et de remplacer le mot GEA.match par string.match idem pour cette ligne elseif (GEA.match(entry[GEA.keys["PARAMS"]][i][3], "dec-")) then
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Rien à voir avec les regex dans ce cas, le message contenant le + est envoyé (je suppose) dans une requête HTTP du style : http://......./text=+30 arrossage samedi Or le + en HTTP signifie un espace. Le + ne sera donc jamais transmis. Cela n'a rien à voir avec GEA. Pour le inc+, c'est une autre histoire qui, elle, est bien liée au regex et est un bug dans GEA.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :