971jmd Posté(e) le 26 octobre 2020 Signaler Posté(e) le 26 octobre 2020 ok Tu peux me donner un exemple de fonction config() personnalisée, j'ai il me semble déjà utilisé ça mai il y longtemps
Lazer Posté(e) le 26 octobre 2020 Auteur Signaler Posté(e) le 26 octobre 2020 On en a parlé sur la page précédente justement ! Là où tu devais incorporer ton Telegram. Inutile que je copie/colle ce qui a déjà été fait. Je t'invite donc à consulter la page officielle de GEA de Steven dont j'ai donné le lien dans le premier post de ce topic, où tu y trouveras notamment la doc Syntaxe faite par Pepite. Tout y est expliqué.
971jmd Posté(e) le 26 octobre 2020 Signaler Posté(e) le 26 octobre 2020 On ne s'est pas compris, c'est fonction directement dans le MAIN ou CONFIGU ?
Lazer Posté(e) le 26 octobre 2020 Auteur Signaler Posté(e) le 26 octobre 2020 Dans config Je t'ai déjà dit qu'il ne faut surtout pas, ô grand jamais, modifier main Avec des couleurs rouge/vert c'est clair
971jmd Posté(e) le 26 octobre 2020 Signaler Posté(e) le 26 octobre 2020 c'est un EXP code comme : GEA.add ( {"Function", function() return timecycleB() end}, 0, "" , { {"Telegram", 288, { "function ok #value# - #time#" }} }) A utilisé directement dans CONFIG
971jmd Posté(e) le 28 octobre 2020 Signaler Posté(e) le 28 octobre 2020 salut je souhaite testé le {"VirtualDevice", 73, 2} par "QuickApp" (alias identique "QA") {"QuickApp", <id_module>, <method>, [paramètres]} Mais je ne comprends pas trop
Lazer Posté(e) le 28 octobre 2020 Auteur Signaler Posté(e) le 28 octobre 2020 (modifié) Et bien, ça c'est pas bon : {"VirtualDevice", 73, 2} 2 est un nombre, ça ne peut pas être un nom de fonction. Il faut donc mettre une chaine de caractère qui contienne le nom de ta fonction au sein du QuickApp. Par exemple : {"QuickApp", 73, "MaFonctionQuiFaitPleinDeSuperTrucsUiles", "avec", "tout", "un", "tas", "d'arguments"} Tu noteras que j'ai ajouté des arguments à passer à la fonction. Du coup dans ton QA tu dois avoir quelque chose qui ressemble à ça : function QuickApp:MaFonctionQuiFaitPleinDeSuperTrucsUiles(...) end Et 73 c'est l'ID de ton QuickApp bien sûr Modifié le 28 octobre 2020 par Lazer
971jmd Posté(e) le 28 octobre 2020 Signaler Posté(e) le 28 octobre 2020 (modifié) j'ai créé un QA avec un bouton qui active le profile 4 function QuickApp:p4(onReleased) fibaro.profile("activateProfile", 4) end vue que "VirtualDevice", "VD" => remplacé par "QuickApp" et "QA" et Dans GEA je cherche le moyen d'activé ce bouton Id p4 et onReleased p4 j'ai un autre bug ou pas avec GEA mai je t'en parlerai après, je continu l'observation Modifié le 28 octobre 2020 par 971jmd
Lazer Posté(e) le 28 octobre 2020 Auteur Signaler Posté(e) le 28 octobre 2020 (modifié) Non mais oublie le bouton, c'est fini la HC2, avec le numéro du bouton qui change dès que tu modifies le VD Comme je t'ai dis, tu appelles directement la fonction qui t'intéresse. Dans ton cas, c'est la fonction associée au bouton, donc : {"QuickApp", 73, "p4"} C'est tout simple, rapide, efficace, maintenable. Modifié le 28 octobre 2020 par Lazer
971jmd Posté(e) le 28 octobre 2020 Signaler Posté(e) le 28 octobre 2020 j'ai testé ça et GEA me crache dessus Non tu oublies que ne fonctionne plus VirtualDevice et ça fonctionne bien avec, c'est "" qui me manquaient GEA.add(true, 0, "p4", {{"QuickApp", 238, "p4"}}) merci
971jmd Posté(e) le 28 octobre 2020 Signaler Posté(e) le 28 octobre 2020 l'autre éventuel BUG, vient je pense de {"OnOff", id["LAMPE_CUISINE"] } GEA.add({"SceneActivation", id["TELECOM_DU_BAR"] , 14}, -1, "", {{"OnOff", id["LAMPE_CUISINE"] } }) Te temps en temps quand j'appuie sur le bouton pour lancée l'action, la lampe s'allume et s'éteint
Lazer Posté(e) le 28 octobre 2020 Auteur Signaler Posté(e) le 28 octobre 2020 Mais bien sûr, c'était "QuickApp" et pas "VirtualDevice" dans mes exemples précédents, j'avais bêtement copié ta ligne sans même vérifié ça, tellement pressé que j'étais de répondre (et dans ma tête c'était tellement évident qu'on parlait bien de QuickApp) Je vais éditer les messages Etrange ton comportement "OnOff", je l'ai testé et ça fonctionnait bien chez moi. Tu arriverais à reproduire de façon plus certaine que "de temps en temps" ?
Dgille Posté(e) le 18 novembre 2020 Signaler Posté(e) le 18 novembre 2020 (modifié) Bonjour, j'ai un souci sur GEA 7 sur ma toute fraiche HC3. J'ai intégré mes ampoules HUE sans problème. J'allume bêtement une ampoule sur détection de mouvement. GEA.add( {51, {"Value-",53,150}} , -1, "", { {"Time","Sunset-30","23:00"}, {"Time","19:30","23:00"}, {"Time","07:00","09:00"}, {"turnOn",21,5*60}, {"Repeat"} }) Cela fonctionne, mais l'ampoule n'est pas 100% de luminosité par défaut. J'ai essayé GEA.add( {51, {"Value-",53,150}} , -1, "", { {"Time","Sunset-30","23:00"}, {"Time","19:30","23:00"}, {"Time","07:00","09:00"}, {{"turnOn",21,5*60},{"Hue", 21, "bri", 100}}, {"Repeat"} }) Mais j'ai une erreur [18.11.2020] [20:31:33] [ERROR] [QUICKAPP28]: main.lua:2382: attempt to call a nil value (method 'lower') La ligne en question est if type(a[i]) == "table" and a[i][1]:lower()=="if" then a[1] = vaut nil Une idée ? PS: pour le reste , la box est juste TOP !!!! (hormis les petits défauts de jeunesse :))) Modifié le 18 novembre 2020 par Dgille
Lazer Posté(e) le 18 novembre 2020 Auteur Signaler Posté(e) le 18 novembre 2020 Hue, c'est quelque chose que je n'ai pas pu tester, donc tu es tombé sur un bug non identifié. Tu pourrais me donner le JSON de ton module Hue, qui semble être l'ID 21 ?
Dgille Posté(e) le 18 novembre 2020 Signaler Posté(e) le 18 novembre 2020 Merci pour ton aide, voici { "id": 21, "name": "Lampe", "roomID": 229, "view": [ { "assetsPath": "/dynamic-plugins/com.fibaro.rgbwController/assets", "jsPath": "/dynamic-plugins/com.fibaro.rgbwController", "name": "com.fibaro.rgbwController", "translatesPath": "/dynamic-plugins/com.fibaro.rgbwController/i18n", "type": "ts" }, { "type": "json" } ], "type": "com.fibaro.philipsHueLight", "baseType": "com.fibaro.colorController", "enabled": true, "visible": true, "isPlugin": true, "parentId": 20, "viewXml": true, "configXml": false, "interfaces": [ "levelChange", "light" ], "properties": { "alert": 0, "brightness": 1, "categories": [ "lights" ], "color": "255,255,255,0", "colormode": "", "currentProgram": 0, "dead": false, "deadReason": "", "deviceControlType": 23, "deviceIcon": 15, "effect": 0, "emailNotificationID": 0, "emailNotificationType": 0, "hue": 0, "isLight": true, "lightId": 1, "log": "", "logTemp": "", "manufacturer": "", "model": "", "on": false, "pushNotificationID": 0, "pushNotificationType": 0, "reachable": true, "saturation": 0, "saveLogs": true, "smsNotificationID": 0, "smsNotificationType": 0, "state": false, "userDescription": "", "value": 0 }, "actions": { "setColor": 1, "setValue": 1, "startLevelDecrease": 0, "startLevelIncrease": 0, "stopLevelChange": 0, "toggle": 0, "turnOff": 0, "turnOn": 0 }, "created": 1605644899, "modified": 1605644899, "sortOrder": 13 }
Lazer Posté(e) le 18 novembre 2020 Auteur Signaler Posté(e) le 18 novembre 2020 OK merci, je regarderai ça demain.
Dgille Posté(e) le 18 novembre 2020 Signaler Posté(e) le 18 novembre 2020 Pas de problème, je suis offline également
Dragoniacs Posté(e) le 19 novembre 2020 Signaler Posté(e) le 19 novembre 2020 Petite question : comment on gère les options ? Voici ma ligne GEA HC2 : GEA.output = function(message) fibaro:setGlobal("Pushover", message) end J'ai testé sur HC3: GEA.output = function(message) fibaro.setGlobalVariable("Pushover", message) end Ca marche pô.... j'ai une erreur dans le debug: [19.11.2020] [13:37:01] [ERROR] [QUICKAPP26]: config.lua:10: Wrong parameter type, string required. Provided param 'custom [luabind::detail::null_type] object: (nil)' is type of userdata
Lazer Posté(e) le 19 novembre 2020 Auteur Signaler Posté(e) le 19 novembre 2020 Elle est étrange ton ancienne syntaxe, tu es certaine qu'elle était valide ? D'après la doc, la syntaxe des options est la suivante (voir la doc pour les explications complètes) : GEA.options.nom_du_plugin = {name="Nom_Du_Plugin", getValue=function(valeur) -- code CONDITION à mettre ici -- end, action=function(valeur) -- code ACTION à mettre ici -- end, } Donc dans ton cas le fichier de config devrait ressembler à quelque chose comme ça (non testé) : function config(GEA) -- d'autres paramètres... -- Définition de mon option personnalisée : GEA.options.output = {name = "Output Pushover", action = function(message) fibaro.setGlobalVariable("Pushover", message) end, } end
Dgille Posté(e) le 19 novembre 2020 Signaler Posté(e) le 19 novembre 2020 Bonsoir, j'ai résolu mon problème, un problème entre la chaise et le clavier, le copier/collé est mal passé, en remettant tout sur une ligne, cela passe au niveau syntaxe. Le second problème est subtil, mais GEA envoi directement les ordres HUE au pont, et donc la luminosité n'est pas en pourcentage, mais sur la valeur décimale d'un octet, 100%=254 . D'ailleurs, on ne pourrait pas passer par le child device créé par le QA Hue ? à creuser. Désolé pour le bruit.
Lazer Posté(e) le 19 novembre 2020 Auteur Signaler Posté(e) le 19 novembre 2020 Trop fort, je n'ai rien eu à faire Je n'ai pas de Hue à disposition pour tester, mais est-ce que passer par le Child apporterait quelque chose ? Surtout, pourquoi cela n'a pas été fait sur la HC2 ? Il doit y avoir une bonne raison... La conversion 100% = 254 est facile à faire, une simpke règle de trois, je peux l'ajouter sans souci. Cependant cela va changer la syntaxe de l'API, ce qui va poser problème pour les portages des règles utilisateurs de la HC2 vers la HC3. Dans ce cas, je propose non pas de modifier le comportement, mais d'ajouter un nouveau comportement. A savoir que si on continue d'envoyer un nombre entier, alors GEA enverra la valeur telle quelle au pont Hue, comme avant. Syntaxe : GEA.add( {CONDITIONS}, 30, "", {"Hue", 21, "bri", 127} ) Mais si on envoie une chaine de caractères contenant la valeur suivie du symbole %, dans ce cas on fait la conversion. Syntaxe : GEA.add( {CONDITIONS}, 30, "", {"Hue", 21, "bri", "50%"} ) Les 2 syntaxes ci-dessus devraient donc produire le même résultat, es-tu d'accord ? Dans la doc, je vois ceci : - Liste couple Propriétés - Valeurs \\ List of Properties - values for details see https://www.developers.meethue.com/documentation/core-concepts#color_gets_more_complicated * on - true|false * bri - 1 à 254 * hue - 0 à 65535 ( 0 and 65535 : ROUGE //RED ; 25500 : VERT//GREEN; 46920 : BLEU/BLUE) * sat - 0 à 254 (0 moins saturé (couleur), 254 le plus saturé (blanc)) * xy - 0 à 1 for x, 0 to 1 for y * ct - 153 (6500 Kelvin) à 500 (2000 Kelvin) -> 153: 6500K: Daylight; -> 269: 5000K: Cool White; -> 384: 3500K: White; -> 431: 2900K: Halogen Lamp; -> 446: 2700K: Incadescent bulb; -> 500: 2000K: Bougie/Candle J'ai surligné en rouge les 2 valeurs qui seraient concernées par cet ajout : bri et sat. Là encore, tu confirmes ?
Dgille Posté(e) le 19 novembre 2020 Signaler Posté(e) le 19 novembre 2020 Oui, sur HC2, le plugin Hue était instable (au moins dans les premières V4, cela dit, toute la box était instable). Je ne suis pas sur qu'il proposait toutes les propriétés (xy et ct en particulier). Je pense que Steven a préféré attaquer le pont pour stabiliser le fonctionnement et avoir la maitrise totale de l'écosystème Hue. Avec 2 calculatrices, j'arrive à faire une règle de trois, mais un pourcentage, c'est plus facile à maintenir :). La syntaxe que tu proposes me parait bien, et surtout lisible. On a ainsi la même échelle que celle proposée par les sliders des childs Hue. Pas de problème pour tester bien sur....
Lazer Posté(e) le 19 novembre 2020 Auteur Signaler Posté(e) le 19 novembre 2020 Ah oui, les instabilités des plugins officiels Fibaro, et les débuts de la v4.... Piloter en direct le pont Hue était en effet plus fiable, sans aucun doute Je veux bien changer le code et piloter en direct les Children sans passer par le pont Hue, en plus ça simplifiera le code. Qu'en penses-tu, est-ce que le plugin sur HC3 est suffisamment stable pour cela ? J'y vois un autre avantage, piloter en direct un child permettra un retour d'état instantané, ce qui n'est peut être pas le cas lorsqu'on pilote le pont ?
Dgille Posté(e) le 19 novembre 2020 Signaler Posté(e) le 19 novembre 2020 J'ai reçu ma box lundi, je peux juste dire qu'elle tient au moins 48h depuis son dernier reboot.... mais 0 plantage pour le moment, elle me fait bonne impression sur ce point (et sur d'autres). Si l'on passe en direct, on perdra XY et CT, je n'ai pas trouvé l'équivalent sur le child. En testant des changements d'état via l'app IOS Hue, je constate une latence de 1 à 3s max pour la prise en compte sur l'IHM de la HC3, elle doit faire du polling aussi à son niveau. On pourrait tester sous forme d'une option/plugin GEA, type "HueDirect", avec moins d'option, mais qui éviterait de supprimer le code existant, le temps d'avoir un peu de recul sur tout cela.
Messages recommandés