Aller au contenu

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

  1. toujours pas de news ?? snif.
  2. oui je pense aussi à la baffe
  3. jjacques68

    Interroger serveur UPS Synology

    ah ces histoire d'UPS et HC2... un vieux rêve alors j'avais fait des essais : voici le script php que j'utilisais : (à savoir que je suis nul de chez nul de chez nul en php... ) je l'avais nommé shutdown.php <?php $opts = array( 'http'=>array( 'method'=>"GET" ) ); $context = stream_context_create($opts); $fp = fopen('http://user:password@IP_locale_HC2/api/sceneControl?id=XXX&action=start', 'r', false, $context); //fpassthru($fp); fclose($fp); ?> user = le super user XXX = ID de la scène qui contiendra la séquence d'extinction de la HC2 ça marchait. MAIS !!!!!!!!!!!!!!!!!! attention !!! voici les remarques que j'avais relevé : donc si vous avez une solution... je suis preneur... et comment faire pour faire redémarrer la HC2 en cas de retour de l'UPS donc du Syno ???
  4. jjacques68

    Interroger serveur UPS Synology

    Il me semble qu'il faut insérer un script et nom une requête http. Nan ? j'avais fait des essais avec un script php. Lancé par le syno à cette endroit...
  5. jjacques68

    variable haute

    Le top serait que tu postes le debug complet quand le nan apparaît...
  6. jjacques68

    variable haute

    C’est quoi le message d’erreur ?
  7. jjacques68

    variable haute

    Ouch ! Tu as fait un mix de tout c’est un peu le cirque... Je viens de réécrire, à essayer pour voir... À essayer... j’ai pas testé donc peut être des erreurs... quand tu codes, n’hésites pas à mettre des commentaires, debug et respecter l’indentation pour plus de facilité à relire le code et le comprendre... je comprends pas le coup du 85 °C ??? local selfId = fibaro:getSelfId() --ID du VD de type integer local WEB = Net.FHttp("192.168.1.24",80) -- IP to your espeasy local VgHc2 = fibaro:getGlobal("TempHc2") --valeur mémorisée de type string local tempMax = "38 °C" --de type string local tempMin = "32 °C" --de type string local tempNan = "10 °C" --de type string local response ,status, err = WEB:GET("/json?tasknr=1") -- task id on espeasy if (tonumber(status) == 200 and tonumber(err)==0) then -- si réponse ok local jsonTable = json.decode(response) --recupère la table des valeurs de retour local value = jsonTable.Temperature -- sélectionne que la température --force value à tempNan si réponse = "nan °C" if value == "nan °C" then value = tempNan end --debug fibaro:debug("Valeur mesurée = "..value) --update label VD (le "°C" est dans value) fibaro:call(selfId, "setProperty", "ui.lbl1.value", value) --conversion des string if value then value = string.match(value, "[0-9.]+") end if tempMax then tempMax = string.match(tempMax, "[0-9.]+") end if tempMin then tempMin = string.match(tempMin, "[0-9.]+") end if tempNan then tempNan = string.match(tempNan, "[0-9.]+") end if VgHc2 then VgHc2 = string.match(VgHc2, "[0-9.]+") end --debug des valeur converti pour info fibaro:debug("valeur converti :") fibaro:debug("value = "..tonumber(value)) fibaro:debug("tempNan = "..tonumber(tempNan)) --Comparaison entre la Temperature mémorisée et la température mesurée fibaro:debug("Comparaison pour stockage dans variable : ") fibaro:debug("Valeur mémorisée actuelle = "..VgHc2) if tonumber(value) > tonumber(VgHc2) then fibaro:debug("température mesurée supérieure -> Mise à jour de la VG") fibaro:setGlobal("TempHc2", value.." °C") else fibaro:debug("température mesurée inférieure ou égal -> pas de mémorisation") end --si temperature = 85 alors appui sur Btn 5 du device 747 fibaro:debug("Comparaison avec 85 °C :") if tonumber(VgHc2) == 85 then fibaro:call(747, "pressButton", "5"); fibaro:debug("= 85 °C -> eraz variable") else fibaro:debug("<> 85 °C -> rien à faire") end --allumage ou pas du ventilo fibaro:debug("Comparaison pour allumage du ventilo :") fibaro:debug("tempMax = "..tonumber(tempMax)) fibaro:debug("tempMin = "..tonumber(tempMin)) if tonumber(value) > tonumber(tempMax) then fibaro:call(747, "pressButton", "2"); fibaro:debug("allumage ventilo") elseif value < tempMin then fibaro:call(747, "pressButton", "3"); fibaro:debug("extinction ventilo") end fibaro:sleep(10*1000) -- en option : petite tempo pour calmer le code dans le VD end
  8. jjacques68

    variable haute

    Ce bout de code que tu trouves après l’exécution de ta requête HTTP, permet de contrôler le retour d’état de celle-ci. si status = 200 veut dire que tout s’est bien passé et err=0 veut dire qu’il n’y a pas d’erreur en retour. Donc avec ces 2 conditions, tu peux donc continuer à traiter ton code. Sinon ça sert à rien, ton code va planter. Il sera possible aussi du coup d’afficher le code erreur renvoyé( en option).
  9. jjacques68

    variable haute

    De rien !!
  10. jjacques68

    variable haute

    Ah le boulet, j’avais pas vu !! C’est normal !! --Pour traiter le "nan" ATTENTION au "°C" après le "nan" if value == "nan °C" then value = "tempMin" end C’est faux !! voilà ce qu’il faut : enlever les double quote autour de tempMin. enfait ce qu’on a fait, c’est que si value = nan °C alors value = tempMin et non 32 ! --Pour traiter le "nan" ATTENTION au "°C" après le "nan" if value == "nan °C" then value = tempMin end
  11. jjacques68

    variable haute

    C’est clairement un problème de convertion de type. essayes ça Dans le paragraphe convertion : --convertion value = string.match(value, "[0-9.]+") tempMax = string.match(tempMax, "[0-9.]+") tempMin = string.match(tempMin, "[0-9.]+")
  12. jjacques68

    variable haute

    Mais tu as essayé avec les convertions de type ? Voilà le code les comprenant : --[[ %% autostart %% properties 747 value %% events %% globals --]] while true do local value = fibaro:getValue(747, "ui.lbl1.value") local tempMax = "38 °C" -- penser °c autrement compare nil value erreur local tempMin = "32 °C" fibaro:debug(value) fibaro:sleep(60*1000) --Pour traiter le "nan" ATTENTION au "°C" après le "nan" if value == "nan °C" then value = "tempMin" end --convertion value = string.format("%.1f",value) tempMax = string.format("%.1f",tempMax) tempMin = string.format("%.1f",tempMin) --debug pour être sur des valeurs : fibaro:debug("value = "..tonumber(value)) fibaro:debug("tempMax = "..tonumber(tempMax)) fibaro:debug("tempMin = "..tonumber(tempMin)) if tonumber(value) > tonumber(tempMax) then fibaro:call(747, "pressButton", "2"); fibaro:debug("allumage ventilo") elseif tonumber(value) < tonumber(tempMin) then fibaro:call(747, "pressButton", "3"); fibaro:debug("extinction ventilo") end end
  13. jjacques68

    variable haute

    Je crois que je viens de comprendre le « nan », il faut y ajouter le « °C » aussi ... Ensuite attention, tu dois ajouter la convertion des chaînes (value, tempMax et tempMin) comme dans le code précédent. Avant de faire la comparaison --[[ %% autostart %% properties 747 value %% events %% globals --]] while true do local value = fibaro:getValue(747, "ui.lbl1.value") local tempMax = "38 °C" -- penser °c autrement compare nil value erreur local tempMin = "32 °C" fibaro:debug(value) fibaro:sleep(60*1000) --Pour traiter le "nan" ATTENTION au "°C" après le "nan" if value == "nan °C" then value = "tempMin" end if value > tempMax then fibaro:call(747, "pressButton", "2"); fibaro:debug("allumage ventilo") elseif value < tempMin then fibaro:call(747, "pressButton", "3"); fibaro:debug("extinction ventilo") end end
  14. Hein ?????
  15. jjacques68

    variable haute

    Ha ben voilà !! Nickel ça ! tu pourrais peut être rajouter ce bout de code dans le main du VD, ça te fera une scène en moins, et tout sera au meme endroit... par contre si tu fais ça, pas besoin du while true do... il boucle tout seul...
  16. jjacques68

    variable haute

    Oui en effet c’est plus simple !!!
  17. jjacques68

    variable haute

    Ceci doit marcher. si c’est pas le cas, il donne quoi comme message d’erreur ? 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:getGlobal("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 if value == "nan" then fibaro:call(selfId, "setProperty", "ui.lbl1.value", "null") --remplace le nan par "null" else fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.. " °C") --sinon insere la température end --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 mémorisé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
  18. jjacques68

    variable haute

    Post le code complet pour voir
  19. jjacques68

    variable haute

    de rien !
  20. @Steven : merci pour le partage !!! Super !! L’achat est proche pour moi Petite question : le temps d’attente entre l’ordre et l’execution est correcte ? La réponse de google home tient elle compte du retour d’état de la HC2 ? (J’en demande peut être trop là )
  21. As tu essayé avec des simple quote ? setGlobal("Free_Msg", "'TEST'") Ou ça peut être : http:request('https://smsapi.free-mobile.fr/sendmsg?'..string.format("user=%s&pass=%s&msg=%s", username, password, "'"..message.."'") Ou encore ça : %22 = “ http:request('https://smsapi.free-mobile.fr/sendmsg?'..string.format("user=%s&pass=%s&msg=%s", username, password, "%22"..message.."%22") Mais c’est Étrange, car les VG sont obligatoirement des type string !!!
  22. jjacques68

    variable haute

    Alors dans le paragraphe « Update Label VD » du remplace la ligne par ça : if value == "nan" then fibaro:call(selfId, "setProperty", "ui.lbl1.value","0 °C") --remplace le nan par "0 °C" else fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.. " °C") --sinon insere la température end C’est pas très pro (car on teste 2 fois de suite la valeur « value »... mais c’est facile à comprendre. Et par contre, la valeur « nan » renvoyée par la sonde, en réalité ne signifie pas « 0 °C » mais plutôt que la sonde ne renvoie rien comme valeur. Pour être plus pro, il faudrait inscrire non pas « 0 °C » mais plutôt « null ». C’est toi qui voit, ou tu mets 0 °C ou tu mets null dans la première commande d’affichage du label.
  23. merci !!
  24. Y a pas d’autres appli du même genre pour remplacer ?
  25. Je vais déjà essayer de créer un autre compte sur le forum pour tester... Mais demain, car maintenant ... au lit !!! merci pour ta proposition !
×
×
  • Créer...