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

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.

Installation de l'intégration

3 méthodes disponibles pour l'installation :

  • Installation via HACS (prochainement) Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.
  • Installation avec "Dépôts personnalisés / custom repository" via HACS :
  • Installation manuelle en téléchargeant la dernière archive :

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.

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, selects: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 (0 services sur 1)

Services

  • (not implemented) /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

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).

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: !include custom_components/myfox/customize.yaml

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