alphayax / freebox_api_php

API PHP pour la freebox
GNU General Public License v3.0
12 stars 3 forks source link

Freebox v6 PHP API v3/v4

stable unstable pakagist

Build Status Coverage Codacy

License Total Downloads

Implementation PHP de l'API de la freebox

Prérequis

Ce projet est basé sur composer. Pensez à installer les dependences :)

Fonctionnalités

Un document complet repertorie l'ensemble des services implémentées :

API Freebox (v3)

API Freebox (v4)

Utilisation

Application

L'objet \alphayax\freebox\utils\Application représente votre application. Vous devrez créer une instance de cette classe et la transmettre aux services que vous souhaitez utiliser.

Association

Pour acceder aux services proposés par l'API de la freebox, vous deverez autoriser votre application. Cette procedure impose que vous soyez connecté au réseau local de votre Freebox lors de "l'association" et que vous ayez la Freebox a portée de main. L'application sauvegarde automatiquement le token retourné par la freebox et cette procedure ne sera plus a reproduire.

Notez que pour modifier les droits d'accès aux differents services, vous deverez passer par l'interface web locale : [http://mafreebox.freebox.fr/login.php].

Parametres de la freebox > Divers > Gestion des accès > Applications

  1. Créer un objet application.
  2. Demander l'autorisation de connexion a la freebox (cf: cadrant led du Freebox Server)
  3. Récuperer une session pour utiliser les divers services de l'API
$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.example', 'Freebox PHP API Exemple', '0.0.1');
$App->authorize();
$App->openSession();

Accès local

L'accès local est activé par défaut. Une fois l'application créée et la session ouverte, vous pouvez utiliser directement les services auquels l'application à acces.

Accès distant

Pour pouvoir utiliser l'accès distant, il vous faudra le token associé a votre application. Ce token s'obtient automatiquement après l'association faite via l'appel à la méthode authorize(). Le token est ecrit dans le fichier app_token. Il est également disponible via la methode \alphayax\freebox\utils\Application::getAppToken().

Une fois le token obtenu, vous pouvez proceder comme suit :

$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.version', 'Freebox PHP API Example (Version)', '1.0.0');
$App->setFreeboxApiHost( 'https://xxx.freeboxos.fr:17105'); // A remplacer par votre host
$App->setAppToken( 'xxxxxxxxxxxxxxxxxxxx');                 // A remplacer par votre token
$App->openSession();

Services

Les appels aux services de l'API se font par l'intermédiaire de services. Ces derniers possedent les méthodes pour récuperer, ajouter ou mettre a jour des données.

Voici un exemple d'utilisation de l'API System :

  1. Nous créons un nouveau service "System"
  2. Nous demandons de récuperer la configuration actuelle
  3. Affichage du modele retourné
$System = new \alphayax\freebox\api\v3\services\config\System( $App);
$SystemConfig = $System->getConfiguration();

print_r( $SystemConfig);

Résultat :

alphayax\freebox\api\v3\models\SystemConfig Object
(
    [firmware_version:protected] => 3.3.1
    [mac:protected] => 77:77:77:77:77:77
    [serial:protected] => 7777777777777777
    [uptime:protected] => 44 jours 16 heures 35 minutes 16 secondes
    [uptime_val:protected] => 3861316
    [board_name:protected] => fbxgw2r
    [temp_cpum:protected] => 63
    [temp_sw:protected] => 52
    [temp_cpub:protected] => 58
    [fan_rpm:protected] => 2253
    [box_authenticated:protected] => 1
)

Exemples

Les exemples sont disponibles dans le repertoire exemple. Ils sont classés par services :

Freebox Delta et accès aux objets connectés

Pour accéder aux objets connectés, vous devez autoriser l'application à y accéder. Pour ce faire, allez dans l'interface d'administration de la freebox après avoir obtenu votre clé API, puis rendez vous dans Paramètres de la Freebox / Gestion des accès / Application puis autorisez Gestion de l'alarme et maison connectée.