Aller au contenu
Voir dans l’app

Une meilleure façon de naviguer. Voir plus.

Forum Domotique

Une application en plein écran, avec notifications, badges et accès direct depuis l’accueil.

Pour installer cette application sur iOS et iPadOS
  1. Touchez l’icône de partage dans Safari.
  2. Faites défiler le menu et touchez Ajouter à l’écran d’accueil.
  3. Touchez Ajouter en haut à droite.
Pour installer cette application sur Android
  1. Appuyez sur le menu ⋮ en haut à droite du navigateur.
  2. Appuyez sur Ajouter à l'écran d'accueil ou Installer l'application
  3. Confirmez en appuyant sur Installer.

Intégrer ResMed myAir CPAP dans Home Assistant

Featured Replies

Posté(e)

Chapitre 1 : Pourquoi intégrer son CPAP à Home Assistant ?

Matter Server(8).png

L’apnée du sommeil touche 1 personne sur 5 après 50 ans. Ton appareil ResMed CPAP (AirSense 10, 11, AirCurve…) envoie déjà ses données à myAir, l’application officielle. Mais Home Assistant va plus loin :

Avantages

Exemples concrets

Dashboard santé centralisé

Score, AHI, fuites, usage en un coup d’œil

Alertes intelligentes

Notification si AHI > 5 ou usage < 4h

Historiques longs

Graphiques sur 1 mois, 3 mois, 1 an

Intégration domotique

Allume une lampe rouge si fuites élevées

Motivation quotidienne

Badges de streak, gamification

Chapitre 2 : Créer ton compte myAir (EU)

Étapes pas à pas

  1. Accède au site → Clique sur "S’inscrire"

  2. Remplis le formulaire :

    • Email → sera ton identifiant Home Assistant

    • Mot de passe : 8+ caractères, 1 majuscule, 1 chiffre

    • Pays : France

Capture d’écran du 2025-11-08 17-46-12.png

  1. Valide ton email (lien reçu en 2 min)

  2. Ajoute ton CPAP :

    • Numéro de série (au dos de la machine)

    • Modèle (ex: AirSense 11 AutoSet)

    • Active Wi-Fi ou modem cellulaire

Astuce : Télécharge l’app mobile myAir pour forcer la première synchro : iOS | Android

Vérification

Après une nuit de sommeil :

  • Score myAir visible

  • AHI affiché

  • Temps d’utilisation > 0


Chapitre 3 : Installer l’intégration via HACS

Repo officiel : github.com/prestomation/resmed_myair_sensors Version actuelle : v0.1.18 (05/11/2025)

Prérequis

  • Home Assistant 2025.10+

  • HACS installé

  • Compte myAir actif

Installation

  1. HACSIntegrationsExplore & Download Repositories

  2. Recherche : ResMed myAir

Capture d’écran du 2025-11-08 17-41-00.png

  1. Clique sur "Download"Redémarre Home Assistant

  2. Settings > Devices & Services > + Add Integration

Capture d’écran du 2025-11-08 17-44-32.png

  1. Tape ResMed → sélectionne ResMed myAir CPAP Sensors

  2. Remplis :

Username: [email protected]
Password: ********
Region: EU (ou Auto)
Scan interval: 30 minutes

Problème ?

Rafraîchis la page, redémarre HA, ou vérifie les logs (resmed_myair).

Chapitre 4 : Les capteurs disponibles (v0.1.18)

Entité

Nom

Unité

Description

sensor.cpap_ahi_events_per_hour

AHI

événements/h

Apnée + hypopnée

sensor.cpap_usage_minutes

Utilisation

min

Temps masque porté

sensor.cpap_mask_on_off_count

Retrait masque

count

Nombre d’enlèvements

sensor.cpap_mask_leak_percentile

Fuites

%

Percentile 95

sensor.cpap_myair_score

Score myAir

/100

Score global

sensor.cpap_device_model

Modèle

texte

AirSense 11, etc.

sensor.cpap_current_data_date

Date données

date

Dernière nuit

sensor.cpap_sleep_data_last_collected

Collecte

datetime

Dernier sync

Capture d’écran du 2025-11-08 17-54-34.png

Chapitre 5 : Dashboard Lovelace complet (Mushroom + Flex + ApexCharts)

Code YAML complet de ma CARTE

type: sections
max_columns: 6
title: Santé CPAP
path: sante
icon: mdi:heart-pulse
theme: transparentblue

sections:
  # === 1. RÉSUMÉ QUOTIDIEN ===
  - type: grid
    cards:
      - type: custom:mushroom-title-card
        title: ""
        subtitle: Résumé quotidien
      - type: grid
        square: false
        columns: 2
        cards:
          - type: custom:mushroom-entity-card
            entity: sensor.cpap_current_data_date
            name: Dernière nuit
            icon: mdi:calendar
            icon_color: blue
            primary_info: state
            secondary_info: last_changed
            layout: horizontal
          - type: custom:mushroom-entity-card
            entity: sensor.cpap_usage_minutes
            name: Utilisation masque
            icon: mdi:face-mask
            icon_color: green
            primary_info: state
            secondary_info: last_changed
            layout: horizontal

      - type: grid
        square: false
        columns: 3
        cards:
          - type: custom:mushroom-title-card
            title: ""
            subtitle: Score myAir
            alignment: center
          - type: custom:mushroom-title-card
            title: ""
            subtitle: AHI
            alignment: center
          - type: custom:mushroom-title-card
            title: ""
            subtitle: Retrait masque
            alignment: center

      - type: grid
        square: false
        columns: 3
        cards:
          - type: custom:flex-horseshoe-card
            entities:
              - entity: sensor.cpap_myair_score
                decimals: 0
                unit: ""
            show: { horseshoe_style: autominmax }
            layout:
              states:
                - id: 0
                  entity_index: 0
                  xpos: 50
                  ypos: 66
                  styles: { font-size: 6.5em; }
            horseshoe_scale: { min: 0, max: 100 }
            color_stops:
              "70": red
              "85": orange
              "90": green

          - type: custom:flex-horseshoe-card
            entities:
              - entity: sensor.cpap_ahi_events_per_hour
                decimals: 1
                unit: /h
            show: { horseshoe_style: autominmax }
            layout:
              states:
                - id: 0
                  entity_index: 0
                  xpos: 50
                  ypos: 60
                  styles: { font-size: 5.5em; }
            horseshoe_scale: { min: 0, max: 30 }
            color_stops:
              "5": green
              "15": orange
              "30": red

          - type: custom:flex-horseshoe-card
            entities:
              - entity: sensor.cpap_mask_on_off_count
                decimals: 0
                unit: fois
            show: { horseshoe_style: autominmax }
            layout:
              states:
                - id: 0
                  entity_index: 0
                  xpos: 50
                  ypos: 57
                  styles: { font-size: 4.5em; }
            horseshoe_scale: { min: 0, max: 7 }
            color_stops:
              "2": green
              "4": orange
              "7": red

      - type: custom:mini-graph-card
        entities:
          - entity: sensor.cpap_mask_leak_percentile
        name: Fuites masque (95e percentile)
        show: { name: true, icon: false, fill: true }
        color_thresholds:
          - { value: 0, color: "#43A047" }
          - { value: 24, color: "#FF9800" }
          - { value: 40, color: "#E53935" }
        hours_to_show: 168

  # === 2. REVUE HEBDOMADAIRE ===
  - type: grid
    cards:
      - type: custom:mushroom-title-card
        title: ""
        subtitle: Revue hebdomadaire
      - type: custom:apexcharts-card
        graph_span: 7d
        header: { show: true, title: Utilisation CPAP }
        series:
          - entity: sensor.cpap_usage_minutes
            type: column
            name: Minutes/jour
            group_by: { func: max, duration: 1d }
            show: { as_duration: minute, datalabels: true }
      - type: custom:apexcharts-card
        graph_span: 14d
        header: { show: true, title: Score myAir }
        series:
          - entity: sensor.cpap_myair_score
            type: column
            group_by: { func: max, duration: 1d }
            color_threshold:
              - { value: 0, color: "#E53935" }
              - { value: 85, color: "#FFB300" }
              - { value: 90, color: "#43A047" }
      - type: custom:apexcharts-card
        graph_span: 14d
        header: { show: true, title: AHI }
        series:
          - entity: sensor.cpap_ahi_events_per_hour
            type: column
            group_by: { func: max, duration: 1d }
            color_threshold:
              - { value: 5, color: "#43A047" }
              - { value: 15, color: "#FFB300" }
              - { value: 30, color: "#E53935" }

  # === 3. REVUE MENSUELLE ===
  - type: grid
    cards:
      - type: custom:mushroom-title-card
        title: ""
        subtitle: Revue mensuelle (moyenne hebdo)
      - type: custom:apexcharts-card
        graph_span: 1month
        series:
          - entity: sensor.cpap_myair_score
            type: column
            name: Score moyen
            group_by: { func: avg, duration: 1week }
            color_threshold:
              - { value: 85, color: "#43A047" }
              - { value: 70, color: "#FFB300" }
              - { value: 0, color: "#E53935" }

header:
  card:
    type: markdown
    content: |
      # Santé CPAP - {{ user }}
      Dernière mise à jour : {{ states('sensor.cpap_sleep_data_last_collected') | timestamp_custom('%H:%M') }}

Capture d’écran du 2025-11-08 17-14-02.png

Chapitre 6 : Automatisations utiles

1. Alerte AHI élevé

- alias: "Alerte AHI > 5"
  trigger:
    - platform: numeric_state
      entity_id: sensor.cpap_ahi_events_per_hour
      above: 5
  action:
    - service: notify.mobile_app_iphone
      data:
        title: "CPAP - AHI élevé"
        message: "AHI = {{ states('sensor.cpap_ahi_events_per_hour') }} /h"

2. Rappel usage faible

- alias: "Rappel CPAP < 4h"
  trigger:
    - platform: time
      at: "08:00:00"
  condition:
    - condition: numeric_state
      entity_id: sensor.cpap_usage_minutes
      below: 240
  action:
    - service: notify.mobile_app_iphone
      data:
        title: "CPAP oublié"
        message: "Usage hier : {{ states('sensor.cpap_usage_minutes') }} min"

Chapitre 7 : Dépannage & problèmes courants

Problème

Solution

401 Unauthorized

Vérifie mot de passe / région

429 Too Many Requests

scan_interval: 3600

Pas de données

Vérifie modem CPAP + app myAir

Intégration absente

Redémarre HA après HACS

2FA activé

Désactive-le (non supporté)

Chapitre 8 : Conclusion & perspectives

Tu as maintenant un suivi médical pro dans Home Assistant :

  • Dashboard clair et motivant

  • Données fiables et quotidiennes

  • Alertes automatiques

Limite : API non officielle → risque de rupture (mais stable depuis 2021).

À faire ensuite

  • Partage ton dashboard sur le forum HA

  • Ajoute un capteur de température chambre pour corréler avec AHI

  • Crée un badge de streak (7 nuits > 4h)

Modifié par XAV59213

Rejoindre la conversation

Vous pouvez commenter maintenant et vous inscrire plus tard. Si vous possédez un compte, connectez-vous.

Invité
Répondre à ce sujet…

Compte

Navigation

Rechercher

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.