Aller au contenu

Messages recommandés

Posté(e)

J'ai un problème avec les fonctions sur HC3

 

dans les QA mais aussi dans les scènes

 

ca passait sur HC2 mais impossible sur HC3

 

local VGJourNuit = "Jour_Nuit"

----------------------------------------------------------------------
--           Vérification de l'heure et mise à jour                 --
--                de la variable si nécessaire                      --
----------------------------------------------------------------------
function UpdateJourNuit(NomVG, heure)
        heure = os.date("%H:%M", os.time())
        fibaro.debug("function UpdateJourNuit")
        local valeurs = "Nuit"
        -- test si on est le jour ou la nuit
        if (heure >= leverSoleil) and (heure < coucherSoleil) then
           valeurs = "Jour"
	    end
        fibaro.debug(string.format("Lever Soleil : %s - Coucher Soleil : %s", leverSoleil, coucherSoleil))
        --UpdateVG(NomVG, valeurs) -- mise a jour de la VG Jour_Nuit
end
print("demmarrage")
UpdateJourNuit(VGJourNuit, os.date("%H:%M", os.time()))

message erreur

[11.05.2020] [19:09:01] [DEBUG] [SCENE21]: demmarrage[11.05.2020] 
[19:09:01] [ERROR] [SCENE21]: (load):12: attempt to compare nil with string

c'est le 2 paramètre qui ne passe pas

 

la je vois pas pourquoi car en plus cela fonction sur HC2

Posté(e)

@mprinfo comment et où sont valorisés leverSoleil et coucherSoleil ? 

un autre truc lors de ton portage, le debug maintenant doit à minima être comme ça => fibaro.debug("", "hello world") 

entre guillemet tu peux y mettre ce que tu veux pour rendre la lecture plus facile dans ta console de debug => fibaro.debug("Nom de scène / # de scène" , ton message de debug) ou fibaro.trace ("blablabla" , "hello world")

Posté(e)

@tonyC ou j'ai vu mais je n'arrive pas toujours a m'en souvenir donc souvent un debug ou un print

 

oui il manque du code mais je sais que c'est le paramétre 2 qui passe pas

 

voici la scène je l'avais faite avec steven sur HC2 mais la ca plante tout obliger de redémarrer

ou j'ai marqué -----------------------------modif cela ne me fait plus d'erreur lors je code de cette facon

donc c'est bien un soucis avec le paramètre 2


print("lever : ", fibaro.getValue(1, "sunriseHour"))
print("Coucher : ", fibaro.getValue(1, "sunsetHour"))
if (trigger.property == "sunset") then
    print("id:"..trigger.operator)
    print("type:"..trigger.type)
    print("type:"..trigger.value)
end
-- Nom des Variables Globales
local VGJourNuit = "Jour_Nuit"
local VGLeverSoleil = "SoleilLever"
local VGCoucherSoleil = "SoleilCoucher"
-- Minutes de décalages par rapport au lever du soleil
local TLever = {-60, -45, -30, -20, -10, 10, 20, 30}
-- Minutes de décalages par rapport au Coucher du soleil
local TCoucher = {-30, -20, -10, 10, 20, 30, 45, 60}
-- Id du téléphone
--local IdTel = fibaro:getGlobal("TelPascal")

--************ Ne rien modifier en dessous de cette ligne ************
 
----------------------------------------------------------------------
-- Envoi d'un Push pour avertir que le box à démarrer ou redémarrer --
----------------------------------------------------------------------
function EnvoiPush(Message)
         fibaro.debug(Message)
         --fibaro:call(IdTel, "sendPush", Message)
end

-- -----------------------------------------------------------------
--       Vérification Variable Globale et création si besoin      --  
-- -----------------------------------------------------------------
function VerifVG(nom, valeur, enumValeur, lecture)
    if (fibaro.getGlobalVariable(nom) == "") then -- Test si la variable existe
       fibaro.getGlobalVariable("")
       local data = {
                name = nom,
                value = valeur,
                readOnly = false,
                isEnum = false
             }
       --------------------------------------------------------------
       -- si lecture = oui alors la variable sera en lecture seule
       --------------------------------------------------------------
       if lecture == "read" then
          data.readOnly = true
       end
       --------------------------------------------------------------
       -- si la variable est une variable enumeree
       --------------------------------------------------------------
	   if (type(enumValeur) ~= "nil") then
           data.value = enumValeur[1]
		   data.isEnum = true
           data.enumValues = enumValeur
	   end    
       --------------------------------------------------------------
       -- creation de la variable a partir de la table "data"
       -------------------------------------------------------------
       --print(json.encode(data))
       api.post("/globalVariables/", data)
       fibaro.debug("Scene13", "ok")
       --print("la variable : ", nom, "a ete cree")
    else
       --print("la variable : ", nom, "existe deja")
    end
end
 
----------------------------------------------------------------------
--                   Mise a jour d'une variable global              --
----------------------------------------------------------------------
function UpdateVG(NomVG, Valeurs)
        if (fibaro.getGlobalVariable(NomVG) == nil) then
           fibaro.debug("il faut cree la variable "..NomVG)
           EnvoiPush(string.format("La variable Globale %s n'existe pas ou a ete supprimer", NomVG))
           --fibaro:abort() -- fin du programme
        end
           --fibaro.debug("Mise a jour de la Variable Globale : "..NomVG.." = "..Valeurs)
           fibaro.setGlobalVariable(NomVG, Valeurs)
end
 
----------------------------------------------------------------------
--           Vérification de l'heure et mise à jour                 --
--                de la variable si nécessaire                      --
----------------------------------------------------------------------
function UpdateJourNuit(NomVG, heure)
        heure = os.date("%H:%M", os.time())-------------------------------------------------------------------------modif
        fibaro.debug("function UpdateJourNuit")
        local valeurs = "Nuit"
        -- test si on est le jour ou la nuit
        if (heure >= leverSoleil) and (heure < coucherSoleil) then
           valeurs = "Jour"
	    end
        fibaro.debug(string.format("Lever Soleil : %s - Coucher Soleil : %s", leverSoleil, coucherSoleil))
        UpdateVG(NomVG, valeurs) -- mise a jour de la VG Jour_Nuit
end
 
----------------------------------------------------------------------
--          Compare les tables Lever et coucher du soleil           --
--                   avec sunrisehour et sunsethour                 --
----------------------------------------------------------------------
function LeverCoucher(NomVG, TableNom, SunRiseSet, JourNuit)
        for index, v in ipairs(TableNom) do
           if (os.date("%H:%M", os.time()+v*-60)) == SunRiseSet then
              UpdateVG(NomVG, v)
              if v == 0 then
                 fibaro.debug("il fait : "..JourNuit)
                 UpdateVG(VGJourNuit, JourNuit)
              end
           end
        end
end

----------------------------------------------------------------------
--           Conversion Date format texte en format Date            --
----------------------------------------------------------------------
function ConvertionDate(NomDate)
         
          -- on extrait l'heure et minute (%d+) est un digit
         local heure, minute = string.match(NomDate, "(%d+):(%d+)") 
         -- On récupère l'heure et date actuelle sous forme de tableau
         local TableDate = os.date("*t")
         -- On modifie l'heure et les minutes
         TableDate.hour = heure
         TableDate.min = minute
         -- Nous pouvons maintenant exploiter "MonHeure" comme une vrai date
         local MonHeure = os.time(TableDate)
         return (MonHeure)
end

---------------------------------------------------------------------------- 
--           Calcul la valeur du Sleep en fonction des Max et Mini        --
--                       des Tables Lever et Coucher                      --
----------------------------------------------------------------------------
function calculPause(j, heure, minilever, maxilever, minicoucher, maxicoucher)
         --fibaro.debug("Heure Actuelle : "..heure)
         -- mini et max lever
         local heurelever = ConvertionDate(leverSoleil)
         local heureleverMini = (os.date("%X", heurelever+(minilever*60)))
         local heureleverMaxi = (os.date("%X", heurelever+(maxilever*60)))
         --fibaro.debug("heure Lever Soleil Mini : "..heureleverMini.." - Maxi : "..heureleverMaxi)
         -- mini et max coucher
         local heurecoucher = ConvertionDate(coucherSoleil)
         local heurecoucherMini = (os.date("%X", heurecoucher+(minicoucher*60)))
         local heurecoucherMaxi = (os.date("%X", heurecoucher+(maxicoucher*60)))
         --fibaro.debug("heure Coucher Soleil Mini : "..heurecoucherMini.." - Maxi : "..heurecoucherMaxi)
         if heure >= heureleverMini and heure < heureleverMaxi 
            or heure >= heurecoucherMini and heure < heurecoucherMaxi then
            j=1
         end
         return (j)
end
 
-- ===================================================================
-- ==        Nous avons fini la préparation de notre code           ==
-- ==            Nous pouvont  Exécuter le programme                ==
-- ==         Script réaliser par MPRINFO  Version 3.00B            ==
-- ==             Grand Merci à STEVEN pour son aide                ==
-- ===================================================================

----------------------------------------------------------------------
--   Envoi d'un Push pour donner la date et l'heure de démarrage    --
----------------------------------------------------------------------
EnvoiPush(string.format("La box a démarré le %s a %s", os.date("%d/%m/%Y"), os.date("%R")))

----------------------------------------------------------------------
--          Versification si les variables globales existe           --
--              et Création ou Modification si Besoin               --
----------------------------------------------------------------------
VerifVG(VGJourNuit, "Jour", {"Jour", "Nuit"})
VerifVG(VGLeverSoleil, "0")
VerifVG(VGCoucherSoleil, "0")
----------------------------------------------------------------------
-- Mise a jour de la variable VG Jour_Nuit au Démarrage de la Box   --
--        Ou lors de la sauvegarde de la scène                      --
----------------------------------------------------------------------
leverSoleil = fibaro.getValue(1, "sunriseHour")
coucherSoleil = fibaro.getValue(1, "sunsetHour")
print(VGJourNuit, os.date("%H:%M", os.time()))
UpdateJourNuit(VGJourNuit)----------------------------------------------------------------modif
--UpdateJourNuit(VGJourNuit, os.date("%H:%M", os.time()))

---------------------------------------------------------------------
--    Trie des Tables et récupération des valeurs min et maximum   --
---------------------------------------------------------------------
-- Traitement de la Table TLever
table.insert(TLever, 1, 0) -- ajout de 0 mn dans la table
table.sort(TLever)
local MiniLever = ((TLever[1]-30))
local MaxiLever = ((TLever[#TLever]+1))
-- Traitement de la Table TChoucher
table.insert(TCoucher, 1, 0) -- ajout de 0 mn dans la table
table.sort(TCoucher)
local MiniCoucher = ((TCoucher[1]-30))
local MaxiCoucher = ((TCoucher[#TCoucher]+1))

---------------------------------------------------------------------
--    Test toute les minutes pour savoir si c'est jour ou nuit     --
---------------------------------------------------------------------
  fibaro.debug("boucle principale")
while true do
  fibaro.debug("boucle principale 1")
    local j = 30
    local osHeure = os.date("%H:%M", os.time())
    leverSoleil = fibaro.getValue(1, "sunriseHour")
    coucherSoleil = fibaro.getValue(1, "sunsetHour")
 
    LeverCoucher(VGLeverSoleil, TLever, leverSoleil, "Jour")
    LeverCoucher(VGCoucherSoleil, TCoucher, coucherSoleil, "Nuit")
 
    
    j = calculPause(j, osHeure, MiniLever, MaxiLever, MiniCoucher, MaxiCoucher)
    fibaro.debug(string.format("Valeur du Sleep %s mn",j))
        
    fibaro.sleep(j*60*1000); -- Pause en fonction de la valeur de J
  
end

 

Posté(e) (modifié)

tu dois valoriser leverSoleil et coucherSoleil, dans le code c'est fait via un get de tes variables globales, mais tu utilises un fibaro.getvalue("varName")mais cette commande n'existe plus il faut la remplacer par fibaro.getGlobalVariable("varName").

Je n'est pas trop regarder le code, mes il y a aussi de nouvelles commandes pour les send push notification. Je pense que la methode pour créer de nouvelles variables à changée, je n'ai pas encore eu à les utiliser, peut être virer cette partie et t'assurer que toutes tes varibles existent bien, au moins dans u premier temps pour dérouler le principal de ton code.

 

il y a 36 minutes, mprinfo a dit :

print("lever : ", fibaro.getValue(1, "sunriseHour")) print("Coucher : ", fibaro.getValue(1, "sunsetHour"))

devient 

print("lever : ", fibaro.getGlobalVariable(1, "sunriseHour")) print("Coucher : ", fibaro.getGlobalVariable(1, "sunsetHour"))

 

et 

 

il y a 36 minutes, mprinfo a dit :

leverSoleil = fibaro.getValue(1, "sunriseHour") coucherSoleil = fibaro.getValue(1, "sunsetHour")

devient 

leverSoleil = fibaro.getGlobalVariable(1, "sunriseHour") coucherSoleil = fibaro.getGlobalVariable(1, "sunsetHour")

 

si tes variables existent et valorisées alors ta fonction devrait être ok. Penses à vérifier le format de tes heures dans tes variables(sunriseHour et  sunsetHour) qui doivent être au format %H:%M (13:24)

EDIT :

Oublie ce que je viens de dire sur le format de l'heure car il y a une fonction qui reformate ... 

Modifié par TonyC
Posté(e)

Non pour la création des vg ces ok
C'est le premier truc que j'ai fais
J'ai posté le code dans le topic snipet

Envoyé de mon BLA-L29 en utilisant Tapatalk

Posté(e)

ok nickel alors et merci pour le poste ! donc la correction de la syntaxe du fibaro.getGlobalVariable devrait suffire dans les grandes lignes.

Posté(e) (modifié)

Oui c'est vrai j'avais même mis un like ! j'ai une tite tête :) et donc après modif ça marche ?

 

Modifié par TonyC
  • Like 1
Posté(e)
il y a 25 minutes, TonyC a dit :

tu dois valoriser leverSoleil et coucherSoleil, dans le code c'est fait via un get de tes variables globales, mais tu utilises un fibaro.getvalue("varName")mais cette commande n'existe plus il faut la remplacer par fibaro.getGlobalVariable("varName").

Je n'est pas trop regarder le code, mes il y a aussi de nouvelles commandes pour les send push notification. Je pense que la methode pour créer de nouvelles variables à changée, je n'ai pas encore eu à les utiliser, peut être virer cette partie et t'assurer que toutes tes varibles existent bien, au moins dans u premier temps pour dérouler le principal de ton code.

 

devient 

print("lever : ", fibaro.getGlobalVariable(1, "sunriseHour")) print("Coucher : ", fibaro.getGlobalVariable(1, "sunsetHour"))

 

et 

 

devient 

leverSoleil = fibaro.getGlobalVariable(1, "sunriseHour") coucherSoleil = fibaro.getGlobalVariable(1, "sunsetHour")

 

si tes variables existent et valorisées alors ta fonction devrait être ok. Penses à vérifier le format de tes heures dans tes variables(sunriseHour et  sunsetHour) qui doivent être au format %H:%M (13:24)

EDIT :

Oublie ce que je viens de dire sur le format de l'heure car il y a une fonction qui reformate ... 

je comprend plus

fibaro.debug("Scene21", "demarrage")
local LeverJour = fibaro.getValue(1, "sunriseHour") 
fibaro.debug("Scene21", LeverJour)

resultat

[11.05.2020] [21:05:25] [DEBUG] [SCENE21]: demarrage
[11.05.2020] [21:05:25] [DEBUG] [SCENE21]: 05:58

par contre

local leverSoleil = fibaro.getGlobalVariable(1, "sunriseHour")
fibaro.debug("Scene21", leverSoleil)

resultat

[11.05.2020] [21:07:53] [DEBUG] [SCENE21]: demarrage
[11.05.2020] [21:07:53] [ERROR] [SCENE21]: (load):3: Assertion failed: Expected string
sunriseHour et sunriseHour sont des variables système lié a l'id 1 (compte admin)
 
Posté(e) (modifié)

C'est quoi que tu ne comprends plus Pascal? mais je vois que tu as laisser un fibaro.getValue que tu dois remplacer par fibaro.getGlobalVariable.

Modifié par TonyC
Posté(e)

regarde j'ai mis a jour le post ta commande ne fonctionne pour

sunriseHour

il faut utiliser cela

LeverJour = fibaro.getValue(1, "sunriseHour") 
sinon erreur
Posté(e)

mince c'est vrai ça ! attends mais c'est pas une variable qui est réccupérer c'est directement l'heure du sunset/sunrise je suis une quiche ! ok j'ai une idée je vérifie. Désolé de t'avoir embrouillé !!!!

Posté(e) (modifié)

je parle de la fonction qui est dans le premier post...

 

j'ai eu des cas ou je plaçais mal la déclaration des variables...

 

essaye de placer :

local leversoleil, couchersoleil = "", ""

avant le code de la fonction.

Modifié par jjacques68
Posté(e)

Ça c'est la différence entre local ou non

Le soucis c'est que même si je mets rien ou juste un debug dans la fonction j'ai qu'en même l'erreur

Dans un QA j'ai eu un soucis

arg1 disparaît et arg2 passé dans arg1 au niveau de la fonction

Envoyé de mon BLA-L29 en utilisant Tapatalk

Posté(e)

C'est ce que j'ai fais

D'ailleurs tu connais pas la commande qui remplace fibaro:abord()
Car je m'en servais pas mal

Envoyé de mon BLA-L29 en utilisant Tapatalk

Posté(e) (modifié)

j'utilise return, je n'ai plus d'erreur dans ton code mais j'ai pas l'impression que ça fasse ce que ça doit faire car les variables restent à 0 !! je continue ...

Modifié par TonyC
Posté(e)

Et oui je me demande si la gestion des variables n'a pas changer
Car si je mets arg2 dans la fonction cela fonctionne

Envoyé de mon BLA-L29 en utilisant Tapatalk

Posté(e)

tu peux me dire si c'est un peu mieux :

trigger= sourceTrigger
print("lever : ", fibaro.getValue(1, "sunriseHour"))
print("Coucher : ", fibaro.getValue(1, "sunsetHour"))
if (trigger.property == "sunset") then
    print("id:"..trigger.operator)
    print("type:"..trigger.type)
    print("type:"..trigger.value)
end
-- Nom des Variables Globales
local VGJourNuit = "Jour_Nuit"
local VGLeverSoleil = "SoleilLever"
local VGCoucherSoleil = "SoleilCoucher"
-- Minutes de décalages par rapport au lever du soleil
local TLever = {-60, -45, -30, -20, -10, 10, 20, 30}
-- Minutes de décalages par rapport au Coucher du soleil
local TCoucher = {-30, -20, -10, 10, 20, 30, 45, 60}
-- Id du téléphone
--local IdTel = fibaro:getGlobal("TelPascal")

--************ Ne rien modifier en dessous de cette ligne ************
 
----------------------------------------------------------------------
-- Envoi d'un Push pour avertir que le box à démarrer ou redémarrer --
----------------------------------------------------------------------
function EnvoiPush(Message)
         fibaro.debug(Message)
         --fibaro:call(IdTel, "sendPush", Message)
end

-- -----------------------------------------------------------------
--       Vérification Variable Globale et création si besoin      --  
-- -----------------------------------------------------------------
function VerifVG(nom, valeur, enumValeur, lecture)
    if (fibaro.getGlobalVariable(nom) == "") then -- Test si la variable existe
       fibaro.getGlobalVariable("")
       local data = {
                name = nom,
                value = valeur,
                readOnly = false,
                isEnum = false
             }
       --------------------------------------------------------------
       -- si lecture = oui alors la variable sera en lecture seule
       --------------------------------------------------------------
       if lecture == "read" then
          data.readOnly = true
       end
       --------------------------------------------------------------
       -- si la variable est une variable enumeree
       --------------------------------------------------------------
	   if (type(enumValeur) ~= "nil") then
           data.value = enumValeur[1]
		   data.isEnum = true
           data.enumValues = enumValeur
	   end    
       --------------------------------------------------------------
       -- creation de la variable a partir de la table "data"
       -------------------------------------------------------------
       --print(json.encode(data))
       api.post("/globalVariables/", data)
       fibaro.debug("Scene13", "ok")
       --print("la variable : ", nom, "a ete cree")
    else
       --print("la variable : ", nom, "existe deja")
    end
end
 
----------------------------------------------------------------------
--                   Mise a jour d'une variable global              --
----------------------------------------------------------------------
function UpdateVG(NomVG, Valeurs)
        if (fibaro.getGlobalVariable(NomVG) == nil) then
           fibaro.debug("il faut cree la variable "..NomVG)
           EnvoiPush(string.format("La variable Globale %s n'existe pas ou a ete supprimer", NomVG))
           --fibaro:abort() -- fin du programme
        end
           --fibaro.debug("Mise a jour de la Variable Globale : "..NomVG.." = "..Valeurs)
           fibaro.setGlobalVariable(NomVG, tostring(Valeurs))
end
 
----------------------------------------------------------------------
--           Vérification de l'heure et mise à jour                 --
--                de la variable si nécessaire                      --
----------------------------------------------------------------------
function UpdateJourNuit(NomVG, heure)
        heure = os.date("%H:%M", os.time())-------------------------------------------------------------------------modif
        fibaro.debug("function UpdateJourNuit")
        local valeurs = "Nuit"
        -- test si on est le jour ou la nuit
        if (heure >= leverSoleil) and (heure < coucherSoleil) then
           valeurs = "Jour"
	    end
        fibaro.debug(string.format("Lever Soleil : %s - Coucher Soleil : %s", leverSoleil, coucherSoleil))
        UpdateVG(NomVG, valeurs) -- mise a jour de la VG Jour_Nuit
end
 
----------------------------------------------------------------------
--          Compare les tables Lever et coucher du soleil           --
--                   avec sunrisehour et sunsethour                 --
----------------------------------------------------------------------
function LeverCoucher(NomVG, TableNom, SunRiseSet, JourNuit)
        for index, v in ipairs(TableNom) do
           if (os.date("%H:%M", os.time()+v*-60)) == SunRiseSet then
              UpdateVG(NomVG, v)
              if v == 0 then
                 fibaro.debug("il fait : "..JourNuit)
                 UpdateVG(VGJourNuit, JourNuit)
              end
           end
        end
end

----------------------------------------------------------------------
--           Conversion Date format texte en format Date            --
----------------------------------------------------------------------
function ConvertionDate(NomDate)
         
          -- on extrait l'heure et minute (%d+) est un digit
         local heure, minute = string.match(NomDate, "(%d+):(%d+)") 
         -- On récupère l'heure et date actuelle sous forme de tableau
         local TableDate = os.date("*t")
         -- On modifie l'heure et les minutes
         TableDate.hour = heure
         TableDate.min = minute
         -- Nous pouvons maintenant exploiter "MonHeure" comme une vrai date
         local MonHeure = os.time(TableDate)
         return (MonHeure)
end

---------------------------------------------------------------------------- 
--           Calcul la valeur du Sleep en fonction des Max et Mini        --
--                       des Tables Lever et Coucher                      --
----------------------------------------------------------------------------
function calculPause(j, heure, minilever, maxilever, minicoucher, maxicoucher)
         --fibaro.debug("Heure Actuelle : "..heure)
         -- mini et max lever
         local heurelever = ConvertionDate(leverSoleil)
         local heureleverMini = (os.date("%X", heurelever+(minilever*60)))
         local heureleverMaxi = (os.date("%X", heurelever+(maxilever*60)))
         --fibaro.debug("heure Lever Soleil Mini : "..heureleverMini.." - Maxi : "..heureleverMaxi)
         -- mini et max coucher
         local heurecoucher = ConvertionDate(coucherSoleil)
         local heurecoucherMini = (os.date("%X", heurecoucher+(minicoucher*60)))
         local heurecoucherMaxi = (os.date("%X", heurecoucher+(maxicoucher*60)))
         --fibaro.debug("heure Coucher Soleil Mini : "..heurecoucherMini.." - Maxi : "..heurecoucherMaxi)
         if heure >= heureleverMini and heure < heureleverMaxi 
            or heure >= heurecoucherMini and heure < heurecoucherMaxi then
            j=1
         end
         return (j)
end
 
-- ===================================================================
-- ==        Nous avons fini la préparation de notre code           ==
-- ==            Nous pouvont  Exécuter le programme                ==
-- ==         Script réaliser par MPRINFO  Version 3.00B            ==
-- ==             Grand Merci à STEVEN pour son aide                ==
-- ===================================================================

----------------------------------------------------------------------
--   Envoi d'un Push pour donner la date et l'heure de démarrage    --
----------------------------------------------------------------------
EnvoiPush(string.format("La box a démarré le %s a %s", os.date("%d/%m/%Y"), os.date("%R")))

----------------------------------------------------------------------
--          Versification si les variables globales existe           --
--              et Création ou Modification si Besoin               --
----------------------------------------------------------------------
VerifVG(VGJourNuit, "Jour", {"Jour", "Nuit"})
VerifVG(VGLeverSoleil, "0")
VerifVG(VGCoucherSoleil, "0")
----------------------------------------------------------------------
-- Mise a jour de la variable VG Jour_Nuit au Démarrage de la Box   --
--        Ou lors de la sauvegarde de la scène                      --
----------------------------------------------------------------------
leverSoleil = fibaro.getValue(1, "sunriseHour")
coucherSoleil = fibaro.getValue(1, "sunsetHour")
print(VGJourNuit, os.date("%H:%M", os.time()))
UpdateJourNuit(VGJourNuit)----------------------------------------------------------------modif
--UpdateJourNuit(VGJourNuit, os.date("%H:%M", os.time()))

---------------------------------------------------------------------
--    Trie des Tables et récupération des valeurs min et maximum   --
---------------------------------------------------------------------
-- Traitement de la Table TLever
table.insert(TLever, 1, 0) -- ajout de 0 mn dans la table
table.sort(TLever)
local MiniLever = ((TLever[1]-30))
local MaxiLever = ((TLever[#TLever]+1))
-- Traitement de la Table TChoucher
table.insert(TCoucher, 1, 0) -- ajout de 0 mn dans la table
table.sort(TCoucher)
local MiniCoucher = ((TCoucher[1]-30))
local MaxiCoucher = ((TCoucher[#TCoucher]+1))

---------------------------------------------------------------------
--    Test toute les minutes pour savoir si c'est jour ou nuit     --
---------------------------------------------------------------------
  fibaro.debug("boucle principale")
while true do
  fibaro.debug("boucle principale 1")
    local j = 30
    local osHeure = os.date("%H:%M", os.time())
    leverSoleil = fibaro.getValue(1, "sunriseHour")
    coucherSoleil = fibaro.getValue(1, "sunsetHour")
 
    LeverCoucher(VGLeverSoleil, TLever, leverSoleil, "Jour")
    LeverCoucher(VGCoucherSoleil, TCoucher, coucherSoleil, "Nuit")
 
    
    j = calculPause(j, osHeure, MiniLever, MaxiLever, MiniCoucher, MaxiCoucher)
    fibaro.debug(string.format("Valeur du Sleep %s mn",j))
        
    fibaro.sleep(j*60*1000); -- Pause en fonction de la valeur de J
  
end

 

il y a 1 minute, jjacques68 a dit :

j'arrive pas à vous suivre les gars, j'abandonne...

juste 2 vieux qui codent comme des pieds enfin moi c'est certain !! :)

  • Like 1
×
×
  • Créer...