Page 1 sur 1
Aide pour ne pas allumer un interrupteur si deja allumé
Publié : 13 déc. 2017, 18:12
par Babac
Bonjour
Apres plusieurs heurs voir jours de recherche et étant débutant (1er script) je vous retourne mon problème je possède un interrupteur qui me communique l état du freebox player.
Je voudrai faire un script qui interroge l'interrupteur état avant de lancer la commande on ou off du freebox player pour évité qu il éteind la free si elle est allumé mais je ni arrive pas .
Je vous remercie pour tout aide.
Mon script bash pour le retour d'état.
#!/bin/bash
#ETAT FREE
SERVER="
http://xxxxx:xxxxxxxx@192.168.0.xx:8080"
checker="192.168.0.xx"
idx="5"
status=`curl -s '
http://192.168.0.xx:54243/device.xml' | grep -oP '(?<=<modelDescription>).*?(?=</modelDescription>)'`
if [ "$status" = "Freebox UPnP Renderer" ]
then
current_Status="On"
else
current_Status="Off"
fi
if [ $current_Status = 'On' ]
then
url="
http://xxxxx:xxxxxxxx@192.168.0.xx:8080 ... itchcmd=On"
curl $url
else
url="
http://xxxxx:xxxxxxxx@192.168.0.xx:8080 ... tchcmd=Off"
curl $url
fi
Re: Aide pour ne pas allumer un interrupteur si deja allumé
Publié : 14 déc. 2017, 14:38
par landaisbenj
Met ton code entre la balise code s'il te plait.
Tu sélectionne ton script bash et tu clique sur le bouton Code.
Comment s'appel l'interrupteur qui te communique l état du freebox player?
Re: Aide pour ne pas allumer un interrupteur si deja allumé
Publié : 14 déc. 2017, 18:45
par Babac
Bonsoir et merci de m'accorder un peut de temps

.
Le nom de l’interrupteur est Etat Freebox.
voici le code j’espère que c'est comme ça qu il fallait faire et encore merci .
Code : Tout sélectionner
#!/bin/bash
#SI ON VEUT FREE
SERVER="http://user:password@192.168.0.xx:8080"
checker="192.168.0.50"
idx="5"
status=`curl -s 'http://192.168.0.50:54243/device.xml' | grep -oP '(?<=<modelDescription>).*?(?=</modelDescription>)'`
if [ "$status" = "Freebox UPnP Renderer" ]
then
current_Status="On"
else
current_Status="Off"
fi
if [ $current_Status = 'On' ]
then
url="http://user:password@192.168.0.xx:8080/json.htm?type=command¶m=switchlight&idx="$idx"&switchcmd=On"
curl $url
else
url="http://user:password@192.168.0.xx:8080/json.htm?type=command¶m=switchlight&idx="$idx"&switchcmd=Off"
curl $url
fi
Re: Aide pour ne pas allumer un interrupteur si deja allumé
Publié : 16 déc. 2017, 22:12
par Babac
Bonsoir
Je galère ayant aucune connaissance en script je vous explique ce que je voudrais faire.
je voudrais exécuter ce script et récupéré la valeur On ou Off
si la valeur est 'On' ne rien faire si 'Off' allumer la freeplayer la tv ,canalsat et mettre une chaine.
c'est pour m'en servir comme réveil
merci d avance pour toute aide
Re: Aide pour ne pas allumer un interrupteur si deja allumé
Publié : 18 déc. 2017, 01:33
par landaisbenj
Pour resumer tu veux connaitre l'etat de ta freebox, pour etre sur qu'elle est eteinte lors d'une mise en fonction automatique a une certaines heure.
Genre:
Si il est 6h et que la freebox est eteinte alors
J'allume la freebox je met canalsat et j'allume les enceintes.
fin
Est ce que ton script bash fonctionne ?
Sinon dans un seul LUA tu devrais pourvoir reussir a le faire. Mais il faut surement d'authentifier sur la freebox pour acceder a l'api je pense ?
Il faudrait coder un truc du genre:
Une fonction que te donne l'etat du freeplayer en parsans le retour json d'une commande:
Code : Tout sélectionner
os.execute(curl -s 'http://192.168.0.50:54243/device.xml' jq status[] (jesaispascommentcasecrit))
Si cette fonction te retourne Off
alors le script pourrait etre un script time avec
Code : Tout sélectionner
if time=06:00 then
les commandes pour mettre en fonction la freebox. Un truc du genre api freeplayer..
end
Re: Aide pour ne pas allumer un interrupteur si deja allumé
Publié : 18 déc. 2017, 16:54
par DreamL
Salut
J'ai un principe identique pour tester si mon pc est allumé
Je te met une partie de mon script
Code : Tout sélectionner
STATUS=$(curl -s $URL_DOMOTICZ"/json.htm?type=devices&rid=353" | jq -r .result[].Status)
echo "Status switch PC DreamL Allumé = "$STATUS
#Met a jour la variable domoticz si elle est a Off (pc éteint)
echo "PC allumé"
if [ $STATUS = "Off" ]
then
curl $URL_DOMOTICZ"/json.htm?type=command¶m=switchlight&idx=353&switchcmd=On"
fi
#Met a jour la variable domoticz si elle est a On (pc allumé)
echo "PC éteind"
if [ $STATUS = "On" ]
then
curl $URL_DOMOTICZ"/json.htm?type=command¶m=switchlight&idx=353&switchcmd=Off"
fi
Re: Aide pour ne pas allumer un interrupteur si deja allumé
Publié : 19 déc. 2017, 08:12
par Babac
Bonjour
Merci de vos réponses
J'ai trouvé une solution en modifiant le script Bash au lieu de mettre le lien pour mettre à jour l'interrupteur État Freebox j'ai mis un lien pour exécuter un autre script.
Script Etat Free
Code : Tout sélectionner
#!/bin/bash
#FREE ON
status=`curl -s 'http://192.168.0.50:54243/device.xml' | grep -oP '(?<=<modelDe$
if [ "$status" = "Freebox UPnP Renderer" ]
then
current_Status="On"
else
current_Status="Off"
fi
if [ $current_Status = 'On' ]
then
echo Player On
else
"/home/pi/domoticz/scripts/bash/powertvmatin.sh"
curl $url
fi
Script commande Free et TV
Code : Tout sélectionner
#!/bin/sh
sudo curl "http://192.168.0.17/remote2.htm?button001"
sudo curl "http://hd1.freebox.fr/pub/remote_control?code=70798118&key=power"
sleep 5
sudo curl "http://hd1.freebox.fr/pub/remote_control?code=70798118&key=home"
sleep 1
sudo curl "http://hd1.freebox.fr/pub/remote_control?code=70798118&key=down"
sudo curl "http://hd1.freebox.fr/pub/remote_control?code=70798118&key=down"
sudo curl "http://hd1.freebox.fr/pub/remote_control?code=70798118&key=ok"
sleep 2
sudo curl "http://hd1.freebox.fr/pub/remote_control?code=70798118&key=1&long=tr$
sudo curl "http://hd1.freebox.fr/pub/remote_control?code=70798118&key=6&long=tr$
sudo curl "http://hd1.freebox.fr/pub/remote_control?code=70798118&key=5"
Je voudrais savoir si possible de tout mettre dans un seul script j'ai essayé de mettre les commandes Free et TV à la place du lien du script sa fonctionne pas.
Encore merci
Bonne Journé

Re: Aide pour ne pas allumer un interrupteur si deja allumé
Publié : 22 juin 2018, 10:16
par nico0639
Salut !
Je suis tombé sur ce post qui m'intéresse. J'aimerais contrôler mon Freebox Player avec Siri via domoticz, mais je souhaite que siri sache si le Player est déjà allumé ( avec la télécommande par exemple )
Pour ça je souhaite récupérer ton script, mais comprends pas, pas moyen de faire marcher le statut
J'ai mis ça pour définir la variable status
Code : Tout sélectionner
local status = [curl -s 'http://192.168.1.51:54243/device.xml' | grep -oP '(?<=<modelDescription>).*?(?=</modelDescription>)']
Sauf que pas moyen, il ne me remonte pas le bon status.
Si je fais dans mon code
Et bien ça me print rien du tout.
Je fais quelque chose de mal, mais quoi ?