Aller au contenu

time et variable local


971jmd

Messages recommandés

Salut a tous, j'ai besoin de votre aide

 

je un problème avec une variable local

 

dans le simple code suivant qui allume une lampe a une heure précise, je cherche placé l’heure dans une variable local 

 

 

local heure  = "15:02"  ---ligne N° 6

 

 ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == "heure")   ----ligne N°10

 

mai ça ne fonctionne pas 

merci pour votre aide

 

local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();

local heure  = "15:02"   -----ligne N°6
fibaro:debug("Heur >>>>"..heure)
  
if (
 ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == "..heure..")  ----ligne N°10
)
then
	fibaro:call(14, "turnOn");
end

setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
sourceTrigger["type"] == "other"
)
then
	fibaro:call(14, "turnOn");
end

end

 

Modifié par 971jmd
Lien vers le commentaire
Partager sur d’autres sites

le but est au finale est de remplacée la variable local par une label

 

dans une vd règle l'heur qui s'affiche dans un label5

 

et mon ma scène récupéré l'heur :

local heure = (fibaro:getValue(389, "ui.Label5.value")) 

.

.

 ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == "..heure..")  ----ligne N°8

 

le probleme est que la variable local HEURE récupère bien la valeur mai je n'arrive a l’attribuée a ma ligne 8

local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();

local heure = (fibaro:getValue(389, "ui.Label5.value")) -----ligne N°6
if (
 ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == "..heure..")  ----ligne N°8
)
then
	fibaro:call(14, "turnOn");
end

setTimeout(tempFunc, 60*1000)
.
.
.
etc

 

 

Modifié par 971jmd
Lien vers le commentaire
Partager sur d’autres sites

En faisant le mix de ce que les autres ont dis, cela donne ça :

 

local sourceTrigger = fibaro:getSourceTrigger()

function tempFunc()
	local currentDate = os.date("%H:%M")
	local startSource = fibaro:getSourceTrigger()
	local heure = fibaro:getValue(389, "ui.Label5.value")
	
  	if currentDate == heure	then fibaro:call(14, "turnOn") end

	setTimeout(tempFunc, 60*1000)
end
.
.
etc

En vérifiant que le format de l'heure dans le Label5 de ton VD 389 est bien sous la forme "00:00"

Modifié par jjacques68
Lien vers le commentaire
Partager sur d’autres sites

Il y a 8 heures, 971jmd a dit :

if ( ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == "..heure..") ----ligne N°8 )

Bonjour,

ceci est une chaine de caractère dont la valeur est ..heure.. et non la variable heure !

Il faut écrire ""..heure.."" si vous voulez transformer la variable heure en chaine de caractère pour comparer ... (deux fois les double-quotes avant et après).

Voilà ... :)

 

Modifié par Kana-chan
  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

salut a tous et merci pour votre aide

 

bon ça ne fonctionne toujours pas 

 

pour faire simple j'ai tester ça 

 

local heure  = "08:17"
 
  
if (
 ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == ""..heure.."")
)
then
.
.
.
.

mai rien 

 

Lien vers le commentaire
Partager sur d’autres sites

--[[
%% properties
%% events
423 ui.lblTime.value
%% globals
--]]



local sourceTrigger = fibaro:getSourceTrigger()

function tempFunc()
	local currentDate = os.date("%H:%M")
	local startSource = fibaro:getSourceTrigger()
	local heure = fibaro:getValue(423, "ui.lblTime.value")
	
  	if currentDate == heure	then fibaro:call(14, "turnOn") end

	setTimeout(tempFunc, 60*1000)
end
Modifié par 971jmd
Lien vers le commentaire
Partager sur d’autres sites

tu as pas mis ce que @Steven a dit :

 

--[[
%% properties
%% events
423 ui.lblTime.value
%% globals
--]]



local sourceTrigger = fibaro:getSourceTrigger()

function tempFunc()
	local currentDate = os.date("%H:%M")
	local startSource = fibaro:getSourceTrigger()
	local heure = fibaro:getValue(423, "ui.lblTime.value")
	
  	if currentDate == heure	then fibaro:call(14, "turnOn") end

	setTimeout(tempFunc, 60*1000)
end

tempFunc()

il faut appeler ta fonction avec tempFunc() après la fonction.

Lien vers le commentaire
Partager sur d’autres sites

--[[
%% properties
%% events
423 ui.lblTime.value
%% globals
--]]



-----local sourceTrigger = fibaro:getSourceTrigger()

function tempFunc()
	local currentDate = os.date("%H:%M")
	local startSource = fibaro:getSourceTrigger()
    
	local heure = fibaro:getValue(423, "ui.lblTime.value")
	print(heure)
  	if currentDate == heure	then fibaro:call(14, "turnOff") end

	setTimeout(tempFunc, 60*1000)
end

tempFunc()

 

Lien vers le commentaire
Partager sur d’autres sites

en gros en enlevant ce qui est pas util...

--[[
%% properties
%% events
423 ui.lblTime.value
%% globals
--]]

function tempFunc()
	local currentDate = os.date("%H:%M")
	local heure = fibaro:getValue(423, "ui.lblTime.value")	
	print(heure)
  	if currentDate == heure	then fibaro:call(14, "turnOn") end

	setTimeout(tempFunc, 60*1000)
end

tempFunc()

 

 

 

Modifié par jjacques68
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...