Domoticz et Freebox

Forum pour tous les autres objets : sondes météo, capteurs, actionneurs ...
Vous avez un besoin mais vous ne savez pas quel matériel choisir ? C'est ici.
manuloup
Messages : 781
Inscription : 18 févr. 2015, 13:05

Re: Domoticz et Freebox

Message par manuloup »

minos a écrit :Coucou,

Je crois que ce coup ci , je suis pas mal .... ;)
même si je ne récupère pas toute la description du Firmware et le Utime complet ( pour ça il device virtuel TEXT)
les devices personnalisés sont tellement sympa .... :D
Final_Freebox.JPG
Voili , voilou...


Minos
Bonjour Minos,

Tu pourrais nous donner tes lignes concernant les montant brut montant et descendant, que ça évite à chacun de chercher ? A la limite je les ajouterai au tuto.

Merci !

Manu
Synology DS920+ avec VM Debian 12, Aeon Labs Z-Stick Gen5, Aeon Zwave et devices zwaves , Teleinfo USB, devices Zigbee, batterie Marstek Venus E, Shelly Pro 3EM...
manuloup
Messages : 781
Inscription : 18 févr. 2015, 13:05

Re: Domoticz et Freebox

Message par manuloup »

A 1ère vue je dirais :
up_rate=$(get_json_value_for_key "$answer" 'result.up.rate')
up_rate=$(awk "BEGIN {printf \"%.1f\",${up_rate}/1024}")
up_rate=$(echo "$up_rate%20Mb/s")
down_rate=$(get_json_value_for_key "$answer" 'result.down.rate')
down_rate=$(awk "BEGIN {printf \"%.1f\",${down_rate}/1024}")
down_rate=$(echo "$down_rate%20Mb/s")
Tu confirmes ?
Synology DS920+ avec VM Debian 12, Aeon Labs Z-Stick Gen5, Aeon Zwave et devices zwaves , Teleinfo USB, devices Zigbee, batterie Marstek Venus E, Shelly Pro 3EM...
minos
Messages : 72
Inscription : 30 oct. 2016, 18:40

Re: Domoticz et Freebox

Message par minos »

Salut Manuloup,

Code : Tout sélectionner

#!/bin/bash
cd /volume1/@appstore/domoticz/var/scripts/freebox
# Domoticz server
DOMOTICZ_SERVER="192.168.0.25:8084"
# Freebox Server idx
FREEBOX_FW_IDX="47"
FREEBOX_UPTIME_IDX="56"
FREEBOX_UP_MAX_IDX="49"
FREEBOX_DOWN_MAX_IDX="50"
FREEBOX_DISKSPACE_IDX="51"
FREEBOX_SPEED_DOWNLOAD="53"
# Password admin domoticz à modifier
pwd=toto_est_sur_un_bateau
#
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="titi_lui_boit_une_bière"

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

# login
login_freebox "$MY_APP_ID" "$MY_APP_TOKEN"

# get /connection/xdsl
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')
up_max_rate=$(awk "BEGIN {printf \"%.1f\",${up_max_rate}/1024}")
up_max_rate=$(echo "$up_max_rate%20Mb/s")
down_max_rate=$(get_json_value_for_key "$answer" 'result.down.maxrate')
down_max_rate=$(awk "BEGIN {printf \"%.1f\",${down_max_rate}/1024}")
down_max_rate=$(echo "$down_max_rate%20Mb/s")

# extract Uptime FREEBOX
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} "

# get /system data
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} "

# get /storage/disk data
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=$(awk "BEGIN {printf \"%.2f\",${freediskspace}/1024}")
freediskspace=$(echo "${freediskspace}%20Go")

echo "Free space HD : ${freediskspace} "

# get ConnectionStatus data
answer=$(call_freebox_api '/connection/')
#echo " answer : ${answer} "
#echo " "
# extract rate_down
rate_down=$(get_json_value_for_key "$answer" 'result.rate_down')
rate_down=$(awk "BEGIN {printf \"%.1f\",${rate_down}/1024}")
rate_down=$(echo "$rate_down%20Ko/s")
echo "Vitesse de Telechargement : ${rate_down} "

#
#Envoi des valeurs vers les devices virtuels
# Send data to Domoticz
curl --silent -s -i -H  "Accept: application/json"  "http://admin:$pwd@$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:$pwd@$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:$pwd@$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:$pwd@$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:$pwd@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_DISKSPACE_IDX&nvalue=0&svalue=$freediskspace"
curl --silent -s -i -H  "Accept: application/json"  "http://admin:$pwd@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_SPEED_DOWNLOAD&nvalue=0&svalue=$rate_down"
Voilà le script complet.... :D

@+
Minos
Ninipc
Messages : 101
Inscription : 28 nov. 2016, 20:07

Re: Domoticz et Freebox

Message par Ninipc »

Bonjour,

dites moi j'arrive pas a envoyer les infos vers mes devices virtuels. Le script fonctionne ca me sort les infos

Code : Tout sélectionner

pi@raspberrypi ~/freebox $ ./freebox_infos.sh
Uptime : 1%20jours%202%20heures%2036%20mn%2058%20secs
Max Upload xDSL rate: 1.1%20Mb/s
Max Download xDSL rate: 10.6%20Mb/s
Firmware : 3.3.5
Free space HD : 42.97%20Go
Mais ca s'arrête là j'ai pas la partie HTTP qu'on peut voir sur le tuto. Je vois pas d'où ca peut provenir. J'ai essayé plusieurs login/pwd dans les lignes

Code : Tout sélectionner

curl --silent -s -i -H  "Accept: application/json"  "http://admin:$pwd@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_FW_IDX&nvalue=0&svalue=$fwfreebox"
Aucun résultat. Une idée?
minos
Messages : 72
Inscription : 30 oct. 2016, 18:40

Re: Domoticz et Freebox

Message par minos »

Salut,

peux-tu mettre ton script entier ....


t 'as une erreur dans le traitement du script ???

tes IDX sont de devices sont bons ...?
Ninipc
Messages : 101
Inscription : 28 nov. 2016, 20:07

Re: Domoticz et Freebox

Message par Ninipc »

Bien sûr voilà le script entier. J'ai aussi essayé de mettre login/pwd en dur plutôt qu'une variable mais c'est pareil. Les IDX sont ok.

Code : Tout sélectionner

#!/bin/bash
cd /home/pi/freebox
# Domoticz server
DOMOTICZ_SERVER="192.168.1.30:8080"
# Freebox Server idx
FREEBOX_FW_IDX="205"
FREEBOX_UPTIME_IDX="204"
FREEBOX_UP_MAX_IDX="203"
FREEBOX_DOWN_MAX_IDX="202"
FREEBOX_DISKSPACE_IDX="201"
# Password admin domoticz à modifier
admin=monlogin
pwd=monmdp
#
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="ahIt9vHou3WOti52hf+7VCaOiD+VwcArPVgGa+LwTd7W2njcjHIspIUMYEOMiaaR"

# 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')
up_max_rate=$(awk "BEGIN {printf \"%.1f\",${up_max_rate}/1024}")
up_max_rate=$(echo "$up_max_rate%20Mb/s")
down_max_rate=$(get_json_value_for_key "$answer" 'result.down.maxrate')
down_max_rate=$(awk "BEGIN {printf \"%.1f\",${down_max_rate}/1024}")
down_max_rate=$(echo "$down_max_rate%20Mb/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=$(awk "BEGIN {printf \"%.2f\",${freediskspace}/1024}")
freediskspace=$(echo "${freediskspace}%20Go")

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:$pwd@$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:$pwd@$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:$pwd@$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:$pwd@$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:$pwd@$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$FREEBOX_DISKSPACE_IDX&nvalue=0&svalue=$freediskspace"
La partie "HTTP" se lance pas je sais pas d'où ca vient. Je vois bien que ca mouline un peu juste après avoir affiché l'espace disque puis je reviens a la ligne de commande.

Code : Tout sélectionner

pi@raspberrypi ~/freebox $ ./freebox_infos.sh
Uptime : 1%20jours%2014%20heures%2052%20mn%2050%20secs
Max Upload xDSL rate: 1.1%20Mb/s
Max Download xDSL rate: 10.9%20Mb/s
Firmware : 3.3.5
Free space HD : 42.97%20Go
pi@raspberrypi ~/freebox $
manuloup
Messages : 781
Inscription : 18 févr. 2015, 13:05

Re: Domoticz et Freebox

Message par manuloup »

Tu peux essayer sans mot de passe en autorisant ta machine locale dans domoticz ? Tu vas dans Réglages -> Paramètres et tu mets tes réseaux locaux sans mot de passe. Si ça fonctionne, c'est probablement lié à tes variables admin et pwd. Faudrait peut-être faire un export non ?
Synology DS920+ avec VM Debian 12, Aeon Labs Z-Stick Gen5, Aeon Zwave et devices zwaves , Teleinfo USB, devices Zigbee, batterie Marstek Venus E, Shelly Pro 3EM...
minos
Messages : 72
Inscription : 30 oct. 2016, 18:40

Re: Domoticz et Freebox

Message par minos »

manuloup a écrit :Tu peux essayer sans mot de passe en autorisant ta machine locale dans domoticz ? Tu vas dans Réglages -> Paramètres et tu mets tes réseaux locaux sans mot de passe. Si ça fonctionne, c'est probablement lié à tes variables admin et pwd. Faudrait peut-être faire un export non ?

essaie ce que manuloup explique:

voici mes param:
param.JPG
param.JPG (35.88 Kio) Consulté 9016 fois
Ninipc
Messages : 101
Inscription : 28 nov. 2016, 20:07

Re: Domoticz et Freebox

Message par Ninipc »

Merci pour l'aide.

J'avais déjà la plage ip interne renseignée, a tout hasard je suis passé de "basic-auth" à "connexion" pour l'authentification vu que c'est comme ca chez toi mais 0 changements :(
Oh pitain je sais. Je relis et là je vois une erreur dans mon ip domoticz :(
Ca marche ! Je suis un ~#{[|`\^@]} de boulet. :D
minos
Messages : 72
Inscription : 30 oct. 2016, 18:40

Re: Domoticz et Freebox

Message par minos »

ah ,

je suis content pour toi .... cool :D
Répondre