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

  • Status Nouveau
  • Percent Complete
    0%
  • Task Type Anomalie
  • Category LAN → WiFi
  • Assigned To No-one
  • Operating System Tous
  • Severity Low
  • Priority Very Low
  • Reported Version 4.8.17.1
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private

FS#39974 - Update standby config PAR API NON fonctionnel

Bonjour,

quand je veux faire une requette pour changer le type de mode veille du wifi. j’obtiens l’erreur suivante

{"msg":"Requête invalide (404)","success":false,"error_code":"invalid_request"}

la requette faite est la suivante

PUT sur la l'adresse mafreebox.freebox.fr/api/v12/standby/config({"planning_mode":"wifi_off"})

J’ai suivi la doc developpeur, je ne vois pas ce qui bloque

 PUT /api/v11/standby/config

    Example request:

    PUT /api/v11/standby/config/ HTTP/1.1
    Host: mafreebox.freebox.fr

    {
      "use_planning": true,
      "planning_mode": "suspend",
      "mapping": [
        false,
        false,
        false,
        false,

        [ ... ],

        false,
        false,
        false,
        false
      ],
      "resolution": 48
    }

Merci de l’aide

Bonjour

Avez vous un message d'erreur ?
Moi je reçoit 'resolution invalide'

$ put_fbx_api standby/config '{"success":true,"result":{"use_planning":true,"planning_mode":"wifi_off","mapping":[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],"resolution":48}}' | jq
{
  "msg": "Résolution invalide",
  "success": false,
  "error_code": "inval"
}

Pourtant :

$ get_fbx_api standby/config | jq | grep -v '"use_planning": false,' |grep  'false' | wc -l
336

et

$ echo $((336/7))
48

ET la doc dit (je cite):

resolution int Read-only
planning resolution (number of slots per day)

mapping[] array of bool
mapping for planning : true or false

mapping[0] is monday at 0:0

mapping[7 * resolution - 1] is sunday last slot

(each slot has a duration of 60 * 24 / resolution minutes)

Donc si je fais: 60 * 24 / resolution = 60 * 24 / 48 = 30 ⇒ 1 SLOT = 0.5h
Puis si je fais 0.5h * 336 ⇒ 168h ⇔ 7j * 24h ⇔ 1 semaine soit le planning

Comme vous je ne pense pas faire d'erreur bien que l'API en renvoie une

Cordialement
nbanba

Bonjour

En fait désolé je me suis planté !
(j'ai posté le retour du GET dans le put ⇒ pas le bon JSON)

Avec le bon JSON ça à l'air de fonctionner:

$ put_fbx_api standby/config '{"use_planning":true,"planning_mode":"wifi_off","mapping":[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],"resolution":48}' | jq
{
  "success": true,
  "result": {
    "use_planning": true,
    "planning_mode": "wifi_off",
    "mapping": [
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false,
      false
    ],
    "resolution": 48
  }
}

Cordialement
nbanba

Bonjour

Avez vous réussi ?

Je crois d'ailleurs que votre souci vient du HTTP PUT ou vous n'envoyez que

{"planning_mode":"wifi_off"}

au lieu d'envoyer le JSON complet avec le tableau de 336 boolean.

Pour n'envoyer qu'un JSON partiel (comme celui que vous envoyez), je pense qu'il faut que l'API accepte les requête HTTP PATCH en + des requêtes HTTP PUT sur ce type d'objet.

⇒ Transformer ce ticket en 'évolution' pour demander le support des requêtes HTTP PATCH sur les objets possédant beaucoup de paramètres et ou on peut ne faire varier que peu de paramètres comme c'est le cas ici (histoire d'envoyer un JSON minimaliste comme vous le faite au lieu d'envoyer un JSON avec plus de 300 paramètres)

Ce serait une bonne optimisation des ressources et de la bande passante

Cordialement
nbanba

JA_G commented on 26.01.2025 14:32

Bonjour
Désolé pour la réponse tardive
Mais vous avez raisons, il faut envoyer l'ensemble des paramètres pour que la commande soit prise en compte.
oui se serait bien que la commande évolue pour permettre d'envoyer que certains paramètres et pas la totalité

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing