Freebox Server (Delta V7 / Revolution V6 / Server Mini 4K)

  • État Close
  • Type de tâche Évolution
  • Catégorie Freebox OS → API
  • Assignée à Romain FLIEDEL (rfliedel)
  • Système d'exploitation Tous
  • Sévérité Basse
  • Priorité Normale
  • Basée sur la version 2.0.2
  • Due pour la version Non décidé
  • Date d'échéance Non décidé
Concerne le projet: Freebox Server (Delta V7 / Revolution V6 / Server Mini 4K)
Ouverte par Denis F (DFAL) - 20/07/2013

FS#12939 - API "restart Server" ou "restart ADSL/FFTH"

Bonjour,

Serait-il possible de demander un redémarrage du Freebox Server par API ? (je n’ai pas trouvé cette fonction dans l’aide en ligne ni sur le site http://dev.freebox.fr/sdk/os/).

J’ai déjà été soumis plusieurs fois à des déconnexions ADSL (sans reconnexion) et comme j’ai un serveur connecté au Freebox Server celui-ci n’était plus joignable de l’extérieur.
La seule solution dans certain cas de désynchronisation avec blocage sur une étape d’initialisation, est de redémarrer le Server “sur site”.
Avec une API pour le redémarrage du Server, je pourrais développer un script sur mon serveur qui interrogerait périodiquement l’état de la connexion ADSL (ou FFTH) et en cas de perte de cette connexion pourrait déclencher un redémarrage du Freebox Server.

A défaut d’un redémarrage complet du Freebox Server, serait-il possible d’avoir une API ne faisant que la réinitialisation de la connexion ADSL (ou FFTH) ? (que je n’ai pas trouvée non plus dans la documentation).

Cordialement,

DFAL

Close par  Romain FLIEDEL (rfliedel)
Tuesday 10 September, 2013 12:30:56
Raison de clôture :  Evolution intégrée
Commentaires supplémentaires de clôture :  En 2.0.3

Cette tache ne dépend pas d'autre tache

DjMomo (Djmomo)
Saturday 27 July, 2013 10:04:22

Il n’est pas documenté mais le reboot du Server est possible, il te suffit de faire un Post sur /api/v1/system/reboot/

Romain FLIEDEL (rfliedel)
Wednesday 14 August, 2013 13:18:55

l’appel n’est effectivement pas documenté mais vous pouvez passer par

POST /api/v1/system/reboot/

toinou_78 (toinou_78)
Monday 26 August, 2013 13:08:26

Bonjour,

Avez-vous trouvé la solution à votre problème? cela m’intéresse... par contre, je ne sais pas comment “faire un POST”. Je suis informaticien mais pas dans ce domaine...

Plus généralement, il n’y aurait pas possibilité qu’un reboot automatique soit implémenté dans le firmware de la Freebox Server en cas de blocage sur une des phases d’initialisation (ou plus généralement, en cas de perte de connexion)?

En fait, cela fait plusieurs fois que ma Freebox Server se retrouve bloquée en “Etape 4: Attente DHCP” pendant mes vacances.
Comme j’ai une télésurveillance, le centre m’appelle pour me prévenir d’une perte de connexion mais sans connexion, je ne peux rien faire à distance. Une fois rentré, je reboote ma Freebox et tout rendre dans l’ordre.

La solution que vous essayez d’appliquer pourrait me permettre de l’intégrer dans un script exécuté périodiquement sur mon PC mais cela m’obligera à laisser mon PC constemment allumé...

Si cela pouvait être directement implémenté dans le firmware ou si la Freebox essayait de se connecter sur le FreeWiFi du voisin, ce serait nickel et autonome.

Merci pour la réponse, A+.

Denis F (DFAL)
Monday 26 August, 2013 20:33:56

Bonjour,

Pour redémarrer le Server en cas de perte de connexion, il faut obligatoirement le faire depuis le réseau local interne, donc depuis un PC qui reste en permanence allumé et une tâche planifiée pour exécuter le script de surveillance à intervalle régulier et relancer le Server en cas de perte de connexion.

Je vais essayer de développer un petit script en Javascript pour cela qui sera lancé par une tâche planifiée. Je reviendrai rendre compte sur ce ticket si cela fonctionne.

Pour le basculement automatique sur une connexion wifi de secours, voir le ticket http://bugs.freeplayer.org/task/8219

Pour la planification d’actions directement depuis le Server, voir mon ticket http://bugs.freeplayer.org/task/11470

Note : j’ai moi aussi subit une désynchronisation ADSL pendant mon absence avec blocage à l’étape 4. J’ai redémarré le Server à mon retour depuis un PC et Freebox OS.

Cordialement,

DFAL

DjMomo (Djmomo)
Tuesday 27 August, 2013 05:37:07

J’ai développé une classe PHP pour ça.

Https://www.github.com/DjMomo/ClassePhpFreebox

toinou_78 (toinou_78)
Friday 30 August, 2013 17:31:15

Bonjour,

@DFAL:
En effet, mon intention est de créer une tâche planifiée sur mon PC qui fera un ping de temps en temps vers une adresse extérieure (www.free.fr par exemple) et qui en cas d’erreur lancera le reboot de la Freebox Server.
Par contre, cela m’embête de laisser mon PC allumé pour ça. Du coup, je regardais les Plug Computers et j’ai vu qu’il y avait de petits serveurs Linux pas trop chers qui ne consomment pas beaucoup.
Par contre, je ne sais pas si ça vaut le coup d’investir dedans: ces dernières années, à chaque fois que j’ai acheté un nouveau matériel réseau ou télé, Free l’a sorti 2 mois après à l’aide d’une mise à jour ou d’une nouvelle box... Du coup je me dis qu’il ne vont peut-être pas tarder à l’intégrer qu Firmware.

@DjMomo:
Je vais jeter un oeil à ta classe PHP, mais je ne suis pas sûr de savoir l’utiliser...

Denis F (DFAL)
Friday 30 August, 2013 19:11:55

Bonjour,

Avec l’API Freebox OS on peut directement interroger l’état de la connexion.
Mais dans tous les cas, le redémarrage ne peut se faire que depuis le réseau local interne, donc avec un PC qui reste allumé (ou qui se rallume automatiquement avec un timer proprammé dans le BIOS, mais un PC même éteint est en fait sous tension et sa carte mère reste alimentée).
Personnellement j’utilise un “netPC” à base de processeur Intel Atom basse consommation, (et pour être précis un ASUS Eee-Box B202, voir http://www.asus.com/fr/Eee_Box_PCs/). Ce PC me sert déjà de serveur, (pas d’écran, c’est mon téléviseur qui sert de moniteur et je peux aussi ouvrir une session à distance).

Idéalement, il serait préférable que ce soit le Serveur qui se reboot lui-même en cas de perte de connexion.

Pour PHP, il suffit d’installer le logiciel (à télécharger sur www.php.net), pas besoin de serveur WEB, PHP peut être utilisé en mode “ligne de commande”.

Pour le “fun” (?), je me suis lancé dans le développement d’un script PowerShell (car mon serveur est sous Windows). Ce langage de script, maintenant standard sous Windows, (fait partie de l’installation de base), est puissant et dispose de routines de requêtage http REST et gère le format JSON. Mais j’appends le langage en même temps que je réalise le script, ça va être un peu long ;-)

Cordialement,

DFAL

Denis F (DFAL)
Sunday 1 September, 2013 13:21:31

Bonjour,

Il semblerait que pour pouvoir rebooter le Server par API, il faille donner l’autorisation “settings” à l’application, sinon erreur 403...

Sauf erreur, cette autorisation ne peut être donnée que par intervention manuelle par Freebox OS ?

Il me semble avoir “vu” que Freebox OS faisait un appel “PUT /api/v1/authorization/{track_id}”, mais cet appel est non documenté dans l’API (en tout cas non trouvé)...

Ceci dit, il est peut être normal qu’une Application puisse s’autoriser elle-même sur certaines fonctions pouvant avoir trait à la sécurité... il faudrait que cela soit effectué au moment de l’enregistrement de l’Application, avec affichage sur le panel du Server et confirmation par l’abonné.
Il faudrait pouvoir préciser les autorisations lors du “POST /api/v1/login/authorize/” dans l’objet JSON “TokenRequest” (à noter qu’il n’y a pas de propriété “status” dans cet objet : erreur de documentation).

Note : sauf erreur, il me semble que “Freebox Compagnon” est bien autorisé sur “settings” ? sans intervention de l’abonné ? D’ailleurs (version Androïd) il propose une fonction “Redémarrer la Freebox”...

J’ai noté que mon “app_version” n’était pas mémorisé par le Server, pourtant je le passe bien en tant que “string” au moment du “login/authorize/”... mais cela ne semble pas poser de problème pour le fonctionnement. Je vais creuser car il est bien enregistré pour “Freebox Compagnon”...

A part cela, mon script PowerShell pour rebooter le Server lorsque “ConnectionStatus.state” n’est pas à “up” devrait fonctionner (testé sans cette condition, je reboote bien)... j’attend avec “impatience” le prochain blocage en “Etape 4” pour le test final ! ;-)

Cordialement,

DFAL

Romain FLIEDEL (rfliedel)
Wednesday 4 September, 2013 09:39:09

Effectivement il faut l’autorisation settings pour rebooter la freebox.
Il n’est pas prévu pour l’instant qu’une application tierce puisse gérer ses droits, il faut impérativement passer par l’interface web pour ajuster les droits des applications.
Le fait de demander des autorisations spécifiques à l’association n’a pas été retenu car il n’était pas pratique de valider les autorisations sur l’écran lcd.
L’appli officielle utilise des api privées non documentés que vous ne pouvez pas utiliser.

Denis F (DFAL)
Wednesday 4 September, 2013 18:47:02

Bonjour,

Merci pour votre réponse.

Et pour “app_version” qui n’est pas mémorisé (vu un analysant les trames échangées car l’information n’apparait pas en clair dans Freebox OS), est-ce une erreur de mon script ou bien une anomalie de l’API ? (vu que Freebox Compagnon utilise d’autres API).

Je passe un “string” comme indiqué dans la documentation (http://dev.freebox.fr/sdk/os/login/) mais peut être faut-il passer un décimal ?
Et si ma valeur était incorrecte, je n’aurais pas pu m’enregistrer en tant qu’application ?

Réponse à un appel (non documenté) “GET /api/v1/authorization/?_dc=xxxxxxxx HTTP/1.1” :

{”success”:true,
“result”:[

{"app_name":"Freebox Compagnon","id":1,
  "app_version":"0.4",
  "device_name":"samsung GT-P5110 (xxxxxxxxxxxxxx","last_session":1378278238,"req_ip":"192.168.0.78","req_date":1377545335,
  "permissions":{"downloader":true,"settings":true,"calls":true,"explorer":true,"contacts":true},
  "app_id":"fr.freebox.android.compagnon","token_validity":"granted"},
{"app_name":"Redemarrage automatique Freebox","id":2,
 "app_version":"",
 "device_name":"ACER-M5610","last_session":1378079090,"req_ip":"192.168.0.102","req_date":1378048716,
 "permissions":{"downloader":true,"settings":true,"calls":true,"explorer":true,"contacts":true},
 "app_id":"fbautorestart","token_validity":"granted"}

]}

Cordialement,

DFAL

Denis F (DFAL)
Wednesday 4 September, 2013 19:00:45

PS :
Actuellement je déclenche un reboot, mais je préfèrerais grandement déclencher une simple relance de la connexion Internet sans redémarrer complètement le Server, (le redémarrage complet du Server fait perdre certains historiques).

Sauf erreur, il n’y a pas d’API permettant de juste couper/activer la connexion ADSL ou FFTH ?
Peut-on espérer l’avoir dans une prochaine version ?

Cordialement,

DFAL

Chargement...