Aller au contenu

Messages recommandés

Posté(e)

désolé mais je n'ai jamais utilisé les variables.. je commence àcomprendre les choses maiiiiiiiis... il faut m'expliquer longtemps !

Posté(e)

Yannick,

Il est difficile de faire un cours LUA ici. De plus je suis un fervent adepte de l'autodidacte, c'est comme ça qu'on apprend et retient le mieux.

 

Je te conseille néanmoins les lectures suivantes :

bonne lecture, il y a aussi www.google.com  :15:

Posté(e)

Salut Jojo 

 

Eh oui je comprends bien. 

 

Merci je vais essayer de me démerder tout seul. Mais je ne suis aucunement développeur et les mécanismes m'échappent.

 

Merci quand même

Posté(e)

Je ne suis pas développeur non-plus. J'ai tout appris sur le tas => c'est possible ...

 

Commence tes recherches, et quand tu as un point précis, on reste là  pour t'aider à  débogguer

Posté(e)

Salut Jojo, alors voilà  j'ai fait mon bout de code comme tu me l'avais demandé en me démerdant mais j'ai un souci de syntaxe de mon script et je n'arrive pas à  comprendre où ça coince.

Voici le code

--[[
%% properties
49 valueSensor
%% globals
TV
--]]
 
local startSource = fibaro:getSourceTrigger();
if (
 ( fibaro:getGlobalValue("TV") == "Off" )
and
 ( tonumber(fibaro:getValue(49, "valueSensor")) >= 100 )
)
then
fibaro:setGlobal("TV", "On");
fibaro:call(91, "sendPush", "Allumage Télé");
  fibaro:debug("TV")
end
If ( 
    ( tonumber(fibaro:getValue(49, "valueSensor")) < 100 ))
then
  fibaro:setGlobal("TV","Off" )
end
 
Mais j'ai une erreur qui me remonte qui me dit : 
 
[ERROR] 10:05:15: line 21: unexpected symbol near 'then'
 
 
tu peux me dire où je merdouille ? 
 
Merci
 
PS : comment vous faite pour copier l'encart de rédaction de code dans vos messages ? c'est quoi l'outil ? 
Merci
Posté(e)

Je ne vois pas d'erreur dans ton code à  première vue.

la ligne 21 correspond au 2° then. N'y aurait-il pas un caractère caché bizarre ?

 

Pour mettre du code dans les message, tu cliques sur l'icône <> qui est juste en dessous de l'icones des smily.

Posté(e)

Désolé ça y est j'ai trouvé.. j'ai modifé et le code fonctionne

 

Mais j'"ai toujours le même problème. la notif est envoyée à  chaque changement de conso

Posté(e)

Salut Yannick,

 

J'aurais tout mis dans la meme boucle moi, a tester. Si tu recois le push a chaque variation, verifie que ta variable glbaole TV passe à  ON. Si tu recois c'est qu'elle reste à  OFF

 

If....AND ...then

else...then...

end

Posté(e)

@Yannick : essaie ca peut-etre :

--[[
%% properties
49 valueSensor
%% globals
TV
--]]
 
local startSource = fibaro:getSourceTrigger();
if (
 ( fibaro:getGlobalValue("TV") == "Off" )
and
 ( tonumber(fibaro:getValue(49, "valueSensor")) >= 100 )
)
then
fibaro:setGlobal("TV", "On");
fibaro:call(91, "sendPush", "Allumage Télé");
  fibaro:debug("TV")
else
   fibaro:setGlobal("TV","Off" )
end
Posté(e)

je supprimerait dans %% globals TV, car le vrai trigger est la conso électrique

je supprimerais la ligne 9 car on ne l'utilise pas ainsi que les () non indispensables

ce qui donnerait

--[[
%% properties
49 valueSensor
%% globals
--]]
 
if (fibaro:getGlobalValue("TV") == "Off"
   and tonumber(fibaro:getValue(49, "valueSensor")) >= 100 )
   then
     fibaro:setGlobal("TV", "On");
     fibaro:call(91, "sendPush", "Allumage Télé");
     fibaro:debug("TV")
   else
     fibaro:setGlobal("TV","Off" )
end

Posté(e)

Bon après plusieurs modifs et quelques tests voici le bon code final :

--[[
%% properties
49 valueSensor
%% globals
--]]
local Etat_Tele = fibaro:getGlobalValue("TV")
if (
 ( Etat_Tele == "Off" )
and
 ( tonumber(fibaro:getValue(49, "valueSensor")) >= 100 )
)
then
	fibaro:setGlobal("TV", "On");
	fibaro:call(91, "sendPush", "Allumage Télé");
else
  	fibaro:setGlobal("TV","Off" )

end
fibaro:debug("La télé est : "..Etat_Tele)

et a priori je n'ai plus de push toutes les secondes comme avant. Effectivement, le fait de déclarer la Valeur Globale TV dans l'entête faisait passé cette variable de "On" à  "Off" 2 fois par seconde ce qui engendrait l'envoi du Push à  chaque fois.

 

Merci les gars !!!

Posté(e)

ah !! par contre quand je clique plusieurs fois sur démarrer la scène pour débugger, alors que la conso reste supérieure à  100, la varaible Etat_Tele me renvoie alternativement "On" et "Off" à  chaque fois.

 

Un vrai casse tête quand même !!!

[DEBUG] 17:25:54: La télé est : Off
[DEBUG] 17:26:54: La télé est : On
[DEBUG] 17:26:57: La télé est : Off
[DEBUG] 17:26:58: La télé est : On
[DEBUG] 17:27:03: La télé est : Off
[DEBUG] 17:27:07: La télé est : On
[DEBUG] 17:27:08: La télé est : Off
[DEBUG] 17:27:09: La télé est : On
[DEBUG] 17:27:09: La télé est : Off
[DEBUG] 17:27:10: La télé est : On
[DEBUG] 17:27:10: La télé est : Off
[DEBUG] 17:27:11: La télé est : On
[DEBUG] 17:27:11: La télé est : Off
[DEBUG] 17:27:11: La télé est : On
Posté(e)

Rajoute une variable de conso dans ton debug pour vérifier aussi ;-)

 

Est-ce que cela fonctionne ou tu as de nouveau plusieurs push ?

Posté(e)

Salut pépite, j'ai rajouté ma variable de conso dans mon debug, je vais voir ce que ça donne. 

 

Je peux te poser une question : j'ai fait un code et j'ai erreur quand je lance mon debug mais je ne sais pas où. tu peux m'aider ?

--[[
%% properties
76 value
31 value
79 value
41 value
%% globals
--]]

local Id_Smartphone = 91
local a = fibaro:getValue(76, 'value')
local b = fibaro:getValue(29, 'value')
local c = fibaro:getValue(31, 'value')
local d = fibaro:getValue(79, 'value')
local e = fibaro:getValue(41, 'value')
--fibaro:debug("porte : "..a)
--fibaro:debug("lampe couloir : "..
--fibaro:debug("Mouvement couloir : "..c)
--fibaro:debug("Mouvement Salon : "..d)
--fibaro:debug("porte chambre : "..e)

If (tonumber(a) == 1);
or (tonumber(c) == 1); 
then
fibaro:call(tonumber(Id_Smartphone), 'sendPush', "Mouvement Couloir")))
fibaro:sleep(5000);
fibaro:call(88, "sendPhotoToUser", "2");
end
if (tonumber(d) == 1)
    then fibaro:call(tonumber(Id_Smartphone), 'sendPush', "Mouvement Salon-Séjour")
end

l'erreur qui m'est renvoyé c'est celle-ci :

[ERROR] 16:50:14: line 23: unexpected symbol near 'or'

je n'arrive pas à  trouver pourquoi il me dit que j'ai un symbol inattendu alors qu'il n'y a rien. 

 

Merci pour votre aide les gars

Posté(e)

je viens d'avoir une notification qui me confirme qu'un push est envoyé àchaque variation de consommation, ne serait-ce que de 0.1w

Posté(e)

Je viens de modifier mon code en faisant ça 

--[[
%% properties
49 valueSensor
%% globals

--]]
local Etat_Tele = fibaro:getGlobalValue("TV")
local Power = fibaro:getValue(49, "valueSensor")
if (tonumber(Power) >= 100 )
then
	fibaro:setGlobal("TV", "On");
else
  	fibaro:setGlobal("TV","Off" )
end
if (Etat_Tele == "On")
then  
fibaro:call(91, "sendPush", "Allumage Télé");
  	
  else fibaro:call(91, "sendPush", "Télé éteinte");
end
fibaro:debug("La télé est : "..Etat_Tele)
fibaro:debug("Consommation : "..Power.." W")

ça a l'air d'être mieux on va voir

Posté(e)

Salut Yannick,

 

Sans trop réfléchir, je l'aurais d'abord ecrit comme cela, mais suis pas un expert ;-)


local Id_Smartphone = 91
local a = fibaro:getValue(76, 'value')
local b = fibaro:getValue(29, 'value')
local c = fibaro:getValue(31, 'value')
local d = fibaro:getValue(79, 'value')
local e = fibaro:getValue(41, 'value')
--fibaro:debug("porte : "..a)
--fibaro:debug("lampe couloir : "..
--fibaro:debug("Mouvement couloir : "..c)
--fibaro:debug("Mouvement Salon : "..d)
--fibaro:debug("porte chambre : "..e)
 
if (tonumber(a) == 1) or (tonumber(c) == 1)
then
  fibaro:call(Id_Smartphone, 'sendPush', "Mouvement Couloir")
  fibaro:sleep(5000)
  fibaro:call(88, "sendPhotoToUser", "2")
end
if (tonumber(d) == 1)
  then
   fibaro:call(Id_Smartphone, 'sendPush', "Mouvement Salon-Séjour")
end

Oui pas bete pour la TV comme ca ;-)

Posté(e)

Je suis sur mon tel donc pas facile de lire tout ce code si demain matin j'ai un peu de temp je jetterai un oeil de mon pc

Envoyé de mon SM-G900F en utilisant Tapatalk

Posté(e)

Salut Pepite, 

merci pour l'interpretation. 

Pour ce qui est de la télé, cela ne change rien ! à  chaque variation de consommation, je reçois un push. Je viens d'en recevoir 2 à  l'instant parce que la conso est passé de 49.1 w à  49.5 w... 
Si je supprime la déclaration de mon module dans propriété ça va changer quoi ? 

Posté(e)

Salut Yannick,

 

Ah ben oui, ce qu'il y a dans properties correspond au trigger, c'est à  dire le declencheur de la scene. Donc en le mettant, ta scene surveille la variation de consomation, et des qu'il ya une variation, ca enclenche ta scene..

Si tu l'enleves, ca devrait etre bon, j'avais pas remarque..dans ce cas, tu peux pe ecrire en plus propre la scene.

 

Teste et tiens nous au jus.

Posté(e)

je l'ai enlevé de Properties. je vais vois.

Pour ce qui est de récrire plus propre ma scène, je ne demande pas mieux... mais j'en suis pas là  encore !! 

merci

Posté(e)

@Pepite : une question, sais-tu pourquoi je n'arrive pas àrécupérer la localisation de mon Smartphone quand je suis àl'extérieur ?

Posté(e)

Essaie ca :

--[[
%% properties
%% globals
 
--]]

local Etat_Tele = fibaro:getGlobalValue("TV")
local Power = fibaro:getValue(49, "valueSensor")

if (tonumber(Power) >= 100 ) and (Etat_Tele == "Off")
then
    fibaro:setGlobal("TV", "On");
    fibaro:call(91, "sendPush", "Allumage Télé");
else
    fibaro:setGlobal("TV","Off" )
    fibaro:call(91, "sendPush", "Télé éteinte");
end

fibaro:debug("La télé est : "..Etat_Tele)
fibaro:debug("Consommation : "..Power.." W")

les experts feraient pe autrement lol

 

Tu as eu les notifs pour la tele ?

 

 

Pour la localisation GPS c'est pas tres fiable, ca ne fonctionne pas terrible..mais il existe plein de tutos sur le forum concernant la localisation par téléphone sas utiliser la HC2

×
×
  • Créer...