des connaisseurs de luup.call_delay ?

Programmation de la Vera

des connaisseurs de luup.call_delay ?

Messagede shade9 » 30 Avr 2012, 23:59

Bonjour,

je desespere de faire fonctionner cette fonction pour faire une pause dans certaines scenes.
Pour l'instant, je cherche juste Ă  comprendre comment elle marche, donc, j'ai fais une scene simple (qui ne sert pas Ă  grand chose mais c'est juste pour le test) :

dans mon startu lua, j'ai :
Code: Tout sélectionner
PRISE[1] = {}
PRISE[1].num_vera = 16


(j'utilise cet array dans plusieurs autres scripts, et il fonctionne tres bien, donc, pas de pb de ce coté.)

et dans ma scene test, voici mon code :
Code: Tout sélectionner
-- device Ă  traiter
local device = 1
local delay = 30

function toto()
print("eeeeeeee")
end

luup.call_action("urn:upnp-org:serviceId:SwitchPower1", "SetTarget", {newTargetValue = "1"}, PRISE[device].num_vera)
luup.call_delay( 'toto', delay )
luup.call_action("urn:upnp-org:serviceId:SwitchPower1", "SetTarget", {newTargetValue = "0"}, PRISE[device].num_vera)
luup.call_delay( 'toto', delay )
luup.call_action("urn:upnp-org:serviceId:SwitchPower1", "SetTarget", {newTargetValue = "1"}, PRISE[device].num_vera)
luup.call_delay( 'toto', delay )
luup.call_action("urn:upnp-org:serviceId:SwitchPower1", "SetTarget", {newTargetValue = "0"}, PRISE[device].num_vera)


plutot basique et bete et mechant non ?
pourtant, ma lampe s'allume et s'eteint immediatement, sans les 30s de pause qu'il devrait y avoir.
j'ai essayé de changer toto en ne mettant rien dans le code, en mettant un return false ou un return true, cela ne change rien, la lampe clignote sans aucune pause.

Une idée...?
Dernière édition par shade9 le 04 Mai 2012, 19:52, édité 1 fois.
shade9
Membre Actif
 
Messages: 18
Inscription: 19 DĂ©c 2003, 23:36

Re: des connaisseurs de luup.call_delay

Messagede joe144 » 03 Mai 2012, 22:11

Bonsoir,
Essaye de mettre :
luup.call_delay("toto", delay, 0)
joe144
Guru de domotique
 
Messages: 135
Inscription: 11 Mar 2012, 23:00

Re: des connaisseurs de luup.call_delay

Messagede shade9 » 04 Mai 2012, 19:50

Bonjour, et merci de ta reponse.

je viens d'essayer Ă  l'instant.... et ben non :(
Pas de changement, mm comportement : un clignotant tres rapide, mais pas de pause de 30s.

D'autres idées ?

je viens de tester un autre sricpt, trouvé sur le net, pour faire "clignoter" alternativement des lampes. Et le pire, c'est qu'il fonctionne ! :shock:

Alors lĂ , je ne comprend pas pourquoi mon script ne fonctionne pas...

Code: Tout sélectionner
--Enter the device ID's here in the array with your device id's
local array_lights = {PRISE[1].num_vera,PRISE[2].num_vera}
local original_status={}
local counter = 10
local delay   = 3


function set_switch(device,value)
   luup.call_action("urn:upnp-org:serviceId:SwitchPower1","SetTarget",{ newTargetValue=value },device)
end


function tree_on()
   for i, device in ipairs(array_lights) do
      set_switch(device,"1")
   end
   luup.call_delay( 'tree_off', delay )
end

function tree_off()
   counter = counter-1

   if counter > 0 then
      for i, device in ipairs(array_lights) do
            set_switch(device,"0")
      end
      luup.call_delay( 'tree_on', delay )

   else

   --Set to original status
      for i, device in ipairs(array_lights) do
            set_switch(device,original_status[i])
      end

  end

end



--Save Original status
for i, device in ipairs(array_lights) do
      original_status[i] = luup.variable_get("urn:upnp-org:serviceId:SwitchPower1","Status", device)
end

tree_off()


shade9
Membre Actif
 
Messages: 18
Inscription: 19 DĂ©c 2003, 23:36

Re: des connaisseurs de luup.call_delay ?

Messagede fatal25 » 10 Mai 2012, 14:30

La seule différence, c'est que le code qui fonctionne utilise luup.call_delay dans une fonction alors que toi, tu l'utilises en dehors d'une déclaration de fonction.

alors je sais pas si c'est ça mais ça peut jouer...
Créateur du SmartVT (virtual thermostat); Repris et amélioré par Antor.
Créateur du VR dimmable pour IPX800v3 / Veralite.

Si vous aimez le travail fourni pour vous faciliter la vie, faites un don svp.
https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2K6F9KCEZYTG6&lc=FR&item_name=fatal25&item_number=domotique&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
fatal25
Dieu de domotique
 
Messages: 1274
Inscription: 12 Mar 2012, 16:08

Re: des connaisseurs de luup.call_delay ?

Messagede fatal25 » 10 Mai 2012, 14:35

Code: Tout sélectionner
local sensorDeviceNo = 16 -- Motion Sensor device number
local lightDeviceNo = 13 -- Light device number
local period = 10 -- Seconds

local SS_SID = "urn:micasaverde-com:serviceId:SecuritySensor1" -- Security Sensor Service ID
local SP_SID = "urn:upnp-org:serviceId:SwitchPower1" -- Switch Power Service ID

function checkLastTrip()
    local lastTrip = luup.variable_get (SS_SID, "LastTrip", sensorDeviceNo) or os.time()
    if (os.difftime (os.time(), tonumber (lastTrip)) >= period) then
        luup.call_action (SP_SID, "SetTarget", {["newTargetValue"] = 0}, lightDeviceNo) -- Turn off the light.
    else
        luup.call_delay ("checkLastTrip", period) -- Check when the sensor was last tripped every <period> seconds.
    end
end

luup.call_delay ("checkLastTrip", period)

return true


Voici un autre bout de code qui sert à laisser une lampe allumée un certain temps dès que le détecteur de mouvement ne voit plus rien.

On voit bien que la luup.call_delay est utilisé dans la déclaration d'une fonction
Créateur du SmartVT (virtual thermostat); Repris et amélioré par Antor.
Créateur du VR dimmable pour IPX800v3 / Veralite.

Si vous aimez le travail fourni pour vous faciliter la vie, faites un don svp.
https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2K6F9KCEZYTG6&lc=FR&item_name=fatal25&item_number=domotique&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
fatal25
Dieu de domotique
 
Messages: 1274
Inscription: 12 Mar 2012, 16:08

Re: des connaisseurs de luup.call_delay ?

Messagede fatal25 » 10 Mai 2012, 14:52

Mais bon, ça ne change rien. Ca devrait fonctionner quand même...

Essaie
Code: Tout sélectionner
luup.call_delay( "toto", delay )


ou

Code: Tout sélectionner
luup.call_delay( "toto", delay, "0" )
Créateur du SmartVT (virtual thermostat); Repris et amélioré par Antor.
Créateur du VR dimmable pour IPX800v3 / Veralite.

Si vous aimez le travail fourni pour vous faciliter la vie, faites un don svp.
https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2K6F9KCEZYTG6&lc=FR&item_name=fatal25&item_number=domotique&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted
fatal25
Dieu de domotique
 
Messages: 1274
Inscription: 12 Mar 2012, 16:08

Re: des connaisseurs de luup.call_delay ?

Messagede shade9 » 10 Mai 2012, 19:47

le pire, c'est que je viens de creer un autre scene, en testant Ă  nouveau un call_delay, et il fonctionne !!
avec la mm syntaxe que precedement : luup.call_delay( "check", period )

bon, le pb vient peut etre d'ailleurs dans mon code. Je vais faire d'autres essais. Merci en tout cas de ton aide !
shade9
Membre Actif
 
Messages: 18
Inscription: 19 DĂ©c 2003, 23:36

Re: des connaisseurs de luup.call_delay ?

Messagede jaco » 10 Mar 2013, 08:55

Mieux vaut tard que jamais, je m'y colle: essaye plutĂ´t luup.sleep() peut-ĂŞtre.
http://wiki.micasaverde.com/index.php/L ... ion:_sleep
RETOUR EXPERIENCE PRODUITS (01/2013 Ă  aujourd'hui)
433MHz: Astrell: qques Telcos et plugs on/off (pour dépanner)
Z-Wave:
ContrĂ´leurs - Micasaverde: VeraLite, Remotec: ZURC-550 (zombie) + ZRC-100, Aeon Labs: DSA22 + Z-Stick S2
Emetteurs - Aeon Labs: DSB05, Fibaro: FGK + FGMS (récents)
RĂ©cepteurs - Fibaro: Wallplug FGWPE, Everspring (marque de merde): AN157 (tous morts) + AN158 + AD142 (tous morts), QEES: Reto shell, Aeon Labs: DSC08 + DSC13
Ampoules - Domitech: ZBULB (récents), Aeon Labs: ZW098 (récents)
Infrarouge:
USBUIRT, AIM: IR606Q, Ebode (marque de merde): PM28 (tous morts) + EXLED3 (tous morts)
Divers:
Raspberry Pi: modèle B, Cubieboard: version 2, Monster Cable: switch hdmi
Disques durs externes: Seagate (de 1 Ă  2 To), Freecom (300 Go)
Wiko: Cink Peax
Ampoules led dimmables: Philips (eq 40W Ă  eq 100W), Vision El (eq 60W), Osram (eq 75W)
Ampoules fluo dimmables: quelques marques testées dont Osram et Ikea (toutes inutilisables)
Internet: Orange Livebox
jaco
Dieu de domotique
 
Messages: 423
Inscription: 20 Jan 2013, 00:09
Localisation: Tours


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Copyright © 2011 - Touteladomotique.com - Tous droits rĂ©servĂ©s
Les blogs partenaires : Abavala, Domo-Blog, Domotique34, Maison et Domotique