Aller au contenu

jjacques68

Membres confirmés
  • Compteur de contenus

    4 349
  • Inscription

  • Dernière visite

  • Jours gagnés

    39

Tout ce qui a été posté par jjacques68

  1. jjacques68

    instance de scènes

    dans laquelle tu vas lire la valeur des device ? pas bête, mais si y a beaucoup de device ! ça va prendre trop de temps et de ressources...
  2. jjacques68

    instance de scènes

    et bien par exemple, j'ai une scène qui est déclenchée lors du passage à TRUE de tous mes FGMS;(j'ai tous les FGMS dans les conditions) Si par exemple 2 FGMS passent à TRUE "simultanément", selon l'option de la scène : - soit la première instance n'aura pas le temps de se terminer, et la deuxième instance se déroulera correctement. - soit la première instance se termine, mais la deuxième ne sera pas exécutée
  3. hello ! on en a déjà parlé, il me semble. sur le HC3 il n'y a plus la notion d'instance de scène. On peut grâce aux options de la scène, définir si la prochaine exécution annule et remplace la précédente, ou pas. EDIT : dans ce dernier cas, la prochaine exécution sera tout simplement ignorée. je rencontre certain cas bien précis où j'aurai bien aimé avoir la possibilité d'avoir plusieurs instances simultanément... n'y a - t - il pas un moyen de pouvoir le faire ? ou peut être d'une autre façon ? Une autre approche ? bien à vous !
  4. jjacques68

    j'apprend le LUA mai

    ben c'est le cas dans mon exemple, si i >= 20, il stop.
  5. jjacques68

    j'apprend le LUA mai

    le "do" fait partie de la fonction while. c'est : while condition is true do. c'est comme ça. ben dans la boucle while, tu places : while i <= 50 do -- tant que i reste inférieur ou égal à 50 i = i + 1 -- on incrémente i print(i) if i >= 20 then print("attention vous avez dépassées la barre de 20%") break end end j'ai mis volontairement 50 pour la condition du while, sinon ça sert à rien. le "break" permet de sortir de la boucle, donc de ne pas continuer d'incrémenter
  6. jjacques68

    j'apprend le LUA mai

    je pense que le module démarre la scène à chaque changement de sa valeur. 1,2,3...,48,49,50... donc donc dans ce cas, pas besoin de boucle while true do. ça se prend les pieds dans le tapis... Surtout que sur la HC2, tu peux avoir plusieurs instance de scène qui se lancent simultanément... Ton second bout de code est ce qu'il faut faire.
  7. jjacques68

    j'apprend le LUA mai

    jamais utilisé, je pense pas...
  8. jjacques68

    j'apprend le LUA mai

    oups sorry @mprinfo, j'avais pas vu ta réponse
  9. jjacques68

    j'apprend le LUA mai

    print(t[1]) Le chiffre 1 est en nombre ! il ne doit pas être entre guillemet !
  10. jjacques68

    j'apprend le LUA mai

    moi c'était un MO5 de thomson, branché sur la télé avec un stylet où on pouvait cliquer sur l'écran. dommage je l'ai plus ...
  11. jjacques68

    j'apprend le LUA mai

    ah moi ma première c'était la TI 86, que j'ai également toujours
  12. jjacques68

    j'apprend le LUA mai

    Alors la ! le nom ne me parle pas du tout ! Envoyé de mon iPhone en utilisant Tapatalk Pro
  13. 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
  14. jjacques68

    j'apprend le LUA mai

    essaye : local total = (a + b) / c
  15. bon ben ça à l'air de fonctionner comme ça... mais suis pas content de la méthode utilisée...
  16. 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...
  17. 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...
  18. 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))
  19. jjacques68

    j'apprend le LUA mai

    le principe est : function MaFonction(MonArgument) print(MonArgument) end MaFonction("toto") -- résultat : "toto" sera affiché
  20. 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...
  21. jjacques68

    j'apprend le LUA mai

    je comprends pas trop le but de la fonction !!
  22. 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
  23. ben non, au bout d'un certain temps, la vanne revient à 21 °C !! impossible de lui donner une consigne manuellement sans limite de temps !!!???
  24. 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 !!!
  25. tu m'étonnes
×
×
  • Créer...