Page 1 sur 1

Mon premier Script !

Publié : 12 déc. 2017, 16:18
par le belge
Bonjour ,

je me lance avec les scripts , c'est mon premier essai !
l'idée est d'utiliser un détecteur de mouvement pour déclencher un script Webradio sur une enceinte bluetooth
en utilisant un switch selector virtuel (capteur)
la WebRadio fonctionne bien sur l'enceinte

Code : Tout sélectionner

-- Test radio détecteur 

commandArray = {}
-- Si capteur =on et WebRadio =off alors on allume la Webradio 

if (devicechanged['capteur'] =='On' and otherdevices['WebRadio'] == 'Off') then
    commandArray['WebRadio']='Set Level:10'
end
-- Si capteur => off et WebRadio =on alors on arrete la Webradio 
if (devicechanged['capteur'] =='Off') and otherdevices['WebRadio'] == 'Level:10') then
    commandArray['Webradio']='Off'
end

return commandArray
j'ai testé la première commande (allumer la radio) => OK

par contre je n'arrive pas à l'éteindre ...

pourriez-vous m'aiguiller sur mon erreur ???

Re: Mon premier Script !

Publié : 12 déc. 2017, 17:23
par chacal62
bonjour,
la casse de WebRadio n'est pas la meme ds tes 2 commandes On et Off

Re: Mon premier Script !

Publié : 12 déc. 2017, 17:42
par le belge
salut ,
je viens de modifier ... ;) mais ça ne fonctionne pas ...

vu que j'utilise un switch selector , est-ce que je dois utiliser "level:10" ou "Virgin Radio" pour nommer le niveau ??

Code : Tout sélectionner

if (devicechanged['capteur'] =='Off') and otherdevices['WebRadio'] == 'Virgin Radio') then
    commandArray['WebRadio']='Off'
ou

Code : Tout sélectionner

if (devicechanged['capteur'] =='Off') and otherdevices['WebRadio'] == 'Level:10') then
    commandArray['WebRadio']='Off'
encore une petite question , je voulais mettre des print's pour voir mais je ne sais pas ou et comment les mettre !!!

Re: Mon premier Script !

Publié : 12 déc. 2017, 18:08
par chacal62
Pourquoi tu ne mets pas ça : otherdevices['WebRadio'] == 'On' et pour les prints tu les mets ou tu veux

Re: Mon premier Script !

Publié : 12 déc. 2017, 18:17
par le belge
ben en faite c'est un switch selector avec 4 niveaux
Niveau=>Nom du niveau

Code : Tout sélectionner

 0 =>Off
10=>Virgin Radio
20=>RTL
30=>Fun Radio 
Niveau=>Action :

Code : Tout sélectionner

 0 => script:///home/pi/domoticz/scripts/bash/stop_radio.sh	
10=>script:///home/pi/domoticz/scripts/bash/virgin_radio.sh	
20=>script:///home/pi/domoticz/scripts/bash/RTL2.sh	
30=>script:///home/pi/domoticz/scripts/bash/fun_radio.sh	
du coup , je ne sais pas si dans le script je dois prendre le nom du niveau (Virgin Radio) ou le niveau (10)
est-ce que tu aurais un exemple de print à mettre car je ne comprends pas le fonctionnement :cry:

Re: Mon premier Script !

Publié : 12 déc. 2017, 19:42
par thier
puisque tu as un doute avec la commande off tu remplaces
-- Si capteur => off et WebRadio =on alors on arrete la Webradio
if (devicechanged['capteur'] =='Off') and otherdevices['WebRadio'] == 'Level:10') then
commandArray['Webradio']='Off'

par
-- Si capteur => off et WebRadio =on alors on arrete la Webradio
if (devicechanged['capteur'] =='Off') and otherdevices['WebRadio'] == 'Level:10') then
print('test'')
commandArray['Webradio']='Off'

Tu regardes dans les logs de domo si tu vois test. Si c'est oui la partie du code "if (devicechanged['capteur'] =='Off') and otherdevices['WebRadio'] == 'Level:10') then" est ok et c'est donc " commandArray['Webradio']='Off'" qui ne va pas. Voila l’intérêt des print pour debugguer.

Après, ta question sur "Level:10", ben tu fais l'essai. Dans mes scripts j'utilise le nom du level donc pour toi le nom de la radio.

Re: Mon premier Script !

Publié : 12 déc. 2017, 21:00
par le belge
Yes ça fonctionne !!!

c'est pas grand chose , mais je suis fier de moi !!!
merci pour le coup de main
Mike

Code : Tout sélectionner

-- Test radio détecteur 

commandArray = {}
-- Si capteur =on et WebRadio =off  et iPhone Mike =on 
-- alors on allume la Webradio 

if (devicechanged['capteur'] =='On' and otherdevices['WebRadio'] == 'Off' and otherdevices['iPhone Mike'] =='On')then
    print("Radio on")
    commandArray['WebRadio']='Set Level:10'
    
end
-- Si capteur =off et WebRadio =VirginRadio 
-- alors on éteint la WebRadio 
if (devicechanged['capteur'] =='Off' and otherdevices['WebRadio'] == 'Virgin Radio') then
    print("Radio off")
    commandArray['WebRadio']='Off'
end

return commandArray

Re: Mon premier Script !

Publié : 12 déc. 2017, 21:22
par thier
Félicitations!
Puisque tu veux apprendre les scripts, je te propose des idées.
Tu peux dans un script lua lancer un seul script radio.sh avec comme variable le nom de la radio. ça évite d'avoir plusieurs scripts radio.
Pour éteindre la radio tu mets en lua "and otherdevices['WebRadio'] == 'Virgin Radio')". je verrais plutôt otherdevices['WebRadio'] différent de éteint alors j’éteins la radio. Comme ça une seule ligne de script te permet d'éteindre quelle que soit la radio en cours.