Aller au contenu

jojo

Membres confirmés
  • Compteur de contenus

    14 825
  • Inscription

  • Dernière visite

  • Jours gagnés

    197

Tout ce qui a été posté par jojo

  1. jojo

    Migration automatique

    si tu choisis l'option "réinclure à la mano", la question ne se pose plus ... ceci dit je suis également en phase de migration (mais pas depuis HC2). Le plus important pour moi, c'est la gestion du chauffage, de la piscine (et de l'airco de la cave à vins) (bien que je puisse tout gérer en manuel). Alors pour mon chauffage, j'ai créé énormément de QA de type Binary Switch pour tester la nouvelle solution. Et quand je migrerai effectivement mes devices (en fait de migration, je remplacerai les anciens z-wave par des nouveaux z-wave+) je leur donnerai le même nom que mes QA. Ainsi ma migration sera rapide ...
  2. jojo

    id icones dans QA Binary Switch

    c'est précisément ce que je voulais éviter ... mais je vais devoir y passer
  3. jojo

    id icones dans QA Binary Switch

    merci, mais j'ai déjà essayé cela, et le QA générique ne réagit pas aux clic sur l'icône, donc créer ces fonctions ne sert à rien ... MAIS tu vien de me faire penser à qqch: dans le JSON d'un generic QA, il n'y a rien dans les actions "actions": { }, mais dans celui d'un Binary Sensoe ; "actions": { "toggle": 0, "turnOff": 0, "turnOn": 0 }, avec les fonctions function QuickApp:turnOn() function QuickApp:turnOff() qui ont le même nom que les valeurs dans le JSON. donc déjà (ce serait rigolo) si on créait la fonction function QuickApp:toggle() ça pourrait fonctionner (à la place des fonctions turnOn() et turnOff()- Je mr disais qu'on pourrais rajouter ces actions au JSON du QA générique, mais en fait non, cela doit être codé dans le QA d'appeler ces fonctions => c'est mort et il faut trouver où il enregistre qu'il faut mettre telle ou telle icône pour les QA Binary Switch.
  4. Bonjour et bienvenue. Le principe des modules Fibaro, c'est d'avoir une liaison sans fil (Z-Wave) tout en gardant la possibilité que tout fonctionne sans la box domotique, ie avec les interrupteur classiques. La box sera même informée de l'action que tu as prise via l'interrupteur, comme si c'était elle qui avait donné l'ordre. MAIS des modules (FGD, ...) et un stick USB ne suffiront pas : il te faudra une box en plus (HAAS, Jeedom, ...) Si tu optes pour une box Fibaro, il ne sera pas nécessaire (et même impossible) d'y connecter un stick USB Z-Wave, car elle a son propre contrôleur. le z-wave étant un réseau maillé (= si un module ne peut communiquer en direct avec la box (car trop éloigné) il utilisera d'autres modules z-wave (sur secteur) pour faire le relais. Donc pour avoir une installation domotique en z-wave qui fonctionne bien, il faut une bonne répartition des modules = ne pas multiplier les protocoles. Si je ne me trompe pas, Somfy = Nice; donc la HC3 peut faire parler et interagir ces 2 protocoles, mais ton réseau Somfy/Nice ne pourra pas servir de relais à tes modules z-wave.
  5. jojo

    id icones dans QA Binary Switch

    oui, je savais cela, mais le Binary Switch, ne permet que 2 icône ( "Binary Switch") et moi je voudrais 4 positions : pour mon QA GestionChauffage, qu'il m'affiche la belle icône en fonction de la valeur de ma VG. Ceci est possible avec un QA de type générique, mais alors, je dois aller sans les settings -> General -> Variables pour changer la valeur de ma VG. Avec un BS, je peux directement cliquer sur l'icône du QA qui lancera la fonction TurnOn ou TurnOff en fonction du status. Je voulais dans chacune de ses fonctions appeler une fonction perso qui me permettrais de modifier directement ma VG et l'icône de mon QA. Je sais c'est un peu tordu, mais c'est le seul moyen que j'ai trouvé pour faire faire à la HC3 ce que je veux. Donc en regardant dans le JSON du device // 20220520155433 // http://192.168.1.xxx/api/devices/160 { "id": 160, "name": "Chauf_Circul_RdC", "roomID": 239, ... "properties": { ... "deviceIcon": 1002, "icon": { "path": "assets/userIcons/devices/User1002/User1002100.png", "source": "HC_USER" }, ... "value": true, ... } j'étais sûr de tout y trouver. La propriété "deviceIcon" me plaisait bien. Mais quand je click sur l'icône du device, son status passe bien à Off ("value"; false) et l'icône de l'interface change bien , MAIS aucune autre propriété (et donc pas la "deviceIcon") ne change . Donc, le JSON d'un device ne contiendrait pas tout l"info d'affichage/du statut du device.. Donc, en y réfléchissant, ce n'est pas la propriété "deviceIcon" que je dois modifier (pour un QA de type Binary Switch) mais laquelle alors ? Ma question est-elle assez tordue/complexe pour toi ?
  6. Bonjour, Vous voyez que je tien parole : je vous avait prévenu que j'aurais beaucoup de questions ... Pour les QA de type "Generic device" : on charge l'icône depuis l'onglet général puis pour connaitre son id, on regarde le # qui se trouve après User quand on fait click droit -> Enregistrer sous (User1007.png) puis dans le code, on peut l'assigner à ce ou un autre QA de même type self:updateProperty("deviceIcon", 1007) Pour les QA de type "Binary Switch" (je les aime bien car on peut faire faire qqch en cliquant juste sur l'icône) : on char l'icône Off et l'icône On puis comment trouver l'id de ces icônes ? (car si click droit-> Enregistrer sous on a un id à 7 chiffres (pour le On - User1001100.png) et pour le Off? et de tout façon NI self:updateProperty("deviceIcon", 1007) NI self:updateProperty("deviceIcon", 1001100) NI self:updateProperty("deviceIcon", 1001101) NI self:updateProperty("deviceIcon", 10011) NI self:updateProperty("deviceIcon", 1011) ne fonctionne Il y a sûrement un truc ...
  7. jojo

    fonctions dans fonction

    Merci pour ce "cours privé". C'est en effet sympa de "regrouper" les variables : QA GestionChauffage, QA GestionPiscine, ... surtout si on put les voir/mettre à jour (?) depuis d'autres QA. J'utilise encore les variables globales, pour les variables prédéfinies (malheureusement, pas (encore) disponible au niveau des QA).
  8. jojo

    fonctions dans fonction

    Merci pour ces infos très claires. Je vais regarder à mon code pour privilégier les variables locales. Quand tu is que les Globales sont visibles de partout, c'est de partout dans le QA ou également dans d'autres QA ? Pour la recherche dans la table, j'avais trouvé la même solution. Mais je vais regarder pour in pairs() et le _
  9. jojo

    fonctions dans fonction

    ok, j'avance, je n'ai plus d'erreur. effectivement définit function QuickApp:Consigne (Room, Mode, Chauf_Maison_Mode) et l'appeler comme ceci : self:Consigne (Room, Mode, Chauf_Maison_Mode) fait qu'elle tourne sans erreur. Mais ce qui est surprenant, à la lecture de ceci ( https://forum.fibaro.com/topic/49113-hc3-quickapps-coding-tips-and-tricks/page/21/#comment-207742), c'est que mon code s'exécute sans erreur malgré que : la fonction Consigne (...) est définie APRES son appel il n'y ait pas de return dans la fonction Consigne.... Maintenant j'ai un autre problème avec if Chauf_Maison_Mode == "Confort" then for key, value in pairs(RoomsConfort) do -- Look for key inside entire table if key == Room then -- Your desired key you want to refrence Found = true end end il ne trouve pas key == Room, bien que d'après le debug, tous les paramètres sont bien passés => je trouverai... Comme promis, recevez tous les 2 toute ma gratitude.
  10. jojo

    fonctions dans fonction

    j'ai commencé à lire ton premier lien (merci pour m'avoir directement pointé au bon endroit, car nun post de 65 pages, je n'essaye même pas ... En tout cas, ce début m'a déjà permis de comprendre pour quoi une partie de mon code ne pouvait pas fonctionner ; ma fonction Condigne était définie après son appel. J'ai encore beaucoup à apprendre ...
  11. jojo

    fonctions dans fonction

    merci, je dois aller m'occuper de mes autres amis
  12. jojo

    fonctions dans fonction

    oui, merci, en effet, mais comment l'appeler ? QuickApp:Consigne (...) ?
  13. jojo

    fonctions dans fonction

    je ne savais pas qu'il faudrait déclarer une fonction dans les variables globales ... avec mes 0.5/10 de vision, je n'ai pas lu tous les topics. Je fais les modifs et poste les messages d'erreur demain ou vendredi. Merci à vous 2
  14. jojo

    fonctions dans fonction

    merci, c'est comme ça que j'avais fait au début, mais alors je ne savait pas l'appeler (j'avais une erreur). (j'ai des invité dans 10 min, donc j'essaierai demain)
  15. jojo

    fonctions dans fonction

    @Lazer, MERCI de ton offre d'aide. Comme tu l'as senti, j'avais écrit ce post en grand désespoir le cause => à la va-vite. J'ai créé un QA de type Binary Switch afin de pouvoir (plus tard) utiliser les fonctions TurnOn() et TurnOff() pour modifier la VG du mode de chauffage de la maison (cfr un autre post auquel tu as répondu). Donc ce QA gère le chauffage de ma maison : en fonction de calendriers Google, il ajuste le consigne des thermostats virtuels qu'il faut. Evidemment, mes équipements dans mon code sont appelés par leur nom, et il retrouve leur id réel dans la table id={ ...} (merci au passage à Steven). J'ai augmenter la doc du code pour qu'il soit plus lisible. Est-ce bien le cas ? Merci en tout cas function QuickApp:onInit() self:debug("onInit") -- IDs générés le : 16/05/22 à 21:50:36 id = { --Cuisine TMP_CUISINE = 23, --... } -- pièces concernées par le mode de chaufffage de la maison : -- cfr Variable Globale "Chauf_Maison_Mode" : Confort | SdB | ECS | Off -- le mode ECS, est pour maintenir l'eau chaude samitaire à température -- le mode Off, quand ont est par exemple parti en vacances => tous les thermostat en hors gel et pas ECS -- les thermostats ne sont JAMAIS arrêtés, mais en température hors gel (donc en été, celà revient à les arrêter) RoomsConfort = {"SdJ", "Bureau", "Pauline", "Max", "SdBEtage", "Biblio", "SdBRdC", "ECS"} RoomsSdB = {"SdBRdC", "ECS"} RoomsECS = {"ECS"} RoomsOff = RoomsConfort end function QuickApp:GoogleThermo(Room, Mode) -- appelée par le GoogleScript (qui scanne un calendrier Google), pour savoir quelle pièce (Romm) -- à mettre dans quel mode de confage (Mode : Con (=Confort)| Eco (=température réduite) -- récupérer le statut de la VG avec Chauf_Maison_Mode Chauf_Maison_Mode, modificationTime = fibaro.getGlobalVariable("Chauf_Maison_Mode") -- génère le nom de l'équipemebt Thermostat Thermostat = "CHAUF_"..string.upper(Room).."_THERMOSTAT" -- c'est ici mon soucis : -- je souhaite appeller la fonction "Consigne" qui retournera à quelle température il faut chauffer -- quelle pièce (Room) en fonction du mode de chauufage demandé pour la pièe (Mode) -- et du mode de chauffage global de la maison (Chauf_Maison_Mode) Consigne (Room, Mode, Chauf_Maison_Mode) -- ensuite mettre la consigne de température du thermostat concerné à la valeur "consigne" consigne = tonumber (consigne) fibaro.call(id[Thermostat], "setHeatingThermostatSetpoint", consigne) end function Consigne (Room, Mode, Chauf_Maison_Mode) -- détermination de la consigne en fonction du mode de chauffage Found = false -- variable ouléenne à false self:debug("Function Consigne") -- déjà erreur à cette ligne car il ne connait pas self ... -- en fonction du mode de chauffage de la maison -- chercher le nom de la pièce dans le bonne table (RoomsConfort | RoomsSdB | ...) -- si pièce trouvée, variable booléenne à true; sinon elle reste à false if Chauf_Maison_Mode == "Confort" then for key, value in pairs(RoomsConfort) do -- Look for key inside entire table if key == Room then -- Your desired key you want to refrence Found = true end end elseif Chauf_Maison_Mode == "SdB" then for key, value in pairs(RoomsSdB) do -- Look for key inside entire table if key == Room then -- Your desired key you want to refrence Found = true end end elseif Chauf_Maison_Mode == "ECS" then for key, value in pairs(RoomsECS) do -- Look for key inside entire table if key == Room then -- Your desired key you want to refrence Found = true end end end if Found then -- la consigne du thermostat : consigne = valeur de la variable du QA -- le QA contient de nombreuses variables dont le nom est généré en fonction des infos reçues par le GoogleScript. consigne, modificationTime = self:getVariable("Ch"..Room..Mode) -- Con ou Eco else -- hors gel consigne = self:getVariable("ChMaisonHG") end end
  16. jojo

    fonctions dans fonction

    merci d'avoir pris le temps d'essayer de regarder, je fais tout comme demandé ce pm. Je n'avais pas vu (tes yeux vont 10000 fois mieux que les miens) qu'il y avait moyen de choisir la syntaxe quand on ajoute du code ... (=> déjà merci pour ce truc bien utile)
  17. jojo

    fonctions dans fonction

    Bonjour, J'essaie de découvrir lua programmation LUA dans les QA de la HC3. Moi qui était fier de mon coup, et bien zut ça ne marche pas. J'i cherché toute l'après-midi sans trouver pourquoi/ou était mon erreur. Le voici : -- Binary switch type should handle actions turnOn, turnOff -- To update binary switch state, update property "value" with boolean function QuickApp:turnOn() self:debug("binary switch turned on") self:updateProperty("value", true) end function QuickApp:turnOff() self:debug("binary switch turned off") self:updateProperty("value", false) end -- To update controls you can use method self:updateView(<component ID>, <component property>, <desired value>). Eg: -- self:updateView("slider", "value", "55") -- self:updateView("button1", "text", "MUTE") -- self:updateView("label", "text", "TURNED ON") -- This is QuickApp inital method. It is called right after your QuickApp starts (after each save or on gateway startup). -- Here you can set some default values, setup http connection or get QuickApp variables. -- To learn more, please visit: -- * https://manuals.fibaro.com/home-center-3/ -- * https://manuals.fibaro.com/home-center-3-quick-apps/ function QuickApp:onInit() self:debug("onInit") -- IDs générés le : 16/05/22 à 21:50:36 id = { --Cuisine TMP_CUISINE = 23, --Salon TMP_SALON_SET = 99, TMP_SALON = 100, HUM_SALON = 101, --Hall d'entrée MVT_HALLENTREE_ENTREE = 54, LUX_HALLENTREE_ENTREE = 56, MVT_HALLENTREE_CUISINE = 32, --Ch Parents TMP_PARENTS = 29, --SdB RdC TMP_SDBRDC = 159, CHAUF_SDBRDC_RADIATEUR = 162, CHAUF_SDBRDC_THERMOSTAT = 161, --Dressing PRISE_DRESSING = 107, --Salle de jeux CHAUF_SDJ_THERMOSTAT = 114, CHAUF_SDJ_RADIATEUR = 148, NOISE_SDJ = 93, TMP_SDJ = 94, --Bureau CHAUF_BUREAU_THERMOSTAT = 111, NOISE_BUREAU = 86, TMP_BUREAU = 87, CHAUF_BUREAU_RADIATEUR = 150, PRISE_BUREAU = 104, --Ch Pauline CHAUF_PAULINE_RADIATEUR = 151, TMP_PAULINE = 119, CHAUF_PAULINE_THERMOSTAT = 143, --Ch Max CHAUF_MAX_RADIATEUR = 152, TMP_MAX = 127, CHAUF_MAX_THERMOSTAT = 144, PRISE_MAX = 142, --SdB Etage CHAUF_SDBETAGE_RADIATEUR = 153, TMP_SDBETAGE = 133, CHAUF_SDBETAGE_THERMOSTAT = 145, --Biblio CHAUF_BIBLIO_RADIATEUR = 154, TMP_BIBLIO = 137, CHAUF_BIBLIO_THERMOSTAT = 146, --Jardin HUM_EXTERIEUR = 91, HUSQVARNA_MOWER = 140, TMP_EXTERIEUR = 92, --Piscine GESTIONPISCINE = 171, --Chaufferie CHAUF_CIRCUL_ETAGE = 163, CHAUF_CHAUDIERE = 165, CHAUF_SOLAIRE = 164, GESTIONCHAUFFAGE = 172, CHAUF_ECS_THERMOSTAT = 158, CHAUF_CIRCUL_RDC = 160, TMP_TISUN = 155, CHAUF_ECS_RADIATEUR = 157, --Technical DOMOCHARTS = 166, GEA = 167, NETATMO_2_5_1 = 85, --Test TEMPERATURE_GEN = 168, QA_THERMOTST_COL = 170, LDSWITCH = 169, YR_WEATHER = 3, } Icones = { -- à vérifier Confort = 1007, SdB = 1010, ECS = 1008, Off = 1009 } RoomsConfort = {"SdJ", "Bureau", "Pauline", "Max", "SdBEtage", "Biblio", "SdBRdC", "ECS"} RoomsSdB = {"SdBRdC", "ECS"} RoomsECS = {"ECS"} RoomsOff = RoomsConfort end function QuickApp:GoogleThermo(Room, Mode) self:debug("QA GestionChauffage") self:debug("Param1/Room = "..Room) self:debug("Param2/Mode = "..Mode) Chauf_Maison_Mode, modificationTime = fibaro.getGlobalVariable("Chauf_Maison_Mode") self:debug("Chauf_Maison_Mode = " .. Chauf_Maison_Mode) Thermostat = "CHAUF_"..string.upper(Room).."_THERMOSTAT" Consigne (Room, Mode, Chauf_Maison_Mode) consigne = tonumber (consigne) self:debug("Consigne = " .. consigne) self:debug("Thermostat = " .. Thermostat) fibaro.call(id[Thermostat], "setHeatingThermostatSetpoint", consigne) end function Consigne (Room, Mode, Chauf_Maison_Mode) -- détermination de la consigne en fonction du mode de chauffage Found = false self:debug("Function Consigne") self:debug("Room = "..Room) self:debug("Mode = "..Mode) self:debug("Chauf_Maison_Mode = "..Chauf_Maison_Mode) if Chauf_Maison_Mode == "Confort" then for key, value in pairs(RoomsConfort) do -- Look for key inside entire table if key == Room then -- Your desired key you want to refrence Found = true end end elseif Chauf_Maison_Mode == "SdB" then for key, value in pairs(RoomsSdB) do -- Look for key inside entire table if key == Room then -- Your desired key you want to refrence Found = true end end elseif Chauf_Maison_Mode == "ECS" then for key, value in pairs(RoomsECS) do -- Look for key inside entire table if key == Room then -- Your desired key you want to refrence Found = true end end end if Found then consigne, modificationTime = self:getVariable("Ch"..Room..Mode) -- Con ou Eco else -- hors gel consigne = self:getVariable("ChMaisonHG") end end si une bonne âme savait me dire où j'ai merdé, afin d'éviter que je me pende / que je multiplie les lignes de code à l'"infini" (c'est pourquoi je voulais appeler une fonction dans une autre. A gagner : rien, sinon toute ma gratitude ... Jai regardé ceci, mais n'ai rien compris
  18. perso, j'ai une VM dédiée à HA sous Debian et exsi de mon Gen8
  19. keep it simple, on supprime de la doc, et basta
  20. jojo

    QuickApp on-click

    je vais en rester à truander le binary switch, car ainsi je peut faire uneaction directe en cliquant sur l'icone (sans devoir ouvrir avec la loupe...)
  21. --GEA.add (id["CHAUF_SDBRDC_RADIATEUR"], -1, "", {{"Inverse"}, {"TurnOff", id["CHAUF_CIRCUL_RDC"]}}) GEA.add (id["CHAUF_SDBRDC_RADIATEUR"]!, -1, "", {"TurnOff", id["CHAUF_CIRCUL_RDC"]}) [15.05.2022] [15:38:12] [ERROR] [QUICKAPP167]: QuickApp crashed [15.05.2022] [15:38:12] [ERROR] [QUICKAPP167]: config.lua:73: ')' expected near '!'
  22. je ne suis pas sûr de tout comprendre. Tu as 2 scenari diffférents ? Quoi qu'il en soit, peux-tu mettre tes code avec un ctrlC/CtrlV plutôt qu'une copie d'écran que je ne sais pas lire. Merci
  23. jojo

    QuickApp on-click

    tu décris exactement ce que je pensais faire avec ce QA. Mais je demandais s'il n'existait un type qui aurait juste une fonction QuickApp:OnClick(), histoire de ne pas truander le QA BinarySwitch. Mais s'il n'existe pas, je ferai comme ça ...
  24. https://www.nas-forum.com/forum/topic/39737-tuto-haproxy-et-regroupement-des-param/?_fromLogin=1
  25. jojo

    QuickApp on-click

    Bonjour, Y a-t-il un type de QuickApp où on peut gérer par code ce qui se passe quand on clique dessus. J'ai bien une idée, en en prenant un de type binary switch et en renvoyant les fonctions TunrOn et TurnOff vers le même fonction perso, mais s'il existait quelque-chose de plus standard ... Merci
×
×
  • Créer...