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

    Help api.get api.put

    Voici exactement le code de ma première scène qui est quasi identique à ma seconde scene, alors la je pige plus... local device = api.get("/devices") local typeDevice = { {type = "com.fibaro.FGFS101", zwaveCompany = "Fibargroup", up = 1, maxTime = 20000}, } for i,v in ipairs(device) do if device[i].properties.wakeUpTime and device[i].visible == true then for j,v in ipairs(typeDevice) do if device[i].type == typeDevice[j].type and device[i].properties.zwaveCompany == typeDevice[j].zwaveCompany then if device[i].properties.wakeUpTime ~= typeDevice[j].maxTime then if tonumber(typeDevice[j].up) == 1 then local Value=api.get("/devices/"..device[i].id) Value.properties.wakeUpTime = typeDevice[j].maxTime api.put("/devices/"..device[i].id, Value) print("ok") end end end end end end
  2. jjacques68

    Help api.get api.put

    Je viens de faire l’essai en ajoutant cette condition dans mon premier exemple, et veux toujours rien savoir... ça commence à m’enerver Se truc...
  3. jjacques68

    Help api.get api.put

    Alors j’ai tout essayé !!! Tostring to number... et dans le premier exemple, c’est bien un chiffre que j’envoie et non une chaîne !!!
  4. Ok, étrange... pas eu besoin de faire ça... pour le pot, aucune idée, BLEA le verra certainement, après je sais pas... si les commandes du device apparaissent, y a pas de raison que ça ne marche pas !! Attention au risque qu’il arrive cassé !! Tiens au courant si tu te lances
  5. jjacques68

    Help api.get api.put

    Je viens d’essayer en remplaçant le 2ème v par W, mais ça change rien
  6. jjacques68

    Help api.get api.put

    Bonjour à tous ! Je suis confronté à problème complètement délirent. J'ai un bout de code qui veut pas fonctionner dans une scène alors qu'il fonctionne très bien dans une autre !!! voila le bout de code qui fonctionne très bien : (il met à jour le wakeUpTime d'un module) local device = api.get("/devices") for i,v in ipairs(device) do if device[i].id == 48 then local Value=api.get("/devices/"..device[i].id) Value.properties.wakeUpTime = 18000 api.put("/devices/"..device[i].id, Value) end end et voila celui qui ne fonctionne pas : (dans une autre scène, plus complexe, que j'ai simplifié pour le sujet...) local device = api.get("/devices") --liste tous les devices local typeDevice = { {type = "com.fibaro.remoteController", zwaveCompany = "ID-RF", up = 0, maxTime = 0}, {type = "com.fibaro.doorSensor", zwaveCompany = "Fibargroup", up = 1, maxTime = 64800}, --je raccourcie la liste... } --pour tous les device for i,v in ipairs(device) do -- filtre que les device à pile et visible if device[i].properties.wakeUpTime and device[i].visible == true then --pour tous les éléments de typeDevice for j,v in ipairs(typeDevice) do --si le type et zwaveCompany sont identiques if device[i].type == typeDevice[j].type and device[i].properties.zwaveCompany == typeDevice[j].zwaveCompany then local Value=api.get("/devices/"..device[i].id) Value.wakeUpTime = typeDevice[j].maxTime api.put("/devices/"..device[i].id, Value) ------> BLOQUE ICI !!!! il me dit : [DEBUG] 11:08:41: [1;31m2017-09-24 11:08:41.463993 [ fatal] Runtime error: [string " return function(composite, ret, encode, sta..."]:4: attempt to call global 'type' (a string value) J'ai tout essayé et rien y fait... merci pour vos conseils !!!!
  7. jjacques68

    LiLi iOS est tu la

    Moi je ne l'utilise pas... mais à tout hasard, est ce que ton micro est actionnée pour cette appli ?
  8. jjacques68

    HC2 prend l'air ;-)

    Nickel l'idée !! Chez moi les plaques sont aussi enlevées...
  9. jjacques68

    Reglage du WakeUpTime

    alors je me suis amusé a décortiquer les propriétés des device dans l'API de la HC2. afin de pouvoir trouver un regroupement vous faire le tableau et appliquer les bonne valeur au wakeUpTime en fonction du type... et c'est ce "type" que je recherche... Pour l'instant j'ai exporté toutes les donnée dans un fichier CSV (belle prise de tête = base de donnée sur SYNO, script PHP, scène qui envoi tout vers la BDD... bref, très bon exercice ...) afin de faire tranquillement mes recherches des maximum autorisés. Et je me rends compte que nul pars il y a le nom "commercial" des device. On ne sait pas si c'est un FGS, FGMS, FGK... !!!!! V1 ou V2 ???? Voici un petit exemple de ma liste : (on peut la raccourcir presque de moitié si on prends les modules parents, mais alors j'ai encore moins de précisions dans les autres champs) id parentId name type baseType zwaveCompany 40 39 ThCuisine com.fibaro.thermostatDanfoss com.fibaro.hvac Danfoss 48 47 Inond. Info com.fibaro.FGFS101 com.fibaro.floodSensor Fibargroup 50 47 TempCave com.fibaro.temperatureSensor com.fibaro.multilevelSensor Fibargroup 57 56 Porte Salon com.fibaro.doorSensor com.fibaro.doorWindowSensor Fibargroup 85 84 Porte Garage com.fibaro.doorSensor com.fibaro.doorWindowSensor Fibargroup 87 84 TempPorteGarage com.fibaro.temperatureSensor com.fibaro.multilevelSensor Fibargroup 93 92 Porte Entrée com.fibaro.doorSensor com.fibaro.doorWindowSensor Fibargroup 95 92 TempPorteEntrée com.fibaro.temperatureSensor com.fibaro.multilevelSensor Fibargroup 107 106 Inond. Chaufferie com.fibaro.FGFS101 com.fibaro.floodSensor Fibargroup 109 106 TempChaufferie com.fibaro.temperatureSensor com.fibaro.multilevelSensor Fibargroup 122 121 Capteur Pluie com.fibaro.doorSensor com.fibaro.doorWindowSensor Fibargroup 169 168 ThCouloir com.fibaro.thermostatDanfoss com.fibaro.hvac Danfoss un peu bête cette histoire, ça va pas simplifier le travail de recherche des doc... Y un autre moyen de connaitre le type exacte de module ? (sans avoir à ressortir les factures )
  10. jjacques68

    Reglage du WakeUpTime

    Évidemment ça aurait été trop simple bon je monte pas plus que 18000 et je me tape les doc vous posterai le résultat de mes recherches... à moins que quelqu'un l'ai déjà fait ? Merciiii !
  11. Hello tout le monde, Je sais que le sujet a été déjà abordé plusieurs fois... désolé d'en rajouter une couche. Mais petite question bête : je viens de pondre un petit script pour modifier tous mes WakeUpTime de mes device car je me suis rendu compte que c'est un peu la foire et que je consommais beaucoup de pile... Voilà le script pour ceux que ça intéresse... qui fonctionne très bien... faut juste faire un réveil manuel (ou attendre le réveil auto des device) pour voir la modif aplliquée. local device = api.get("/devices") local compteur = 0 for i,v in ipairs(device) do if device[i].properties.wakeUpTime -- si la proprité existe and device[i].properties.wakeUpTime < 65535 -- si Time < 65535 s and device[i].visible == true -- si le device est visible and device[i].type ~= "com.fibaro.thermostatDanfoss" --on exclu les danfoss and device[i].type ~= "com.fibaro.remoteController" --on exclue télécommande nodon then print(device[i].id.." - "..device[i].name.." - "..device[i].properties.wakeUpTime) --mise à jor du wakeUpTime local Value=api.get("/devices/"..device[i].id) Value.properties.wakeUpTime = 18000 api.put("/devices/"..device[i].id, Value) --INC du compteur compteur=compteur+1 end end print ("TOTAL = "..compteur) Comme vous pouvez le voir, je fixe le nouveau seuil à 18000 secondes. J'aimerai aller plus haut, mais jusqu'à où on peut monter ? 65535 secondes ? et est ce que tous les devices ont le même maximum ? Parce que avec cette méthode, d'écrire directement dans les propriétés du device, si ont met une mauvaise valeur, quelles peuvent en être les conséquences ? Merci pour vos réponses !!!
  12. jjacques68

    variable haute

    Mais le "nan" affiché dans le debug d'avant sort de ou ? Envoyé de mon iPhone en utilisant Tapatalk Pro
  13. jjacques68

    variable haute

    Ok Mais je répond demain... vai me coucher la...
  14. jjacques68

    variable haute

    Ça donne ça : avec d'autres petites modif... local selfId = fibaro:getSelfId() local WEB = Net.FHttp("192.168.1.24",80) -- IP to your espeasy local response ,status, err = WEB:GET("/json?tasknr=1") -- task id on espeasy local VgHc2 = fibaro:getGlobalValue("TempHc2") if (tonumber(status) == 200 and tonumber(err)==0) then --récupère la valeur de la sonde local jsonTable = json.decode(response) value = jsonTable.Temperature --debug + log fibaro:log(value) fibaro:debug("Valeur mesurée = "..value) fibaro:debug("Valeur mémorisée = "..VgHc2) --update label VD fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.. " °C") --Pour traiter le "nan" if value == "nan" then value = "0" end --conversion des string value = string.format("%.1f",value) --convertion en chiffre -----> A TESTER value = tonumber(value) VgHc2 = tonumber(VgHc2) --Pour voir la modif fibaro:debug("Valeur mesurée modifiée = "..value) fibaro:debug("Valeur mesurée modifiée = "..VgHc2) --Comparaison entre la Temperature mémorisée et la température mesurée if value > VgHc2 then fibaro:setGlobal("TempHc2", value) fibaro:debug("température supérieure = Mise à jour de la VG") else fibaro:debug("température inférieure = rien") end end
  15. jjacques68

    variable haute

    VgTemp était un nom pour ta variable VG (Variable Globale). Mais bien vu, Mais c'est pas ça qui est à l'origine du problème. l'impact était qu'il n'y avait pas de convention de la variable Hc2Temp du coup... et visiblement y en a pas besoin... Supprimes cette ligne, pas besoin. Par contre la ligne if value =="nan"... places là avant la conversion (value = string.format.....)
  16. jjacques68

    variable haute

    Ça doit marché peux tu me remettre le code complet ?
  17. jjacques68

    variable haute

    Étrange ce truc !! bon alors du coup étrange pour étrange : enleves ce qu'on ajouté et rajoute Avant la conversion : if value == "nan" then value = "0" end
  18. jjacques68

    variable haute

    Et il renvoie "nan" ?
  19. jjacques68

    variable haute

    Mais le "nan" affiché dans le debug d'avant sort de ou ? Envoyé de mon iPhone en utilisant Tapatalk Pro
  20. jjacques68

    variable haute

    Poste voir le code complet... Envoyé de mon iPhone en utilisant Tapatalk Pro
  21. jjacques68

    variable haute

    Juste avant la comparaison. Envoyé de mon iPhone en utilisant Tapatalk Pro
  22. jjacques68

    variable haute

    C'est certainement la comparaison entre les chaînes de caractères. Il faudrait pas mettre "nan". Tu devrais mettre "". Je me demande s'il faudrait pas après conversion des valeurs, les convertir encore en chiffre avec le commande value = tonumber(value). Idem pour la VG. Envoyé de mon iPhone en utilisant Tapatalk Pro
  23. jjacques68

    variable haute

    Donc pas besoin de conversion... et la VG ? Envoyé de mon iPhone en utilisant Tapatalk Pro
  24. jjacques68

    variable haute

    Hmm... je me demande si c'est pas à cause de la comparaison effectuée avec des chaînes de caractères... Si tu fais un debug de value avant la conversion, ça donne quoi ? Tu pourrais essayer un truc du genre avant ou après la conversion : if value == nil or value =="" then value = "0" end Envoyé de mon iPhone en utilisant Tapatalk Pro
  25. jjacques68

    variable haute

    Mais logiquement la VG ne se met à jour que si la valeur mesurée est plus élevée ??!! Envoyé de mon iPhone en utilisant Tapatalk Pro
×
×
  • Créer...