Aller au contenu

jjacques68

Membres confirmés
  • Compteur de contenus

    4 365
  • Inscription

  • Dernière visite

  • Jours gagnés

    39

Tout ce qui a été posté par jjacques68

  1. jjacques68

    Utilisation API HC2

    alors je viens d'essayer ceci : local Pannel = api.get("/panels/heating/61") print("AVANT modif = "..Pannel.properties["monday"].morning["hour"]) --modification Pannel.properties["monday"].morning["hour"] = "8" api.put(Pannel.properties["monday"].morning["hour"]) print("APRES modif = "..Pannel.properties["monday"].morning["hour"]) et voici le resultat du debug : [DEBUG] 17:44:33: AVANT modif = 7 [DEBUG] 17:44:33: APRES modif = 8 MAIS la valeur dans le panneau de chauffage ne change pas !!! ??? Je sèche, j'ai essayé beaucoup de variante...
  2. la box répondait au ping je confirme.
  3. alors moi j'avais dis RAS avec cette MAJ, mais cette nuit ma box à planté complet vers 5h du matin (dernières notifications enregistrées)... Et alors impossible de me connecter dessus, ni avec le tél, ni depuis mon PC via le réseau local !! J'ai du intervenir manuellement dessus, l'éteindre puis rallumer. Jamais eu ça en 2 ans ! Ya t'il un moyen de savoir ce qu'il s'est passé ?
  4. jjacques68

    Utilisation API HC2

    Ah bien ton exemple ! Je crois que c'est ce que je cherchais ! J'essaye demain et te tiens au courant... merci !
  5. jjacques68

    Utilisation API HC2

    pareil... ce serait bien qu'un expert passe par là ...
  6. jjacques68

    Utilisation API HC2

    ben ce que je pige pas c'est qu'on peut relever les valeurs avec une facilité énorme (voir mon code dans le premier post) et pour les modifier, il faut 30 lignes de code...
  7. jjacques68

    Utilisation API HC2

    ok mais il faut avant faire un HC2 net.httpclient, puis récupérer le json, le décoder, le modifier et le rencoder et seulement après faire le PUT... C'est long...
  8. jjacques68

    Utilisation API HC2

    ??? ha bon ??? avec quelle syntaxe, j'ai essayé et rien donné...
  9. jjacques68

    Utilisation API HC2

    Bonjour tout le monde ! Petite question rapide : (enfin je crois) j'arrive très facilement à récupérer des valeurs grâce à l'API de la HC2, exemple : je récupère la valeur suivante : l'heure défini dans le panneau de chauffage du lundi matin, comme ceci : local Pannel = api.get("/panels/heating/61") print(Pannel.properties["monday"].morning["hour"]) ça marche nickel ! j'utilise souvent cette méthode... Par contre si je veux écrire dans l'API, il faut utiliser un "PUT" ! -> ok mais y a t'il une méthode plus simple que le Net.HTTP ? On peut pas l'attaquer directement comme pour la lecture ? genre api.put .......... merci à vous !
  10. MAJ faite. On dirait que tout est ok chez moi. A suivre...
  11. oui c'est vrai ! c'est que je fais souvent en plus ! mais alors pour la première explication, je savais pas du tout ! J'ai du mal à comprendre... ce foutu setTimeout n'a jamais été vraiment expliqué nul part... Mais alors quel est l'intérêt d'avoir une condition qui s'exécute après un délais alors que le reste du code continue à tourner... !? D'ailleur pour le bouclage, on pourrait aussi utiliser un while true do non ? Avec un sleep dedans ?
  12. Si tu fais un debug de ce tonumber tu obtiens quoi ? @pepite, le setTimeout va te faire un bouclage toutes les 60 secondes, nan ? moi j'aurai, dans ce cas, laisser un sleep dans la condition : Ou alors j'ai mal compris !?
  13. Tu arrives a rentrer dans la boucle ? Il dit quoi le debug ?
  14. jjacques68

    Question boucle For

    Non non aucune erreur ! pourquoi ça devrait ?
  15. oui j'ai vu son tuto, mais il ne m'aide pas dans mon problème ...
  16. Bonjour à tous, depuis quelques jours j'essaye de piloter la HC2 avec Sarah. (Sarah fonctionne bien, heure, météo, volume,...) J'utilise le plugin Homecenter2. et bien ça fonctionne pas du tout. Pire encore le plugin me plante la box. Le fichier XML établi par le plugin semble totalement désordonné après mise jour. j'ai les pièces qui apparaissent en plusieurs exemplaires, les modules cachés, l'identifiant du superuser qui est tronquer à cause du @... les réponses de Sarah sont : répéter la question, erreur, ou elle répond positivement, mais rien ne se passe. Du coup, j'aimerai savoir s'il existe un simple plugin qui permet de saisir la question et d'exécuter une requête http ? Pas forcément spécifique à la HC2, mais juste exécuter une requête ? j'ai épluché toute la liste sur le store, et rien trouvé... j'ai lu presque lu tous les sujets du forum, mais rien. a moins que quelqu'un sache faire marcher ce plugin, mais surtout ordonner le fichier XML...
  17. Je remarque aussi une certaine instabilité depuis cette mise à jour. Pareil, c'est la première fois, elle a toujours été hyper stable. On va attendre la prochaine mise à jour...
  18. Bon et bien en faite j'ai supprimé les 2 modules, et rien d'anormal pour le moment. Je trouve quand même que depuis cette mise à jour, j'ai des choses étranges qui se passent : - une vanne danfoss qui ne communique pas bien avec le zwave - une télécommande nodon idem, marrant elles sont dans la meme pièce, et assez éloignée de la HC2, mais comportant de module dimmer (donc relais zwave...) Du coup j'ai exclu/inclu la vanne danfoss, et attend de voir la suite avec la télécommande nodon... on verra ce que ça donne avec la suppression des modules ci-dessus.
  19. Bien vu ! dans le cas des FGMS en effet... Je crois que le plus simple c'est d'écrire un script...
  20. jjacques68

    Question boucle For

    @pepite, alors voilà mon script... Avant ce script j'avais autant de scènes que de device pour recevoir les notifications push sur mon tél (ce qui fini par faire beaucoup...) Maintenant, j'ai un seul script pour toutes les notifications de mes device (device réels). Il doit y avoir eu d'autre méthodes proposées sur le forum, mais comme je dis, le faire tout seul, ça permet de progresser... Si quelqu'un a des choses à dire sur ce script (convention de codage, convention de nommage des variables, syntaxe du sciprt, ...), je suis totalement preneur ! Il est assez évolutif, car lors d'ajout de modules, il me suffit de rajouter l'ID dans les trigger et une ligne dans la variable tableau. (le nom des modules est simplifié pour garder un certain anonymat, dans mon script, les volets, éclairages et radiateurs ont des noms plus précis ) --[[ %% autostart %% properties 9 value 11 value 13 value 15 value 17 value 19 value 40 targetLevel 44 value 46 value 48 value 52 value 57 value 85 value 93 value 107 value 122 value 138 value 169 targetLevel 179 targetLevel 181 targetLevel 183 targetLevel 186 targetLevel 188 targetLevel 224 targetLevel 243 value 245 value 251 value %% events %% globals --]] local Trigger = fibaro:getSourceTrigger() --recupère le trigger local IdPhone = fibaro:getGlobal("IdPhone") --ID du téléphone --tableau de device -- ID, type de test, Nom pour le retour local TabMessage = { {Id = 19, Funct = "Volet", Name = "Volet 1 "}, {Id = 17, Funct = "Volet", Name = "Volet 2 "}, {Id = 15, Funct = "Volet", Name = "Volet 3 "}, {Id = 13, Funct = "Volet", Name = "Volet 4 "}, {Id = 11, Funct = "Volet", Name = "Volet 5 "}, {Id = 9, Funct = "Volet", Name = "Volet 6 "}, {Id = 57, Funct = "OpenClose", Name = "Porte salon "}, {Id = 85, Funct = "OpenClose", Name = "Porte garage "}, {Id = 93, Funct = "OpenClose", Name = "Porte entrée "}, {Id = 40, Funct = "Thermostat", Name = "Radiateur 1 "}, {Id = 169, Funct = "Thermostat", Name = "Radiateur 2 "}, {Id = 183, Funct = "Thermostat", Name = "Radiateur 3 "}, {Id = 186, Funct = "Thermostat", Name = "Radiateur 4 "}, {Id = 188, Funct = "Thermostat", Name = "Radiateur 5 "}, {Id = 179, Funct = "Thermostat", Name = "Radiateur 6 "}, {Id = 224, Funct = "Thermostat", Name = "Radiateur 7 "}, {Id = 181, Funct = "Thermostat", Name = "Radiateur 8 "}, {Id = 138, Funct = "OnOff", Name = "Eclairage 1 "}, {Id = 44, Funct = "OnOff", Name = "Eclairage 2 "}, {Id = 46, Funct = "OnOff", Name = "Eclairage 3 "}, {Id = 243, Funct = "OnOff", Name = "Eclairage 4 "}, {Id = 245, Funct = "OnOff", Name = "Eclairage 5 "}, {Id = 251, Funct = "OnOff", Name = "Eclairage 6 "}, {Id = 48, Funct = "ActifPassif", Name = "Capteur innondation informatique "}, {Id = 107, Funct = "ActifPassif", Name = "Capteur innondation chaufferie "}, {Id = 122, Funct = "ActifPassif", Name = "Capteur pluie "}, {Id = 52, Funct = "OnOff", Name = "Alimentation armoire informatique "} } --function de test qui retourne le message à envoyé --paramères: ID, Nom, fonction de test --test la valeur du module passé en paramètres en fonction du type de test function Test(IdName, IdDevice, Funct) if Funct=="OnOff" then if tonumber(fibaro:getValue(IdDevice, "value")) > 0 then return IdName.."ON." else return IdName.."OFF." end elseif Funct == "ActifPassif" then if tonumber(fibaro:getValue(IdDevice, "value")) > 0 then return IdName.."Actif." else return IdName.."Passif." end elseif Funct =="OpenClose" then if tonumber(fibaro:getValue(IdDevice, "value")) == 1 then return IdName.."Ouvert." else return IdName.."Fermée." end elseif Funct == "Volet" then if tonumber(fibaro:getValue(IdDevice, "value")) >= 90 then return IdName.."ouvert." elseif tonumber(fibaro:getValue(IdDevice, "value")) == 0 and Funct == "Volet" then return IdName.."fermé." else return IdName.."ouvert à "..fibaro:getValue(IdDevice, "value").."%." end elseif Funct == "Thermostat" then return IdName.."réglée à : "..fibaro:getValue(IdDevice, "targetLevel").." °C." end end --function appelé si autostart ou appel manuel-------------------------------------------------------------------- function ExecAuto() fibaro:sleep(10*1000) --retarde l'execution (pour l'autostart) local Mail = "Etat des device :".."\n".."\n" --variable recevant le résultat for _,v in ipairs(TabMessage) do --boucle sur tous les ID de TabMessage Mail = Mail..Test(v.Name, v.Id, v.Funct).."\n" --appel de la fonction test avec les 3 paramètres end --print(Mail) fibaro:call(2, "sendEmail", "Info sur l`état des device.", Mail) --envoi d'un mail end --function appelée lors d'une changement détat des modules déclarés en trigger de la scene---------------------- function ExecDevice(IdDevice) for _,v in ipairs(TabMessage) do --boucle dans le tableau pour trouver le bon module if v.Id == IdDevice then -- quand trouvé -- push avec appel de la fonction test avec les 3 paramètres --print(Test(v.Name, v.Id, v.Funct)) fibaro:call(IdPhone, "sendPush", Test(v.Name, v.Id, v.Funct)) end end end --MAIN---------------------------------------------------------------------------------------------------------------------- -- si scène lancée par autostart ou manuel if Trigger["type"] == "autostart" or Trigger["type"] == "other" then ExecAuto() --si scène lancée par property elseif Trigger["type"] == "property" then ExecDevice(Trigger["deviceID"]) end S'il faut des précisions, faites moi le savoir... Je viens de me rendre compte que j'aurai pu optimiser encore plus le code et ne faire qu'une fonction regroupant ExecAuto et ExecDevice... PS : dommage avec la nouvelle version du forum, on perd les couleurs du code (malgré la sélection dans la fenêtre de l'éditeur) et la mise en page syntaxique...
  21. effectivement il apparait comme non configuré. j'ose pas le supprimer, je connais pas les conséquences. Je me dis que ça commence a être le foutoire dans la BDD avec les modules et les nœuds... Pourtant je fais super attention a essayer de maintenir une bonne organisation.
  22. jjacques68

    Question boucle For

    @pepite : je te post le script ce soir
  23. Si c'est un module maitre, je devrai voir les esclaves nan ? et ben y en a pas ! Comme tu dis @Did le l'ai caché... mais bon... cacher la misère... c'est pas toujours la solution...
  24. jjacques68

    Question boucle For

    tant mieux si la boucle for est plus rapide. bon je pense avoir optimisé au max mon script, pas de variables inutiles et redondantes, pas de syntaxe de fou. utilisation de retour de fonction et passage de paramètres. en tout cas ça semble bien marcher.
  25. y a un bouton reconfigurer dans le diagnostique Z-wave, mais ils parlent de réveiller les modules sur batteries !! ça fait beaucoup à faire !!!
×
×
  • Créer...