- État Nouveau
- Pourcentage achevé
- Type Anomalie
- Catégorie Freebox OS → API
- Assignée à Personne
- Système d'exploitation Tous
- Sévérité Basse
- Priorité Très Basse
- Basée sur la version 4.9.0
- Due pour la version Non décidée
-
Échéance
Non décidée
- Votes
- Privée
Concerne le projet: Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)
Ouverte par JA_G - 22/03/2025
Ouverte par JA_G - 22/03/2025
FS#40136 - Impossible de changer de chaine sur le player avec l'API
Bonjour
J'ai suivi la documentation pour pourvoir changer de chaine sur le player DEVIALET
Open TV on channel 2:
POST /api/v8/player/{id_player}/api/v6/control/open { "url": "tv:?channel=2" }
Malheureusement j'obtiens un message d'erreur
POST sur la l'adresse mafreebox.freebox.fr/api/v14/player/17/api/v6/control/open/({"url":"tv:?channel=2"}) {"msg":"Invalid request: cannot parse json","success":false,"error_code":"invalid_request"} ERROR Erreur AUTRE : Invalid request: cannot parse json
je voudrais savoir ce qu'il manque ou que je fais mal pour résoudre mon problème
les autres actions fonctionnent bien comme changé le volume
PUT sur la l'adresse mafreebox.freebox.fr/api/v14/player/17/api/v6/control/volume/({"volume":"61"}) {"success":true,"result":{"mute":false,"volume":61}}
A disposition pour plus de renseignements
Chargement...
Activer les raccourcis clavier
- Alt + ⇧ Shift + l Se connecter/Se déconnecter
- Alt + ⇧ Shift + a Ouvrir une tâche
- Alt + ⇧ Shift + m Mes recherches
- Alt + ⇧ Shift + t Rechercher par ID de tâche
Liste des tâches
- o Ouvrir la tâche sélectionnée
- j Déplacer le curseur vers le bas
- k Déplacer le curseur vers le haut
Détails de la tâche
- n Tâche suivante
- p Tâche précédente
- Alt + ⇧ Shift + e ↵ Enter Modifier cette tâche
- Alt + ⇧ Shift + w Surveiller
- Alt + ⇧ Shift + y Fermer cette tâche
Édition de la tâche
- Alt + ⇧ Shift + s Enregistrer la tâche
Bonjour
La version d'API est erronée :
Chez moi sur le Devialet:
Je récupère la valeur:
Plus simplement:
Et donc quand je fais le POST ça fonctionne:
NB:
ici les fonctions "get_fbx_api" et "post_fbx_api" contient déjà une partie de l'URL: '/api/v14/'
Je passe donc en argument uniquement la partie de l'URL qui vient après soit 'player/17/api/v13/control/open/'
Cordialement
nbanba
Bonjour,
je viens de faire le nécessaire pour récupérer la version de l'API du player pour lancer la mise à jour
Je suis en v14 sur le player
Si lance la requête qui permet de rallumer le player en lançant la dernière chaine ouverte cela fonction
si je lance la requête pour le changement de chaine, j'ai toujours l'erreur
si j'utilise la nouvelle méthode décrite sur ce site https://github.com/Aymkdn/assistant-freebox-cloud/wiki/Player-API j'ai aussi la même erreur
A disposition pour d'autres tests
Bonjour
Alors je ne comprends pas:
Quand je fais depuis un terminal linux :
Ça fonctionne bien…: {"success":true}
Après :
- je n'ai pas reboot mon player (v13.0) ⇒ peut-être un bug en v14.0 (je vais reboot pour voir)
Question:
Quel outil utilisez vous pour faire les requêtes POST / PUT avec la syntaxe que vous utilisez (à savoir rajouter le json entre parenthèses à la suite de l'URL comme dans votre exemple: mafreebox.freebox.fr/api/v14/player/17/api/v14/control/open/({"url":"app:fr.freebox.tv?channel=24"}) ?
Cordialement
nbanba
Bonjour
Non ça ne change rien après reboot du player (api player version 14.0):
puis :
Et que je refais la requête:
PS: par contre j'ai trouvé un autre bug avec le player (⇒ nouveau ticket)
Cordialement
nbanba
C'est juste le formatage des logs. je viens de les enlever pour éviter de croire qu'il y a un problème
je passe par Jeedom et le plugin Freebox
quoi comme bug ?
Bonjour
Un truc un peu ballot :
https://dev.freebox.fr/bugs/task/40140
Par contre à vous lire, il est possible que le plugin JDOM ait un souci de parsing avec le '?' dans le JSON qui serait pris comme un paramètre HTML (= un BUG plugin Jdoom)
Si depuis votre VM Jdom vous avez accès au shell (pas besoin d'être root, just un bash en version supérieur à bash 4.2 (déjà très vieux)), alors je vous recommande d'utiliser la library bash que j'utilise
ça permet d'utiliser l'API depuis la ligne de commande et chacune des "fonctions frontend" sont utilisables comme des commandes intégrées nativement au shell bash
La library est ici:
https://github.com/nbanb/fbx-delta-nba_bash_api.sh
(PS: après vous faite un script avec les fonctions de l'API puis vous dites à JDOM de lancer le script … ça doit fonctionner ça, non ?)
Cordialement
nbanba
Bonjour
Bien qu'il ne soit pas sure que ca fonctionne, à votre place et pour WORKARROUND j'essayerai des trucs comme
Ou encore
Ou encore
Ou encore
Ou encore toutes combinaisons:
Enfin pour voir si ça fonctionne en échappant certains caractères…
Disposez de fonctions type
base64_encode
base64_decode
?
Si oui à votre place j'essayerai de send à la box la requête en temps que résultats d'un truc comme:
echo $(base64_encode $request $json_param) | base64_decode
En dernier lieu j'ouvrirai un ticket sur le github des développeurs du plugin JDOOM en donnant la référence de ce present ticket
(si ce github existe… Après je serais surpris du contraire)
Si vous ouvrez un tel ticket j'apprécierai que vous me mettiez en copie des échanges (mon compte github : https://github.com/nbanb).
En vous remerciant d'avance,
Cordialement
nbanba
Bonjour,
C'est moi qui est repris le plugin il est la
https://github.com/JEALG/Jeedom-Freebox_OS
Merci pour la fonction reboot, je viens de l'ajouter
Par contre cela ne fonctionne pas les combinaisons
Bonjour
Merci pour l'ajout sur github
de mon côté j'ai également (inconnu de la doc)
Et aussi la gestion des certificats / noms de domaines
Regardez le code des fonctions dans la lib BASH que j'ai écrite, il y a les requêtes et les JSON
https://github.com/nbanb/fbx-delta-nba_bash_api.sh
Cordialement
nbanba