Aller au contenu

Fibaro:getsourcetrigger Avec Fgk-107 Door/window Sensor


Messages recommandés

Posté(e)

Bonjour,

 

Je m'aperçois aujourd'hui que je mes scripts ne réagissent plus sur mes ouvertures de porte et ce dans tous les script faisant appel aux "properties"

 

Voici un script basic: 

 

--[[

%% properties
41 value
40 value
39 value
42 value
43 value
47 value
53 value
50 value
55 value
57 value
69 value
%% globals
--]]
 
-- Only allow one instance of the current scene to run at a time
if (fibaro:countScenes() > 1) then
  fibaro:debug("already running");
  fibaro:abort()
  
end
 
 
local sourceTrigger = fibaro:getSourceTrigger()
 
 
fibaro:debug("called at " .. os.date() .. " source trigger: " .. sourceTrigger['type']);
 
if (sourceTrigger['type'] == 'property') then
  triggerId = sourceTrigger['deviceID']
 
 
end
 
les 'value' en tête de script représentent les 'id' des Devices de mes portes.
 
Si j'ouvre une porte correspondant à  l'une de ces 'id', dans la console je reçois la ligne suivante:
[DEBUG] 08:37:38: called at Tue Apr 19 08:37:38 2016 source trigger: event
 
 
Normalement, le source trigger devrait afficher 'property' et non 'event'
 
Une idée ?
 
 
Merci
Posté(e)

Salut,

 

Tu es en quel firmware de HC2, si 4.081 c'est normal, Fibaro a changé le retour "property" en "event" ;-)

 

Teste comme ceci :

if (sourceTrigger['type'] == 'property' or sourceTrigger['type'] == 'event')
  • Upvote 1
Posté(e)

Merci pour ta réponse!

 

J'utilse en effet le firmware HC2.

 

J'ai également  changé (sourceTrigger['type'] == 'property' en (sourceTrigger['type'] == 'event'

 

sur la ligne triggerId = sourceTrigger['deviceID'] j'obtiens le message suivant:

 

 

[DEBUG] 10:24:03: nil
 
 
comment dès lors savoir  quel 'deviceID' envoie le 'trigger'?
Posté(e)

Excellente idée .... mais malheureusement c'est pa ça.

 

De plus

Si j'enlève %% properties et laisse uniquement

%% events

41 value
40 value
39 value
42 value
43 value
47 value
53 value
50 value
55 value
57 value
69 value
 
 
Plus aucun 'trigger' !
Posté(e)

un debut de piste

%% properties
%% events
301 CentralSceneEvent 1 Pressed
301 CentralSceneEvent 2 Pressed
%% globals--]]--[[
local trigger = fibaro:getSourceTrigger()
if (trigger["type"] ~= "other") then
local id = trigger.event.data.keyId
local old = fibaro:getValue(278, "value")
if (id==1) then -- UP
print('up')fibaro:call(278, "setValue", old + 10)
elseif (id==2) then-- DOWN
print('down')fibaro:call(278, "setValue", old - 10)
end
end
Posté(e)

@j'aurais laisse %%properties -- c'était juste pour tester avec et sans :)

 

Ce début de piste est prometteur, je suis actuellement un peu loin de ma HC2. Ce sera pour ce soir.

Posté(e)

en fait pour retrouver l'ID: 

 

local sourceTrigger = fibaro:getSourceTrigger()

sourceTrigger.event.data.id

 

 

 

en résumé, voici le script:

 

--[[
%% properties
 
41 value
40 value
39 value
42 value
43 value
47 value
53 value
50 value
55 value
57 value
69 value
134 value
 
 
%% globals
--]]
 
 
local sourceTrigger = fibaro:getSourceTrigger()
 
triggerId = sourceTrigger['deviceID']
local doorID = sourceTrigger.event.data.id
fibaro:debug("called at " .. os.date() .. " ID = " .. doorID)
 

 

et voici le résultat quand j'ouvre la porte id=134


[DEBUG] 22:19:00: called at Tue Apr 19 22:19:00 2016 ID = 134
 
 

 

Merci à  Pepite pour m'avoir aiguillé !

 

  • Upvote 3
×
×
  • Créer...