
jjacques68
Membres confirmés-
Compteur de contenus
4 346 -
Inscription
-
Dernière visite
-
Jours gagnés
39
Tout ce qui a été posté par jjacques68
-
autre solution, tu passe sur iPhone, là il prendra bien le nom tu tél, que tu peux modifier il me semble
-
J'AI TROUVE !! enfin!!!! p... de b... de m... c'était long ! ça vient pas du tout de mes api.put, api.get... voilà ce qui est en défaut (présent dans le 2ème script et pas dans le 1er): --récupère les infos du device id = device[i].id name = device[i].name type = device[i].type zwaveCompany = device[i].properties.zwaveCompany la variable "type" qui est un mot clé réservé : type = device.type J'ai remplacé par ceci : idDev = device[i].id nameDev = device[i].name typeDev = device[i].type zwaveCompanyDev = device[i].properties.zwaveCompany et ça a marché du premier coup ... ... pourri le debug lua !!!! bref, merci pour votre participation ! PS: question bête on peut réveiller un module sans avoir a se déplacer vers lui pour triple cliquer sur le bouton ?
-
Ben moi j’ai achetée la version pro à cause de cette pub... Et je commençais à l’apprécier... Justement pour ce forum...
-
Ok... si un administrateur du fofo pouvait regarder ce serait super !!
-
Bonsoir, Est-il normal que tout d'un coup depuis aujourd'hui (du moins jour où je m'en suis rendu compte) on (je) ne puisse plus poster depuis taptalk ? J'arrive à tout voir mais à rien répondre. Il me marque "Vous n'avez pas la permission" dans la zone de texte pour répondre. Quand je clique sur le bouton "abonnée" il cherche, et cherche et cherche, mais rien ne vient. On dirait que la communication entre l'appli et le forum ne passe plus correctement... Et je peux y arriver sur d'autre forum ! J'ai complètement supprimer l'appli et réinstallé, mais rien y fait. Idem sur tablette. Quelqu'un remarque la même chose ? Merci !
-
Bon alors, que je le prévoyais, ".properties" est bien présent. Donc désolé les gars, mais c'est pas ça (je modifie le premier post pour ne pas tromper quelqu'un d'autre) C'est désepérant... Je poste la scène compléte qui bug (un peu long mais pas compliquée) --[[ %% properties %% events %% globals --]] --[[ Scène qui met à jour les WakeUpTime des modules au maximum, suivant les infos trouvés dans la notice --]] --décalration des variables************************************************* local debug = true --true/false variable pour afficher le debug local simul = false --true/false permet de simuler avant de modifier local device = api.get("/devices/") --liste tous les devices local texte = "" --texte pour le debug local nbDevice = 0 --compteur de device à pile total local nbDeviceUpdateOK = 0 --compteur de device mis à jour OK local nbDeviceUpdateNOK = 0 --compteur de device mis à jour NOK local nbDeviceOK = 0 --compteur de device OK local nbDeviceNOK = 0 --compteur de device NOK local typeDevice = { {type = "com.fibaro.remoteController", zwaveCompany = "ID-RF", up = 0, maxTime = 0}, {type = "com.fibaro.doorSensor", zwaveCompany = "Fibargroup", up = 1, maxTime = 64800}, {type = "com.fibaro.FGMS001v2", zwaveCompany = "Fibargroup", up = 1, maxTime = 65535}, {type = "com.fibaro.FGFS101", zwaveCompany = "Fibargroup", up = 1, maxTime = 18000}, {type = "com.fibaro.thermostatDanfoss",zwaveCompany = "Danfoss", up = 1, maxTime = 600}, {type = "com.fibaro.FGMS001", zwaveCompany = "Fibargroup", up = 1, maxTime = 65535}, {type = "com.fibaro.temperatureSensor",zwaveCompany = "Horstmann Controls Limited", up = 1, maxTime = 86400}, {type = "com.fibaro.temperatureSensor",zwaveCompany = "Everspring", up = 1, maxTime = 16056000}, {type = "com.fibaro.motionSensor", zwaveCompany = "Philio Technology Corp", up = 1, maxTime = 432000} } --fonction pour afficher le debug******************************************* function afficheDebug(message, color, afficheDebug) if afficheDebug == true then if message and color then print("<font color = '"..color.."'>"..message.."</font>") else print("<font color = 'yellow'>afficheDebug : error</font>") end end end --MAIN********************************************************************** --entête de debug if simul == true then afficheDebug("MODE SIMULATION : AUCUNE MODIFICATION EST APPLIQUEE.", "yellow", true) end afficheDebug("DEFINITIONS : id, name, wakeUpTime, type, zwaveCompany", "white", debug) --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,w 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 --récupère les infos du device id = device[i].id name = device[i].name type = device[i].type zwaveCompany = device[i].properties.zwaveCompany --construit le texte pour le debug if debug == true then texte=id..", "..name..", "..device[i].properties.wakeUpTime.." s, "..type..", "..zwaveCompany end --si wakeUpTime différent de maxTime du tableau if device[i].properties.wakeUpTime ~= typeDevice[j].maxTime then afficheDebug(texte,"red", debug) nbDeviceNOK=nbDeviceNOK+1 --inc compteur NOK --si le champ UP est à 1 alors mise à jour if tonumber(typeDevice[j].up) == 1 then --mise à jour du wakeUpTime avec valeur du tableau if simul == false then -- pas executée en mode simulation local Value=api.get("/devices/"..device[i].id) Value.properties.wakeUpTime = typeDevice[j].maxTime api.put("/devices/"..device[i].id, Value) end fibaro:abort() --construit le texte pour le debug de mise à jour if debug == true then texte="Device "..device[i].id.." ("..device[i].name..") wakeUpTime mis à jour avec "..typeDevice[j].maxTime.." s." end afficheDebug(texte, "orange", debug) nbDeviceUpdateOK=nbDeviceUpdateOK+1 --inc compteur update OK else --si pas de mise à jour demandée (up = 0) --construit le texte pour le debug de mise à jour if debug == true then texte="Device "..device[i].id.." ("..device[i].name..") wakeUpTime non mis à jour." end afficheDebug(texte, "Magenta", debug) nbDeviceUpdateNOK=nbDeviceUpdateNOK+1 --inc compteur update NOK end else --sinon OK (wakeUpTime différent de maxTime du tableau) afficheDebug(texte, "green", debug) nbDeviceOK=nbDeviceOK+1 --inc compteur OK end nbDevice=nbDevice+1 --inc compteur device end end end end --affichage résultat print("------------------------------") afficheDebug("Total device détectés = "..nbDevice, "white", true) afficheDebug("Total device OK = "..nbDeviceOK, "green", true) afficheDebug("Total device NOK = "..nbDeviceNOK, "red", true) afficheDebug("Total device mis à jour OK = "..nbDeviceUpdateOK, "orange", true) afficheDebug("Total device mis à jour NOK = "..nbDeviceUpdateNOK, "Magenta", true) On retrouve le api.put qui m....
-
Il manque le .properties ?! je pense que ça viens du copier coller... je vérifie ce soir, mais quasi sur qu’il est présent dans le code qui fonctionne pas. si vous regarder le 3 eme code posté, qui est un clone de celui qui marche pas, vous verrez... et pourtant ce clone fonctionne...
-
Enregistrement de notification sur serveur sql
jjacques68 a répondu à un(e) sujet de drboss dans HC2
Ou ça ça me plait merci !! -
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
-
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...
-
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 !!!
-
Gestion complète des plantes avec Mi-Flora
jjacques68 a répondu à un(e) sujet de jjacques68 dans Périphériques et matériels autres
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 -
Je viens d’essayer en remplaçant le 2ème v par W, mais ça change rien
-
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 !!!!
-
Moi je ne l'utilise pas... mais à tout hasard, est ce que ton micro est actionnée pour cette appli ?
-
Nickel l'idée !! Chez moi les plaques sont aussi enlevées...
- 32 réponses
-
- hc2
- temperature
-
(et 1 en plus)
Étiqueté avec :
-
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 )
-
É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 !
-
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 !!!
-
Mais le "nan" affiché dans le debug d'avant sort de ou ? Envoyé de mon iPhone en utilisant Tapatalk Pro
-
Ok Mais je répond demain... vai me coucher la...
-
Ç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
-
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.....)
-
Ça doit marché peux tu me remettre le code complet ?
-
É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