Aller au contenu

Recommended Posts

Voila un super plugin pour les possesseurs d'une freebox V6 !

 

Vous connaissez tous l'auteur, puisqu'il est présent sur le forum...il s'agit de Krikroff !

 

Au passage, j'ai adoré la rédaction du sujet, présentation...etc.

Je tiens personnellement à  te féliciter pour le travail que tu fais pour les possesseurs d'une HC2.

 

Nous t'attendons ici JC pour commenter ton plugin... ;)

 

Sans plus attendre...voici le lien de l'article : http://domotique-info.fr/2014/01/home-center-2-lua-freebox-avec-krikroff/

 

 

 

 

Note de mise à  jour:

 

Important, Veuillez lire le document Release_notes_v0.1.0.docx avant l'installation

 

Version 0.0.7

- Notification par mail des nouveaux appels manqués (Date Heure + Numéro de téléphone + Nom). Pour activer la fonctionnalité il faut paramétrer dans le code la variable _userId avec l’ID d’utilisateur et mettre missedCalls à  true.
- Ajout de variables : Monitoring du DD interne : température, espace.
- Modifications mineurs

 

Version 0.0.8

- Modifications mineures
- Ajout de variables pour utiliser les températures des sondes CPU et Switch depuis une scène.
- Ajout d’une variable pour utiliser le Fan RPM depuis une scène.
- Ajout d’une variable pour persister la version du Firmware et notifier d’un changement de version.

 

Version 0.0.9

- Ajout de variables pour la détection de 2 périphériques Wi-Fi. Attention depuis iOS 6.xx les iPhones désactivent le Wi-Fi pendant la veille et sortent donc du réseau.

 

Version 0.1.0

- Correction sur la mise à  jour de l’ IHM en cas de remis à  zéro de la liste des appels

:)

 

Version 0.1.1

- Dernière version disponible à  ce jour, voir en page 11 : http://www.domotique-fibaro.fr/index.php/topic/328-plugin-freebox-v6/?p=101866

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui tout àfait le type de gars que j'aime bien, le partage et non la competition, l'exclusivité. Je vais clairement dans ce sens, y compris dans les cours que je dispense tous les jours.

Felicitation àtoi JC !

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci à  tous les deux, vous êtes :74: .

 

Encore beaucoup de choses en tête après c'est le temps qui manque, si je pouvais tout faire ...

 

Une nouvelle version est en cours de préparation (avec mise à  jour du frameworks en v1.0.4) mais n’hésitez pas à  proposer des améliorations.

 

HS: Phil, est-il possible de créer un sondage: Votre F.A.I c'est qui ?

 

Et vive le partage !

Partager ce message


Lien à poster
Partager sur d’autres sites

Petit ajout personnel à  ce super script (qui m'a permis de décommissioner l'équivalent PHP sur mon NAS !):

 

Une fonction pour l'espace disque restant (je faisais ça avant en PHP avec une alerte quand il faut faire du ménage, genre en dessous de 20Go restant) :

function GetDiskFreeBytes(enable)
  --Toolkit.Net.isTraceEnabled = true;
  local HttpClient = Toolkit.Net.HttpRequest(FreeboxObject._host, 80);
  HttpClient:setReadTimeout(1000);
  local response, status, errorCode = HttpClient:request("GET", 
    "/api/v1/storage/disk/1", {
      "User-Agent: FibaroHC2/1.0",
      "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
      "Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3",
      "Accept-Encoding: deflate",
      "Accept-Charset: utf-8",
      "X-Fbx-App-Auth: "..FreeboxObject._sessionToken,
      "X-Fbx-App-Id: plugin.freebox.fibaro"
    });
  HttpClient:disconnect();
  HttpClient:dispose();
  HttpClient = nil;
  --Toolkit.Net.isTraceEnabled = false;
  local _return = false;
  -- check for error
  if errorCode == 0 then
    if tonumber(status) == 200 then
      local jsonTable = json.decode(response);
      if (jsonTable.success == true ) then
        Tk:trace("Get Disk Storage Status with success");
        FreeboxObject._diskFreeBytes = jsonTable.result or {};
        _return = true;
      else
        Tk:trace("Get Disk Storage Status failed");
      end
    else
      Tk:trace("status: "..status);
    end
  else
    Tk:trace("Communication error");
  end
  return _return;
end

Bien penser à  rajouter la variable _diskFreeBytes au début du script Freebox.

Puis ce code à  rajouter dans le main pour rafraîchir le label :

if (GetDiskFreeBytes()) then
  fibaro:call(FreeboxObject._selfId, "setProperty", "ui.lblDisk.value", math.floor(FreeboxObject._diskFreeBytes.partitions[1].free_bytes/1000000000,2).." Go libres sur "..math.floor(FreeboxObject._diskFreeBytes.partitions[1].total_bytes/1000000000,2).." Go");
end 

Une autre fonction pour monitorer la °C de la freebox :

function GetTemperatures()
  local payload = [[
  {"db":"temp", "fields":["temp1", "temp2", "temp3"], "precision":10}
  ]];
  --Toolkit.Net.isTraceEnabled = true;
  local HttpClient = Toolkit.Net.HttpRequest(FreeboxObject._host, 80);
  HttpClient:setReadTimeout(1000);
  local response, status, errorCode = HttpClient:request("POST", 
    "/api/v1/rrd/", {
      "User-Agent: FibaroHC2/1.0",
      "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
      "Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3",
      "Accept-Encoding: deflate",
      "Accept-Charset: utf-8",
      "X-Fbx-App-Auth: "..FreeboxObject._sessionToken,
      "X-Fbx-App-Id: plugin.freebox.fibaro"
    },payload);
  HttpClient:disconnect();
  HttpClient:dispose();
  HttpClient = nil;
  --Toolkit.Net.isTraceEnabled = false;
  local _return = false;
  -- check for error
  if errorCode == 0 then
    if tonumber(status) == 200 then
      local jsonTable = json.decode(response);
      if (jsonTable.success == true ) then
        Tk:trace("Getting Temperatures with success");
        FreeboxObject._temperatures = jsonTable.result or {};
        _return = true;
      else
        Tk:trace("Getting Temperatures failed");
      end
    else
      Tk:trace("status: "..status);
    end
  else
    Tk:trace("Communication error");
  end
  return _return;  
end

Et pareil pour la variable _temperatures ainsi que le rafraîchissement du label :

if (GetTemperatures()) then
  fibaro:call(FreeboxObject._selfId, "setProperty", "ui.lblTemperatures.value", (FreeboxObject._temperatures.data[1].temp1/10)..", "..(FreeboxObject._temperatures.data[1].temp2/10)..", "..(FreeboxObject._temperatures.data[1].temp3/10).."°C");
end

Bien sà»r il faut rajouter les label dans avec les ID lblDisk et lblTemperatures

 

Voilà  !

 

Ah oui et sinon Krikroff, "failed", il n'y a qu'un "l" !

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut bbart, merci pour la coquille (avec 2 "l") :P et merci pour cette contribution :) . Mais...
 
C'est dommage j'ai déjà  implémenté la température du HDD et l 'espace libre au périphérique virtuel, mais il était trop tard pour faire les modifications sur l'article de Sébastien. En revanche un membre du fofo ici, i-magin pour ne pas le nommer est bêta testeur du VD.
 
Je tiens d'ailleurs à  le remercier pour sa disponibilité et sa gentillesse: Merci JJ :60:
 
Voici une capture de la version dans l'état actuel mais d'autres choses sont aussi en cours...
 

gallery_3_49_16194.png

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok, testé et...approuvé !  B)

 

Au fait à  quoi sert "wifi dev1" et "wifi dev2" ?

 

Vous nous tenez au courant pour la prochaine release ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Il faut renseigner dans le code LUA l'adresse mac d'un périphérique wifi + un seuil d'inactivité (ici threshold), ensuite les boutons Wifi dev 1 et Wifi dev 2 permettent de vérifier si ces périphériques sont listés comme actifs ou pas (ex: smartphone, tablette, objet connecté). Dans la version à  venir des variables globales serviront pour persister l'état.

 

le code ressemble à  cela:

  _wifiDevice = {
    {
      -- Wifi device #1 which can be searched
      mac = "60:FA:44:95:7B:22", 
      threshold = 1200,
      lastActivity = 0
    }
  }

Tu seras le premier informé ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

à‡a correspond à  un "Ping"  ou c'est différent ?

 

Une idée pour une future release : Afficher le numéro du dernier appelant.

Partager ce message


Lien à poster
Partager sur d’autres sites

Non ce n'est pas du ping c'est vraiment une interrogation de la liste des périphériques réseau (Wif-Fi ici les baux actifs) de la Freebox, en revanche toujours le problème avec IOS qui sort du réseau rapidement après une veille.

 

Bonne idée l'affichage du dernier appelant ;).

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as bien renseigné l'adresse Ip de la freebox dans le VD?

Partager ce message


Lien à poster
Partager sur d’autres sites

L'adresse pour le freebox serveur c'est soit mafreebox.freebox.fr ou freebox-server.local ou l'adresse IP ...

Bien vérifier si le plugin est autorisé sur la freebox ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, merci à  vous de m'avoir répondu, mais a priori j'arrive toujours pas à  me connecter au serveur.

 

J'ai essayé les différentes adresse données ci-dessus, même l'IP que j'ai retrouvé dans les paramètres d'accès distant de ma freebox, avec ou sans port. 

 

J'ai mis ces adresse dans l'onglet Adresse IP : 78.247.6.**

 

je suis retourné voir mes variables, mais j'ai rien trouvé...il doit y avoir un truc que j'ai dà» loupé.

Partager ce message


Lien à poster
Partager sur d’autres sites

...l'adresse en 78.xxx.xxx.xxx.xxx c'est ton adresse publique, il faut utiliser mafreebox.freebox.fr ou ton adresse en loc. qui doit être un truc comme 192.168.1.254 pour la freexbox. As tu vérifié depuis l'interface de la free si le plug est bien identifié ?

Partager ce message


Lien à poster
Partager sur d’autres sites

oui j'ai rectifier c'est bien 192.168.1.254, je vois bien le plugin , il me semble que j'ai bien validé sur l'écran de la box, mais sur l'interface pc ça me mets authentification en cours?

Partager ce message


Lien à poster
Partager sur d’autres sites

ok c'est fait, seulement rien ne s'affiche sur le module, aucunes données, il est bien reconnu par la freebox et j'ai bien activés toutes les options. 

Partager ce message


Lien à poster
Partager sur d’autres sites

soit tu attends la loop ou simplement tu cliques sur la disquette pour enregistrer le VD histoire de le rafraichir...

Partager ce message


Lien à poster
Partager sur d’autres sites

Super que ça marche ! En même temps c'est vrai que la procédure est un peu lourde, vivement les plugins de la V4, enfin j'espère...

 

Bientôt une nouvelle release ;).

Partager ce message


Lien à poster
Partager sur d’autres sites

il suffirait simplement de dire on l'on met son Ip local de la freebox, dans le code Lua de "main loop" ainsi que la ligne. Car pour un débutant c'est pas évident.

 

Un autre phénomène, sur iphone je ne vois toutes les données, elles sont partiellement masquées. Celles des données débit :

 

med_gallery_25_48_179319.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour info un peu hors sujet car pas liée au plugin mais interessant: depuis le dernier firmware du freebox player, la commande power est envoyée àla TV via l'HDMI quand on allumer le player avec la télécommande, du coup en ayant un virtual device avec les commandes de la télécommande on peut envisager une petite scène pour le matin au ptit dej, style allume les lumières, fait chauffer l'eau, allumer la télé :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi j'attends la freebox v7. Me faire payer 90€ pour avoir la révolution alors que je viens d'être dégroupé, ça me fait chier, surtout que Niel est dans les starting-blocks pour annoncer mieux qu'une révolution parait-il ! Krikroff je compte sur toi pour développer un plugin pour la v7 hein :)

Partager ce message


Lien à poster
Partager sur d’autres sites

@Lolomail, on pouvait déjàfaire ça avec une TV compatible CEC il me semble...

Partager ce message


Lien à poster
Partager sur d’autres sites

×