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
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

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.