Page 1 sur 1
introduire un délai entre les commandes LUA ?
Publié : 25 déc. 2016, 14:39
par DrMacabre
Salut,
Je rencontre un petit problème avec mon script actuel, j'ai ici 2 lampes Leds dont le passage de l'une, change l'état de la seconde à cause de code IR similaires.
Ce que j'essaye de faire : Avant d'envoyer la commande pour passer ma lampe en rouge, le script doit éteindre la seconde lampe afin qu'elle ne reçoive pas le code de la première, ensuite, une fois le code reçu par la bonne lampe, le script rallume la seconde lampe. En principe ça devrait marcher mais voilà, tout va trop vite et j'ai l'impression que les commandes s'évaporent après l'extinction de la lampe "LEDs Studio"
les commandes sont transmises à un RM Pro qui doit à mon avis pédaler dans la semoule en recevant une salve d'URL dans la tronche.
Est-ce qu'il existe par hasard une commande qui temporise le script pendant x temps avant de passer à la commande suivante ?
Code : Tout sélectionner
if (devicechanged['LEDs Balls RGB'] == 'Rd' and otherdevices['LEDs Mezzanine'] == 'On') then
commandArray['LEDs Studio']='Off' -- Extinction des LEDs Studio
commandArray['LEDs Balls R']='On' -- Passage des LEDs Balls en rouge (qui change aussi la couleur des LEDs Studio si elles sont allumées... misère)
commandArray['LEDs Studio']='On' -- Rallumage des LEDs Studio
end
Merci
Re: introduire un délai entre les commandes LUA ?
Publié : 25 déc. 2016, 23:01
par patrice
Bonsoir
Wait ou sleep ou pause (je ne me rappelle plus en Lua)
Si tu cherches avec ses mot tu devrais trouver
Re: introduire un délai entre les commandes LUA ?
Publié : 03 janv. 2017, 11:59
par lost
DrMacabre a écrit :
Est-ce qu'il existe par hasard une commande qui temporise le script pendant x temps avant de passer à la commande suivante ?
Le pb est que ca va bloquer domoticz pdt l'execution du script... Donc mieux vaudrait utiliser les possibilités de "On|Off AFTER <DelayInSeconds>" directement dans la commande, cf:
https://www.domoticz.com/wiki/LUA_commands
Re: introduire un délai entre les commandes LUA ?
Publié : 12 janv. 2017, 12:00
par nissart
bonjour
pour ma part je crée un dummy on/off avec allumage retardé (le temps voulu de la pause) et extinction une seconde plus tard.
Exemple: pour une pause de 1 seconde.
Nom: 1seconde
délai d'allumage: 1
délai d'extinction: 2
en concret:
j'écoute de la radio via MPD... quand je veux changer de radio je dois
-effacer la liste de lecture en cours,
-charger une nouvelle playlist,
-lancer la playlist en cours...
voici mon script simplifié
Code : Tout sélectionner
if (devicechanged['FUN'] == 'On') then
commandArray['OpenURL']='http://192.168.5.14/command/?cmd=clear' //ici je vide ma playlist
commandArray['1seconde'] = 'On' // la je lance une pause de 1 seconde
commandArray['2secondes'] = 'On // la je lance une pause de 2 secondes
commandArray['NRJ'] = 'Off' //la je coupe toutes mes radios possibles
commandArray['voltage'] = 'Off'
commandArray['vibration'] = 'Off'
commandArray['cherie'] = 'Off'
end
if (devicechanged['1seconde'] == 'On') and otherdevices['FUN'] == 'On' then
commandArray['OpenURL']='http://192.168.5.14/command/?cmd=load%20fun' //une seconde plus tard je charge ma plays
end
if (devicechanged['2secondes'] == 'On') and otherdevices['FUN'] == 'On' then // deux secondes plus tard je lance la playlist
commandArray['OpenURL']='http://192.168.5.14/command/?cmd=play'
end
a toi de l'adapter
Re: introduire un délai entre les commandes LUA ?
Publié : 12 janv. 2017, 12:09
par vil1driver
pour mpd si tu installes le client mpc tu peux le faire comme ceci (sans usage de délai aucun..)
Code : Tout sélectionner
-- script_device_rock.lua
--
-- lancement de la playlist rock sur mpd
local ip = '192.168.22.100' -- ip du serveur mpd
local port = '6600' -- port du serveur mpd
commandArray = {}
if (devicechanged['mpd_rock'] == 'On') then
print('MPD : Play la grosse radio Rock')
-- On efface la playlist en cours, mais on garde le titre qui est joué actuellement.
-- On charge la playlist
-- On lance un fichier mp3 ou autre contenu dans la playlist
os.execute('MPD_HOST='..ip..' MPD_PORT='..port..' mpc crop && MPD_HOST='..ip..' MPD_PORT='..port..' mpc load La\\ grosse\\ radio && MPD_HOST='..ip..' MPD_PORT='..port..' mpc play 3 &')
end
return commandArray
Re: introduire un délai entre les commandes LUA ?
Publié : 12 janv. 2017, 12:36
par nissart
pas mal du tout, a tester !!
par contre j'utilise un raspberry dédié sur lequel est installé runeaudio avec un DAC USB , pour éviter de charger la conf du domoticz.
tu es sur le meme Rpi toi ?
Re: introduire un délai entre les commandes LUA ?
Publié : 16 févr. 2017, 19:55
par jec_44
très intéressant ! super les gars ! moi j'utilise Volumio sur un RPI dédié. J'utilise un device avec plusieurs options et je les lance avec (par exemple) :
http://192.168.0.128/command/?cmd=load%20Radio
je vais essayer d'adapter vos scripts LUA

Re: introduire un délai entre les commandes LUA ?
Publié : 22 sept. 2017, 10:55
par shinji
lost a écrit :DrMacabre a écrit :
Est-ce qu'il existe par hasard une commande qui temporise le script pendant x temps avant de passer à la commande suivante ?
Le pb est que ca va bloquer domoticz pdt l'execution du script... Donc mieux vaudrait utiliser les possibilités de "On|Off AFTER <DelayInSeconds>" directement dans la commande, cf:
https://www.domoticz.com/wiki/LUA_commands
Bonjour a tous,
Il y a un truc que je ne capte pas. J'utilise domoticz sur un syno avec des periphériques xiaomi.
Quand j'utilise => commandArray['RGB Gateway'] = 'On AFTER 30' la gateway s'allume bien après 30s.
mais si je mets :
commandArray['RGB Gateway'] = 'On'
commandArray['RGB Gateway'] = 'Off AFTER 30'
Il ne se passe rien. Du coup je ne capte pas pourquoi dans un cas cela fonctionne et dans l'autre non !
Elle devrait s'allumer direct et s'éteindre après 30s.
Du coup pour l'instant je passe par commandArray['RGB Gateway'] = 'On FOR 1' et ça fonctionne pendant 1 minute.
Mais j'avoue que j'aimerais bien comprendre pourquoi la succession On/Off AFTER ne fonctionne pas.
Des idées ?
Merci
Re: introduire un délai entre les commandes LUA ?
Publié : 22 sept. 2017, 12:03
par vil1driver
Re: introduire un délai entre les commandes LUA ?
Publié : 22 sept. 2017, 13:08
par shinji
Merci !!
ça marche top
commandArray[1] = {['RGB Gateway'] = 'On'}
commandArray[2] = {['RGB Gateway'] = 'Off AFTER 30'}