-
Compteur de contenus
4 434 -
Inscription
-
Dernière visite
-
Jours gagnés
201
Tout ce qui a été posté par Steven
-
Voilà . Je te joint le fichier mais voici un aperçu du résultat (c'est donc trié par nom de section puis par nom de pièce) : Je te laisse modifier le script à ton aise. Je l'ai volontairement fait de manière tordu mais cela est uniquement à des fins pédagogiques. (un objet "generateur" qui contient des propriétés et des fonctions qui s'appellent l'une l'autre, qui pour finir va remplir un tableau de "devices" qui contient toutes les propriétés d'un device + la nom de la pièce "roomname" et de la section "sectionname"). Que du bonheur à lire (je plaisante). J'ai laissé la possibilité de ne pas utiliser les sections "useSections = false" au cas ou cela ne fonctionnerait pas bien. Amicalement -- IDs générés le : 24/09/15 à 17:57:43 local id = { -- SECTION : Autre -- ROOM : Divers AGENDA = 178, JOURS_CHEOME = 110, CLOCK_SYNC = 252, PING = 397, MY_BATTERIES = 130, VARIABLES_GLOBALES = 288, GEA_ALARM = 279, X400CT_____AN6 = 284, X400CT_____AN5 = 283, NOTIFICATION_CENTER = 290, EVENEMENTS = 173, UPDATE_NOTIFIER_1_0_6 = 206, IMPERIHOME = 208, X400CT_____AN7 = 285, ANDROID_FILES = 162, VACANCES_SCOLAIRES = 151, -- SECTION : Etage -- ROOM : Chambres FENETRE_NOLAN = 149, FENETRE_NORA = 143, TEMPERATURE = 147, PLAFONNIER_NOLAN = 21, PLAFONNIER_KENDRA = 23, PLAFONNIER_NORA = 18, FENETRE_KENDRA = 145, -- ROOM : Couloir SPOTS = 230, PORTE_TERRASSE = 153, DETECTEUR_DEFECT = 5, HUMIDITE = 365, TEMPERATURE_COULOIR = 364, LEDS_ESCALIER = 27, APLIQUE_ESCALIER = 25, LUMINOSITE_DEFECT = 7, TEMPERATURE_DEFECT = 6, -- SECTION : Extérieur -- ROOM : Garage SURPRESSEUR = 118, PORTE_GARAGE = 64, CAMERA = 403, HUMIDITE_GARAGE = 400, PORTE_GARAGE_GARAGE = 238, TEMPERATURE_GARAGE = 399, -- ROOM : Jardin TEMPERATURE_JARDIN = 69, METEOALERTE___74 = 406, COIN_REPAS = 14, LUMINOSITE = 70, ARROSAGE = 158, DETECTEUR = 68, TERRASSE = 160, PLUIE = 139, SEISMOMETRE = 71, LAMPE_OUEST = 234, -- SECTION : Rez-de-chaussé -- ROOM : Chambre parentale SECHE_SERVIETTE = 60, -- ROOM : Cuisine CAPTEUR_FUMEE = 46, TEMPERATURE_CUISINE = 47, SIRENE = 200, FRIGO = 52, BRITA__FILTRE_ = 131, ALARME_FUMEE = 48, LAVE_VAISSELLE = 50, CUISINE = 237, -- ROOM : Entrée DETECTEUR_ENTREE = 414, LUMINOSITE_ENTREE = 416, PLAFONNIER = 10, CAMERA_ENTREE = 129, PORTE_ENTREE = 58, TEMPERATURE_ENTREE = 415, -- ROOM : Local Technique IPX800_RELAIS = 106, WAKE_SYNO = 404, PLAFONNIER_LOCAL_TECHNIQUE = 54, PORTE_LOCAL = 56, PASSERELLE_ZIBASE = 126, LAVE_LINGE = 120, VMC_DOUBLE_FLUX = 114, -- ROOM : Salon WI = 40, PRISE_LIBRE = 41, KAROTZ = 134, HIFI = 42, TV = 39, OCTAN = 412, ROMBA = 43, FREBOX_TV = 307, HUMIDITE_SALON = 360, PLAFONNIER_SALON = 282, LUMIERE_SALON = 107, FRE_PLAYER = 44, BRISE_SOLEIL = 105, OPENKAROTZ = 133, TEMPERATURE_SALON = 359, CHAUFFAGE = 104, -- SECTION : inconnu -- ROOM : inconnu SEISMOMETRE_DEFECT = 8, LUA_SNIPPETS = 141, } -- usage : -- fibaro:getValue(id["LUA_SNIPPETS"], "value") -- GEA.add(id["LUA_SNIPPETS"], 30, "") GEA_ID.lua
-
--[[ %% properties %% globals --]] -- Parameters -- local id_exist = 56 local global_exist = "Chauffage" local nbIteration = 1000 -- Do not touch please --- local id_not_exist = 100056 local global_not_exist = "AABBCCDDEEFFGGHHIIFFF" function log(name, start, cpu) if (start) then fibaro:debug(string.format("<span style=\"font-family:monospace; white-space:pre; clear:both; float:right\"> %s instruction time : %ds | cpu time : %gs </span>", name, os.time()-start, os.clock()-cpu)) else fibaro:debug(string.format("<span style=\"font-family:monospace; white-space:pre; clear:both; float:right\"> %s </span>", name)) end end function execute(name, func) if (not pcall(function() local start = os.time() local cpu = os.clock() for i= 1,nbIteration do func() end log(name, start, cpu) end)) then fibaro:debug("ERROR : " .. name) end end log("Nb runs : " .. nbIteration .. " | id : " .. id_exist .. " | G.Variable : " .. global_exist) log("----------------------------------------------") log("") -- Tests --- execute("getValue Exist :", function() fibaro:getValue(id_exist, "value") end) execute("getValue Not Exist :", function() fibaro:getValue(id_not_exist, "value") end) execute("setValue :", function() fibaro:call(id_exist, "setValue", fibaro:getValue(id_exist, "value")) end) execute("getGlobal Exist :", function() fibaro:getGlobalValue(global_exist) end) execute("getGlobal Not Exist :", function() fibaro:getGlobalValue(global_not_exist) end) execute("setGlobal :", function() fibaro:setGlobal(global_exist, fibaro:getGlobalValue(global_exist)) end) execute("getType :", function() fibaro:getType(id_exist) end) execute("getName :", function() fibaro:getName(id_exist) end) execute("getRoomID :", function() fibaro:getRoomID(id_exist) end) execute("getRoomName :", function() fibaro:getRoomName(fibaro:getRoomID(id_exist)) end) execute("getSunrise :", function() fibaro:getValue(1, "sunsetHour") end) execute("boucle 1000 :", function() for j=1,1000 do k=j end end) log("") log("----------------------------------------------") log("ALL DONE")
-
Je lis de temps en temps mes mails et j'ai malheureusement installé un MV de Krikroff qui me spam quand une mise à jour est disponible. De plus, je suis un faible, dès que je vois le mot "nouveautés" , je suis pris de clicomanie ... malheureusement très souvent suivis de déceptiomanie.
-
+ que neutre, même les performance du moteur non pas évolué ... aucune amélioration notable chez moi non plus. : [DEBUG] 14:44:32: Nb runs : 1000 | id : 56 | G.Variable : Chauffage [DEBUG] 14:44:32: ---------------------------------------------- [DEBUG] 14:44:32: [DEBUG] 14:44:35: getValue Exist : instruction time : 3s | cpu time : 1.58s [DEBUG] 14:44:37: getValue Not Exist : instruction time : 2s | cpu time : 1.46s [DEBUG] 14:44:45: setValue : instruction time : 8s | cpu time : 3.21s [DEBUG] 14:44:47: getGlobal Exist : instruction time : 2s | cpu time : 1.8s [DEBUG] 14:44:49: getGlobal Not Exist : instruction time : 2s | cpu time : 1.46s [DEBUG] 14:45:42: setGlobal : instruction time : 53s | cpu time : 4.83s [DEBUG] 14:45:51: getType : instruction time : 9s | cpu time : 6.51s [DEBUG] 14:45:58: getName : instruction time : 7s | cpu time : 5.68s [DEBUG] 14:46:05: getRoomID : instruction time : 7s | cpu time : 5.61s [DEBUG] 14:46:15: getRoomName : instruction time : 10s | cpu time : 7.4s [DEBUG] 14:46:17: getSunrise : instruction time : 2s | cpu time : 1.62s [DEBUG] 14:46:17: boucle 1000 : instruction time : 0s | cpu time : 0.15s [DEBUG] 14:46:17: [DEBUG] 14:46:17: ---------------------------------------------- [DEBUG] 14:46:17: ALL DONE
-
Plugin Developer Repository Pour Nos Modules
Steven a répondu à un(e) sujet de erwan dans Plugins Developpeur
A toi de jouer DiskStation> git push origin pull-lib-Steven Username for 'https://github.com': spiccand Password for 'https://spiccand@github.com': remote: Permission to ErwanAliasr1/hc2-addons.git denied to spiccand. fatal: unable to access 'https://github.com/ErwanAliasr1/hc2-addons.git/': The requested URL returned error: 403 -
Plugin Developer Repository Pour Nos Modules
Steven a répondu à un(e) sujet de erwan dans Plugins Developpeur
C'est une bonne idée. Mes librairies sont ici : https://gea.piccand.me/doku.php/lua#mes_librairies_en_cours -
Si on prend l'exemple d'un wallplug ID 30. Si tu veux être immédiatement informé de son changement d'état (allumé/éteint), tu mets 30 value dans l'entête. Par contre si tu veux être informé de chaque changement de consommation, tu mets 30 power (si tu es en 4.x) ou 30 valueSensor (si tu es en 3.x). Etre immédiatement informé d'un changement de consommation est rarement utilisé. On utilise plus généralement : si la consommation est supérieure à X pendant plus de X secondes. Dans ce cas si il ne faut rien mettre dans l'entête car ce n'est pas le changement de consommation qui déclenche mais la durée. GEA.add({"Power+", 30, 200}, 60, "Cela consomme plus de 200W depuis plus de 60s") Toutes les 30 secondes GEA relève la consommation et si cette dernière dépasse 200W pendant plus de 60s, il envoi le message. Si tu veux être informé de chaque changement de consommation; tu rajoutes 30 power dans l'entête et tu mets GEA.add({"Power+", 30, 0}, -1, "Cela consomme #value# depuis plus de #duration#") Mais dans ce cas, prépare toi à recevoir beaucoup de messages Et voilà
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Plugin Developer Repository Pour Nos Modules
Steven a répondu à un(e) sujet de erwan dans Plugins Developpeur
Heureusement que je suis développeur :-) -
Plugin Developer Repository Pour Nos Modules
Steven a répondu à un(e) sujet de erwan dans Plugins Developpeur
Pas le temps de faire mieux, je suis encore au travail ... tu t'attendais à autre chose ? :-) -
Plugin Developer Repository Pour Nos Modules
Steven a répondu à un(e) sujet de erwan dans Plugins Developpeur
Lol ... mon commentaire n'avait rien à voir avec tout cela ... c'était plus l'aspect comique du message pour les esprits tordus et mal tournés comme le mien "pomper" "permettre d'avancer plus vite" = promotion canapé ... tu veux un dessin ou je m'arrête là ? -
Plugin Developer Repository Pour Nos Modules
Steven a répondu à un(e) sujet de erwan dans Plugins Developpeur
J'ai peur qu'il va falloir penser à faire un repository des repository Google : LUA+scene+github+hc2 @erwan Excellent idée et oui avec GitHub un repository ne meurt pas en même temps que son propriétaire. @sebcbien Tout à fait d'accord avec toi, un repository doit vivre, pour qu'il vive, il faut de la communication autour de ce repository, de la maintenance et des ajouts. Si cela n'est pas respecté, on s'y désintéresse et il meurt. Ou alors, il faut devoir y retourner souvent pour y trouver des mise à jour ... mais cela n'est pas le cas avec les MV qu'on importe une fois et modifie que lorsque cela ne fonctionne plus. @BenjyNet "me permet de pomper" ... "me permettent d'avancer plus vite dans ce que je veux faire" ... hummmm cela ne regarde que toi -
Petit rappel : Power et Sensor sont exactement identique, changer de l'un pour l'autre n'a malheureusement aucun impact. Extrait de GEA elseif (type(id) == "table" and (string.lower(id[1]) == "sensor" or string.lower(id[1]) == "power") and #id > 2) then Pour sensor OU power, on fait exactement le même traitement. Le mot "Power" est apparu juste pour être plus parlant et pour coller un peu plus au changement apporter par Fibaro sur la v.4.x Donc @pepite ... je penche plus, comme toi, à un soucis d'ID (à vérifier les ID 246, 249 et 90).
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Le but est justement de pouvoir repérer les déclencheurs qui ne servent àrien. Cela avait été demandé par un utilisateur (je ne me souviens plus de qui).
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Je suis toujours dans le coin mais en mode "inactif"
-
@jorderic Tu as du mettre 438 value dans ton entête, il faut simplement l'enlevé, il ne sert à rien. Cordialement
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Créer 2 instances, une qui tourne toutes les 30 secondes ou plus et une autre qui tourne toutes les 15 secondes et qui ne contient que le strict minimum. Attention a bien créer une deuxième variable globale si tu pars sur cette option.
- 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
Avec pushingbox, soit tu mets directement un message dans le champs "message" Soit tu mets une variable, exemple $message$ ou $coucou$ (entre $) cette variable sera remplacée si tu envois /pushingbox?devid=12345&message=Test de message ou /pushingbox?devid=12345&coucou=Test de message Voici l'exemple de ma configuration sur pushingbox J'utilise donc toujours la même URL, je change juste la partie message= Pour plus d'info, envoi mon un PM car on est un peu hors-sujet :-) ++++ Content que cela refonctionne chez toi. -
topic unique GCE Electronics IPX800 V3 - Automate Ethernet
Steven a répondu à un(e) sujet de Moicphil dans GCE Electronics
Je viens de tester avec succès : -
topic unique GCE Electronics IPX800 V3 - Automate Ethernet
Steven a répondu à un(e) sujet de Moicphil dans GCE Electronics
Quand tu essaye directement depuis un navigateur : http://<user>:<password>@<hc2_IP>/api/callAction?deviceID=<ID MV>&name=pressButton&arg1=<No bouton> Cela ce passe correctement ? -
topic unique GCE Electronics IPX800 V3 - Automate Ethernet
Steven a répondu à un(e) sujet de Moicphil dans GCE Electronics
Dans ton cas, je ne ferais quand même pas de boucle infinie, depuis l'IPX j'appuierais sur un bouton d'un MV et ce bouton aura pour tache d'aller voir l'état de l'IPX. En bref tu colles le code de ton main loop derrière ton bouton et ton IPX appuie sur ce bouton a chaque changement d'état. Edit : et comme tu as bien fais les chose et que ton main loop ne fais que t'appuyer sur un bouton ... tu peux supprimer ton main loop :-) -
topic unique GCE Electronics IPX800 V3 - Automate Ethernet
Steven a répondu à un(e) sujet de Moicphil dans GCE Electronics
Si tu fais un VD avec 2 boutons : 1 pour ouvert (icone porte ouverte) et un pour fermé (icone porte fermée) Le push 1 envoi un pressButton&arg1=1 Le push 2 envoi un pressButton&arg1=2 Tu as ainsi l'état de ta porte en temps réelle ... + quelques millièmes de secondes. -
topic unique GCE Electronics IPX800 V3 - Automate Ethernet
Steven a répondu à un(e) sujet de Moicphil dans GCE Electronics
Je suis en version : 3.05.59c Ceci fonctionne parfaitement .. cela active bien le bouton 2 de mon module virtuel 290 qui ... pour te faire plaisir, fait un pushbullet sur mon portable :-) -
topic unique GCE Electronics IPX800 V3 - Automate Ethernet
Steven a répondu à un(e) sujet de Moicphil dans GCE Electronics
Oui, bien sà»re, mais on est plus dans le même genre de traitement. Dans un cas, tu pousses l'info vers la HC2 quand un événement arrive et dans l'autre, tu vas regardez toutes les X secondes. La 2ème méthode est consommatrice pour rien du tout (dans ton cas, je ne parles pas du cas de @ASTECH44). Donc il serait plus judicieux de faire fonctionner le push depuis l'IPX ... je regarde cela de suite. -
topic unique GCE Electronics IPX800 V3 - Automate Ethernet
Steven a répondu à un(e) sujet de Moicphil dans GCE Electronics
Non faut que tu oublies mon message, c'était sur une très très vieille version (tu n'étais même pas né) :-) -
topic unique GCE Electronics IPX800 V3 - Automate Ethernet
Steven a répondu à un(e) sujet de Moicphil dans GCE Electronics
J'ai installé Jeedom sur mon Synology pour voir de quoi retournait ce MAGNIFIQUE, MERVEILLEUX système. Bon, non, seulement, je le trouve ... à chier (c'est perso bien évidement), mais en plus, il laisse faire n'importe quoi. Voici ce que Jeedom (sous entend le développeur du plugin IPX800) à mis dans la configuration de mon IPX : Soit le développeur du plugin Jeedom/IPX a réussi mettre ses API sur mon IPX, soit Jeedom n'est pas fichu connaître son adresse IP, soit le développeur du plugin c'est dit qu'il allait s'amuser avec les utilisateurs. Dans tout les cas ... I ♥ my HC2