Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)

Ce projet correspond aux anomalies ou aux demandes d’évolutions logicielles pour le Freebox Server.

Pour des problèmes de ligne ADSL ou Fibre, vous devez vous adresser directement au 3244.
N’indiquez ici que les bugs ou les demandes d’évolution concernant le Freebox Server.

Pour les remarques concernant le Freebox Player Révolution (V6), vous pouvez le faire sur la page dédiée.
Pour les remarques concernant la Freebox Mini 4K, vous pouvez le faire sur la page dédiée.
Pour les remarques concernant le Freebox Player Devialet (V7), vous pouvez le faire sur la page dédiée.
Pour les remarques concernant le Freebox Player Pop (V8), vous pouvez le sur la page dédiée.

Effectuez la mise à jour de votre Freebox Server vers la dernière version annoncée sur l'historique des mises à jour Freebox Server

Vérifiez que votre problème ou votre demande d’évolution n’a pas déjà été posté auparavant.

Merci d’avance.

ID Opened Last Edited Task Type Category  asc Operating System Status Summary
3600924/11/202117/04/2025ÉvolutionAPITousEn attente de réponse[Backup SOLVED / Restore ???] API pour sauvegarder / r... Task Description

[EDIT 2025-04-17]

Pour backup, une fois le trafic TLS décrypté, je trouve:

GET /api/latest/backup/config/export

Il est donc maintenant possible de backup régulièrement et en automatique la Freebox, par exemple en utilisant la fonction backup_fbx_config() de la library BASH
[/EDIT 2025-04-17/]


Bonjour

Suite au passage en 4.5.3 “officiel”, la section changes de l’API ne fait pas mention de l’ajout d’une API pour faire une sauvegarde de la box / restorer une sauvegarde.

Pourriez vous SVP ajouter une API permettant d’automatiser les sauvegardes ?
Pourriez vous également ajouter une API permettant de restorer une sauvegarde ?

Pouvoir créer une sauvegarde avec l’API vers un drive de la box ou un serveur réseau serait un plus.
Idem pour la restoration d’une sauvegarde depuis l’API.

En vous remerciant d’avance,
Cordialement
nbanba

3698127/08/202209/04/2024AnomalieAPITousNouveau[résolu] 2022, API mafreebox.freebox.fr, session token,... Task Description

Bonjour à tous,

pour info,
après plusieurs essais infructeux dans tous les sens
j'ai enfin réussi à obtenir un session token


la doc API intégrée à la freebox (https://mafreebox.freebox.fr/doc/index.html#)
est erronée concernant le calcul du "password".

ce password est necessaire dans la requête du session token

—> dans la doc est écrit
—> dans le paragraphe "Obtaining a session_token"/"password string"
—> password = hmac-sha1(app_token, challenge) (←– CECI NE FONCTIONNE PAS)

avec le password ainsi calculé,
j'obtenais en réponse à la requête de session token (POST http)

Status Code: 403 Forbidden
msg: Erreur d'authentification de l'application
error_code: invalid_token

Pour que ça fonctionne,
il faut inverser app_token et challenge dans la formule

(CECI CI-DESSOUS FONCTIONNE)
(variables challenge et app_token préalablement attribuées bien sûr)

#en php
$password = hash_hmac("sha1", $challenge, $app_token); 

#ou en bash
password=$(echo -n $challenge | openssl sha1 -hmac $app_token | cut -d '=' -f2 | sed 's/ //g')

—> et avec le bon password, ça passe mieux
—> session_token (enfin) reçu :-)


en remarques complémentaires (de ce que j'en ai compris),

- l'app_token une fois sollicité/autorisé/validé est pérenne 
- le challenge par contre, à une durée de validité courte (30 secondes), 
  validité courte qui est donc conférée au password. 
  Et donc pour réussir l'obtention du session_token, 
  la requête/obtention du challenge, le calcul du password et la requête du session_token 
  doivent être fait pendant cette période de validité de 30 secondes.
- je suppose que le session_token est relativement pérenne  
  (pas pu tester longtemps) mais on sait maintenant comment en solliciter un autre...

HTH,
cordialement,
hého

3767706/02/202307/02/2023AutreAPITousNouveauAuthentification application Task Description

Bonjour,

je souhaite développer une application en python pour me connecter à ma freebox POP.

J’ai bien compris que la première étape est d’inscrire son application et de l’autoriser sur la box. Voici mon code:

 headers = {}
  payload=json.dumps ({
 "app_id": "fr.freebox.test",
 "app_name": "test",
 "app_version": "1.0.0",
 "device_name": "NO"
  })
  try:        
      response = requests.request('POST', 'https://mafreebox.freebox.fr/api/v10/login/authorize', headers=headers, data=payload,verify=False)
  except Exception as e:
      print ('Execution Box Authorize commmand failed : ' + str(e))     
  else :
      if (response.status_code == 200) :
          authorize = response.json()
          print (authorize)

Tout fonctionne bien je récupère bien un app_token :

{’success’: True, ‘result’: {’app_token’: ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’, ‘track_id’: 74}}

Et sur la box s’affiche l’authorisation. Mais j’ai beau essayé de valider en sélectionnant Oui sur l’édcran LCD (Fleche droite puis l’écran affiche de nouveau l’heure), La console des accès reste la même :

—–> ‘Authentification en cours’

Avez-vous une idée de là où ça coince ?

Cordialement

3908126/02/202429/02/2024ÉvolutionAPITousNouveauIndication du temps d'attente lors d'un "Too Many Reque... Task Description

Bonjour,

Je rencontre un problème lors de l’utilisation de l’API. Actuellement, lorsque j’effectue un nombre excessif de requêtes, je reçois en retour le message “Too Many Requests”.

Vu que le blacklistage des machines qui effectuent trop de requêtes est exponentiel (plus on insiste, plus la limitation est longue ; https://https://dev.freebox.fr/bugs/task/19160#comment79018), serait-il possible d’ajouter une indication du temps d’attente nécessaire avant de pouvoir effectuer de nouvelles requêtes ?

Actuellement, nous sommes contraints de réessayer à plusieurs reprises sans savoir exactement dans combien de temps nous pourrons effectuer de nouvelles requêtes. Cela a pour conséquence d’augmenter le temps d’attente si nous essayons de nouveau avant la fin de la période de blocage, ce qui a pour conséquence d’aggraver la situation.

Dans la demande “ FS#19160 “, il était indiqué que “Pour réinitialiser cette limitation il suffit de redémarrer le Server”. Cependant, après avoir essayé cette solution, le problème persiste toujours. Donc l’ajout de cette évolution aiderait grandement.

Je vous remercie par avance pour votre considération de cette demande d’amélioration.

Cordialement

3991115/12/202419/12/2024AnomalieAPITousNouveauFreebox API Login Track "/api/v8/login/authorize/" Task Description

Bonjour,

Contre toute attente, l’API de Track login sur un id de track inexistant retourne pas mal d’informations qu’elle ne devrait pas forcément retourner dont un password salt et beaucoup de code échappés.
Est-ce la documentation de l’API qui n’est pas à jour ? Où est-ce normal que l’API dump du code en JS ?

NB : Les “XXXX” remplace le code échappé et le sel a été retiré.

Freebox OS : 4.8.16

http://mafreebox/api/v8/login/authorize/666

{
   "success":true,
   "result":{
      "status":"unknown",
      "challenge":[
         "var _tddrqb = '_fzutptw';var _hvlvi = new RegExp(_tddrqb.charAt(eval(unescape('%37'))), 'g');String.fromCharCode(_tddrqb.replace(_hvlvi, 'z').charCodeAt(eval(unescape('XXXXX'))))",
         "var _aethnyfs = '_mtjsaiih';var _nxxvroo = new RegExp(_aethnyfs.charAt(eval(unescape('XXXXX'))), 'g');String.fromCharCode(_aethnyfs.replace(_nxxvroo, 'p').charCodeAt(eval(unescape('%35'))))",
         "var _xphsj = '_agfkirx';var _uobvx = new RegExp(_xphsj.charAt(eval(unescape('%37'))), 'g');String.fromCharCode(_xphsj.replace(_uobvx, 'k').charCodeAt(eval(unescape('%37'))))",
         "var _hotru = { _rehs: '_6rkhldig' }; _hotru._rehs.charAt(eval(unescape('XXXX')))",
         "var _ebcy = { _neoqqe: '_tah\/' }; _ebcy._neoqqe.charAt(eval(unescape('%34')))",
         "var _vxcbrq = { _unqxlpz: '_mvqkbjw' }; _vxcbrq._unqxlpz.charAt(eval(unescape('XXXXX')))",
         "decodeURIComponent('%' + (eval(unescape('%35%37'))).toString(eval(unescape('XXXX'))))",
         "'g'",
         "'p'",
         "decodeURIComponent('%' + (eval(unescape('XXXXX'))))",
         "var _xfozdxm = { _etauaqab: '_pqSd' }; _xfozdxm._etauaqab.charAt(eval(unescape('XXXX')))",
         "var _jsqs = '_fuzldxcj';var _emmk = new RegExp(_jsqs.charAt(eval(unescape('XXXXX'))), 'g');String.fromCharCode(_jsqs.replace(_emmk, 'J').charCodeAt(eval(unescape('%35'))))",
         "'c'",
         "decodeURIComponent('%' + (eval(unescape('XXXX'))).toString(eval(unescape('XXXX'))))",
         "var _fczmbd = { _guhhz: '_dehqlq' }; _fczmbd._guhhz.charAt(eval(unescape(XXXX')))",
         "var _afewzzt = { _mnpstx: '_yu1d' }; _afewzzt._mnpstx.charAt(eval(unescape('XXXXX')))",
         "decodeURIComponent('%' + (eval(unescape('%35%35'))).toString(eval(unescape(XXXX'))))",
         "var _qawcojla = '_bwzhef';var _rulszp = new RegExp(_qawcojla.charAt(eval(unescape('%33'))), 'g');String.fromCharCode(_qawcojla.replace(_rulszp, 'E').charCodeAt(eval(unescape('XXXXX'))))",
         "decodeURIComponent('%' + (eval(unescape('XXXX'))).toString(eval(unescape('XXXX'))))",
         "'G'",
         "var _gcxvax = { _nsfg: '_wdyhcr' }; _gcxvax._nsfg.charAt(eval(unescape('XXXXX')))",
         "var _xtwup = '_jakip';var _factsbsx = new RegExp(_xtwup.charAt(eval(unescape('XXXX'))), 'g');String.fromCharCode(_xtwup.replace(_factsbsx, 'P').charCodeAt(eval(unescape('XXXX'))))",
         "var _pwunhjcf = '_mxno';var _mmoqgw = new RegExp(_pwunhjcf.charAt(eval(unescape('XXXX'))), 'g');String.fromCharCode(_pwunhjcf.replace(_mmoqgw, 'M').charCodeAt(eval(unescape('XXXX'))))",
         "var _wndta = { _bfgrhge: '_zujuQ' }; _wndta._bfgrhge.charAt(eval(unescape('%35')))",
         "var _qbfepmi = '_iwms';var _uffbilk = new RegExp(_qbfepmi.charAt(eval(unescape('%33'))), 'g');String.fromCharCode(_qbfepmi.replace(_uffbilk, 'e').charCodeAt(eval(unescape('%33'))))",
         "var _rijvnj = '_syixk';var _sqaicfto = new RegExp(_rijvnj.charAt(eval(unescape('XXXX'))), 'g');String.fromCharCode(_rijvnj.replace(_sqaicfto, 'b').charCodeAt(eval(unescape('XXXXX'))))",
         "'E'",
         "decodeURIComponent('%' + (eval(unescape('XXXX'))).toString(eval(unescape('XXXX'))))",
         "'s'",
         "var _kjihqn = '_mjyeewoc';var _zktqloe = new RegExp(_kjihqn.charAt(eval(unescape('XXXX'))), 'g');String.fromCharCode(_kjihqn.replace(_zktqloe, 'E').charCodeAt(eval(unescape('XXXXX'))))",
         "'n'",
         "var _rzmbme = { _zmysndbt: '_odcjxnG' }; _rzmbme._zmysndbt.charAt(eval(unescape('XXXX')))"
      ],
      "password_salt":"SALT"
   }
}
3993829/12/202429/12/2024ÉvolutionAPITousNouveauNotification API - custom type + VM events Task Description

Bonjour

1) Il serait pratique de pouvoir custom le champ 'type' des notifications :
Aujourd'hui seul 3 choix sont possibles :
Android | IOS | Firebase

L'ajout d'un type 'custom' (et pourquoi pas la possibilité de personnaliser un champ associé ⇒ ajout d'un "custom_type") serait bien.
Par exemple :

GET /api/v11/notif/targets/11111111-2222-3333-4444-666666666666
{
   "success":true,
   "result":[
      {
         "last_use":0,
         "type":"custom",
         "custom_type":"firewall",
         "name":"FGT901G-API",
         "id":"11111111-2222-3333-4444-666666666666",
         "subscriptions":[
                              "security",
                              "lan_host",
                              "box_state",
         ],
         "api_url": "https://myserver.example.com/my_fortigate_API_app",
         "message_type": "notification"
      }
   ]
}

2) Il serait bien d'ajouter à la "subscriptions" les notifications des events des VM qui sont aujourd'hui renvoyés en websocket (+ celles des type l2/l3_address_(un)reachable)

3) Il serait bien de pouvoir avoir tous les types de notifications au travers des websocket API (register event) :

phone	        notification when missing call
download	notification when download is finished
security	notification when alarm is on
box_state	notification when box state changed
lan_host	notification related to lan events
password_change	notification when admin password is changed

Ainsi le système serait un peu plus complet et homogène et surtout on pourrait piloter d'autres équipements (avec leur propre API) à réception de ces notifications.

Merci
Cordialement
nbanba

4043501/08/202501/08/2025AnomalieAPITousNouveaubytes_down et bytes_up sont réinitialisés fréquemment Task Description

Dans l’API, je récupère les informations bytes_down et bytes_up dans ConnectionStatus https://https://dev.freebox.fr/sdk/os/connection/ Ils sont régulièrement réinitialisés car les valeurs restent faibles malgré l’absence de reconnection dans le journal des connections.
Ils ne devraient être réinitialisés qu’à chaque boot de la freebox, comme c’était le cas il y a longtemps dans l’API.

4055708/10/202508/10/2025AnomalieAPITousNouveauErreur dans la doc de l'APIv15 ? Task Description

Bonjour

Y aurait il une coquille dans la doc de l’API v15 ?

On a :

GET /api/v15/fs/ls/L0Rpc3F1ZSBkdXI=&limit=100 HTTP/1.1
Host: mafreebox.freebox.fr

Sauf erreur de ma part il manque un ? entre l’URL et le paramètre

On devrait avoir:

GET /api/v15/fs/ls/L0Rpc3F1ZSBkdXI=?&limit=100 HTTP/1.1
Host: mafreebox.freebox.fr

d’ailleurs le ‘&’ n’est pas indispensable, ‘?limit=100’ fonctionne bien quand ce paramètre est seul

Cordialement
nbanba

4030010/05/202511/05/2025AnomalieAPIFreebox V9 (Ultra)NouveauProblème de device_tracker dans home Assistant depuis M... Task Description

Bonjour,

Depuis la MAJ 4.9.3, certains appareils apparaissent comme absent dans Home Assistant, principalement les téléphones.

Les appareils sont bien reconnus dans l’interface de la Freebox mais sont absent quand je vais voir les entités de l’intégration Freebox (entités activées).

J’ai supprimé l’intégration, effacé le dossier Freebox puis réinstallé l’intégration, mais ça n’a rien changé.

Du coup j’ai pas mal d’automatisations qui ne fonctionnent plus…

Ce problème est arrivé pile après la MAJ, j’ai vérifié dans les journaux de HA.

Avez vous une solution pour corriger ce problème ?

Merci d’avance !

4070909/12/202509/12/2025AnomalieAPIFreebox V9 (Ultra)NouveauRésultat incertain de l'agrandissement d'images disque Task Description

Bonjour,

J’ai constaté une incohérence entre la requête d’agrandissement de disque et le résultat de la tâche:
En effectuant une requête API pour changer la taille virtuelle d’un fichier disque en spéficiant un nombre de byte précis, la Freebox redimensionne le disque avec une taille différente.

Exemple:

En partant du fichier qcow2 suivant: https://raw.githubusercontent.com/NikolaLohinski/terraform-provider-freebox/main/examples/alpine-virt-3.20.0-aarch64.qcow2.

curl 'https://mafreebox.freebox.fr/api/latest/vm/disk/resize' -X POST --data-raw '{"size":1073741823,"disk_path":"L0Rpc3F1ZS9WTXMvdGVycmFmb3JtLXByb3ZpZGVyLWZyZWVib3gtYWxwaW5lLTMuMjAuMC1hYXJjaDY0LnFjb3cy","shrink_allow":false}'

Le disque devient alors:

{"success":true,"result":{"virtual_size":1073745920,"actual_size":72224768,"type":"qcow2"}}

On constate alors que le la taille virtuelle 1073745920 n’est pas celle attendue 1073741823.

Note: Dans mon travail sur le provider Terraform (https://github.com/NikolaLohinski/terraform-provider-freebox), j’en ai déduit que la taille virtuelle sera toujours un multiple de 8Ko.

Propositions:

  1. Corriger l’API /resize pour s’assurer que le disque ait bien la bonne taille.
  2. Corriger l’API /resize pour qu’elle n’accepte que les valeurs effectivement supportées (par exemple, HTTP 400: size must be a multiple of 4096 byte).
  3. Documenter l’API pour expliquer ces contraintes.

Merci d’avance pour votre aide.

3694217/08/202207/04/2024AnomalieAPIFreebox Server V8 (Pop)NouveauLenteur sur téléchargement via l'API Task Description

Bonjour,

J'ai lu pas mal de posts sur le sujet mais j'ai remarqué des lenteurs sur l'API de téléchargement de la Freebox (Je possède une POP pour info ).

J'ai partagé le problème sur un autre forum et j'ai eu une réponse intéressante, je vous colle le lien ci-dessous :

https://freebox.toosurtoo.com/forum/viewtopic.php?t=25383

Je me demandais si le problème était hardware ou software ? Qu'est ce qui limite la box à ne pas se connecter à autant de "pairs" que sur un PC classique ?

Je vous remercie par avance pour vos éclaircissements


2373230/12/201824/10/2021AnomalieAPIFreebox Server V7 (Delta)NouveauDocs api delta 6.0 Task Description

Pas de doc pour la version 6.0 des api freebox

2471821/01/201920/01/2021ÉvolutionAPIFreebox Server V7 (Delta)À investiguerApi pour alarme Task Description

Bonjour,
serait-il possible d’avoir de la documentation et des exemples sur la partie domotique et l’alarme en particulier.

J’ai bien vu la partie “Special Tiles specification” dans la documentation sur la Freebox mais je n’ai pas trouvé comment, par exemple, activer ou désactiver l’alarme.

Merci

2920927/11/201915/09/2021ÉvolutionAPIFreebox Server V7 (Delta)À investiguerMettre à jour les certificats TLS de nom de domaine per... Task Description

Bonjour,

Il semble que Freebox OS ne permette pas de mettre à jour les certificats de noms de domaine non administrés par freeboxos. Le seul moyen que j’aie pu trouver est de supprimer et recréer le domaine.

Dans l’idéal, il faudrait une API (documentée) afin de permettre des mise à jour automatiques par scripts (par exemple lorsqu’on a un certificat Let’s Encrypt pour son domaine, qu’il faut renouveler régulièrement).

2990004/02/202020/01/2023AutreAPIFreebox Server V7 (Delta)En cours de résolutionUtilisation des api Task Description

Bonjour,

j’explore actuellement l’utilisation des api freebox, je constate que la doc n’est pas à jours, il y est fait mention de la v5 des api, quand je fait une requete mDNS je constate que les api sont en fait en V7.

Il est fait mention de websocket dans cette doc, il n’est pas fait mention de l’url pour les utiliser, et de fait j’ai essayer tout ce qu’il me passait par la tête et rien n’a fonctionner.

Ma demande consiste donc a avoir la doc à jour, et dans l’intervalle je ne serais pas contre un p’tit exemple d’utilisation des websockets ou au moins l’url du endpoint.

3395603/02/202124/10/2021ÉvolutionAPIFreebox Server V7 (Delta)NouveauMise à jour de la documentation API Task Description

Bonjour,

A ce jour, la documentation disponible dans l’interface de Freebox OS est basée sur la version d’API 5.0, alors que l’OS actuel est basé sur la version 8.1
Merci d’effectuer un petit rafraichissement de rigueur.

Bien cordialement

3589502/11/202103/11/2021AnomalieAPIFreebox Server V7 (Delta)NouveauDonnées eronées Freeplug entre l'interface et API List Task Description

Bonjour,

lors d'une requête GET /api/v8/freeplug/, j’obtiens

{"success":true,"result":[{"id":"A1:2D:D8:60:D6:E3:03","members":[{"id":"34:27:92:1A:B6:70","tx_rate":-1,"eth_port_status":"up","rx_rate":-1,"net_role":"cco","inactive":1,"net_id":"A1:2D:D8:60:D6:E3:03","model":"int7500","eth_speed":1000,"local":true,"eth_full_duplex":true,"has_network":true},{"id":"70:FC:8F:04:E2:00","tx_rate":-1,"eth_port_status":"up","rx_rate":-1,"net_role":"sta","inactive":1,"net_id":"A1:2D:D8:60:D6:E3:03","model":"int7500","eth_speed":1000,"local":false,"eth_full_duplex":true,"has_network":true}]}]}

on peut voir pour l'id "70:FC:8F:04:E2:00", on a les valeur :

  • tx_rate = -1
  • rx_rate = -1

alors que sur l'interface

  • tx_rate = 9Mb/s
  • rx_rate = 9Mb/s
3750317/12/202217/12/2022AnomalieAPIFreebox Server V7 (Delta)NouveauAucune info et erreur (500) sur module Switch dans Free... Task Description

Bonjour,

Depuis plusieurs versions déjà et actuellement en 4.7.3,
avec une Freebox Delta en mode bridge + connexion du seul équipement sur port SFP:

Lors d’une tentative d’accès au module “Switch” dans Freebox OS (Paramètres de la Freebox > Réseau local > Switch),
aucune information n’apparait (bien que la connexion/l’équipement connecté à la Freebox fonctionne);
et le message d’erreur suivant apparait dans une fenêtre modale:

C’est cassé !!
Un problème est survenu lors de cette requête au server (erreur: 500)

L’erreur semble etre la traduction UI d’un échec d’appel de Freebox OS vers l’API sur

/api/latest/switch/status/?_dc=...

, qui renvoie une erreur 500. Le module génère également un appel API sur

/api/latest/switch/port/1?_dc=...

, qui lui renvoie un status 200 et des informations sur… un port du switch certainement.

3928003/04/202403/04/2024AnomalieAPIFreebox Server V7 (Delta)NouveauAPI - Erreur message inconnu dans la documentation Task Description

Bonjour

Je suis tombé sur un message d'erreur renvoyé par l'API et non documenté dans la doc interne à la box (https://mafreebox.freebox.fr/doc/index.html?) :

Lors de la création foireuse d'une VM :

curl -sX POST --cacert /dev/shm/fbx-cacert "https://fbx.fbx.lan/api/v10/vm/"  -H "X-Fbx-App-Auth: $_SESSION_TOKEN" -d '{"cloudinit_userdata":"","cd_path":"L0ZCWDI0VC9pc28vYXJtNjRfaXB4ZV9zaW1wbGUtbWVudTMuaXNv","os":"debian","enable_cloudinit":false,"disk_path":"L0ZCWDI0VC9ib3gtdm0vMTRSVi1GU1JWLTE2LnFjb3cy","vcpus":"1","memory":"4096","name":"14RV-FSRV-16","cloudinit_hostname":"","bind_usb_ports":[["",""]],"enable_screen":false,"disk_type":"qcow2"}' 2>&1

Notez bien l'erreur volontaire dans le tableau :

"bind_usb_ports":[["",""]]

Je ne devrais pas mettre un tableau dans ce tableau, l'objet JSON de l'API n'est pas prévu pour, surtout pour un tableau de tableau void.
Je devrais écrire :

"bind_usb_ports":[]

Le retour de l'API est :

{"msg":"Impossible d’ajouter cette VM","success":false,"error_code":"internal"}

Et alors, j'ai bien cherché dans la doc des VM et dans la page d'error_codes de la doc de l'API, mais cette erreur internal ne semble pas être documentée.

Pourriez vous SVP ajouter la signification de ce message (et peut être le rendre + verbeux type : "bad value for a JSON array - internal error")

En vous remerciant d'avance
Cordialement
nbanba

PS: comme déjà demandé, le support de l'ANGLAIS sur les Delta serait bien et éviterai des trucs bien moches avec mix Français / Anglais comme :

{"msg":"Impossible d’ajouter cette VM","success":false,"error_code":"internal"}
3991618/12/202424/03/2025AnomalieAPIFreebox Server V7 (Delta)ConfirméTemps de réponses de l'API non stable / Empty reply Task Description

Bonjour

EDIT 20250324:

Phénomène encore pire avec 4.9.0
Voir premier transfert de 3,7 GB sur cette vidéo (transfert en 512KB chunk soit 50% de la taille des frame supportées):

https://github.com/nbanb/fbx-delta-nba_bash_api.sh/raw/refs/heads/nbanb-freebox-api/local_direct_ul_api-video-example.webm

/EDIT/

J’ai constaté 2 phénomènes lors de l’utilisation des API qui compliquent leur utilisation:

-1) quand on envoi un certain nombres de requêtes à l’API (avec un rate soutenu), il arrive que l’API renvoit «empty_reply», soit une trame void
Cela arrive aussi lorsque la Freebox reçoit 2 requêtes à ‘l’exacte même moment’

-2) les temps de réponses de l’API sont variables et se dégradent dans le temps même quand la box est globalement peu sollicité, c’est particulièrement flagrant sur l’API upload.

Je précise ici que lors des tests ou j’ai constaté le phénomène, la Freebox et le client sont connectés en 10G et sont à 5m de fibres l’un de l’autre.
Le réseau n’est pas en cause (ni le stockage dans la box qui est composé de 4 SSD en raid)

Pour exemple POC ici: https://transfert.free.fr/6XdwQzi (lien valable 30j)

Regardez la barre de progression qui se base sur les trames ‘upload_data’ renvoyé par l’API pour chaque chunk, parfois on reçoit les retours au bout de plusieurs secondes alors que le débit upload est constant (et qu’on devrait recevoir un ‘stream’ de retour constant)
Cela se constate facilement en regardant la barre de progression et les compteurs à droite qui s’incrémentent pas “rafale”

Aussi et de plus en plus souvent la Freebox met plus d’1 seconde à répondre à la première requête contenant ‘upload_start’.
Ce n’était pas le cas lors des 9 premiers teras upload sur la box mais est devenu régulier depuis les 200 derniers GB transférés.

Y aurait il un phénomène d’essoufflement de la Freebox ? Un buffer nginx saturé / mal réglé ?
Une possibilité pour le user de restart nginx serait super (au travers d’une API system/nginx par exemple)
Ce serait dommage de devoir adapter le code des application clientes en fonction d’une dégradation prévisible des temps de réponses de l’API

Et je n’ai pas très envie de reboot la box (c’est en prod –> pas de reboot)…

En vous remerciant d’avance
Cordialement
nbanba

4014023/03/202524/03/2025AnomalieAPIFreebox Server V7 (Delta)ConfirméCas où l'API du player DEVIALET ne renvoit pas du JSON Task Description

Bonjour

Il existe au moins 1 cas à priori non documenté ou l’API du player Devialet ne renvoit pas du JSON

Si je fais la requête pour reboot mon player en utilisant le bon ID pour mon player, la réponse est en JSON ⇒ OK

Si je fais volontairement une requête sur un mauvais ID de player, le player renvoit du HTML au lieu de renvoyer du JSON :

Exemple:
La fonction reboot player prend en argument l’ID du player (mon player à pour ID 17)

Si je fais:

reboot_player 17


J’obtiens le JSON:

{"success":true}

Maintenant si je passe un ID erroné volontairement(ex: ID 0), l’API ne renvoi pas une erreur en JSON mais du HTML:
Trace debug:

$ debug=1
$ reboot_player  0
get_fbx_api request:
curl -s https://mafreebox.freebox.fr/api/v14/player -H "Content-Type: application/json" -H "X-Fbx-App-Auth: $_SESSION_TOKEN" -G --cacert /dev/shm/fbx-cacert 

get_fbx_api result:
{"success":true,"result":[{"mac":"34:27:92:80:29:7c","stb_type":"stb_v7","id":17,"last_time_reachable":1742725668,"api_available":true,"device_name":"Freebox Player","device_model":"fbx7hd-delta","reachable":true,"uid":"a51dde83e07a057e64bef5bdcac8c5e2","api_version":"14.0","lan_gids":["ether-34:27:92:80:29:7c"]}]}

post_fbx_api request:
curl -s "https://mafreebox.freebox.fr/api/v14/player/0/api/v14/system/reboot" -H "Content-Type: application/json" -H "X-Fbx-App-Auth: $_SESSION_TOKEN" -X POST --cacert /dev/shm/fbx-cacert -d {}

post_fbx_api result:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Freebox :: Requête invalide</title>
<link href="/err/err.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="info">
    <div id="errorMsg">
      <h3>Requête invalide</h3>
      <p class="desc">La requête envoyée est invalide</p>
    </div>
</div>

</body>
</html>

Je comprend bien que c’est du à l’URL qui devient “mauvaise” car l’ID du player est incluse dans l’URL

cette URL n’existe en fait pas:
https://mafreebox.freebox.fr/api/v14/player/0/api/v14/system/reboot

par contre celle-ci existe:
https://mafreebox.freebox.fr/api/v14/player/17/api/v14/system/reboot

Cependant, pour des questions de normalisation et de parsing, il faudrait que l’API renvoi une erreur avec un content-type application/json

Il serait bien de ne pas devoir développer un moteur de parsing HTML en plus du moteur de parsing JSON à cause d’1 seul message d’erreur renvoyé par l’API et “ne respectant à priori pas la convention de cette même API

Merci

Cordialement
nbanba

1281609/07/201309/07/2013ÉvolutionAPIFreebox Server V6 (Révolution)NouveauAPI Visuelle Task Description

Il serait intéressant de permettre aux dev’s plus d’interaction avec l’utilisateur en permettant par exemple d’afficher des messages sur l’écran du freebox serveur, de déclencher des alertes sonores via les hauts parleurs intégrés ou d’envoyer des bandeaux textes sur l’écran de la TV, voir même de pouvoir incruster une image (équivalent PIP) dans une zone de l’écran, de pouvoir ouvrir une zone de texte à remplir par l’utilisateur à l’aide de la télécommande, de pouvoir faire apparaitre des boutons cliquables à l’écran TV. Toutes ces fonctions étant accessibles via l’API.

j’en demande trop non ?

2788517/07/201904/09/2020AnomalieAPIFreebox Server V6 (Révolution)À investiguerBase d’authentification indisponible Task Description

Bonjour.

J’ai connecté un serveur linux à la freebox via l’API.
Mais depuis quelque temps je n’ai plus d’acces.

J’ai voulu revoqué mon applicatif, mais la freebox me renvoi une erreur.
Impossible de supprimer cet objet.

De plus, quand j’essai de recuperer un nouveau token applicatif, la requete me renvoi une erreur interne:

“msg”: “Base d’authentification indisponible”,

Merci de m’indiquer la meilleure marche a suivre car le SAV me repond qu’ils ne sont pas capable de traiter ce probleme..

2902515/11/201904/09/2020ÉvolutionAPIFreebox Server V6 (Révolution)À investiguerAPI - DHCP Configuration - Default Lease time Task Description

Bonjour,

Afin de pouvoir administrer et superviser de façon plus fine les Hosts qui se connectent au réseau de la Freebox (wifi ou LAN), j’ai besoin de pouvoir spécifier la durée par défaut du bail DHCP (cela devrait à priori être possible selon la RFC RFC1541)

Cette durée semble être forcée à 12h et n’est pas configurable malgré la disponibilité de l’API “/api/v6/dhcp/config/” (avec un PUT).

Pouvez-vous svp ajouter à l’API existante (”/api/v6/dhcp/config/”) la gestion de ce paramètre (ajout du champ dans l’objet DhcpConfig) ?

Merci

Bien à vous

3492826/05/202108/09/2021AnomalieAPIFreebox Server V6 (Révolution)NouveauL'API ne permet plus de supprimer les fichiers en exten... Task Description

Bonjour,

Depuis le passage au firmware 4.3.3 sur ma Freebox Révolution, il n'est plus possible de supprimer les fichiers dont l'extension est .srt

J'ai essayé :

  • via l'interface de la TV : aucune erreur apparait mais le fichier n'est pas supprimé
  • via l'application Android de Free : j'ai une erreur qui dit « suppression de 1 fichier a échoué »
  • via l'interface de FreeboxOS : j'ai le message « erreur lors de la suppression : permission refusée »

Voici le JSON retourné par https://mafreebox.freebox.fr/api/v8/fs/rm/ :

{
  "result": {
    "curr_bytes_done": 0,
    "total_bytes": 0,
    "nfiles_done": 0,
    "started_ts": 1622011226,
    "duration": 0,
    "done_ts": 0,
    "src": [
      "/Disque dur/Vidéos/TV/episode.s1e01.srt"
    ],
    "curr_bytes": 0,
    "type": "rm",
    "to": "",
    "id": 10,
    "nfiles": 0,
    "created_ts": 1622011226,
    "state": "running",
    "total_bytes_done": 0,
    "rate": 0,
    "from": "/Disque dur/Vidéos/TV/episode.s1e01.srt",
    "dst": "",
    "eta": 0,
    "error": "none",
    "progress": 0
  }
}

À noter que j'arrive à supprimer sans problème le fichier via Windows Explorer.

Cela ne vient pas d'un seul fichier SRT en particulier (j'ai essayé 2 fichiers différents dans deux répertoires différents). Pas de problème avec les fichiers vidéos.

Merci

3767907/02/202303/04/2024AnomalieAPIFreebox Server V6 (Révolution)NouveauAPI V10 retourne invalid_token après génération du hmac
3771815/02/202307/04/2024AnomalieAPIFreebox Server V6 (Révolution)NouveauEndpoint /share_link non fonctionnel
3863607/09/202311/09/2023AnomalieAPIFreebox Server V6 (Révolution)NouveauTVMonaco non disponible dans l'api des bouquets
4044504/08/202504/08/2025AnomalieAPIFreebox Server Mini 4KNouveauMetriques rate_up et bytes_up invalides via l'API et su...
3278915/10/202024/10/2020AnomalieApplicationsFreebox Player V6 (Revolution)NouveauPing ne répond pas
3342512/12/202014/01/2021ÉvolutionAssociationAndroidNouveauAjout d'un historique des sessions Freebox OS
1314002/09/201303/02/2023ÉvolutionAudio (AirMedia, ...)TousNouveauPas d'accès AirMedia 'audio' sur le Freebox Server
1507824/05/201422/10/2014ÉvolutionAudio (AirMedia, ...)TousNouveauAjouter un Renderer DLNA au Freebox Server
1521825/06/201403/02/2019ÉvolutionAudio (AirMedia, ...)TousNouveauPouvoir lire les radios favoris sur Freebox Server
1627530/01/201525/09/2017ÉvolutionAudio (AirMedia, ...)TousNouveauLe port audio IN devrait permettre une entrée son
1634101/03/201518/05/2021AnomalieAudio (AirMedia, ...)TousNouveauProbleme de son sous Airplay (Freebox Server Air Media)
1752231/05/201503/02/2023AnomalieAudio (AirMedia, ...)TousÀ investiguerLe freebox server est absent de la liste des terminaux ...
1912710/11/201528/11/2019ÉvolutionAudio (AirMedia, ...)TousNouveauCompte Deezer non disponible
1918320/11/201506/08/2020ÉvolutionAudio (AirMedia, ...)TousNouveauServeur DLNA DMS
1948916/01/201616/01/2016ÉvolutionAudio (AirMedia, ...)TousNouveauUtilisation enceinte freebox server depuis freebox play...
1956702/02/201629/08/2021ÉvolutionAudio (AirMedia, ...)TousNouveauVisibilité des fichiers .dsf (DSD) via DLNA
2134005/04/201707/02/2018ÉvolutionAudio (AirMedia, ...)TousNouveauAirplay c'est pour quand ?
2157904/06/201701/11/2018ÉvolutionAudio (AirMedia, ...)TousNouveauFonction Airmedia non supporté
2183607/10/201707/10/2017ÉvolutionAudio (AirMedia, ...)TousNouveauSimple Radio
2224814/01/201814/01/2018ÉvolutionAudio (AirMedia, ...)TousNouveauNouveau flux RJM DANCE
2235505/02/201810/03/2020AnomalieAudio (AirMedia, ...)TousNouveauProblème distorsion de son via airplay
2241620/02/201803/02/2019ÉvolutionAudio (AirMedia, ...)TousNouveaupossibilité d'avoir des favoris dans les radios
2281728/08/201828/08/2018ÉvolutionAudio (AirMedia, ...)TousNouveauPrise en charge AirPlay 2
2419607/01/201907/01/2019ÉvolutionAudio (AirMedia, ...)TousNouveauAjout du vrai Airplay 2
2588717/02/201920/08/2019ÉvolutionAudio (AirMedia, ...)TousNouveauMémorisation niveau sonore Freebox Server Delta
Showing tasks 101 - 150 of 3144 Page 3 of 63

Available keyboard shortcuts

Tasklist

Task Details

Task Editing