Page 7 sur 22

Re: Domoticz et Freebox

Publié : 26 juin 2016, 12:19
par amelyfred
Salut manuloup,
Le résultat est obtenu est en le lançant manuellement via ./freebox_infos.sh
Voici mon script :

Code : Tout sélectionner

#!/bin/bash
cd /home/pi/freebox
# Domoticz server
DOMOTICZ_SERVER="192.168.0.22:8080"
# Freebox Server idx
FREEBOX_FW_IDX="6"
FREEBOX_UPTIME_IDX="5"
FREEBOX_UP_MAX_IDX="4"
FREEBOX_DOWN_MAX_IDX="3"
FREEBOX_DISKSPACE_IDX="2"
#
function show_time () {
    num=$1
    min=0
    hour=0
    day=0
    if((num>59));then
        ((sec=num%60))
        ((num=num/60))
        if((num>59));then
            ((min=num%60))
            ((num=num/60))
            if((num>23));then
                ((hour=num%24))
                ((day=num/24))
            else
                ((hour=num))
            fi
        else
            ((min=num))
        fi
    else
        ((sec=num))
    fi
    echo "$day"%20jours%20"$hour"%20heures%20"$min"%20mn%20"$sec"%20secs
}

MY_APP_ID="Domoticz.app"
MY_APP_TOKEN="Hg9iK1qDBWMMX2UihwlkLy+gNclLNmKQ5uXidJs9KuD8C5K6419GiZVi4MFiRiGp"

# source the freeboxos-bash-api
source ./freeboxos_bash_api.sh

# login
login_freebox "$MY_APP_ID" "$MY_APP_TOKEN"

# get xDSL data
answer=$(call_freebox_api '/connection/xdsl')
#echo " answer : ${answer} "
#echo " "
# extract max upload xDSL rate
up_max_rate=$(get_json_value_for_key "$answer" 'result.up.maxrate')%20kb/s
down_max_rate=$(get_json_value_for_key "$answer" 'result.down.maxrate')%20kb/s
uptime=$(get_json_value_for_key "$answer" 'result.status.uptime')
uptimefreebox=$(show_time ${uptime})
echo "Uptime : ${uptimefreebox} "
echo "Max Upload xDSL rate: ${up_max_rate} "
echo "Max Download xDSL rate: ${down_max_rate} "
answer=$(call_freebox_api '/system')
#echo " answer : ${answer} "
#uptimefreebox=$(get_json_value_for_key "$answer" 'result.uptime')
fwfreebox=$(get_json_value_for_key "$answer" 'result.firmware_version')
#echo "Uptime : ${uptimefreebox} "
echo "Firmware : ${fwfreebox} "
answer=$(call_freebox_api '/storage/disk')
answer=$(echo ${answer} | sed -e "s/\[//g" | sed -e "s/\]//g")
#echo " answer : ${answer} "
freediskspace=$(get_json_value_for_key "$answer" 'result.partitions.free_bytes')
freediskspace=$(echo $((${freediskspace}/1024/1024)))
freediskspace=$(echo "${freediskspace}%20MBytes")
echo "Free space HD : ${freediskspace} "
#
#Envoi des valeurs vers les devices virtuels
# Send data to Domoticz
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_FW_IDX&nvalue=0&svalue=$fwfreebox"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=88&nvalue=0&svalue=$uptimefreebox"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=89&nvalue=0&svalue=$up_max_rate"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=90&nvalue=0&svalue=$down_max_rate"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=91&nvalue=0&svalue=$freediskspace"

Mes Idx sont bien les 2,3,4,5,6

Fred

Re: Domoticz et Freebox

Publié : 26 juin 2016, 12:54
par manuloup
Lol, mate ton script à la fin :
amelyfred a écrit :Salut manuloup,
Le résultat est obtenu est en le lançant manuellement via ./freebox_infos.sh
Voici mon script :

Code : Tout sélectionner


#Envoi des valeurs vers les devices virtuels
# Send data to Domoticz
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_FW_IDX&nvalue=0&svalue=$fwfreebox"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=88&nvalue=0&svalue=$uptimefreebox"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=89&nvalue=0&svalue=$up_max_rate"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=90&nvalue=0&svalue=$down_max_rate"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=91&nvalue=0&svalue=$freediskspace"

Mes Idx sont bien les 2,3,4,5,6

Fred
Mets ça, ça ira mieux :

Code : Tout sélectionner

curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_FW_IDX&nvalue=0&svalue=$fwfreebox"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_UPTIME_IDX&nvalue=0&svalue=$uptimefreebox"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_UP_MAX_IDX&nvalue=0&svalue=$up_max_rate"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_DOWN_MAX_IDX&nvalue=0&svalue=$down_max_rate"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:mdp@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_DISKSPACE_IDX&nvalue=0&svalue=$freediskspace"

Re: Domoticz et Freebox

Publié : 26 juin 2016, 12:58
par manuloup
Voilà, j'ai également corrigé mon tuto afin que personne d'autre ne rencontre le problème. Désolé, tu as essuyé les plâtres :)

Re: Domoticz et Freebox

Publié : 26 juin 2016, 17:27
par amelyfred
Ah oui OK j'avais pas vu!!!!

Merci les gars de m'avoir ouvert les yeux.
Bonne fin de journée.
Fred

Re: Domoticz et Freebox

Publié : 27 juin 2016, 16:04
par itcitc77
bonjour a tous
j'ai du rater quelque chose lors du lancement du script en manuel voila se que j'obtient .
-bash: freebox_infos.sh : commande introuvable
c'est sur cela vas moins bien marcher dans domoticz !

bon j'ai mis tous les droits sur les fichiers.
fichier droit proprietaire
freebox_infos.sh rwxrwxrwx pi

Merci de vos réponse

Re: Domoticz et Freebox

Publié : 27 juin 2016, 16:52
par manuloup
itcitc77 a écrit :bonjour a tous
j'ai du rater quelque chose lors du lancement du script en manuel voila se que j'obtient .
-bash: freebox_infos.sh : commande introuvable
c'est sur cela vas moins bien marcher dans domoticz !

bon j'ai mis tous les droits sur les fichiers.
fichier droit proprietaire
freebox_infos.sh rwxrwxrwx pi

Merci de vos réponse
Quand tu es dans le répertoire :

./freebox_infos.sh

Sinon dans ta crontab, mets le chemin absolu, du genre /home/pi/freebox_infos.sh

Re: Domoticz et Freebox

Publié : 27 juin 2016, 17:23
par itcitc77
bah voila les erreurs
pi@raspberrypi:~$ cd freebox
pi@raspberrypi:~/freebox$ ./freebox_infos.sh
-bash: ./freebox_infos.sh : /bin/bash^M : mauvais interpréteur: Aucun fichier ou dossier de ce type
pi@raspberrypi:~/freebox$
pi@raspberrypi:~/freebox$

Re: Domoticz et Freebox

Publié : 27 juin 2016, 17:36
par manuloup
itcitc77 a écrit :bah voila les erreurs
pi@raspberrypi:~$ cd freebox
pi@raspberrypi:~/freebox$ ./freebox_infos.sh
-bash: ./freebox_infos.sh : /bin/bash^M : mauvais interpréteur: Aucun fichier ou dossier de ce type
pi@raspberrypi:~/freebox$
pi@raspberrypi:~/freebox$
Bah voilà la réponse : /bin/bash^M
Editer les fichiers sous windows, c'est mal.

Re: Domoticz et Freebox

Publié : 27 juin 2016, 17:51
par itcitc77
merci de ta réponse j'ai trouvé comment le lancer mais j'ai des erreurs
commande pour le lancer sudo sh freebox_infos.sh et cela se lance



freebox_infos.sh: 2: cd: can't cd to /home/pi/freebox
freebox_infos.sh: 14: freebox_infos.sh: Syntax error: "(" unexpected

voila le code :
#!/bin/bash
cd /home/pi/freebox
# Domoticz server
DOMOTICZ_SERVER="192.168.0.16:8080"
# Freebox Server idx
FREEBOX_FW_IDX="140"
FREEBOX_UPTIME_IDX="139"
FREEBOX_UP_MAX_IDX="141"
FREEBOX_DOWN_MAX_IDX="137"
FREEBOX_DISKSPACE_IDX="136"
# Password admin domoticz à modifier
pwd=toto
#
function show_time () {
num=$1
min=0
hour=0
day=0
if((num>59));then
((sec=num%60))
((num=num/60))
if((num>59));then
((min=num%60))
((num=num/60))
if((num>23));then
((hour=num%24))
((day=num/24))
else
((hour=num))
fi
else
((min=num))
fi
else
((sec=num))
fi
echo "$day"%20jours%20"$hour"%20heures%20"$min"%20mn%20"$sec"%20secs
}

MY_APP_ID="Domoticz.app"
MY_APP_TOKEN="U+u/UZppnIMOa4JdXZRo8PWgg5ATX5F3iBCa/AMgLTQuermsisDoV0FES3UqkaT0"
# source the freeboxos-bash-api
source ./freeboxos_bash_api.sh

# login
login_freebox "$MY_APP_ID" "$MY_APP_TOKEN"

# get xDSL data
answer=$(call_freebox_api '/connection/xdsl')
#echo " answer : ${answer} "
#echo " "
# extract max upload xDSL rate
up_max_rate=$(get_json_value_for_key "$answer" 'result.up.maxrate')%20kb/s
down_max_rate=$(get_json_value_for_key "$answer" 'result.down.maxrate')%20kb/s
uptime=$(get_json_value_for_key "$answer" 'result.status.uptime')
uptimefreebox=$(show_time ${uptime})
echo "Uptime : ${uptimefreebox} "

echo "Max Upload xDSL rate: ${up_max_rate} "
echo "Max Download xDSL rate: ${down_max_rate} "
answer=$(call_freebox_api '/system')
#echo " answer : ${answer} "
#uptimefreebox=$(get_json_value_for_key "$answer" 'result.uptime')
fwfreebox=$(get_json_value_for_key "$answer" 'result.firmware_version')
#echo "Uptime : ${uptimefreebox} "
echo "Firmware : ${fwfreebox} "
answer=$(call_freebox_api '/storage/disk')
answer=$(echo ${answer} | sed -e "s/\[//g" | sed -e "s/\]//g")
#echo " answer : ${answer} "
freediskspace=$(get_json_value_for_key "$answer" 'result.partitions.free_bytes')
freediskspace=$(echo $((${freediskspace}/1024/1024)))
freediskspace=$(echo "${freediskspace}%20MBytes")
echo "Free space HD : ${freediskspace} "
#
#Envoi des valeurs vers les devices virtuels
# Send data to Domoticz
curl --silent -s -i -H "Accept: application/json" "http://toto:toto@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_FW_IDX&nvalue=0&svalue=$fwfreebox"
curl --silent -s -i -H "Accept: application/json" "http://toto:totoe@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=139&nvalue=0&svalue=$uptimefreebox"
curl --silent -s -i -H "Accept: application/json" "http://toto:toto@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=141&nvalue=0&svalue=$up_max_rate"
curl --silent -s -i -H "Accept: application/json" "http://toto:toto@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=137&nvalue=0&svalue=$down_max_rate"
curl --silent -s -i -H "Accept: application/json" "http://toto:toto@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=136&nvalue=0&svalue=$freediskspace"

Re: Domoticz et Freebox

Publié : 27 juin 2016, 21:45
par manuloup
1) corrige le cd qui plante en indiquant le bon répertoire, celui oú se trouve ton script

2)

Code : Tout sélectionner

function show_time () {
ligne 14, as-tu bien mis des espaces comme dans mon script ? Il y a une erreur de copier/collé quelque part.