Aller au contenu

frixo

Membres confirmés
  • Compteur de contenus

    20
  • Inscription

  • Dernière visite

Réputation sur la communauté

1 Neutral

À propos de frixo

  • Rang
    Nouveau

Profile Information

  • Sexe :
    Homme
  • Ville :
    paris
  • Box
    Home Center 2
  • Version
    4,180
  1. Mort douce de ma HC2?

    @mprinfo : c'était quoi le module qui déconnait ? @MasterBT : Tiens nous au courant de ce que t'a dis le support , ou si le recovery a rétabli la situation. Ca m'interesse
  2. Fibaro - Smoke Detector - Fgsd-002

    Bonsoir Merci bcp pour cette precision Est ce que je peux masquer la tuile ? Ça va pas désactiver la fonction pour autant on edt d'accord ! Merci bcp
  3. Fibaro - Smoke Detector - Fgsd-002

    Bonjour Lazer excuse moi j'ai pas compris, j'ai bien module thermometre, a quoi sert le module alerme/thermometre (mixte) ? cdt
  4. Fibaro - Smoke Detector - Fgsd-002

    Bonjour à tous petite question , j'ai inclus sur une HC2 le smoke sensor , et je me retrouve avec 3 modules ! 1 thermometre : nikel 2 modules : un sensor et une alarme (cf image) <= C'est quoi l'intérêt d'avoir scinder cela en 2 ? merci pour votre aide
  5. Camera IP et Lua

    Je vais creuser ce point là Merci
  6. Commande IO-Homecontrol

    je suis interessé mais pas pour des volets roulant, pour un chauffe eau ! ca me gave c'est truc propriétaire , j'ai pas envi d'acheter une Tahoma juste pour voir s'il reste de l'eau chaude et lancer le boost si besoin (sachant que j'aimerais bien un petit script qui m'envoi un push me signalant => plus bcp d'eau chaude, lancer le boost ?) Je veux bien utiliser un rasperry comme pont par contre cdt
  7. Camera IP et Lua

    Bonjour, oups, ma question est peut etre pass clair. Je parlais d'API exposé par la HC2 (d'où le LUA). En fait, l'idée serait de pouvoir détecter un mouvement avec la foscam et lancer une scene côté HC2. cdt
  8. Camera IP et Lua

    Bonjour, j'espère que ce sujet existe pas déjà (j'ai regardé via le moteur de recherche je précise). Je voulais savoir ce qu'il est possible de faire via LUA sur une camera IP. J'ai acheté récemment une Foscam. Elle a quelque fonction sympas (détection de mouvement, snapshot, infra rouge). Merci pour votre aide
  9. TTS

    Mmmm mon karotz je l'ai revendu quand la boîte avait fermé et openKarotz existait pas encore Bon merci de m'avoir répondu. Oui je vais continuer ma veille à ce sujet
  10. Écrire un plugin

    Bonjour À merci je savait pas Mais du coup pourquoi est ce que j'ai un onglet Plugin sur la hc2 ? Seul les plugins officiels sont supportés ? Merci, du coup je reste en VD !
  11. Écrire un plugin

    Bonjour Il existe un topic avec le même nom mais il est archivé et date de 2015 Je cherche un genre de tuto sur comment créer son propre plugin fibaro Par quoi commencer (je connais le lua ça devrait aller) Merci pour votre retour
  12. TTS

    Bonjour petite question, j'aimerais bien avoir un moyen de faire parler un truc (genre mon googleHome, ou autre chose) pour faire un retour d'état de temps à autre. Genre : Attention, le fer est allumé depuis 20min ! une idée ? cdt
  13. Qubino - Zmnhjd1 - Fil Pilote 6 Ordres Z-Wave+

    Salut oui , via le main loop j'ai effectivement l'état, je fais un get, et avec l'état je met à jour le label ETAT et l'IMAGE. Si j'ai fait le tableau, c'est principalement pour pouvoir tous les commander via d'autre scene , sans a avoir a saisir leur ID cdt
  14. Qubino - Zmnhjd1 - Fil Pilote 6 Ordres Z-Wave+

    Bonjour merci pour vos retours.C'est super sympas ! je me rend compte que j'ai oublié un script ! J'ai une scene qui tourne toutes les heures pour s'assurer que l'odre donné à un radiateur est bien l'ordre appliqué, sinon on relance l'ordre. Oui il m'est arrivé (rarement mais arrivé) que je donne un ordre et que ca passe pas, va savoir. Du coup , grace a ce script ca passe ! --[[ %% autostart %% properties %% weather %% events %% globals --]] local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); function get_radiateur (id,position_si_vide) fibaro:debug(tostring(fibaro:getGlobal("l_radiateurs"))) local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) for _,v in pairs(l_radiateurs) do if v['id'] == tostring(id) then fibaro:debug('Radiateur trouvé') return v; end end fibaro:debug('Création du radiateur ' .. id .. 'car introuvable !') local un_r = {id = id, Etat = 0 , Position = position_si_vide} return un_r; end function save_radiateur (id,radiateur) local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) local cmp=1; for _,v in pairs(l_radiateurs) do if v['id'] == tostring(id) then fibaro:debug('>found') l_radiateurs[cmp] = radiateur fibaro:setGlobal("l_radiateurs", tostring(json.encode(l_radiateurs))); return; end cmp=cmp+1; end fibaro:debug('Création du radiateur ' .. id .. 'car introuvable !') l_radiateurs[#l_radiateurs + 1] = radiateur fibaro:setGlobal("l_radiateurs", tostring(json.encode(l_radiateurs))); return end --je parcours les radiateurs de la var global function main_function() local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) for _,v in pairs(l_radiateurs) do local valeur_constate = fibaro:getValue(v['id'], 'value') fibaro:debug(' ') fibaro:debug('Check Radiateur : ' .. v['id']) fibaro:debug(v['id'] .. 'valeur_constate : ' .. valeur_constate) local valeur_ordonnee = v['Etat']; fibaro:debug(v['id'] .. 'valeur_ordonnee : ' .. valeur_ordonnee) --si les valeurs diffèrent, je rattrape if tostring(valeur_ordonnee) ~= tostring(valeur_constate) then fibaro:debug('Radiateur ordre a rectifier : ' .. v['id']) fibaro:call(v['id'], 'setValue', valeur_ordonnee) local radiateur=get_radiateur(v['id'],'salon droite cheminée'); radiateur['Etat']=valeur_ordonnee; save_radiateur(v['id'],radiateur); --api.post('/mobile/push', {["mobileDevices"]={4}, ["message"]='Etat rattrapé !' .. tostring(valeur_ordonnee) .. ' <= ' .. tostring(valeur_constate), ["title"]=v['Position'], ["category"]='YES_NO', ["data"]={["sceneId"]=0}}); else fibaro:debug('Radiateur ordre OK') end end end function tempFunc() fibaro:debug('tempFunc 0') local currentDate = os.date("*t"); if ( (math.floor(os.time()/60)-math.floor(1528820040/60))%60 == 0 ) then main_function() end setTimeout(tempFunc, 60*1000) end local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then fibaro:debug('tempFunc') tempFunc() end fibaro:debug('Fin')
  15. Qubino - Zmnhjd1 - Fil Pilote 6 Ordres Z-Wave+

    Bonjour, j'ouvre un nouveau sujet sur le module Qubino zmnhjd1 pour controller un radiateur avec le fil pilote en mode 6 ordres. Je voudrais vous donner mon retour d'expérience et je suis preneur de vos remarques/suggestion. Avant propos Pour commencer, j'ai un maison avec plus de 10 radiateur noirot Bellagio tout neuf ! J'ai hésité à acheter le module de noirot pour les connecter (ici) mais il s'agissait d'une techno propriétaire. De plus , j'ai un chauffe-eau thermodynamique Thermor, qui peut être connecté avec la techno IO homecontrol (somfy, encore une techno propriétaire) , et un portail CAME où je dispose de contact à sec pour déclencher l'ouverture à distance. La maison est en Île-de-france, mais à la campagne, j'ai une box ADSL avec un débit de 2M, et j'ai une box 4G avec un débit variant de 21M à 0 (en temps d'orage/pluie , donc surtout en hivers en fait) 1 - le choix de la solution domotique J'ai longtemps hésité, je me suis intéressé à toutes les solutions de domotique. J'ai hésité entre : Somfy : pour avoir le control sur le chauffe-eau Eedomus : francais , pas trop cher, grosse comunauté, stable Home-Center 2 : Programmable - grosse communauté, stable , non dépendant du cloud. (mais cher) Jeedom/domoticz : trop peu stable - infrastructure à mettre en place (monter un mini pc, et ca me gavait :S ) Finalement j'ai éliminé Somfy car propriétaire , Eedomus pour sa dépendance au cloud, Jeedom/Domotics pour son côté trop geek (je suis un gros geek, mais la je cherchais surtout quelque chose de stable, faut pas que mes lumières clignotent à minuit ! ) et j'ai été séduit par la HC2 car je pouvais créer mes propres scripts, et surtout pas de dépendance au cloud/internet. (alors que si le serveur de Eedomus tombe en rade, bein .... 2 - Achat Bon, j'ai passé commande sur xxxxx (je sais pas si j'ai le droit de le dire), j'ai acheté la box HC2 (et surtout pas la lite où on peut pas programmer), et un module ZMNHID1 (oui , vous avez bien lu , ZMNHID1 et non le zmnhjd1 , bref je m'étais planté d'une lettre !). Et j'ai attendu avec impatience de tout recevoir 3 - Réception et installation La box HC2 est absolument magnifique, et son installation est triviale, franchement, on dirait du Apple ! Je n'ai rien eu à redire. Je déballe mon module ZMNHID1, je fais le branchement et tente l'association, bon bref , je galère, j'arrive pas à l'associer, je lis dans la notice qu'il faut pas appuyer sur le bouton si on le branche sur du 230V... bon je vous passe les détails pour finalement me rendre compte après 2jours de tentative que ... c'est pas le bon module ! Je le retourne, et en achète un sur Amazon (le bon, le zmnhjd1 ) pour le recevoir le lendemain. Le lendemain, mon bon module en main, je le branche et tente de l'associer à la box. J'y arrive pas, j'ai pourtant cocher la case comme quoi le module était 'loin' de la box (on parle de 3m) , mais rien n'y fait. Je parcours les forum, je vois que je suis pas le seul. Après des tonnes de tentatives , voila mon conseil pour y arriver du premier coup (oui car depuis j'en ai installer 6 , et ca marche du premier coup ) Comment appairer/associer un module Qubino zmnhjd1 avec la Home Center 2 (HC2) - Mettre hors-tension le radiateur - Effectuer les branchements (voir notice, le neutre, puis la phase, puis le fil pilote) sur la prise du radiateur si vous avez une BOX 4G , sinon, branchez le sur une prise électrique juste à côté de votre box ADSL/Fibre <<<<<---- ce détail est super important, donc je le redis, si vous avez une box ADSL/Fibre , donc une box qu'on ne peut pas déplacer car dépendante de la prise téléphone/fibre de votre maison, il faut prendre voter module zmnhjd1, et le brancher juste à côté de la box, tant pis s'il n'est pas relié au radiateur via le fil pilote. trouvez une phase et un neutre (prise de courant/interrupteur que sais-je) à côté de voter box, et faite un montage temporaire (hors tension évidemment) - Donc je résume avant de mettre le courant : vous avez votre Box HC2 qui se trouve à moins de 1mètre (très important) de votre module Qubino, branché à minima à la phase et au neutre. - Mettez la tension - Allez sur la page Device de la HC2, et cliquez sur 'Ajouter un device' - Cochez la case 1 et 3 (Device is located far from the Home Center - Add in security mode if device supports it) - Cliquez sur le bouton 'Add' (la box affiche : ] Home Center in learning mode ) - Appuyez sur le bouton d'association du Module Qubino zmnhjd1 => 3 secondes montre en main. surtout pas 4 ou 5 ! ( il faut impérativement pas arriver à 6 secondes , sinon vous êtes foutu !) - Attendez 5 secondes ( important , car c'est pas instantané ! ), si vous ne voyez rien à l'écran (en gros si il n'y a pas du texte qui défile , et qu'il y a juste et toujours la meme phrase : Home Center in learning mode ) , vous pouvez retenter l'opération. (chez moi ca marche à 40% lors de la première tentative , et 60% la seconde) - Lorsque plein de texte se met à défiler ( si c'est pas le cas lisez ci-dessous la rubrique (mon module s'est mal associé) ), il faut être patient. Dès fois très patient. Il m'est arrivé de devoir attendre 30 min . Mais en moyenne ça met 8 minutes. Je déconseille de cliquer sur CLOSE, ni d'ouvrir un nouvel onglet sur le HC2. Juste attendre. - Vous pouvez constater (ou pas) que l'association s'est bien passé si vous avez : Un device carton ( qui sert à rien , à cacher ) Un device variateur de lumière ( à garder (puis ensuite vous pourrez le cacher ) ) Un device capteur de température ( à cacher sauf si vous avez branché une sonde de température sur votre module, moi c'était pas le cas ) 3 devices de capteur de présence ( à cacher , sert à rien , c'est du factice evidement ) mon module s'est mal associé Ca m'est beaucoup arrivé pour mon premier et second module, ensuite j'ai compris la technique détaillé. Le soucis vient du fait que j'appuyais trop longtemps sur le bouton, souvent bien plus de 6 secondes, ou que je m'excitais sur le bouton en donnant plein de petites pressions sur le bouton d'association. Il faut bien avoir en tête qu'il peut y avoir une latence de 5 seconde entre la fin de l'appui de 3 secondes sur le bouton et le début du défilement du texte qui confirme que c'est bien parti pour l'association . Bon, le module s'est mal associé, vous n'avez pas le variateur de lumière qui est l'élément clé pour controller le fil pilote, il faut donc supprimer le device. La ca marchote ... Il faut tenter de le supprimer. Utilisez la fonction de suppression de device (présent sur la même page que l'ajout) , et cette fois ci il faut appuyer 6 secondes ( voir 8 ) sur le bouton du module. Bref , pour moi ca marchait pas vraiment, et je finissais par forcer la suppression des modules en echec ! (souvent j'en avait 1 ou 2 , lorsque l'association marchait pas) 4 - Le paramétrage de mes radiateurs C'est là ou les choses marrantes commencent. Contrairement à la eedomus, la HC2 ne gère pas nativement ce module qubino (je crois que les 2 marques on un différent) , du coup, au lieu d'avoir un module tout prêt avec les 6 ordres, on a un variateur de lumière ( les autres modules, vous les avez caché hein ? ). Ce variateur de lumière, si vous le positionnez à 0, le radiateur se met en Délestage (Arrêt) Puis plus vous allez monter le curseur du variateur,vous allez passer d'un ordre à l'autre les ordres Arrêt : 0 - 10 Hors-Gel : 11-20 Eco : 21-30 Confort-2 : 31-40 (met environ 5 min à être détecté par le radiateur, c'est normal) Confort-1 : 41-50 (met environ 5 min à être détecté par le radiateur, c'est normal) Confort : 51-100 Du coup, c'est un peu pourri, et je voulais un super module avec : Une icone qui montre l'état du radiateur Un texte qui décrit l'état du radiateur 6 boutons (avec les 6 ordres pardis) J'ai donc créé un module virtuel , et avec un peu de LUA , si on cliquait sur un bouton 'Arrêt' , ca envoyait l’ordre : fibaro:call(id_radiateur, 'setValue', valeur) Evidemment la variable id_radiateur contient l’identifiant du radiateur et la variable valeur contient '0' (pour Arrêt !) Et j'avais demandé que lorsqu'on appuis sur le bouton 'Arrêt' ca change l'icone du module virtuel pour mettre un dessin de radiateur avec un symbole OFF devant ! C'est pas mal, c'est d'ailleurs ce que recommande beaucoup de tuto, mais honnêtement ça fait pas l'affaire ! Les défauts : - Le module n'est pas capable de détecté l'état du radiateur (et oui , si on reboot la box HC2, ou même si on ouvre tout simplement un nouvel onglet, on a pas la bonne icone et le pas le bon texte (oui j'ai pas parlé du texte, j'y viendrais) - Si jamais la communication n'est pas passé (et oui ca arrive en Z-Wave, la HC2 est super forte pour construire correctement le maillage, mais lorsqu'on je la déplace pour ajouter un nouveau module, bein je perd temporairement des liaisons , que la HC2 reconstruit par la suite, mais bon il m'est arrivé 2 fois qu'un device réponde pas pendant 1H, c'est rarissime je précise) , je voudrais pas que le radiateur reste en mode confort alors que je suis parti 3 semaines en vacances en ayant demandé que tout le monde soit en HG ! Donc j'ai procédé autrement ! La cible actuelle - J'ai créé une variable globale : l_radiateurs , c'est en fait un tableau qui liste mes 'objets' radiateurs (objet au sens programmation) - d'autre viaraible globale pour les ID des images des radiateurs i_radiateur_cmu i_radiateur_cmd i_radiateur_c i_radiateur_eco i_radiateur_hg i_radiateur_off Pour uploader des icones personnalisé , il faut : Être en local (genre http://http://192.168.1.113 , et pas passer par http://dom.fibaro.xxxxxx), que les images soient en png , et qu'elles fassent 128x128px (on peut redimmensionner une image avec Paint3D sout Windows 10) Pour récupérer l'ID du icone, effectuer un clic droit sur l'icone, faire 'ouvrir l'image dans un nouvel onglet', regarder l'url, et http://192.168.1.113/fibaro/n_vicons/User1007.png l'ID est marqué juste après le User Vous trouverez mes imgs en pj Comment créer une variable gloable ? -Il faut créer à la main via le pannel 'viariable globale' via l'IHM de la HC2 : Onglet Pannels => Variabels Pannel => Variables ( et pas Predefined Variables) Un objet radiateur étant : un ID (l'ID du radiateur, du 'variateur de lumière qui permet de piloter le radiateur') un état ordonné : l'ordre donné , j'ai demandé à ce radiateur d'être en mode hors gel par exemple sa position : du texte qui dit ou est le radiateur dans la maison ( et je pense prochainement un champ : type programmation, mais j'y reveindrais une autre fois) - J'initialise cette variable avec une scene --[[ %% properties %% events %% globals --]] function get_radiateur (id,position_si_vide) local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) for _,v in pairs(l_radiateurs) do if v['id'] == tostring(id) then return v; end end fibaro:debug('Création du radiateur car introuvable !') local un_r = {id = tostring(id), Etat = 0 , Position = position_si_vide} return un_r; end function save_radiateur (id,radiateur) local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) local cmp=1; for _,v in pairs(l_radiateurs) do if v['id'] == tostring(id) then fibaro:debug('>found') l_radiateurs[cmp] = radiateur fibaro:debug('> ' .. l_radiateurs[cmp]['Position']) fibaro:setGlobal("l_radiateurs", tostring(json.encode(l_radiateurs))); break; end cmp=cmp+1; end return; end --je declare les radiateur local un_r = {id = "23", Etat = 11 , Position = "salon droite cheminée"} -- capitalization in "Message" may matter l_radiateurs[1] = un_r local un_r = {id = "73", Etat = 11 , Position = "salon gauche cheminée"} -- capitalization in "Message" may matter l_radiateurs[2] = un_r local un_r = {id = "54", Etat = 11 , Position = "salon côté escalier"} -- capitalization in "Message" may matter l_radiateurs[3] = un_r local un_r = {id = "80", Etat = 11 , Position = "chambre 3"} -- capitalization in "Message" may matter l_radiateurs[4] = un_r local un_r = {id = "88", Etat = 11 , Position = "chambre 2"} -- capitalization in "Message" may matter l_radiateurs[5] = un_r local un_r = {id = "95", Etat = 11 , Position = "chambre 1"} -- capitalization in "Message" may matter l_radiateurs[5] = un_r jsonString = json.encode(l_radiateurs) -- après encodage variable de jsonString contient '{ "value2": null, "value1": 512 }' fibaro:debug('encoding') fibaro:debug(jsonString) fibaro:debug(tostring(json.encode(l_radiateurs))) fibaro:debug('saving > ' .. #l_radiateurs .. ' radiateurs !') fibaro:setGlobal("l_radiateurs", tostring(json.encode(l_radiateurs))); Dans mon exemple on voit que j'ai déclaré 5 radiateurs Ensuite, pour mon module virtuel de radiateurs (présent en pj), pour chaque bouton 'etat' (genre Eco/Confort) j'ai le code suivant local id_radiateur=23; --<====Mettre l'ID du variateur de lumière correspondant au radiateur local valeur='11'; --<====Mettre l'odre voulu , 0 , 11,21,31,41 ou 100, pas d'auter valeurs, pas de 1,2,3, 51,76, vous comprendrez pourquoi ensuite function get_radiateur (id,position_si_vide) fibaro:debug(tostring(fibaro:getGlobal("l_radiateurs"))) local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) for _,v in pairs(l_radiateurs) do if v['id'] == tostring(id) then fibaro:debug('Radiateur trouvé') return v; end end fibaro:debug('Création du radiateur ' .. id .. ' car introuvable !') local un_r = {id = tostring(id), Etat = 0 , Position = position_si_vide} return un_r; end function save_radiateur (id,radiateur) local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) local cmp=1; for _,v in pairs(l_radiateurs) do if v['id'] == tostring(id) then fibaro:debug('>found') l_radiateurs[cmp] = radiateur fibaro:setGlobal("l_radiateurs", tostring(json.encode(l_radiateurs))); return; end cmp=cmp+1; end fibaro:debug('Création du radiateur ' .. id .. ' car introuvable !') l_radiateurs[#l_radiateurs + 1] = radiateur fibaro:setGlobal("l_radiateurs", tostring(json.encode(l_radiateurs))); return end --je positionne le radiateur à l'état voulu fibaro:call(id_radiateur, 'setValue', valeur) -- je positionne le bon nom pour le titre fibaro:call(fibaro:getSelfId(), "setProperty", "ui.letat.value", "Hors Gel"); --j'enregistre dans la variable globale l'état du radiateur, comme cela s'il la communication s'est mal passé, le script de rattrapage rattrape le tout ! local radiateur=get_radiateur(id_radiateur,'salon droite cheminée'); radiateur['Etat']=valeur; save_radiateur(id_radiateur,radiateur); Et dans le main loop du module virtuel j'ai le code suivant local id_radiateur=23 function get_radiateur (id,position_si_vide) fibaro:debug(tostring(fibaro:getGlobal("l_radiateurs"))) local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) for _,v in pairs(l_radiateurs) do if v['id'] == tostring(id) then fibaro:debug('Radiateur trouvé') return v; end end fibaro:debug('Création du radiateur ' .. id .. ' car introuvable !') local un_r = {id = tostring(id), Etat = 0 , Position = position_si_vide} return un_r; end function save_radiateur (id,radiateur) local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) local cmp=1; for _,v in pairs(l_radiateurs) do if v['id'] == tostring(id) then fibaro:debug('>found') l_radiateurs[cmp] = radiateur fibaro:setGlobal("l_radiateurs", tostring(json.encode(l_radiateurs))); return; end cmp=cmp+1; end fibaro:debug('Création du radiateur ' .. id .. ' car introuvable !') l_radiateurs[#l_radiateurs + 1] = radiateur fibaro:setGlobal("l_radiateurs", tostring(json.encode(l_radiateurs))); return end fibaro:debug('Go') local radiateur=get_radiateur(id_radiateur,''); local etat_r=radiateur['Etat']; fibaro:debug('Go 2') fibaro:debug('etat_r:' .. tostring(etat_r)) local id_icone=""; if tostring(etat_r) == "100" then --confort fibaro:debug('Confort') id_icone=tostring(fibaro:getGlobal("i_radiateur_c")); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.letat.value", "Confort"); end if tostring(etat_r) == "41" then --confort -1 id_icone=tostring(fibaro:getGlobal("i_radiateur_cmu")); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.letat.value", "Confort-1"); end if tostring(etat_r) == "31" then --confort -2 id_icone=tostring(fibaro:getGlobal("i_radiateur_cmd")); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.letat.value", "Confort-2"); end if tostring(etat_r) == "21" then --eco id_icone=tostring(fibaro:getGlobal("i_radiateur_eco")); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.letat.value", "Eco"); end if tostring(etat_r) == "11" then --hg id_icone=tostring(fibaro:getGlobal("i_radiateur_hg")); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.letat.value", "Hors Gel"); end if tostring(etat_r) == "0" then --arret id_icone=tostring(fibaro:getGlobal("i_radiateur_off")); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.letat.value", "Arrêt"); end fibaro:debug('Icone : '..id_icone) --je met a jour l'icone local id_v=fibaro:getSelfId(); fibaro:debug('id_v : '..id_v) fibaro:call(id_v, "setProperty", "currentIcon", id_icone) Pour finir - tous les contrôler en 1 clic J'ai pu créer par exemple une scene pour mettre d'un coup tous mes radiateurs en mode Hors-Gel Et on peut imaginer une autre scene, qui met en mode Confort de 7H à 9H puis Confort-2 , pour revenir à Confort à partir de 18H jusqu'à 23H. --[[ %% properties %% weather %% events %% globals --]] --Radiateurs HG function get_radiateur (id,position_si_vide) fibaro:debug(tostring(fibaro:getGlobal("l_radiateurs"))) local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) for _,v in pairs(l_radiateurs) do if v['id'] == tostring(id) then fibaro:debug('Radiateur trouvé') return v; end end fibaro:debug('Création du radiateur ' .. id .. 'car introuvable !') local un_r = {id = id, Etat = 0 , Position = position_si_vide} return un_r; end function save_radiateur (id,radiateur) local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) local cmp=1; for _,v in pairs(l_radiateurs) do if v['id'] == tostring(id) then fibaro:debug('>found') l_radiateurs[cmp] = radiateur fibaro:setGlobal("l_radiateurs", tostring(json.encode(l_radiateurs))); return; end cmp=cmp+1; end fibaro:debug('Création du radiateur ' .. id .. 'car introuvable !') l_radiateurs[#l_radiateurs + 1] = radiateur fibaro:setGlobal("l_radiateurs", tostring(json.encode(l_radiateurs))); return end --je parcours les radiateurs de la var global function main_function() local l_radiateurs = json.decode(tostring(fibaro:getGlobal("l_radiateurs"))) for _,v in pairs(l_radiateurs) do local valeur_constate = fibaro:getValue(v['id'], 'value') fibaro:debug(' ') fibaro:debug('Check Radiateur : ' .. v['id']) fibaro:debug(v['id'] .. 'valeur_constate : ' .. valeur_constate) local valeur_ordonnee = 11; fibaro:debug(v['id'] .. 'valeur_ordonnee : ' .. valeur_ordonnee) if tostring(valeur_ordonnee) ~= tostring(valeur_constate) then fibaro:debug('Radiateur ordre a rectifier : ' .. v['id']) fibaro:call(v['id'], 'setValue', valeur_ordonnee) local radiateur=get_radiateur(v['id'],'salon droite cheminée'); radiateur['Etat']=valeur_ordonnee; save_radiateur(v['id'],radiateur); api.post('/mobile/push', {["mobileDevices"]={4}, ["message"]='Etat rattrapé !', ["title"]=v['Position'], ["category"]='YES_NO', ["data"]={["sceneId"]=0}}); else fibaro:debug('Radiateur ordre OK') end end end main_function() fibaro:debug('Fin') Et voila, j'arrive à la fin de mon post, vous êtes encore la ? C'est la première fois que je publie un truc , soyez indulgent s'il vous plait. Et n'hésitez pas à me faire des retours . Je terminerais en disant que j'ai un regret avec la HC2 => Pourquoi diable on ne peut pas créer de fonction partagée, je suis obligé de dupliquer mes 2 fonctions partout c'est horrible !!!!! cdt Radiateur_Droite_Ch.vfib
×