Aller au contenu

Felig

Membres confirmés
  • Compteur de contenus

    167
  • Inscription

  • Dernière visite

  • Jours gagnés

    10

Tout ce qui a été posté par Felig

  1. Bonjour, J'avais aussi une génération du message d'erreur API: Not Found quand GEA se déclenchait en mode -1 (en l’occurrence changement d'état d'une variable globale). Je confirme que ça ne bloque pas GEA qui continue à fonctionner normalement. Mais c'était gênant car du coup le Watchdog GEA redémarrait GEA pour rien. En recherchant la source, j'ai trouvé que ça vient de la fonction GEA.searchPlugins() et plus précisément de la ligne ci-dessous: GEA.searchPlugins = function() if (not GEA.auto) then -- la ligne ci-dessous génère error API: Not found si var globale non créée local vgplugins = fibaro:getGlobalValue(GEA.pluginsvariables) En effet, cette ligne génère un message d'erreur quand la variable globale "GEA_Plugins" n'existe pas (si vous n'utilisez pas de plugins). Solution: soit créer la variable globale, soit supprimer la fonction GEA.searchPlugins si vous ne l'utilisez pas. Moi j'ai choisi de ne pas appeler cette fonction quand on est en mode déclenchement -1 (équivalent à GEA.auto = false), en changeant la ligne suivante dans GEA.init (à la fin du code): -- la ligne dessous provoque erreur API: Not found en déclenchement -1 -- GEA.searchPlugins() -- corrigé en ajoutant condition if (GEA.auto) devant: if (GEA.auto) then GEA.searchPlugins() end Une façon plus propre de régler le problème serait de trouver un moyen de vérifier l'existence d'une variable globale sans générer ce fichu message d'erreur ...
  2. Bonjour, j'ai mis une fonction dans GEA pour reboot ma HC2 tous les jours à 4h du mat: GEA.add({"Time","04:00"},30,"",{"RebootHC2"},"Redémarrage HC2 à 4:00") Ça marchait parfaitement avant la 4.51, mais là en vérifiant par hasard les logs de GEA il me dit qu'il fonctionne depuis 120h. Je suis en GEA 6.07 Quelqu'un a le même problème ?
  3. Felig

    Support Gea

    Voilà, je savais que j'avais vu ça, je ne me souvenais plus du nom, merci Lazer !!!!
  4. Felig

    Support Gea

    Bonsoir à tous, J'ai eu l'erreur suivante cette nuit, qui a planté mon GEA (version 6.07) : [DEBUG] 02:38:00: GEA fonctionne depuis 22h 35m - Mémoire utilisée : 1136.45 KB [DEBUG] 02:38:30: ... vérification en cours #2711 @81330s... [DEBUG] 02:39:00: ... vérification en cours #2712 @81360s... [DEBUG] 02:39:30: ... vérification en cours #2713 @81390s... [DEBUG] 02:40:00: ... vérification en cours #2714 @81420s... [DEBUG] 02:40:30: ... vérification en cours #2715 @81450s... [DEBUG] 02:41:00: ... vérification en cours #2716 @81480s... [DEBUG] 02:41:30: ... vérification en cours #2717 @81510s... [DEBUG] 02:42:00: ... vérification en cours #2718 @81540s... [DEBUG] 02:43:00: [1;31m2018-05-21 02:43:00.510934 [ error] timer handler failed with error Je ne sais pas si quelqu'un a déjà eu cette erreur ? J'ai eu les râleries de ma fille dont les volets ne se sont pas levés, et du coup je cherche un programme pour redémarrer GEA en cas d'erreur de ce type ou autre. J'ai téléchargé GEA Status mais il me dit que GEA est "running", il me faudrait un VD qui détecte les plantages, je suis sûr que j'ai vu ça quelque part mais je n'arrive pas à le retrouver... Merci d'avance!
  5. Felig

    Zipato Multisensor Quad

    Bonjour, J'ai acquis le Zipato Multisensor Quad que j'ai installé sur la porte d'entrée de ma maison. C'est un 4 en 1: détecteur d'ouverture, détecteur de mouvement, détecteur de luminosité et détecteur de température. Le principe est qu'il commande directement (par association au Groupe 2) un autre module (normalement les lumière de la pièce) en cas d'ouverture de la porte, ou de mouvement. Les lumières "esclaves" ne sont allumées que si la luminosité est en-dessous d'un certain seuil. La notice est disponible sur le lien ci-joint: https://www.zipato.com/wp-content/uploads/2015/09/ph-psm02-Zipato-Multisensor-Quad-User-Manual-v1.4.pdf. Il n'est bien sûr pas reconnu par Fibaro, et il faut ajouter les paramètres à la main. Par défaut la lumière s'éteint au bout de 5 secondes quand on referme la porte, si il n'y pas de mouvement. J'ai essayé de supprimer cette fonctionnalité: je voudrais que la lumière reste allumée une fois la porte ouverte et refermée (je gère l'extinction ensuite via GEA). Si je comprend bien la notice il faut mettre le Bit5 du paramètre 6 à 1, et donc rajouter 32 au paramètre 6. Mais ça ne change rien. Quelqu'un utilise ce module et/ou a une compréhension différente de la notice ? Merci d'avance
  6. Felig

    Empêcher une scène de s'auto appeler

    J'avais déjà essayé et ça ne marchait pas. Mais je crois que j'ai compris pourquoi: le temps que la 2ème instance se déclenche, la 1ère était terminée, et le nb d'instance restait à 1. En mettant un sleep à la fin de la scène ça marche beaucoup mieux. La j'ai countscene + le sleep à la fin et ça roule. En limitant le nb d'instance à 1 ça devrait marcher aussi j'imagine maintenant.
  7. Felig

    Empêcher une scène de s'auto appeler

    Pas bien compris le coup de faire un autre test, mais le countscene bonne idée, je vais tester ! je connaissais pas fibaro:abort Une autre solution que j'ai trouvée entre temps c'est de diviser ma scène en 2 scènes: une qui détecte, l'autre qui est appelée par la première et qui désactive la scène qui détecte. Mais bon 2 scènes au lieu d'une c'est pas super optimisé.
  8. Bonjour, Je travaille sur une scène qui est déclenchée quand on modifie l'icone d'un VD. Le déclencheur est donc du type %% properties 105 currentIcon Jusque là tout va bien. Par contre, dans le script de la scène je modifie de nouveau l'icone, ce qui conduit la scène à s'auto appeler dans une nouvelle instance, ce que je ne souhaite pas. Est-ce qu'il y a une commande qui permet de suspendre le déclenchement automatique d'une scène ? J'ai essayé d'utiliser fibaro:setSceneEnabled(xx, false) , mais le problème c'est que ça interrompt complètement le script quand je l'applique sur la scène en cours, alors que je souhaite qu'il continue à s'exécuter. Je veux juste suspendre le trigger "%% properties" pendant une commande, puis le réactiver à la fin du script. J'ai aussi essaye de limiter le nombre d'instances à 1, mais ça ne marche pas : j'ai l'impression que l'instance qui est "tuée" est la première, pas la nouvelle. Quelqu'un a une idée ?
  9. Felig

    La documentation JEEDOM

    Merci pour vos encouragements, j'ai bien conscience que je suis au pire moment de mon apprentissage. Mais je me disais que ça pouvait aussi rassurer ou aider d'autres qui passeront par les mêmes étapes. Je n'arrive même pas à citer quelqu'un proprement sur le forum, donc encore beaucoup à apprendre ... Et la V3 a l'air d'aller dans le bon sens effectivement (clics droit sur le design, etc.) @chris6783: t'es fou, le look c'est le plus important ! sinon je serai passé sur eedomus (entre parenthèses, box moche mais qui a l'air super simple à apprendre par contre)
  10. J'avais utilisé cette méthode pour changer le nom de mes zones de panneaux de chauffage (je suis toujours en 4.12 par contre): local HC2 = Net.FHttp("127.0.0.1",11111) hpid = xxx -- id du panneau de chauffage response = HC2:GET("/api/panels/heating/"..hpid) hpname = json.decode(response).name -- ancien nom fibaro:debug("Ancien nom: " .. hpname) hpname = yyyyyy -- nouveau nom newhp = ('{"id":'.. hpid ..',"name":"'.. hpname .. '"}') HC2:PUT("/api/panels/heating/".. hpid, newhp)
  11. Felig

    La documentation JEEDOM

    Bon j'ai franchi le pas il y a un peu plus d'une semaine, pour contrôler mes volets Somfy RTS, et plus si affinités. Pour le 1er objectif, pas de problème, je contrôle tous les volets de la maison à partir de la Jeedom, et de la HC2, grâce aux commandes apiKey. Pour le 2ème objectif, j'ai démarré avec beaucoup d'enthousiasme, mais je commence à être déçu. Absolument rien n'est intuitif dans l'interface, la documentation ne répond jamais à mes questions, le forum est très frustrant (aucun tuto, et on trouve des questions anciennes laissées sans réponse). Je donne quelques exemples de mes premiers pas: Une fois mes modules volets paramétrés, j'ai essayé de rendre l'écran de départ plus joli, comme sur les copies d'écran de @sebcbien. Il y a 3 modes pour l'interface: dashboard, design et vue. Devinez dans lequel on change la couleur du fond d'écran ? Aucun. C'est dans ... le profil admin (oui, là où on change le mot de passe). Ça a l'air un détail, mais j'ai perdu un temps fou pour le trouver. Ensuite j'essaie de changer la couleur et la transparence de mes modules (toujours en mode édition). J'essaie clic droit, clic gauche, double clic, peine perdue, je n'ai pas trouvé. En fait, il faut aller en fait dans les paramètres de la Jeebox. Ok c'est pas grave, mais vous trouvez ça intuitif vous ? Bon ensuite, j'essaie de disposer mes modules bien alignés sur la page. Pour cela je passe en mode édition sur le Dashboard, je les dispose, je sors du mode édition. Et bien raté, quand je quitte et reviens, ils sont de nouveau disposés à la façon Jeedom. Apparemment, il faut être en mode Design pour que les positions soient mémorisées (mais à quoi sert le mode édition du Dashboard alors ?). Bon, j'arrête l'esthétique, et me lance dans le plugin Agenda, pour l'ouverture et la fermeture des volets. Je créé un événement qui démarre à 22:00 et finit à 22:01 (comme sur GEA), et tout fier préviens la famille que les volets vont se fermer tous seuls. Encore raté. Je recommence avec un délai plus long (22:00 à 22:15) et là ça marche. Faut-il un délai minimum pour les taches agenda ? Est-ce que ça veut dire que l'heure de démarrage est très imprécise ? Pas trouvé de réponse dans le forum. Par contre je trouve des messages qui se plaignent de bugs dans le plugin Agenda, et du fait que seuls les jours fériés français sont pris en compte. Oups, j'abandonne et programme tout sur GEA. Il me faut quand même une commande pour fermer tous les volets à la fois. Je comprend que le mieux est de créer un module virtuel (avec le plugin Virtuel) pour regrouper toutes les commandes. Le regroupement des commandes se fait facilement, je met des petites icônes, c'est pas très joli, mais prend moins de place que sur la HC2. Pour créer des textes (le nom de chaque volet) il faut insérer des variables. Là aussi, pas très intuitif (si on donne une valeur à la variable et qu'ensuite on l'efface, elle ne sera pas effacée sur le module, en fait il faut un taper un espace pour la faire disparaitre), mais c'est comme sous HC2 (les labels), donc pas de pb. Par contre la galère commence quand je veux créer une commande pour actionner tous les volets en même temps. Je veux insérer un délai entre chaque commande, pour éviter les conflits. Impossible de mettre tout ça derrière un bouton d'un module virtuel apparemment, il faut créer un scenario (l'équivalent de la scène sous HC2). Je crée donc mon premier scenario. C'est assez rapide et on est bien guidés. Juste un point: ceux qui disent que c'est facile de déplacer des instructions d'un bloc à l'autre ne doivent pas le faire sous firefox, c'est tellement galère que deux fois sur trois, la commande n’atterrit pas du tout là où je veux. Bref, in fine mon scenario est prêt. Il n'y a plus qu'à l'appeler de mon module virtuel. Et bien j'ai tout essayé, impossible. Un bouton de module virtuel ne peut commander qu'un équipement, ou changer une variable. Le coup de la variable, il faut chercher sur internet pour comprendre: c'est le même champ pour actionner un équipement ou pour donner le nom de la variable, mais aucune indication dans l'interface. Je comprend in fine que la seule solution est donc d'utiliser une variable, et de déclencher le scenario quand la variable change... Bon, je suis au début, probablement que ça ira mieux quand je maitriserai les différentes interfaces. J'ai sans doute écrit des bêtises, parce que je n'ai pas trouvé la bonne manière de faire, et je suis preneur de conseils et solutions. Bien sûr que je ne vais pas abandonner, c'est toujours amusant de découvrir une nouvelle box. Mais je pense que le design s'est totalement raté sur le côté intuitif. Et ça c'est pas bon au moment ou Apple se lance. Ce sera peut-être une box plus fiable que la HC2, mais à mon avis pas la box de référence qui va démocratiser la domotique. Et la fiabilité des plugins ne semble pas aussi parfaite que j'espérais quand on se promène un peu sur les forums.
  12. La question n'est plus d'actualité depuis le temps, mais si d'autres ont la même question, voici la réponse: -- tous les arguments doivent être saisis en format nombre (pas de " ") local idVD = xx -- id du VD local ligne = y -- ligne du VD où se trouve le bouton (toutes les lignes comptent, y compris celles où il y a des Label) local ordre = z -- numéro du bouton sur la ligne (1 = 1er bouton, etc.) local reponse = api.get("/virtualDevices/"..idVD) local libelleBouton = reponse.properties.rows[ligne].elements[ordre].caption Sur l'exemple ci-dessous, ligne = 2 et ordre = 3 donnera "Arrêt"
  13. Felig

    Test Icone Utilisée Dans Un Vd

    Bonsoir, Désolé de ressortir un sujet vieux de 2 ans, mais le code proposé par @Steven est très utile je trouve, pour restaurer facilement les icones des VD, sans avoir à les noter. Par contre j'ai eu un problème en voulant l'utiliser dans une scene. Après beaucoup de tests, je me suis aperçu que c'était lié à un bug de la fonction json.encode: quand on récupère un tableau avec cette fonction, et qu'on essaie d'actualiser une entrée existante du tableau, ça la duplique parfois au lieu de l'écraser. Donc j'avais plusieurs icones pour le même module, et la scene ne restaurait pas toujours la bonne icone. J'ai trouvé une solution de contournement: je transfère les valeurs du json.encode (tableau t1) une par une dans un nouveau tableau (tableau t2), et le nouveau tableau lui se comporte normalement, sans duplication de valeurs. Bref, voici le code qui fonctionne chez moi: --[[ %% autostart %% properties 145 currentIcon 195 currentIcon 105 currentIcon 138 currentIcon 139 currentIcon --]] -- code inspiré de Steven (avril 2015) mais beaucoup moins beau, désolé! local variableGlobale = "listicones" local trigger = fibaro:getSourceTrigger() if (trigger.type == "property") then local prop = trigger.propertyName local device = trigger.deviceID local val = fibaro:getValue(device, prop) local t2 = {} -- tableau dans lequel seront transférées les valeurs du json.decode -- mémorisation de l'icone qui vient d'être changée if tonumber(val)>999 then -- test pour éviter de mémoriser l'icone bleue fibaro:debug(string.format("Module Virtuel %s (%d) propriété %s = %s", fibaro:getName(device), device, prop, val)) local icones = fibaro:getGlobalValue(variableGlobale) -- vérificaion que la variable globale n'est pas vide ni ne contient une valeur incorrecte if icones ~= nil then if string.sub(tostring(icones),1,1) ~= "{" then icones = "{}" end end -- si la variable globle n'est pas vide on transfère les entrées Vd,icones dans le nouveau tableau t2 if icones ~= nil then -- pour ce test "{}" semble équivalent à nil fibaro:debug("Liste précédente: " .. icones) local t1 = json.decode(icones) for k,v in pairs(t1) do if tonumber(k) ~= tonumber(device) then t2[k] = v end end end -- Ajout ou modification de l'icone du device trigger t2[device] = val -- réencodage de la variable globale icones = json.encode(t2) fibaro:debug("Liste actualisée: " .. icones) fibaro:setGlobal(variableGlobale, icones) fibaro:debug(" ") end elseif (trigger.type == "autostart" or trigger.type == "other") then -- restauration des icones précédemment enregistrées if trigger.type == "autostart" then fibaro:sleep(10*1000) end fibaro:debug("==== Mise à jour des icones sur les VD ====") local icones = json.decode(fibaro:getGlobalValue(variableGlobale)) for k,v in pairs(icones) do fibaro:debug(string.format("Module : %s - currentIcon %s", k, v)) fibaro:call(tonumber(k), "setProperty", "currentIcon", v) end end
  14. @pepite Oui, j'ai résolu mon pb comme ça effectivement, merci. Mais j'aurais bien aimé savoir faire quand même (le boulet qui lâche pas ). Ca permettrait d'éviter le double changement d'icone (appui sur le bouton -> icone vierge -> code lua pour mettre la bonne), sachant que j'utilise un module de Steven qui se déclenche à chaque changement d'icone pour les enregistrer et les restaurer ensuite. On pourrait aussi utiliser les icones des boutons pour remplacer des variables globales (en fonction de l'icone du bouton, action différente pour le bouton) et ... euh ... ok, rien de tout ça est super utile, j'avoue PS: Mais si quelqu'un trouve ... (ok, je sors vraiment) Edit: lien du module de Steven (et non pas Lazer, pardon!) https://www.domotique-fibaro.fr/topic/4135-test-icone-utilisã©e-dans-un-vd/?do=findComment&comment=68049
  15. Bon je me rapproche: le code ci-dessous donne le numéro de l'icone du bouton 1 sur la 6ème ligne du VD. local reponse = api.get("/virtualDevices/"..195) numicone = reponse.properties.rows[6].elements[1].buttonIcon
  16. Oui mais ça c'est l'icone du VD, pas du bouton ? Mais ça me donne une idée. Edit: Voilà, j'ai trouvé ça en avec un json.encode sur le VD: {"type":"button","elements":[{"lua":true,"empty":false,"msg":"local mode = \"Auto\"\nlocal glob = \"chaufssol\" -- variable globale\nlocal self = fibaro:getSelfId()\nfibaro:setGlobal(glob,mode)\nfibaro:call(self,\"setProperty\",\"ui.LbAuto.value\",mode)\n\n-- passage en Auto sera détecté par GEA qui prend le relais","caption":"Auto","name":"Button2","main":false,"favourite":false,"buttonIcon":1013,"id":2,"waitForResponse":false} Vous voyez le "buttonIcon":1013 à la fin ? C'est ça que je veux modifier. Comment je fais en évitant de me planter dans le réencodage de l'API (pas le moment de planter ma HC2 vu que suis à plusieurs milliers de km de distance ...)
  17. Madame dort dans la pièce à côté et n'a aucune demande, le wifi est peu encombré la nuit (hotel oblige) ... trop tentant !
  18. @Cardane Je te rassure, je sais que ta méthode est la plus logique, et c'est comme ça que j'avais commencé. Mais comme je suis dans "l'optimisation outrancière du à une oisiveté excessive", je voulais réduire le nombre de boutons sur le VD, sachant qu'il y en déjà beaucoup pour l'utilisateur. Donc si j'en ajoute aussi plein juste pour GEA, le VD va être brouillon.
  19. Ah ça j'aime, c'est élégant sans être tordu, et c'est une syntaxe que je n'utilise pas encore. Merci Pépite! PS: Si quelqu'un connait le moyen de changer l'icone du bouton directement par une API ou autre, ça m'intéresse quand même, juste par curiosité! Edit: voici pour info le code de mon bouton "avant Pépite". Avec une variable icone{} et une variable modefp{} ca sera beaucoup mieux local self = fibaro:getSelfId() local conf = fibaro:get(self,"ui.LbConf.value") if conf == "Confort -1°" then local modefp = "50" -- fil pilote 41-50 fibaro:call(self,"setProperty","currentIcon",1015) elseif conf == "Confort -2°" then local modefp = "35" -- fil pilote 31-40 fibaro:call(self,"setProperty","currentIcon",1016) else local modefp = "100" -- mode confort par défaut 51-100 fibaro:call(self,"setProperty","currentIcon",1014) end fibaro:call(170,"setValue",modefp) fibaro:call(177,"setValue",modefp)
  20. Oui ca marche aussi, mais il faut une variable globale juste pour ca. Edit: Merci pour votre aide, je sais que c'est tordu et que je peux résoudre mon pb facilement de différentes manières. J'étais juste curieux de savoir si on pouvait accéder à la propriété "icone" d'un bouton de VD. Je suis en vacances alors je cherche des trucs compliqués pour m'occuper je suppose...
  21. Exactement Pépite, j'ai un seul bouton pour allumer (celui que j'ai collé n'est pas le bon, c'est juste pour l'exemple). Bref vous avez bien compris. Je peux le gérer autrement, avec des if dans le code du bouton par exemple, mais je cherchais un truc plus élégant tordu . Une question pour un maitre Yoda du Lua ?
  22. Merci pour votre patience Voici l'icone que je veux changer, c'est l'icone d'un bouton du VD. Je ne veux pas changer l'icone du VD, ca je sais faire. Pour l'icone du bouton, je peux le faire manuellement en appuyant sur le bouton "Change Icon", mais je me demandais si il y avait un moyen de faire ça automatiquement en code lua.
  23. Oui j'ai mélangé exprès, je ne veux pas changer l'icone du VD (c'est ce que fait le code que tu proposes) je veux changer l'icone d'un bouton précis dans le VD. Je sais c'est un peu (beaucoup) tordu, mais après tout les icones de chaque bouton sont enregistrées dans le code du VD, donc je me dis que ça doit être possible. En d'autres mots, quand on appuie sur le bouton, je veux que l'icone qui va être transmise au VD ne soit pas toujours la même, selon l'heure ou d'autres paramètres. J'espère que c'est un peu plus clair, désolé.
  24. Merci de me répondre Cardane. Oui je sais bien, mais l'icone doit changer chaque fois que l'utilisateur change la température. Et c'est toujours sur le même bouton. Je ne vais pas éditer le virtual device manuellement à chaque fois, il faut que ce soit automatique, et donc j'ai besoin d'un code lua.
  25. Bonjour, Je ressors ce vieux sujet mais j'ai pas trouvé de réponse à une question légèrement différente: J'ai un VD le de chauffage avec un bouton "On" qui est activé régulièrement par GEA notamment. Ce bouton règle le fil pilote des radiateurs selon une variable définie ailleurs (Confort, ou Confort-1, etc.). Je voudrais changer l’icône du VD en fonction du mode : une icône pour Confort, une icône pour Confort-1, etc. Attention, je précise que je sais comment changer l’icône d'un VD, et je sais que je peux résoudre mon pb facilement avec des if dans le code lua du bouton. Mais je me demandais si je ne pouvais pas tout simplement changer l’icône associée au bouton, qui est automatiquement utilisée quand on appuie dessus. Ça éviterait que l’icône change 2 fois (1 fois celle associée au bouton, et 1 fois avec le code lua), et ça allègerait le code du bouton. J'ai essayé ceci au hasard: fibaro:call(idVD, "setProperty", "ui.Button10.currentIcon", 1007) Bien sûr, ça ne marche pas. Il doit bien y avoir un moyen de modifier les icônes de chaque bouton ?
×
×
  • Créer...