Aller au contenu

jojo

Membres confirmés
  • Compteur de contenus

    14 646
  • Inscription

  • Dernière visite

  • Jours gagnés

    190

Tout ce qui a été posté par jojo

  1. i-magin, Merci pour ta précision. Plein d'espoir àla lecture de ton feedback, j'ai collé le code de la VD_Update dans la scène. Et zut, ça ne fonctionne toujours pas. Je crois avoir compris : on ne pourrait pas faire de pressButton depuis une scène... Je t'este cela ce WE
  2. Pour la HCL, j'avais en son temps fait un tuto pour afficher une icône dans un virtual device une icône en fonction de la valeur d'une variable globale, et de pouvoir modifier sa valeur (également depuis son smartphone), quelle se mette à jour lors d'un restart de la box, etc pour une HCL En passant sous HC2, j'avais gardé le même principe, et pour chaque VD (et donc chaque variable), la main loop tournait en continu pour vérifier que l'icône correspond bien à la valeur de la variable. Ce n'est vraiment pas optimal. Je vais vous expliquer ici la solution que j'ai mise en place pour que la charge sur la box soit moins importante. Merci à Steven, i-magin et mprinfo qui m'ont aidé pour débugger Création des variables Je prendrai dans mon exemple 2 variables globales : Auth_PS3 avec 2 valeurs possibles : "Autorisé" et "Interdit" Auth_TV avec 2 valeurs possibles : "Autorisé" et "Interdit" (mais les valeurs pourraient être différentes que pour la 1° variable, ou avoir plus que 2 valeurs) Modules virtuels Chaque variable a son module virtuel. Il a pour objectif d'afficher une icône différente en fonction de la valeur de la variable. Pour facilement les retrouver, j'ai créé une section "Section Virtuelle" et dedans une pièce "Variables". Chaque VD a le nom suivant : "Var_xxxx" où xxxx est le nom de la variable globale. Dans notre exemple : "Var_Auth_PS3" et "Var_Auth_TV". L'icône par défaut du VD est et doit rester l'horrible cube bleu (facile ainsi de repérer si la VD est à jour) J'ai créé les boutons suivants : Bouton 1 : Autorisé / Interdit Il permet simplement de faire le switch de la valeur de la variable. C'est le bouton par défaut du VD. Il n'y a pas d'icône associée. -- nom de la variable à modifier local variable = "Auth_PS3" if fibaro:getGlobal(variable) == "Interdit" then fibaro:call(fibaro:getSelfId(), "pressButton", "3") else fibaro:call(fibaro:getSelfId(), "pressButton", "4") end Label : Statut afficher en texte la valeur de la variable Bouton3 : Autorisé c'est le bouton qui est appelé pour mettre la variable à "Autorisé" Il contient l'icône qu'on veut voir affichée (comme ça on ne doit pas chercher son ID) fibaro:setGlobal('Auth_PS3', 'Autorisé') fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Statut.value", 'Autorisé') Bouton4 : Interdit c'est le bouton qui est appelé pour mettre la variable à "Interdit" Il contient l'icône qu'on veut voir affichée (comme ça on ne doit pas chercher son ID) fibaro:setGlobal('Auth_PS3', 'Interdit') fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Statut.value", 'Interdit') N.B. l'ID de ce bouton ne peut pas être appelée par le bouton Switch, mais seulement son numéro QUI CHANGE si vous changez l'ordre. C'est débile, mais c'est comme ça … Utilisation On clique sur le bouton principal, et il switch la valeur de la variable On peut utiliser Google Calendar pour lui dire d'appuyer directement sur le bouton "Autorisé" ou "Interdit" Vous devez modifier les scènes qui modifiaient directement la variable, en la faisant appuyer sur le bouton de la VD qui modifie la variable et met à jour l'icône de la VD (car il n'y a plus le mainloop qui contrôle en continu la valeur de la variable) Limitations et solution : Lors du redémarage de la box, ou Lors de la sauvegarde du VD (parce que vous avez fait une petite modif, ou …) L'icône qui est affichée pour le VD, est l'icône par défaut du VD. Le cube bleu, pas cool … Donc pour pallier à ce problème, j'ai créé un VD supplémentaire "Var_Update" Dont voici le code : un GRAND merci à mprinfo qui m'a beaucoup aider pour faire qqch de plus sympa et générique ---------------------------------- -- User Settings ---------------------------------- -- la Table doit avoir la structure suivante : -- 1/ nom de la variable globale entre " -- 2/ ID du VD qui affiche la valeur de la VG -- 3/ n° du premier bouton qui doit être appuyé -- (qui correspond à la première valeur de la variable) -- 4/ n° du dernier bouton qui doit être appuyé -- (qui correspond à la dernière valeur de la variable -- on suppose que tous les boutons se suivent de 1 en 1) -- 5/ valeurs possibles de la variable entre " -- (elles doivent être listées dans l'ordre des boutons de la VD) local Table = {"Auth_PS3", 23, 3, 4, "Autorisé", "Interdit", "Auth_TV", 289, 3, 4, "Autorisé", "Interdit", "Auth_VMCEtage", 290, 3, 4, "Autorisé", "Interdit", "Auth_TerrPar", 291, 3, 4, "Autorisé", "Interdit", "Auth_LumHallNuit", 362, 3, 4, "Autorisé", "Interdit", "ECS", 292, 3, 4, "Oui", "Non", "DayPart", 130, 3, 4, "After SunRise", "After SunSet", "Noel", 363, 3, 4, "Oui", "Non", "Saison", 133, 3, 6, "Printemps", "Eté", "Automne", "Hiver", "Chauffage", 351, 3, 5, "0", "1", "2", "Vacances", 293, 3, 4, "Oui", "Non" } ---------------------------------- -- DO not change bellow this line ---------------------------------- local i = 1 while Table[i] ~= nil do local VG_Nom = tostring(Table[i]) fibaro:debug("----------------------------") fibaro:debug("Nom de la variable Globale = " ..VG_Nom) local VD_id = tostring(Table[i+1]) local Btn_Deb = tonumber(Table[i+2]) local Btn_Fin = tonumber(Table[i+3]) local NbrVal = (Btn_Fin - Btn_Deb) + 1 --Nbr de valeur possibles de la variable fibaro:debug('NbrVal = ' ..NbrVal) i = i + 4 local VG_Val = fibaro:getGlobalValue(VG_Nom) fibaro:debug('Valeur de la variable Globale = ' ..VG_Val) for j = 1,NbrVal do if VG_Val == Table[i+j-1] then fibaro:debug(VG_Nom.. ' = ' ..VG_Val) fibaro:debug("Il faut appuyer sur le bouton : " ..Btn_Deb.. " de la VD_id " ..VD_id) fibaro:call(VD_id, "pressButton", Btn_Deb) end Btn_Deb = Btn_Deb + 1 end -- for i = i + NbrVal end -- while Pour retrouver l'ID du VD, vous avez plusieurs solutions : Le toolkit de Krikroff l'API : http://<IP Box>:<Port Box>/api/virtualDevices vous exportez le VD, et dans l'URL vous voyez ?id=xxx vous éditez le VD, et dans l'URL vous voyez ?vid=xxx Il vérifie la valeur de la variable et appuie sur le bouton correspondant à l'icône. D/Variable. Donc maintenant, quand je vois qu'une des icônes associée à mes variables est l'icone standard, je clique sur le bouton, et tout est remis au carré. Cela évite d'avoir un main loop qui tourne pour chaque variable 99% du temps pour rien. On a donc trouvé une parade à la deuxième limitation ;-) Pour la première limitation (mise à jour après un restart de la box) la solution est facile : Créer une scène qui appelle la VD "Var_Update" / bouton 1 au démarrage de la box. --[[ %% autostart --]] fibaro:sleep (10*1000) fibaro:call(361, "pressButton", "1") où 361 est l'ID du Vd "Var_Update" Merci à Steven qui finalement à trouvé la solution du sleep au début de la scène, ainsi qu'à i-magin et mprinfo pour leurs bonnes idées
  3. jojo

    Test Icone Utilisée Dans Un Vd

    logique ... Si je mets [[%% autostart --]] dans ma scène, j'ai une erreur. C'est plutôt --[[%% autostart --]]. Mais soit, c'est ce que j'ai mis dedans. Et pour être sà»r qu'il n'y avait pas un caractère bizarre, j'ai fait un copier/coller de ton entête du GEA. Et ça ne fonctionne toujours pas... Ou je dois être plus patient attendre 10 min ?
  4. jojo

    Test Icone Utilisée Dans Un Vd

    merci à tous les 3 pour vos idées. @Steven, avec ou sans " pour le bouton 1, ça ne fonctionne pas @i-magin : ça a l'air compliqué comme ça, mais les codes sont simples, et le but est de faire le moins de maintenance possible si on veut changer d'icône, rajouter une variable, ... je vais expliquer en détail la solution quand elle sera au point @mprinfo : j'ai un fibaro:debug dans la scène, et je croyais qu'elle démarrait, car il y avait une ligne dans le débug, mais en fait c'était son démarrage automatique lorsqu'on sauve la scène. Lorsque la box redémarre, la scène ne démarre pas. => est-ce que le --[[%% autostart --]] est également activé lors d'un RESTART de la box ? Il semblerait que non, mais qu'il serait bien activé uniquement lors d'une sauvegarde de la scène
  5. jojo

    Test Icone Utilisée Dans Un Vd

    alors là , je ne comprends PLUS RIEN: le debug de la scène montre qu'elle s'est lancée au démarrage de la HC2 mais le VD n'a pas fait son travail et quand je lance la scène manuellement, ça fonctionne ==> je vais dormir
  6. jojo

    Test Icone Utilisée Dans Un Vd

    oui, mais moi j'ai une femme, des enfants (je ne sais pas toi), mais tout le chauffage de la maison et des douches dessus + lampes + TV + PS3 => je n'ai pas le droit àl'erreur (je me fait déjàassez chambrer comme ça avec ma domotique de m****)
  7. jojo

    Test Icone Utilisée Dans Un Vd

    le plus important, c'est que ça fonctionne chez toi. Ca doit être la v4, et je n'y passerai pas pour ça ! (téméraire, Belge, mais pas encore assez fou) C'est presque prêt. Je partage la solution demain
  8. jojo

    Test Icone Utilisée Dans Un Vd

    ça ne fonctionne pas ! je suis encore en 3.600. Peut-être que le autostart ne fonctionne qu'à partir du v4.x ?
  9. si la réponse fut non sans appel, cela veut probablement dire que cette PAC ne permet pas d'être commandée par un contact sec => ni Nest, ni FGS221 (panneau de chauffage)
  10. jojo

    Test Icone Utilisée Dans Un Vd

    et voici le json de la VD, qui montre que c'est bien le bouton 1 { id: 361, name: "Var_Update", roomID: 15, type: "virtual_device", properties: { deviceIcon: 1124, ip: "", port: 80, currentIcon: "1124", mainLoop: "", saveLogs: "1", rows: [ { type: "button", elements: [ { id: 1, lua: true, waitForResponse: false, caption: "Update Icons", name: "UpdateIcons", empty: false, msg: "local variables = { Auth_PS3 = 23, Auth_TV = 289 } variable = 'Auth_PS3' if fibaro:getGlobal(variable) == 'Autorisé' then fibaro:call(variables[variable], "pressButton", "3") else fibaro:call(variables[variable], "pressButton", "4") end variable = 'Auth_TV' if fibaro:getGlobal(variable) == 'Autorisé' then fibaro:call(variables[variable], "pressButton", "3") else fibaro:call(variables[variable], "pressButton", "4") end", buttonIcon: 1124, favourite: false, main: true
  11. jojo

    Test Icone Utilisée Dans Un Vd

    où est l'erreur ? J'ai créé une scène --[[ %% autostart --]] fibaro:call(361, "pressButton", "1") qui appelle le VD 361, qui, lorsque appelé manuellement, met bien à jour mes icônes. d'ailleurs, lorsque je lance la scène manuellement, tout va bien. Mais elle ne semble pas démarrer après un restart de la HC2
  12. si ta PAC autorise de démarrer avec un contact sec, tu as plusieurs possibilités : thermostat NEST thermostat Netatmo thermostat .. une sonde de température Fibaro et une FGS221 via un panneau de chauffage (mais si ta box est morte, glagla)
  13. jojo

    Aeotec-Smart Switch 6

    vérifie quand-même la compatibilité avec ta HC2. Je deviens méfiant ...
  14. jojo

    Somfy Dexxo Optimo

    moi je 'ai fait (c'était d'ailleurs la première chose que j'ai faite) avec un FGS-221 pour mes deux portes de garage => zéro risque avec une porte. tu peux y aller, et prend le 221, tu seras tranquille et aura une réseve au cas où
  15. jojo

    Aeotec-Smart Switch 6

    je ne suis pas aller voir jusque là. Mais une sorte de WallPluf dimmable, est-ce utile ? alors, je préfère pour le même prix la multiprise greenwatch ou qqch comme ça
  16. jojo

    Somfy Dexxo Optimo

    prend un FGS221, il est au même prix que le FGS211, mais tu as 2 sorties, même si tu n'en n'utilise qu'une seule. La 2° tu pourrais l'utiliser comme une module virtuel gratuit De toute gaçon il y a 0 puissance qui passera dans le module
  17. jojo

    Aeotec-Smart Switch 6

    oui, mais quel serait l'avantage par rapport àun Wall Plug Fibaro, outre qu'il fait 3300W au lieu de 2500W ?
  18. jojo

    Test Icone Utilisée Dans Un Vd

    pepite, j'ai une idée comment faire cela au plus simple. Je mets en oeuvre chez moi, je teste, et je partage
  19. jojo

    Test Icone Utilisée Dans Un Vd

    double réponse, double merci
  20. quand j'ai commencé avec ma HCL, j'ai eu le même soucis ... J'ai cherché longtemps avant de trouver le bouton save. Donc tu fais tes modif, puis tu cliques sur la petite sur la barre d'icônes àdroite de l'écran. N'hésite pas d'utiliser ce bouton.
  21. jojo

    Test Icone Utilisée Dans Un Vd

    as-tu un code pour que la scène détecte un redémarrage de la box et se lance automatiquement ? Car en effet ce serait beaucoup plus propre que je faire ma bidouille pour les 10 VD liés aux 10 variables pour lesquelles j'affiche des icônes
  22. jojo

    Test Icone Utilisée Dans Un Vd

    Steven me donnait juste un exemple de comment je pouvais assigner une icone à un VD. Pour ton info, voici ce que j'ai fait pour que le VD remette bien la bonne icône après un redémarrage de la box -- nom de la variable à vérifier local variable = "Auth_PS3" -- ID des icônes local icone1 = 1097 local icone2 = 1096 local virtualID = fibaro:getSelfId() local currentIcon = fibaro:get(virtualID, "currentIcon") if (currentIcon == "0" or currentIcon == "1") then if fibaro:getGlobal(variable) == "Interdit" then fibaro:call(virtualID, "setProperty", "currentIcon", icone1); else fibaro:call(virtualID, "setProperty", "currentIcon", icone2); end fibaro:call(virtualID, "setProperty", "ui.Statut.value", ""..fibaro:getGlobal(variable)) end
  23. jojo

    Test Icone Utilisée Dans Un Vd

    oui, erreur de copy/coller
×
×
  • Créer...