Aller au contenu

jjacques68

Membres confirmés
  • Compteur de contenus

    4 364
  • Inscription

  • Dernière visite

  • Jours gagnés

    39

Tout ce qui a été posté par jjacques68

  1. jjacques68

    j'apprend le LUA mai

    Oui la division/multiplication est prioritaire sur les addition/soustraction Rappel de bon vieux cours d'école [emoji6] Envoyé de mon iPhone en utilisant Tapatalk Pro
  2. jjacques68

    j'apprend le LUA mai

    essaye : local total = (a + b) / c
  3. bon ben ça à l'air de fonctionner comme ça... mais suis pas content de la méthode utilisée...
  4. jjacques68

    j'apprend le LUA mai

    y a le bon vieux manuel de fibaro : https://manuals.fibaro.com/content/other/FIBARO_System_Lua_API.pdf sinon parcourir le forum... et passer beaucoup, beaucoup de temps à essayer... ça vaut le coup...
  5. jjacques68

    j'apprend le LUA mai

    la fonction getValue ne renvoie une donnée de type "string" (chaîne de caractère) ? essaye avec ça : local a = tonumber(fibaro:getValue(33, "value")) -- valeur de la lampe salon local b = tonumber(fibaro:getValue(452, "value")) ---valeur de la lampe ch enfant local c = tonumber(fibaro:getValue(255, "value")) ---valeur de la lampe bureau tonumber() converti les "string" en numérique...
  6. jjacques68

    j'apprend le LUA mai

    "return", te permet de renvoyer une valeur. dans l'exemple, on renvoie true ou false. Qui peut être exploiter par la suite du programme. Ce n'est pas obligatoire dans cette exemple. ça peut être très utile pour des fonctions qui font des calculs. tu passes les paramètres en argument et tu récupère le résultat. exemple : function Somme(a, b) print("a = ", a) print("b = ", b) return (a + b) end print("Return = ", Somme(1, 2))
  7. jjacques68

    j'apprend le LUA mai

    le principe est : function MaFonction(MonArgument) print(MonArgument) end MaFonction("toto") -- résultat : "toto" sera affiché
  8. jjacques68

    j'apprend le LUA mai

    function functionA() local a = fibaro:getValue(33, "value") -- valeur de la lampe salon local b = fibaro:getValue(250, "value") ---valeur de la lampe ch enfant local c = fibaro:getValue(255, "value") ---valeur de la lampe bureau local MonRetour = false if (b < a) and (c < a) then MonRetour = true else MonRetour = false end   return MonRetour end if functionA() == true then --action 1 à faire else --action 2 à faire end un truc comme ça ? il est possible de mettre les actions directement dans la fonction. et du coup plus besoin de traiter le retour de la fonction...
  9. jjacques68

    j'apprend le LUA mai

    je comprends pas trop le but de la fonction !!
  10. suite : nième tentative : Je touche plus au active/inactif de la zone. Je passe la zone en mode manuel avec un timestamp super loin (je serais normalement plus de ce monde ) local MyPanel = api.get("/panels/climate/"..id) MyPanel.mode = "Manual" MyPanel.properties.handSetPointHeating = 5 MyPanel.properties.handTimestamp = 4200000000 api.put("/panels/climate/"..id, MyPanel) alors visiblement le timestamp est limité : 9999999999 n'est pas accepté pour le remettre en ordre (mode automatique) : local MyPanel = api.get("/panels/climate/"..id) MyPanel.mode = "Schedule" MyPanel.properties.handTimestamp = 0 api.put("/panels/climate/"..id, MyPanel) c'est encore plus pourri... Je dis plus que ça marche avant d'être sûr
  11. ben non, au bout d'un certain temps, la vanne revient à 21 °C !! impossible de lui donner une consigne manuellement sans limite de temps !!!???
  12. Ben je me réponds à moi même : Pour éteindre le chauffage, du moins, ne plus faire en sorte que le Climate Panel gère la zone : PS : je possède des têtes Danfoss LC13 il faut : (depuis un QA) 1- désactiver la le Climate Panel pour cette zone (l'ID étant celui de la zone et non du thermostat) local MyPanel = api.get("/panels/climate/"..id) MyPanel.active = false api.put("/panels/climate/"..id, MyPanel) 2- appliquer une consigne manuelle au(x) thermostat(s) de la zone : on peut récupérer la liste des thermostats de la zone via les propriété de la zone même et j'applique à chaque thermostat, une consigne de 5 °C , avec un timestamp de fin < à l'heure actuelle (comme ça la tête reste avec cette consigne) Si je fais pas ça, la tête prends une consigne par défaut de 21 °C... local ListeThermostat = api.get("/panels/climate/"..id).properties.devices for k,v in pairs(ListeThermostat) do MyThermostat = api.get("/devices/"..v) MyThermostat.properties.heatingThermostatSetpoint = 5 MyThermostat.properties.setpointExpiryDate = (os.time()-3600) api.put("/devices/"..v, MyThermostat) end pour réactiver le panel, il suffit de faire : le panel va reprendre le dessus et envoyer la bonne consigne au(x) thermostat(s) local MyPanel = api.get("/panels/climate/"..id) MyPanel.active = true api.put("/panels/climate/"..id, MyPanel) comme c'est tordu !!!!!!!!! mais ça marche. PAS !!!
  13. tu m'étonnes
  14. il y a u qqch sur le marketplace : https://marketplace.fibaro.com/items/hc3-netatmo-integration-of-main-weather-station-and-outdoor-sensor
  15. oui j'avais vu ça aussi ça me travaille aussi
  16. jjacques68

    Welcome HC3

    alors : dans le NTP server, j'ai chez moi : pool.ntp.org J'ai pas constaté de décalage dans le temps... après l'affichage des navigateurs... ça reste... pas toujours à jour C'est tout à fait possible, moyennant quelques lignes de code pas méchant Il faut créé un QA (dans l'exemple ci-dessous, de type générique) Ajouter un bouton, saisir ses propriétés (colonne de droite) et coder l'action du bouton. Il y a un onglet "notification" directement dans les paramètres du device, tu peux choisir sur quelles actions doivent être notifiées et le type de notification (mail, push). étrange tu peux poster une capture de la scène ON ? perso je mettrais l'heure (qui est trigger de la scène) en premier, mais je pense pas que ça change pas grand chose...
  17. jjacques68

    HELP !!! HC2 Dans les choux

    zut dommage, désolé pour le faut espoir...
  18. jjacques68

    HELP !!! HC2 Dans les choux

    Moi ça m'avais sauvé... en espérant que ce soit ton cas...
  19. Tu parles des modules physiquement présent ? les modules comme les double binary switch ou encore les FGMS comptent pour 1 module ? ou 2 (binary switch) ou 3 (FGMS) ?
  20. jjacques68

    HELP !!! HC2 Dans les choux

    et la pile du bios ?
  21. jjacques68

    Création bouton lecture

    code 200 = OK !
  22. jjacques68

    Création bouton lecture

    tu enlève juste le "@" tu gardes les ":" n'oublies pas de supprimer dans l'URL aussi : elle doit ressembler à ça : http:request("http://172.20.254.250:9002/status_header.html?p0=play&player=cc%3Acc%3Acf%3A10%3A61%3A81", {
  23. jjacques68

    Création bouton lecture

    tu vas sur le site : https://www.base64encode.org/ tu choisis "encode" et tu saisis ton user:mot de passe tu cliques sur le bouton "encode". tu récupères la chaine qu'il t'a créé et tu la colle dans : à la place des xxxxxxx ["Authorization"] = "Basic xxxxxxxx",
  24. jjacques68

    Création bouton lecture

    pense à utiliser le bouton "</>" de l'éditeur du forum quand tu postes du code... c'est plus lisible... je mettrais que ça dans les fonctions : le reste te cause les "ERROR" dans le debug... success = function(response) self:debug("response status:", response.status) end, error = function(error) self:debug('error: ' .. json.encode(error)) end et on peut déjà voir que le status est 401 ! donc problème d'authentification ! utilise la balise "Authorization" du Header !! et enlève les info d'authentification de l'URL. headers = { ["content-type"] = "application/json;charset=UTF-8", ["Authorization"] = "Basic ton_login:ton_mot_de_passe_en_base_64", ["Cache-Control"] = "no-cache, no-store", ["X-Fibaro-Version"] = "2" },
  25. jjacques68

    Création bouton lecture

    Je pense que le login:pass dans l'adresse est en trop, il faut le mettre dans le ["Authorization"] = "Basic ...", encodé en base64. EDIT : ou enlever la ligne avec le laisser dans l'URL... ["Authorization"] = "Basic pwd=", il serait bien de récupérer le retour de la commande avec un success = function(response)... et error = function(err)... et d'afficher ce retour ! afin de savoir ce qu'il ne marche pas...
×
×
  • Créer...