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.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Domoticz et Freebox

Message par vil1driver »

Salut,

Directement dans ton navigateur, ceci fonctionne ?

http://mafreebox.freebox.fr/pub/fbx_info.txt
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
rad0712
Messages : 11
Inscription : 29 août 2016, 15:34

Re: Domoticz et Freebox

Message par rad0712 »

Bonjour,

Oui cela fonctionne, je recupere les informations de la freebox :
______________________________________________________________________

Etat de la Freebox
______________________________________________________________________


Informations générales :
========================

Modèle Freebox ADSL
Version du firmware 1.5.25
Mode de connection Dégroupé
Temps depuis la mise en route 9 jours, 13 heures, 11 minutes


Téléphone :
===========

Etat Ok
Etat du combiné Raccroché
Sonnerie Inactive


Adsl :
======

Etat Showtime
Protocole RE-ADSL2
Mode Interleaved

Descendant Montant
-- --


Journal de connexion adsl :
---------------------------



Wifi :
======



Réseau :
========

Attributions dhcp :
-------------------

Adresse MAC Adresse IP
-- --


Redirections de ports :


Interfaces réseau :
Cordialement
rad0712
Messages : 11
Inscription : 29 août 2016, 15:34

Re: Domoticz et Freebox

Message par rad0712 »

Bonjour,

Je pense avoir trouve une erreur. Je ne mettais pas le login et mot de passe de domoticz.

Par contre je n'ai pas de retour dans domoticz (pas de message d’erreur)

J'ai rendu mon script exécutable :

Code : Tout sélectionner

chmod +x freebox_infos.sh
pas d'erreur

lorsque je teste manuellement je n'ai rien, pas de retour des variables , est ce normal ?

merci de votre retour
rad0712
Messages : 11
Inscription : 29 août 2016, 15:34

Re: Domoticz et Freebox

Message par rad0712 »

Re,

Desole s'est encore moi.
Voila ou j'en suis.
Le dernier code que j'utilise

Code : Tout sélectionner

#!/bin/bash
#SERVER

SERVER1="login:mdp"
SERVER2="192.168.0.20:9090"

DOWNLOAD=`wget -q -O - http://mafreebox.freebox.fr/pub/fbx_info.txt | grep ATM | awk '{printf $3}'`
curl -s "http://$SERVER1@$SERVER2/json.htm?type=command&param=udevice&idx=129&svalue=$DOWNLOAD"
printf $DOWNLOAD

UPLOAD=`wget -q -O - http://mafreebox.freebox.fr/pub/fbx_info.txt | grep ATM | awk '{printf $5}'`
curl -s "http://$SERVER1@$SERVER2/json.htm?type=command&param=udevice&idx=130&svalue=$UPLOAD"
Lorsque j'execute le script , le printf donne bien une valeur.
Voila ce que j'ai mis dans le crontab

Code : Tout sélectionner

*/1 * * * * /home/pi/freebox/freebox_test.sh > /dev/null
Par contre rien dans domoticz.
Comment savoir si la fonction json fonctionne correctement ? (en gros pas d'erreur)
Dans les log de domoticz je ne vois rien, meme pas un acces ....

Merci de m'aider, je ne sais plus quoi faire :oops:

Rad
rad0712
Messages : 11
Inscription : 29 août 2016, 15:34

Re: Domoticz et Freebox

Message par rad0712 »

Bonjour,
Juste pour prévenir que j'ai trouve d ou cela venait : tout simplement de mon login qui comportait un "@"
Merci d'avoir partage ce script et surtout pour le tuto.

R@d.
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: Domoticz et Freebox

Message par landaisbenj »

Bonjour à tous.

Juste pour vous dire que je viens de me taper les 19 pages du post pour me lancer dans la récupération des infos de la freebox aussi :lol:

Mon but est de récupérer le status d'un périphérique reseau. Tout ca pour améliorer la détection d'absence.

Je reviendrai ici si j'ai produit quelque chose
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: Domoticz et Freebox

Message par landaisbenj »

Bon voila. Apres des heures de test et de comprehenssion (vu que j'y connais rien en curl ni en bash d'ailleur), j'arrive a savoir si le telephone de ma femme est connecté:

limabravo@homepi:~/bin $ freebox_infos.sh
Uptime : 0 jours 23 heures 2 min 44 secs
Max Upload xDSL rate: 1.1 Mb/s
Max Download xDSL rate: 25.1 Mb/s
Firmware : 3.4.1
Free space HD : 82.00 Go
TEL Celou connecté: true

J'adapte ca demain sur domoticz puis en terme de gestion de presence.
Bonne nuit.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: Domoticz et Freebox

Message par landaisbenj »

Bon comme je n'arrive pas trop a gerer les dummys text je vous laisse mon idée.

Pour avoir la presence sur le reseau freebox d'un equipement lan (type smartphone) voici ma requete:

Code : Tout sélectionner

##### Présence périphérique reseau via @MAC
# idx du dummys Domoticz
IDX="30"
# recuperation de la valeur dans l'API
answer=$(call_freebox_api '/lan/browser/pub/ether-[ADRESSE MAC PERIPHERIQUE]')
# filtre sur la reponse
value=$(get_json_value_for_key "$answer" 'result.reachable')
testname=$(get_json_value_for_key "$answer" 'result.primary_name')
activity=$(get_json_value_for_key "$answer" 'result.last_activity')
# format de la reponse
activity=$(date -d @"$activity")
# affichage de la valeur
echo "${testname} connecté: ${value} dernière activité depuis: ${activity}"
dummys "$IDX" "$value"
En supplément voici ma fonction dummys qui me permet de retirer toutes les lignes de curl vers domoticz

Code : Tout sélectionner

function dummys () {
curl --silent -s -i -H  "Accept: application/json" "http://$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$1&nvalue=0&svalue=$2"
}
Cela raccourci le code. Et permet de traiter une requete dans un block (afin d'etre plus claire pour en rajouter d'autre).

Je fais ceci a cause des iphones car ils sont tres mal percu sur le reseau. La freebox gere plutot bien leur presence.

Comme j'ai un peu de mal a gerer les dummys texte je partage afin de voir si vous pouvez m'aider a automatiser une presence.
Le but:
Si la requete renvoi false dans mon dummys mettre un interrupteur ou une variable absence a on
et vis et versa.

[EDIT] D'ailleurs si vous savez comment transformer le dummys text en interrupteur on off... Ou autre afin d'appliquer une vraie simulation de connexion.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
StephBel
Messages : 10
Inscription : 07 août 2017, 11:13

Re: Domoticz et Freebox

Message par StephBel »

Bonjour,

Je te conseillais d'utiliser un "Switchlight"
Si value est vrai il faut envoyer "On" sinon "Off"

Donc j'ajouterais une nouvelle variable presence
Voici un exemple de code (non testé)

Code : Tout sélectionner

presence = "Off"
if((value == true));then
	presence = "On"
else
	presence = "Off"
fi

dummys "$IDX" "$presence"

Et enfin le code mis à jour pour envoyer

Code : Tout sélectionner

function dummys () {
curl --silent -s -i -H  "Accept: application/json" "http://$DOMOTICZ_SERVER/json.htm?type=command&param=switchlight&idx=$1&switchlight=$2"
}
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: Domoticz et Freebox

Message par landaisbenj »

StephBel a écrit :Si value est vrai il faut envoyer "On" sinon "Off"
Yes c'est exactement ce que j'ai fais avec une variable.

Mais ça ne me conviens toujours pas pour la facilité d'emploi dans le déclenchement d'un script du coup je vais surement passer sur un switchlight effectivement.

J'ai aussi rajouter dans mon freebox_infos.sh une detection permettant de ne faire la mise a jour que si la valeur a changé.

La recuperation:

Code : Tout sélectionner

##### Presence peripherique reseau via @MAC
# idx du dummys Domoticz
IDX="28"
# recuperation de la valeur dans l'API
answer=$(call_freebox_api '/lan/browser/pub/ether-....')
# filtre sur la reponse
value=$(get_json_value_for_key "$answer" 'result.reachable')
testname=$(get_json_value_for_key "$answer" 'result.primary_name')
activity=$(get_json_value_for_key "$answer" 'result.last_activity')
activity=$(date -d @"$activity")
# format de la reponse
# affichage de la valeur
#echo "${testname} connecté: ${value} derniere activité depuis: ${activity}"

##### Presence peripherique reseau via @MAC
# idx du dummys Domoticz
IDX="30"
# recuperation de la valeur dans l'API
answer=$(call_freebox_api '/lan/browser/pub/ether-....')
# filtre sur la reponse
valueb=$(get_json_value_for_key "$answer" 'result.reachable')
testname=$(get_json_value_for_key "$answer" 'result.primary_name')
activity=$(get_json_value_for_key "$answer" 'result.last_activity')
activity=$(date -d @"$activity")
# format de la reponse
# affichage de la valeur
#echo "${testname} connecté: ${value} derniere activité depuis: ${activity}"
Le test de changement de valeur:

Code : Tout sélectionner

LINE=`sed -n '1p' /home/pi/bin/presence.tmp`
if [ $value != $LINE ]
then
dummys "$IDX" "$value" "presence1" "3"
fi

LINEB=`sed -n '2p' /home/pi/bin/presence.tmp`
if [ $valueb != $LINEB ]
then
dummys "$IDX" "$valueb" "presence2" "4"
fi

echo $value > /home/pi/bin/presence.tmp
echo $valueb >> /home/pi/bin/presence.tmp
L'adressage a domoticz:

Code : Tout sélectionner

function dummys () {
if [ $2 = 'false' ] || [ $2 = 'true' ]
        then
                curl --silent -s -H "Accept: application/json" "http://$DOMOTICZ_SERVER/json.htm?type=command&param=updateuservariable&idx=$4&vname=$3&vtype=2&vvalue=$2"
        else
                curl --silent -s -H "Accept: application/json" "http://$DOMOTICZ_SERVER/json.htm?type=command&param=udevice&idx=$1&nvalue=0&svalue=$2"
fi
}
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Répondre