Skip to content

Angelius007/myfox-api

Repository files navigation

MyFox Integration pour Home Assistant

GitHub release GH-code-size issues - myfox-api GH-last-commit

hacs_badge HACS validation Validate with hassfest Python application

myfox

Implémentation Custom pour interfaçage avec les API MyFox (racheté par Somfy).

Récupère l'ensemble des items dispo via les API MyFox et ajoute les "appareils" et "entités" associées

Installation

Création d'un compte sur myfox.me

Rendez-vous sur https://api.myfox.me/dev/apps et créer un accès de type "Commercial applications"

L'accès via "Personal application" n'est plus disponible pour cette intégration car imposait de stocker les accès en plus des tokens. L'utilisation du token "Personal application" reste disponible pour le moment pour les tests unitaires.

Interface myfoxapi : Bien utiliser les identifiants "Commercial applications"

myfox

Installation de l'intégration

3 méthodes disponibles pour l'installation :

Une fois installé, ajouter via les intégrations -> MyFox.

Ou bien cliquez sur le lien Open your Home Assistant instance and start setting up a new integration.

Le déclenchement de l'installation ou la demande d'ajout d'une nouvelle entrée débranchera vers la page d'autorisation d'ouverture de l'API API MyFox. Les appareils et entités seront ensuite automatiquement récupérés et disponibles dans HomeAssistant.

Les différents types d'appareils disponibles : Integrations MyFox

Endpoints implémentés / non implémentés :

Recherche des sites (1 service sur 1, 1 entry)

Services

  • /client/site/items : listing des sites de l'utilisateur. Choix du site paramétrable dans HA

Entry

  • Choix du site ID

Gestion des caméras (8 services sur 10, camera:1, buttons:6)

Services

  • /site/{siteId}/device/camera/items : listing des caméras
  • /site/{siteId}/device/{cameraId}/camera/live/start/{protocol} : démarrage d'un live (protocol "hls" implémenté)
  • /site/{siteId}/device/{cameraId}/camera/live/extend : pour ajouter 30 sec de live
  • /site/{siteId}/device/{cameraId}/camera/live/stop : pour arrêter le live
  • /site/{siteId}/device/{cameraId}/camera/preview/take: photo instantané (sert pour la vignette de la caméra)
  • /site/{siteId}/device/{cameraId}/camera/recording/start : enregistre une vidéo de 2 min dans le cloud MyFox (nécessite abonnement. Encore dispo ?)
  • /site/{siteId}/device/{cameraId}/camera/recording/stop : stop l'enregistrement de la vidéo dans le cloud
  • /site/{siteId}/device/{cameraId}/camera/snapshot/take : photo instantané sauvegardé dans le cloud MyFox
  • (not implemented) /site/{siteId}/device/{cameraId}/camera/shutter/open : ouverture obturateur caméra (si dispo)
  • (not implemented) /site/{siteId}/device/{cameraId}/camera/shutter/close : fermeture obturateur caméra (si dispo)

Camera

  • Image/Aperçu Caméra
  • Stream (protocol hls)

Buttons

  • Snapshot
  • Rec Start
  • Rec Stop
  • Live Start
  • Live Extend
  • Live Stop

Gestion des capteurs de lumière (1 service sur 2, sensors:1)

Services

  • /site/{siteId}/device/data/light/items : listing des capteurs de lumières
  • (not implemented) /site/{siteId}/device/{deviceId}/data/light : historique des capteurs

Sensors

  • Luminosité/light

Gestion des autres capteurs (incendie / panne congélateur / etc.) (1 service sur 1, sensors:1)

Services

  • /site/{siteId}/device/data/other/items : lising des autres capteurs (incendie / capteur panne congélateur / etc.)

Sensors

  • Etat capteur

Gestion des appareils à état (1 service sur 2, sensors:1)

Services

  • /site/{siteId}/device/data/state/items : listing des appareils à état
  • (not implemented) /site/{siteId}/device/{deviceId}/data/state : récupère l'état d'un appareil

Sensors

  • Etat capteur

Gestion des capteurs de température (1 service sur 2, sensors:1)

Services

  • /site/{siteId}/device/data/temperature/items : listing des capteurs de température
  • (not implemented) /site/{siteId}/device/{deviceId}/data/temperature : historique des capteurs

Sensors

  • Temperature

Gestion des portails (3 services sur 3, buttons:2)

Services

  • /site/{siteId}/device/gate/items : listing des appareils
  • /site/{siteId}/device/{deviceId}/gate/perform/one : action 1 de l'appareil
  • /site/{siteId}/device/{deviceId}/gate/perform/two : action 2 de l'appareil

Buttons

  • Bouton action 1
  • Bouton action 2

Gestion des modules de chauffage (6 services sur 10, sensors:1, selects:2)

Services

  • /site/{siteId}/device/heater/items/withthermostat : listing des modules de chauffage avec thermostat
  • /site/{siteId}/device/heater/items : listing des modules de chauffage
  • (not implemented) /site/{siteId}/device/{deviceId}/heater/auto : positionnement en mode auto du module de chauffage
  • (not implemented) /site/{siteId}/device/{deviceId}/heater/away : positionnement en mode absent du module de chauffage
  • (not implemented) /site/{siteId}/device/{deviceId}/heater/boost : positionnement en mode boost du module de chauffage
  • /site/{siteId}/device/{deviceId}/heater/eco : positionnement en mode eco du module de chauffage
  • /site/{siteId}/device/{deviceId}/heater/frost : positionnement en mode frost du module de chauffage
  • /site/{siteId}/device/{deviceId}/heater/off : positionnement en mode off du module de chauffage
  • /site/{siteId}/device/{deviceId}/heater/on : positionnement en mode confort du module de chauffage
  • (not implemented) /site/{siteId}/device/{deviceId}/heater/thermostatoff : positionnement en mode off du module de chauffage

Sensors

  • Temperature (pour module radiateur avec thermostat)

Selects

  • Selection programme (ON/OFF/Mode ECO/Mode Hors-Gel)
  • Selection programme (ON/OFF/Mode ECO/Mode Hors-Gel) (inactif:Mode Absent/Mode Auto/Mode Boost/Thermostat OFF)

Gestion des autres modules (3 services sur 3, buttons:2)

Services

  • /site/{siteId}/device/module/items : listing des modules
  • /site/{siteId}/device/{deviceId}/module/perform/one : action 1 de l'appareil
  • /site/{siteId}/device/{deviceId}/module/perform/two : action 2 de l'appareil

Buttons

  • Bouton action 1
  • Bouton action 2

Gestion des volets (3 services sur 4, buttons:2)

Services

  • /site/{siteId}/device/shutter/items : listing des modules volets
  • /site/{siteId}/device/{deviceId}/shutter/open : volet en position ouverte
  • /site/{siteId}/device/{deviceId}/shutter/close : volet en position fermée
  • (not implemented) /site/{siteId}/device/{deviceId}/shutter/my : volet en position "favoris"

Buttons

  • Ouverture volet
  • Fermeture volet

Gestion des groupes de volets (3 services sur 3, buttons:2)

Services

  • /site/{siteId}/group/shutter/items : listing des groupes de volets
  • /site/{siteId}/group/{groupId}/shutter/open : volets en position ouverte
  • /site/{siteId}/group/{groupId}/shutter/close : volets en position fermée

Buttons

  • Ouverture volet
  • Fermeture volet

Gestion des prises (3 services sur 3, buttons:2)

Services

  • /site/{siteId}/device/socket/items : listing des prises connectées
  • /site/{siteId}/device/{deviceId}/socket/on : position on
  • /site/{siteId}/device/{deviceId}/socket/off : position off

Buttons

  • Bouton ON
  • Bouton OFF

Gestion des groupes de prises (3 services sur 3, buttons:2)

Services

  • /site/{siteId}/group/electric/items : listing des groupements d'appreils électriques
  • /site/{siteId}/group/{groupId}/electric/on : position on
  • /site/{siteId}/group/{groupId}/electric/off : positionoff

Buttons

  • Bouton ON
  • Bouton OFF

Gestion des scénarios (4 services sur 4, scenes:1, switches:1)

Services

  • /site/{siteId}/scenario/items : listing des scénarios
  • /site/{siteId}/scenario/{scenarioId}/play : déclenchement d'un scénario
  • /site/{siteId}/scenario/{scenarioId}/enable : activation d'un scénario
  • /site/{siteId}/scenario/{scenarioId}/disable : désactivation d'un scénario

Scenes

  • Déclenchement scénario à la demande

Switches

  • Activation/Désactivation scénario

Gestion de l'alarme (2 services sur 2, alarm_control_panel:1)

Services

  • /site/{siteId}/security : récupération de l'état de l'alarme
  • /site/{siteId}/security/set/{securityLevel} : changement du niveau de sécurité de l'alarme

Selects

  • Changement niveau alarme (Disarmed/Partial/Armed)

Gestion de l'historique (1 services sur 1)

Services

  • /site/{siteId}/history : historique de la centrale

Gestion des médias (0 services sur 3)

Services

  • (not implemented) /site/{siteId}/library/image/items : listing des photos dans le cloud MyFox
  • (not implemented) /site/{siteId}/library/video/items : listing des vidéos dans le cloud MyFox
  • (not implemented) /site/{siteId}/library/video/{videoId}/play : lecture d'une viédo du cloud MyFox

Data updates

L'intégration charge toutes les données disponibles lors de l'installation. Ensuite, une mise à jour sera déclenchée par défaut toutes les 2 minutes. Pour limiter le nombre d'appels aux API MyFox, certaines données sont stockées en cache local (la fréquence de mise à jour peut donc être réduite). Cette fréquence de "pooling" et de "cache" est personnalisable dans la configuration de l'intégration.

Configurations :

Fréquence de pooling (en minutes) / Pooling frequency (in minutes)

Fréquence d'appel des API via le coordinateur. Tous les services de récupération des appareils et de certains capteurs sont mis à jour via ce pooling.

Durée du cache (en secondees) / Cache duration (in seconds)

Durée du cache pour les listes d'appareils et capteurs. Si le pooling tente de récupérer des informations avant la fin de durée du cache, l'appel à l'API ne sera pas réalisé et la donnée en cache sera utilisée. (permet de limiter le nombre d'appels aux API MyFox)

Durée du cache de l'alarme (en secondes) / Security Cache duration (in seconds)

Durée du cache spécifique à l'alarme (pour récupérer l'état de l'armement)

Durée du cache de la camera (en secondes) / Camera Cache duration (in seconds)

Durée du cache spécifique à la caméra (pour récupérer un aperçu des caméras).

Nombre de relance (defaut) / Number of retry (default)

En cas d'échec d'un appel à l'API MyFox, nombre de tentative avant d'abandonner la requête

Nombre de relance (Camera) / Number of retry (Camera)

En cas d'échec d'un appel à l'API MyFox, nombre de tentative avant d'abandonner la requête (spécifique à la caméra)

Délai entre deux essais (en secondes) / Delay between two tries (in seconds)

Délai entre deux essaies en cas d'erreur sur l'appel d'API

Utilisation d'un code pour l'alarme

Activation du code pour accéder au changement de niveau de sécurité.
La désactivation de cette fonction supprime le stockage des codes.

Codes autorisés

Codes autorisés pour changer le niveau de sécurité de l'alarme (séparés par des espaces).
Le code étant numérique, ne pas commencer par des 0.

Préconisations :

  • Pour intégrer des couleurs dans les icônes, installer le plugin "custom-ui" via HACS pour changer la couleur des icônes

Après installation :

  • Pour pouvoir mettre des couleurs sur les icônes
  • installer Custom-ui : https://github.com/Mariusthvdb/custom-ui
  • ajouter dans le configuration.yaml la ligne : homeassistant: customize_glob : !include custom_components/myfox/customize.yaml

Désinstallation

Suppression de l'intégration

Cette intégration suit les standards de suppression des intégrations. La suppression se fait donc via le paramétrage des intégrations, puis Supprimer

Suppression des tokens

Depuis l'écran des intégrations, rendez vous sur sur les "..." en haut à droite, puis "Informations d'identification de l'applications". S'il reste une clef commençant par "MyFox", vous pouvez la supprimer

Suppression des autorisations sur l'api myfox

Si vous ne voulez plus exposer votre alarme MyFox aux API, vous pouvez supprimer les accès sur la page https://api.myfox.me/dev/apps

Limitations connues

Cette intégration ne reçoit pas d'événement actif de l'alarme (tel qu'un événement de déclenchement d'alarme par exemple). Les données sont uniquement récupérées via les API MyFox dont le nombre est limité par rapport à ce que peut fournir l'application officielle MyFox.

Pour les développeurs

Pour les Tests :

Commencer par dupliquer le fichier "init_cache.txt" en le renommant en "cache.txt" Puis remplissez les zones prévues :

  • "CLIENT_ID": "xxx" -> A recuperer sur api.myfox.me
  • "CLIENT_SECRET": "xxx" -> A recuperer sur api.myfox.me
  • "MYFOX_USER": "xxx" -> Email compte MyFox
  • "MYFOX_PSWD": "xxx" -> Pswd MyFox

Autres informations

Author

Angelius007

Sources

https://github.com/Angelius007/myfox-api

API MyFox

API : https://api.myfox.me/

Attention, MyFox a été racheté par Somfy depuis plusieurs années. Il n'y a plus de support ou de mise à jour des API MyFox

About

MyFox Integration for Home Assistant

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages