Mon premier Script !

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
le belge
Messages : 346
Inscription : 12 déc. 2016, 19:02

Mon premier Script !

Message 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 ???
chacal62
Messages : 63
Inscription : 14 juin 2015, 20:47

Re: Mon premier Script !

Message par chacal62 »

bonjour,
la casse de WebRadio n'est pas la meme ds tes 2 commandes On et Off
le belge
Messages : 346
Inscription : 12 déc. 2016, 19:02

Re: Mon premier Script !

Message 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 !!!
chacal62
Messages : 63
Inscription : 14 juin 2015, 20:47

Re: Mon premier Script !

Message par chacal62 »

Pourquoi tu ne mets pas ça : otherdevices['WebRadio'] == 'On' et pour les prints tu les mets ou tu veux
le belge
Messages : 346
Inscription : 12 déc. 2016, 19:02

Re: Mon premier Script !

Message 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:
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Mon premier Script !

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
le belge
Messages : 346
Inscription : 12 déc. 2016, 19:02

Re: Mon premier Script !

Message 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
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Mon premier Script !

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Répondre