Freebox player : modif auto du wallpaper

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 <\>.
MisterT
Messages : 55
Inscription : 12 avr. 2015, 19:04

Freebox player : modif auto du wallpaper

Message par MisterT »

Salut

Je debute en script .sh et j'essaie de faire un script qui permet de modifier le wallpaper de la freebox player de façon automatique en liant ce script a un bouton virtuel en push on et en configurant un planning

Toutefois j'ai du mal avec les if et les while et les declarations de variables
Les erreurs sont sur le if et sur le while on dirait que le if et le while ne sont pas reconnue.
message d'erreur

./wallpapers_auto_freebox.sh: ligne25: [4 : commande introuvable (ça correspond au if)
./wallpapers_auto_freebox.sh: ligne39: [1 : commande introuvable (ça correspond au while)


le script ci dessous avec les commentaires en face de chaque ligne

Code : Tout sélectionner


#! /bin/bash

# VARIABLES A MODIFIER EN FONCTION DE VOS PARAMETRES
nbimagemax=5      #nombre d'images disponibles dans le dossier photos de la freebox server
codetelco=37286214 #code de la télécommande freebox dispo dans les parametres de la freebox player

# FIN DES VARIABLES A MODIFIER

nbimagemin=1
imagealeatoire=$[($RANDOM % ($[$nbimagemax - $nbimagemin] + 1)) + $nbimagemin] #definie un nombre aleatoire
nbfoisdown=$(($imagealeatoire - 1)) #variable qui permettra de faire descendre le curseur de la freebox
tourne=1 #variable de boucle
echo $imagealeatoire
echo $nbfoisdown
echo $tourne
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=power&long=false" #allumer la freebox
sleep 8
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=home&long=false" #icone principal
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=left&long=false" #deplacement a gauche
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=ok&long=false" #valider
sleep 8
if $imagealeatoire -eq 1 #si numero image aleatoire est egal a 1 alors
then
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=ok&long=false" #selectionne la premiere image
sleep 8
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=green&long=false" #appui sur la touche verte
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=ok&long=false" #valider pour passer en fond d ecran
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=home&long=false" #retour au menu
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=home&long=false" #retour icone principal
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=power&long=false" #eteindre la freebox
sleep 1
curl "http://192.168.1.37/samsungremote.php?key=POWEROFF" #eteindre la tele samsung
else # sinon
while $tourne -ne $nbfoisdown # tant que la variable de boucle tourne n'est pas egale a la variable nbfoisdown fait
do curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=down&long=false" # deplacement vers le bas
sleep 5
tourne=$(($tourne + 1)) #boucle + 1
done
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=ok&long=false" #selectionne l image
sleep 8
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=green&long=false" #appui sur la touche verte
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=ok&long=false" #valider pour passer en fond d ecran
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=home&long=false" #retour au menu
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=home&long=false" #retour icone principal
sleep 1
#curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=power&long=false" #eteindre la freebox
sleep 1
#curl "http://192.168.1.37/samsungremote.php?key=POWEROFF"  #eteindre la tele samsung
fi


si quelqu'un passe par la et me donne un coup de main pour ce petit script, ce n'est pas de refus ;)

merci pour les futures réponses
Bragu Demon
Messages : 1
Inscription : 12 déc. 2018, 10:56

Re: Freebox player : modif auto du wallpaper

Message par Bragu Demon »

Bonjour,

Nouveau dans la domotique, je voulais savoir si vous aviez avancé sur ce (vieux) sujet.
Je souhaiterai en effet arriver à faire changer le fond d'écran de la freebox révolution (à certaines date ou aléatoirement)

Du coup je me demande si vous avez pu résoudre votre soucis mais également par où commencer ?


Merci :)

A titre informatif (mais je suppose que le soucis est résolu depuis 2017) je pense que les erreurs sont dues à une mauvaise syntaxe :

Code : Tout sélectionner

if [ test ]
then
        [i]...actions...[/i]
fi

Code : Tout sélectionner

while [ condition ]
do
  [i]...actions...[/i]
done
:!: Il y a des espaces à l'intérieur des crochets :!:

Du coup le script devient (je me suis permis d'indenter un peu) :

Code : Tout sélectionner

#! /bin/bash

# VARIABLES A MODIFIER EN FONCTION DE VOS PARAMETRES
nbimagemax=5      #nombre d'images disponibles dans le dossier photos de la freebox server
codetelco=37286214 #code de la télécommande freebox dispo dans les parametres de la freebox player

# FIN DES VARIABLES A MODIFIER

nbimagemin=1
imagealeatoire=$[($RANDOM % ($[$nbimagemax - $nbimagemin] + 1)) + $nbimagemin] #definie un nombre aleatoire
nbfoisdown=$(($imagealeatoire - 1)) #variable qui permettra de faire descendre le curseur de la freebox
tourne=1 #variable de boucle
echo $imagealeatoire
echo $nbfoisdown
echo $tourne
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=power&long=false" #allumer la freebox
sleep 8
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=home&long=false" #icone principal
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=left&long=false" #deplacement a gauche
sleep 1
curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=ok&long=false" #valider
sleep 8
if [ $imagealeatoire -eq 1 ] #si numero image aleatoire est egal a 1 alors
  then
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=ok&long=false" #selectionne la premiere image
  sleep 8
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=green&long=false" #appui sur la touche verte
  sleep 1
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=ok&long=false" #valider pour passer en fond d ecran
  sleep 1
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=home&long=false" #retour au menu
  sleep 1
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=home&long=false" #retour icone principal
  sleep 1
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=power&long=false" #eteindre la freebox
  sleep 1
  curl "http://192.168.1.37/samsungremote.php?key=POWEROFF" #eteindre la tele samsung
else # sinon
  while [ $tourne -ne $nbfoisdown ] # tant que la variable de boucle tourne n'est pas egale a la variable nbfoisdown fait
    do curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=down&long=false" # deplacement vers le bas
    sleep 5
    tourne=$(($tourne + 1)) #boucle + 1
  done
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=ok&long=false" #selectionne l image
  sleep 8
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=green&long=false" #appui sur la touche verte
  sleep 1
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=ok&long=false" #valider pour passer en fond d ecran
  sleep 1
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=home&long=false" #retour au menu
  sleep 1
  curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=home&long=false" #retour icone principal
  sleep 1
  #curl "http://hd1.freebox.fr/pub/remote_control?code=$codetelco&key=power&long=false" #eteindre la freebox
  sleep 1
  #curl "http://192.168.1.37/samsungremote.php?key=POWEROFF"  #eteindre la tele samsung
fi
MisterT
Messages : 55
Inscription : 12 avr. 2015, 19:04

Re: Freebox player : modif auto du wallpaper

Message par MisterT »

salut Bragu Demon
Pour ce script n'ayant pas eu de réponse, je l'avais finalement fait avec des "case" plutôt qu'avec les if et while mais le script était très long mais fonctionnel
Je confirme bien que la modif que tu as fait rend le script fonctionnel. j'ai simplement changé les valeurs des sleep car ils sont un peu courts pour que la manip s’exécute bien. Du coup, j'ai changé:
- les sleep 1 par sleep 3
- les sleep 8 par sleep 10
Il suffit ensuite de lier ce script a un bouton virtuel en push on et de faire un planning pour son déclenchement

Pour les wallpapers, le site jolie freebox en propose et il n'est pas tres compliqué dans créer

merci et A+
Dernière modification par vil1driver le 01 janv. 2019, 18:59, modifié 1 fois.
Raison : Suppression lien inapproprié
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Freebox player : modif auto du wallpaper

Message par vil1driver »

Salut,

Je n'ai lu que le titre, désolé si je suis à côté :?

Ceci vous intéressera peut-être

https://easydomoticz.com/forum/viewtopi ... =17&t=1164
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Répondre