Aller au contenu

mes debut dans le "LUA"


Messages recommandés

Posté(e)

bonsoir,

 

j'essai de compléter le script que j'ai fait (grâce à  vous en grande partie et je vous en remercie) pour activer l'alarme avec la télécommande Aeons Labs AEO_DSA22.

ça marche parfaitement et j'ai décidé de rajouter un puch pour me signifier que l'alarme et active ou inactive quand je le fais par la télécommande.

pour faire cela, j'ai rajouté la dernière ligne (avant then bien sà»r), ça marche, sauf que je reçois deux puch !

voyez vous une erreur dans mes lignes?

 

 

--[[
%% properties
15 sceneActivation
%% globals
--]]

local NumScene = tonumber(fibaro:getValue(15, "sceneActivation"))

if (NumScene == 2) --  (touche 1 appui long)


then


fibaro:call(14, "setArmed", "0");
fibaro:call(5, "setArmed", "0");



fibaro:call(17, "sendDefinedPushNotification", "5");




end


 

Posté(e)

Étrange, le code semble ok, peut-être que l'appui long sur la telco se traduit par 2 activations de scène :) . Peut être faire un test avec un appui court histoire d'être certain ?

Posté(e)

lol, non excuse moi, j'ai lu trop vite!

 

l'appuis court sort le 1 et l'appuis long le 2

et cela fait la même chose quand je l'active, 2 push a chaque fois.

Posté(e)

j'ai fait autrement est le problème reste le même, une scène par actions. activer et desactivé.

et cela m'envoie 2 push, même si j'active par l'iphone. 

--[[
%% properties
5 armed
%% globals
--]]

local MaVariable = fibaro:get(5, 'armed' )
fibaro:debug( ' armed = ' ..MaVariable)

if ( MaVariable == '1') then


fibaro:call(17, "sendDefinedPushNotification", "4");

end

Posté(e)

Peux tu faire un test: mettre ton fibaro:call(17, "sendDefinedPushNotification", "4"); dans le bouton d'un virtual device ? si deux notifications c'est :rolleyes: ...

Posté(e)

j'ai juste la bête, alors j'ai que 6 scènes pour le moment.

deux pour la télécommande on et off

deux pour l'avertissement on alarme coté fenêtre et cote court (qui sont désactivés pour le moment)

et ses deux là

--message puch : Alarme activée

--[[

%% properties

5 armed

%% globals

--]]

local MaVariable = fibaro:get(5, 'armed' )

fibaro:debug( ' armed = ' ..MaVariable)

if ( MaVariable == '1') then

fibaro:call(17, "sendDefinedPushNotification", "4");

end

--Message puch : alarme désactivée

--[[

%% properties

5 armed

%% globals

--]]

local MaVariable = fibaro:get(5, 'armed' )

fibaro:debug( ' armed = ' ..MaVariable)

if ( MaVariable == '0') then

fibaro:call(17, "sendDefinedPushNotification", "5");

end

Posté(e)

:huh: si demain 4 -_- ... ok c'est pas drôle, c'est vraiment étrange. au pire ouvre un ticket sur le bugtracker ;)

Posté(e)

Je vais dire une grosse bêtise, ce ne sera ni la première, ni la dernière  :)

 

Tu n'aurais pas laissé une scène active en plus de ton module virtuel, avec le même script ?

Posté(e)

Si si , c'était drôle Krikroff 😄!!

J'avoue qu'à  l'heure ou j'ai arrêté, je ne savais plus trop ou j'en était 😲.

C'est pour ça que ce soir, je vais commencer par stopper toutes les scènes et y aller une par une.

Posté(e)

C'est une des raison ou il faut essayer de centraliser un maximum les scènes de différentes raison.

Pour éviter les embrouilles (j'ai eu les décorations de noà«l qui s'allumer la journée aléatoirement, et j'ai trouver le weed-end dernier pourquoi  Xd) je suis partie sur des scènes "maîtres" et des règles.

Ce que je recommande:

- Toutes les scènes qui doivent être lancé à  une heure précise, utiliser le scheduler

- Toutes les scènes qui doivent être lancer grâce à  un module, utiliser une scènes dédier aux "association" (enfin c'est plus une scène qui démarre les autres que association).

A la rigueur faudrait même peut-être faire une scène pour les actionneurs passif comme par exemple les détecteurs de fenêtre et actionneurs actif comme une télécommande.

- Partez du principe qu'une scène ne ce lance jamais d'elle même.

- Documentez au maximum votre code, surtout quand vous êtes débutant.

 

Alors je sais que ce n'est pas facile quand on commence, mais vous allez gagner pas mal d'heure à  un certains moment, et vous éviterez d'être chauve :D.

Posté(e)

Ca vient de là , c'est sur, le debug renvoie deux fois l'appuis du bouton.

pareil sur le désarmement.

Mais je ne vois pas ce qui double 8/

 

--[[

%% properties

15 sceneActivation

%% globals

--]]

local NumScene = tonumber(fibaro:getValue(15, "sceneActivation")) -- récupère la scène activée, stocké dans la variable "NumScene"

if (NumScene == 1) -- la touche appuyée génère le numéro de scène 1 (touche 1 appui court)

then

fibaro:debug("Bouton 1 appuyé (court):")

if ((tonumber(fibaro:getValue(14, 'value'))) == 0)

then

fibaro:call(14, "setArmed", "1");

fibaro:call(5, "setArmed", "1");

end

end

 

avec le script suivant, je vois bien que la télécommande envoie seulement une fois 1 (appuis court) ou 2 (appuis long)

--[[

%% properties

%% globals

--]]

local NumScene = fibaro:getValue(15, "sceneActivation")

fibaro:debug("Numéro de scène: " ..NumScene)

?? je sèche ??

Posté(e)

Arrête de poster ton code comme sa. Met le entre les balises code stp ce sera plus lisible.

 

Ensuite donne moi l'id de ta télécommande, j'en ai pas mais je suppose que tu dois avoir également un id précis si tu restes appuyé sur le bouton.

Si oui donne le moi.

Posté(e)


--[[

%% properties

15 sceneActivation

%% globals

--]]

local NumScene = tonumber(fibaro:getValue(15, "sceneActivation")) -- récupère la scène activée, stocké dans la variable "NumScene"

if (NumScene == 1) -- la touche appuyée génère le numéro de scène 1 (touche 1 appui court)

then

fibaro:debug("Bouton 1 appuyé (court):")

if ((tonumber(fibaro:getValue(14, 'value'))) == 0)

then

fibaro:call(14, "setArmed", "1");

fibaro:call(5, "setArmed", "1");

end

end

Posté(e)

ok, merci, je pense que tu m'a donné la solution, quand je copie le script de ton lien et que je l'adapte avec mon ID15 de ma télécommande, j'appuis sur n'importe quelles touche, la commande  se double.

je vais la supprimer et la réinstaller

×
×
  • Créer...