Aller au contenu

Steven

Membres confirmés
  • Compteur de contenus

    4 434
  • Inscription

  • Dernière visite

  • Jours gagnés

    201

Tout ce qui a été posté par Steven

  1. Steven

    Bonjour

    Merci àvous tous Sent from my GT-I9192 using Tapatalk
  2. Steven

    Programmation Lua Basique

    Heuuu ... en effet, la boucle se fait toute seule, mais comme c'est complètement bugé, elle ne va pas tourner longtemps Les "main loop" des modules ne fonctionne pas bien, il vaut mieux mettre le code dans un bouton d'un module et avoir un scénario qui toute les X secondes va executer le code du bouton. Aucun système n'est parfait ... sauf quand on connait toutes ces failles
  3. Steven

    Programmation Lua Basique

    Si tu veux complètement abandonner tes 2 autres scénarios, il faut que celui-ci tourne en boucle toutes les 5 minutes et pour ceci, il faut l'inclure dans une boucle sans fin. Attention a rajouter le %% autostart au début. Pour que la HC2 démarre ton scénario automatiquement au démarrage. --[[ %% autostart %% properties %% globals --]] while (true) do local sunriseHour = fibaro:getValue(1,'sunriseHour') local sunsetHour = fibaro:getValue(1,'sunsetHour') local currentHour = os.date("*t") local sunrise = tonumber(string.sub (sunriseHour, 1 , 2) ) * 60 + tonumber(string.sub(sunriseHour, 4) ) local sunset = tonumber(string.sub (sunsetHour, 1 , 2) ) * 60 + tonumber(string.sub(sunsetHour, 4) ) local now = currentHour.hour * 60 + currentHour.min; fibaro:debug("Sunrise : " .. sunrise) fibaro:debug("Sunset : "..sunset) fibaro:debug("Maintenant : " ..now) if ( (now >= sunrise) and (now <= sunset)) then fibaro:debug("Il fait jour"); fibaro:setGlobal("JOUR", "1"); fibaro:call(81, "setProperty", "ui.label10.value", "JOUR"); else fibaro:debug("Il fait nuit"); fibaro:setGlobal("JOUR", "0"); fibaro:call(81, "setProperty", "ui.label10.value", "NUIT"); end --temporisation de 5 minutes fibaro:sleep(300000); end
  4. Steven

    Programmation Lua Basique

    En tant que développeur ma réponse est NON. Tu ne peux pas comparer des valeurs (heures) sous forme de chaîne de caractères, le résultat n'est jamais viable. Il faut récupérer toutes ces valeurs et les convertir en une seule et même unité. Dans notre cas, nous allons tout convertir en minutes puis nous allons comparer le tout ensemble. fibaro:getValue(1,'sunriseHour') nous retourne "06:38" alors nous allons prendre les 2 premiers caractères pour les heures et les 2 derniers pour les minutes. Ensuite nous allons les convertir en chiffre (tonumber) puis les transformer en minutes (heures*60+minutes). Même procédé pour sunset. Pour l'heure actuel, c'est plus simple car LUA fourni le nécessaire. --[[ %% properties %% globals --]] local sunriseHour = fibaro:getValue(1,'sunriseHour') local sunsetHour = fibaro:getValue(1,'sunsetHour') local currentHour = os.date("*t") local sunrise = tonumber(string.sub (sunriseHour, 1 , 2) ) * 60 + tonumber(string.sub(sunriseHour, 4) ) local sunset = tonumber(string.sub (sunsetHour, 1 , 2) ) * 60 + tonumber(string.sub(sunsetHour, 4) ) local now = currentHour.hour * 60 + currentHour.min; fibaro:debug("Sunrise : " .. sunrise) fibaro:debug("Sunset : "..sunset) fibaro:debug("Maintenant : " ..now) if ( (now >= sunrise) and (now <= sunset)) then fibaro:debug("Il fait jour"); end
  5. Steven

    Programmation Lua Basique

    Elle veux dire "Tout les jours" donc c'est vrai qu'elle est complètement inutile. Sauf, si on rajoute un jours dans la semaine ... personnellement, je suis partant pour autant que cela soit un jour férié Le système traduit bêtement ce qu'il y a dans ta scène et comme dans la scène tous les jours sont cochés par défaut, cela donne ce code inutile .. que d'ailleurs j'ai recopié aussi vu que je ne suis pas plus intelligent que le traducteur. local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( (string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == fibaro:getValue(1, "sunriseHour")) ) ) then
  6. Steven

    Programmation Lua Basique

    En effet, c'est une variable système donc ton scénario ne peux pas la mettre à jour. En LUA le code pour savoir s'il fait jour ou nuit est tellement compliqué que l'idée d'avoir 2 scénarios est très bonne. De plus, il est aisé d'utiliser ta variable "Jour" dans d'autre scénario. Pour info, voici le code pour s'avoir s'il fait jour : local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == fibaro:getValue(1, "sunriseHour")) ) ) then
  7. Steven

    Programmation Lua Basique

    Sinon son code (vu qu'il est parti refaire du LUA ) devrait être (sans les fioritures) : --[[ %% properties %% globals --]] local jour_nuit = fibaro:getGlobal('JOUR') if ( tonumber(jour_nuit) == 1 ) then fibaro:call(81, "setProperty", "ui.label_0_0.value", "JOUR"); else fibaro:call(81, "setProperty", "ui.label_0_0.value", "NUIT"); end -- temporisation de 5 minutes fibaro:sleep(300000);
  8. Steven

    Programmation Lua Basique

    Pour l'ID d'un module virtuel ... bizarrement ce dernier n'est pas noté ... par contre, il est présent dans l'URL : https://home.fibaro.com/fibaro/fr/devices/virtual_edit.php?vid=68 quand tu le modifie
  9. Steven

    Programmation Lua Basique

    Parfait ... maintenant reprend ton code original car le elseif est moins performant que le else ... c'est normal car le système doit faire 2 comparaisons au lieu d'une seule.
  10. Steven

    Programmation Lua Basique

    Reprend ton code original qui était bien mieux que les versions dégradées et ajoute tonumber() if (tonumber(jour_nuit) == 1) then ... else ... end
  11. Voici venu un nouveau membre de 43 ans vivant en Haute-Savoie. Je possède une Zibase Pro et une HC2. Ma Zibase me sert de passerelle vers ma HC2. Dans la vie courant, je suis Ingénieur de développement en Java. J'écris un peu de LUA a temps perdu pour personnaliser ma domotique. Cordialement
×
×
  • Créer...