Et voilà je viens de publier mon premier plugin python pour Domoticz.
Plugin Python Domoticz pour accéder au services de l’API V4 de la Freebox
Fonctionnalités
- Création du token d’authentification lors du premier lancement (une validation est nécessaire sur l’écran de la Freebox serveur)
- Création d’un dispositif par partition de disque dur connecté à la Freebox (disques internes et externes)
- Création de 3 dispositifs pour suivre les températures de la Freebox
- Création d’un dispositif switch par adresse mac pour laquelle vérifier la présence ou non à proximité de la Freebox.
- V1.1.1 : Création d’un dispositif switch de suivi et modification de l’état du wifi (Actif/Inactif)
- V1.1.1 : Création d’un dispositif switch de reboot de la Freebox serveur
- v1.1.2 : Compatibilité avec la Mini4K (en conservant l’usage des Disques durs)
- v1.3 : Création d’un dispositif switch d’état de la connexion Internet (WAN)
- v1.1.3 : Création de deux dispositifs pour les débits montants et descendants en Ko/s
Installation
Requis : Python version 3.4 or supérieur & Domoticz version 3.81xx ou supérieur.
-
- En ligne de commande aller dans le répertoire plugin de Domoticz (domoticz/plugins)
- Lancer la commande:
git clone https://github.com/supermat/PluginDomoticzFreebox.git
- Redémarrer le service Domoticz en lançant la commande
sudo /etc/init.d/domoticz.sh restart
Updating
Pour mettre à jour le plugin :
- En ligne de commande aller dans le répertoire plugin de Domoticz (domoticz/plugins/PluginDomoticzFreebox)
- Lancer la commande:
git pull
- Redémarrer le service Domoticz en lançant la commande
sudo /etc/init.d/domoticz.sh restart
Configuration
Field | Information |
---|---|
Address | L’adresse d’accès à la box avec le http(s) devant ( |
Port | Le port pour accéder à la Freebox (80 sur réseau local) |
Token | Le Token de connexion à la Freebox qui vous sera donné lors de la première connexion du plugin (voir les log) |
Liste mac adresse pour présence (séparé par ; ) | Une liste d’adresse mac à vérifier sur les équipements enregistrés sur la Freebox comme étant présent à proximité de la box (reachable et active). Présent au domicile |
Debug | Si true plus de log apparaîtront dans la console de log |
Dans la partie Matériel de Domoticz, chercher ‘Freebox Python Plugin’. Laissez les valeur par défaut sur un réseau local, ou configurez votre adresse et port. Ajoutez le Matériel et rendez vous dans les log. Lors de la première utilisation, laissez le token vide.
Au démarrage, si le token n’est pas défini, le plugin en demander un à la Freebox, il vous faut alors vous déplacer jusqu’à l’écran de la Freebox pour répondre oui, puis revenir sur votre Domoticz pour copier coller le token qui s’affiche dans la fenêtre de log, dans la partie Token de configuration du plugin.
Désactivez le plugin, autoriser l’ajout de nouveau dispositif pendant 5 minutes, puis réactivez le plugin pour le faire redémarrer. Les dispositifs vont se créer. A chaque démarrage du plugin, les dispositifs nouveaux ou maquant seront ajoutés. Vous pouvez supprimer ceux qui ne vous intéresse pas et inclure ceux qui vous intéresse.
Dispositifs | Description |
---|---|
Système | Températures de la Freebox et du switch interne |
Disque | Pourcentage d’espace utilisé de chaque partition connectées à la Freebox au moment du démarrage du Plugin avec autorisation d’ajout de dispositifs |
Présence | Pour chaque adresse mac renseignée, si elle est trouvée enregistrée sur la Freebox, un dispositif switch est créé, indiquant la présence (on) ou l’absence (off) du matériel à proximité de la box. Cela permet de tester la présence d’une personne au domicile en vérifiant la présence de sont smartphone par exemple. Cela fonctionne, même avec les Iphones |
On/Off Wifi | Switch permettant de voir l’état du wifi (actif/inactif) et de le modifier |
Reboot | Switch permettant de rebooter la Freebox |
ATTENTION : Pour faire fonctionner le On/Off Wifi et le
reboot, il faut autoriser le plugin a faire ces deux actions sur la Freebox. Lors de la génération du token, le plugin a été autorisé à récupérer les infos, mais pas à les modifier. Il faut pour cela aller dans l’interface Freebox OS via le menu Paramètres de la Freebox > Gestion des accès > onglet Applications, sélectionner le plugin Domoticz et cocher Modifications des réglages de la Freebox ».
Note : Un fichier devicemapping.json
est créé pour garder l’association des infos de la Freebox avec le bon device créé au moment du démarrage du Plugin.
Un fichier ReadMe est disponible ici :
Bonjour
Depuis la dernière correction cela fonctionne déjà mieux mais encore beaucoup d’erreur dans les log Freebox timeout au moins 4 à 5 par heure
Merci pour le suivi 😉
J’aimeJ’aime
Merci pour le beau travail, ca fonctionne sur freebox delta!!!
J’aimeJ’aime
Bonjour
J’ai installé le scriot mais Domotcz ne se lance plus.
Je fais un ./domoticz et
2022-01-08 22:52:52.785 Status: Domoticz V2021.1 (c)2012-2021 GizMoCuz
2022-01-08 22:52:52.785 Status: Build Hash: 8547c5b7e, Date: 2021-04-17 17:29:11
2022-01-08 22:52:52.785 Status: Startup Path: /home/freebox/domoticz/
2022-01-08 22:52:52.793 Sunrise: 08:27:00 SunSet: 17:35:00
2022-01-08 22:52:52.793 Day length: 09:08:00 Sun at south: 13:01:00
2022-01-08 22:52:52.793 Civil twilight start: 07:55:00 Civil twilight end: 18:08:00
2022-01-08 22:52:52.793 Nautical twilight start: 07:19:00 Nautical twilight end: 18:43:00
2022-01-08 22:52:52.793 Astronomical twilight start: 06:45:00 Astronomical twilight end: 19:18:00
2022-01-08 22:52:52.817 Status: PluginSystem: Started, Python version ‘3.9.2’.
2022-01-08 22:52:52.819 Active notification Subsystems: pushover (1/13)
2022-01-08 22:52:52.820 Status: WebServer(HTTP) started on address: :: with port 8080
2022-01-08 22:52:52.825 Status: WebServer(SSL) started on address: :: with port 443
2022-01-08 22:52:52.826 Status: Camera: settings (re)loaded
2022-01-08 22:52:52.826 Starting shared server on: :::8081
2022-01-08 22:52:52.827 Status: TCPServer: shared server started…
2022-01-08 22:52:52.827 Status: RxQueue: queue worker started…
2022-01-08 22:52:54.831 Status: Motherboard: Hardware Monitor: Started (OStype Linux)
2022-01-08 22:52:54.832 Status: RFXCOM: Worker started…
2022-01-08 22:52:54.832 Status: Meteo: Worker started…
2022-01-08 22:52:54.833 Freebox_CCJC hardware started.
2022-01-08 22:52:54.833 Status: Freebox_CCJC: (Freebox_CCJC) Started.
2022-01-08 22:52:54.833 Status: Freebox_CCJC: (Freebox_CCJC) Entering work loop.
2022-01-08 22:52:54.833 Status: Darksky: Started…
2022-01-08 22:52:54.833 Status: NotificationSystem: thread started…
2022-01-08 22:52:54.834 Status: EventSystem: reset all events…
2022-01-08 22:52:54.834 Status: EventSystem: reset all device statuses…
2022-01-08 22:52:54.886 Status: Python EventSystem: Initalizing event module.
2022-01-08 22:52:54.887 Status: EventSystem: Queue thread started…
2022-01-08 22:52:54.887 Status: EventSystem: Started
2022-01-08 22:52:55.021 Status: Freebox_CCJC: (Freebox_CCJC) Initialized version 1.1.2, author ‘supermat’
2022-01-08 22:52:55.294 Status: PluginSystem: 1 plugins started.
2022-01-08 22:52:55.835 Status: RFXCOM: Using serial port: /dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1Y0NKZZ-if00-port0
2022-01-08 22:52:56.411
2022-01-08 22:52:56.486 subtype = Interface Response
Sequence nbr = 2
response on cmnd = Get Status
Transceiver type = 433.92MHz
Firmware version = 1020
Firmware type = Type1
Hardware version = 1.2
Undec off
X10 enabled
ARC enabled
AC enabled
HomeEasy EU disabled
Meiantech/Atlantic disabled
Oregon Scientific enabled
ATI/Cartelectronic disabled
Visonic disabled
Mertik disabled
AD disabled
Hideki disabled
La Crosse enabled
Legrand disabled
MSG4Reserved5 disabled
BlindsT0 disabled
BlindsT1 disabled
AE disabled
RUBiCSON disabled
FineOffset disabled
Lighting4 disabled
Conrad RSL enabled
ByronSX disabled
IMAGINTRONIX disabled
KEELOQ disabled
Home Confort disabled
Fatal Python error: Bus error
Current thread 0x0000ffff5e7fbf80 (most recent call first):
File « /home/freebox/domoticz/plugins/PluginDomoticzFreebox/plugin.py », line 150 in onStart
File « /home/freebox/domoticz/plugins/PluginDomoticzFreebox/plugin.py », line 278 in onStart
Bus error
Pour info j’ai mis en commentaire dans plugin.py
#creation des devices Disque Du de la freebox ligne 129 a 141
et
Ligne 243 : usageDisk = …
Ligne 244
Ligne 245.
Merci pour l’aide
J’aimeJ’aime
Salut, quelle est la version de ta Freebox (Revolution, …) ?
J’aimeJ’aime
Désolé je n’ai pas été très précis
Box delta et installation sur la VM debian
Disque dur interne et externe (usb) + boîtier RFX col sur autre port USB le tout toujours sur la delta.
J’aimeJ’aime
J’ai réussi passer l’étape.
L’erreur venait que j’ai utilisé la BDD Domoticz d’un autre système (sous Rasberry). Le TOKEN de la freebox était mauvais.
J’ai supprimé le matériel « Freebox » dans Domoticz. Puis rajouter.
J’ai supprimé mes commentaires liés au prb de Disk
Tout redémarre sans l’erreur.
J’ai bien dans mes logs la demande de TOKEN, par contre rien ne s’affiche sur la DELTA ?
Donc je n’arrive plus à récupérer le TOKEN 😦
J’aimeJ’aime
Bonjour
Depuis la mise à jour 4.6 de la freebox
Une erreur apparait:
Error: (CDevice_update) Wifi de la Freebox: Failed to parse parameters: ‘nValue’, ‘sValue’, ‘Image’, ‘SignalLevel’, ‘BatteryLevel’, ‘Options’, ‘TimedOut’, ‘Name’, ‘TypeName’, ‘Type’, ‘Subtype’, ‘Switchtype’, ‘Used’, ‘Description’, ‘Color’ or ‘SuppressTriggers’ expected.
Et les adresse mac a vérifier saute (comme si elle se déconnect voici le log)
2022-06-22 07:11:13 On
2022-06-22 07:10:06 Off
2022-06-22 07:01:14 On
2022-06-22 07:00:06 Off
2022-06-22 06:41:14 On
2022-06-22 06:40:05 Off
2022-06-22 06:36:15 On
2022-06-22 06:35:05 Off
2022-06-22 06:34:19 On
Alors que l’appareil reste connecté en permanence
Merci d’avance 😉
J’aimeJ’aime
Bonjour, j’ai ce message d’erreur et impossible d’avoir le token
Error: Freebox: OnStart error: could not convert string to float: ‘null’
Error: Freebox: Traceback (most recent call last):
File « /home/pi/domoticz/plugins/PluginDomoticzFreebox/plugin.py », line 630, in onStart
if self.init() :
File « /home/pi/domoticz/plugins/PluginDomoticzFreebox/plugin.py », line 294, in init
self._refresh_interval = int(float(Parameters[« Mode5 »])) # Parameters[« Mode5 »] == Refresh interval field 2022-10-09 10:56:49.916 ValueError: could not convert string to float: ‘null’
Merci de votre aide !
J’aimeJ’aime