Aller au contenu principal

Intégration domotique Sleep as Android, gratuite et open source

Intégration Sleep as Android pour Gladys Assistant

Suivi du sommeil, réveils et phases de sommeil de l'appli Sleep as Android dans Gladys.

Cette intégration amène l'application Sleep as Android dans Gladys : le suivi du sommeil est-il en cours, la phase de sommeil (éveillé, léger, profond, paradoxal), le réveil qui sonne, le prochain réveil et la durée de votre nuit. Chaque événement de l'appli peut lancer une scène Gladys : fermer les volets quand le suivi démarre, allumer doucement la lumière quand le réveil sonne, envoyer un message quand un bébé pleure.

Nécessite Gladys 5.1 ou plus récent.

Comment les événements arrivent dans Gladys​

Sleep as Android pousse ses événements, Gladys n'interroge jamais le téléphone. Deux canaux, utilisez l'un ou les deux :

CanalBadge dans GladysCe qu'il fautMarche hors de la maison
MQTTlocalun broker MQTT sur votre réseau (ex. Mosquitto)non
Webhookcloudun abonnement Gladys Plusoui

Avec les deux, chaque événement arrive deux fois : l'intégration garde la première copie et ignore l'autre. Le bouton Préférer la connexion locale de l'écran Configuration choisit le canal que montre le badge de l'appareil quand les deux marchent.

1. Configurer l'intégration​

Ouvrez Intégrations → Sleep as Android → Configuration.

ChampQuoi mettre
DormeursVide pour un seul téléphone. Un téléphone par personne : leurs prénoms, séparés par des virgules (Alice, Bob). Un appareil Gladys chacun.
Adresse du broker MQTTmqtt://192.168.1.10:1883 (ou mqtts://…:8883 pour TLS). L'adresse réseau du broker, jamais localhost. Vide : pas de MQTT.
Utilisateur / mot de passe MQTTLe compte du broker, s'il en demande un.
Topic MQTTSleepAsAndroid par défaut. Doit être le même que dans l'appli.
Fuseau horaireLe fuseau dans lequel le prochain réveil est écrit (Europe/Paris, America/Montreal…).

Pour le canal cloud, collez votre clé Open API Gladys Plus dans le bloc Webhooks Gladys Plus du même écran.

Cliquez ensuite sur Tester la connexion : la réponse dit quels canaux marchent et donne, pour chaque dormeur, le topic et l'URL exacts à saisir dans l'appli.

2. Configurer Sleep as Android​

MQTT (local)​

Dans l'appli : Paramètres → Services → Automatisation → MQTT.

  • activez-le ;
  • URL : tcp://192.168.1.10:1883 (l'adresse du broker, avec tcp://, ou ssl:// pour TLS) ;
  • Topic : SleepAsAndroid pour le premier (ou le seul) dormeur, SleepAsAndroid/bob pour Bob ;
  • Client ID : n'importe quoi d'unique, par exemple telephone-bob ;
  • utilisateur et mot de passe si votre broker en demande.

L'intégration s'abonne au topic et à tous ses sous-topics. Les messages publiés avec le drapeau retain sont ignorés : ce sont d'anciens événements, les rejouer relancerait vos scènes.

Webhook (cloud, via Gladys Plus)​

Dans l'appli : Paramètres → Services → Automatisation → Webhooks, activez-le et collez l'URL donnée par Tester la connexion. Avec plusieurs dormeurs, chaque téléphone reçoit l'URL suivie de ?sleeper=<prénom> (ex. …?sleeper=bob) ; le premier dormeur peut utiliser l'URL telle quelle.

Gardez cette URL pour vous : qui la possède peut envoyer des événements à votre place.

Vérifier​

Utilisez le bouton Test de l'appli (dans l'écran MQTT ou Webhooks), ou lancez un suivi du sommeil : la fonctionnalité Last event de l'appareil change en quelques secondes.

3. Créer les appareils​

Intégrations → Sleep as Android → Découverte : un appareil par dormeur, nommé Sleep as Android (un seul téléphone) ou Sleep as Android — Alice. Créez-les.

FonctionnalitéValeurs
Sleep tracking1 pendant le suivi, 0 à l'arrêt ou en pause
Sleep phase0 éveillé, 1 paradoxal (REM), 2 léger, 3 profond (plus c'est profond, plus c'est haut : un hypnogramme une fois tracé)
Alarm ringing1 pendant que le réveil sonne, 0 une fois arrêté ou répété
Next alarmtexte, ex. 2026-10-22 07:00 · Travail, — s'il n'y en a pas
Last eventtexte, le nom brut du dernier événement (deep_sleep, alarm_alert_start…)
Last sleep durationheures suivies pendant la dernière session, pauses exclues

Les états sont sauvegardés par l'intégration : un redémarrage de Gladys pendant la nuit ne perd pas le début de la session.

Renommer un dormeur dans la configuration crée un nouvel appareil : son identifiant vient de son prénom.

4. Scènes​

Déclencheurs (Quand…), chacun avec un filtre Dormeur (vide = tous) :

DéclencheurFiltreVariables
Suivi du sommeil démarré ou arrêtédémarré, arrêté, en pause, reprissleeper, state, duration_hours (à l'arrêt)
Événement de réveilsonne, arrêté, répétition, répétition annulée, prochain réveil sauté, reprogrammé, vérification du réveil, heure d'aller au lit, réveil bientôt, réveil intelligent bientôt / commencésleeper, event, alarm_time, alarm_label
Phase de sommeil changéeéveillé, endormi, léger, profond, paradoxalsleeper, phase
Son détecté pendant le sommeilronflement, parole, toux, bébé qui pleure, rire, alerte respiration (apnée), anti-ronflementsleeper, sound
N'importe quel événement Sleep as Android—sleeper, event (nom brut), value1, value2, value3

Lisez une variable dans les actions suivantes avec {{triggerEvent.data.alarm_label}}.

Actions (Alors…) :

  • Lire l'état du sommeil : met tracking, phase, alarm_ringing, next_alarm, last_event et last_sleep_hours d'un dormeur dans des variables — « si le suivi est en cours, ne pas allumer la lumière » ;
  • Réinitialiser un dormeur : remet à éveillé, rien en cours — pour le matin où le téléphone s'est éteint pendant la nuit.

Exemples :

  • Quand Suivi du sommeil démarré (démarré) → fermer les volets de la chambre, éteindre les lumières.
  • Quand Événement de réveil (sonne) → lumière à 20 %, puis ouvrir les volets.
  • Quand Son détecté (bébé qui pleure) → envoyer un message aux parents.

Pour construire une scène en journée, Simuler un événement (écran Configuration) joue n'importe quel événement comme si le téléphone l'avait envoyé.

5. Widget du tableau de bord​

Ajoutez le widget Sommeil et choisissez un dormeur (vide : le premier). Il montre les tuiles suivi et réveil, les douze dernières heures en hypnogramme, la phase, le prochain réveil, la durée de la dernière nuit, par où arrivent les événements (MQTT ou Gladys Plus) et un bouton Réinitialiser.

Dépannage​

  • Rien n'arrive par MQTT : localhost et 127.0.0.1 désignent le conteneur de l'intégration lui-même, mettez l'adresse réseau du broker. Tester la connexion montre la réponse du broker (mot de passe refusé, injoignable…). Le topic de l'appli doit être celui de la configuration, majuscules comprises.
  • Badge « cloud » avec un point orange : vous préférez le local, un broker est configuré mais injoignable, et les événements passent par Gladys Plus.
  • « Webhook indisponible » : Gladys Plus n'est pas lié, ou la clé Open API manque dans le bloc Webhooks Gladys Plus.
  • Un événement pour un dormeur inconnu est ignoré : le topic SleepAsAndroid/<prénom> ou le ?sleeper=<prénom> doit désigner un dormeur de la configuration (majuscules et accents ne comptent pas).
  • Le suivi reste en cours : le téléphone s'est éteint avant d'envoyer « suivi arrêté ». Utilisez Réinitialiser (widget ou action de scène).

Paramètres de configuration​

Voici les paramètres demandés par Sleep as Android dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Pour commencersectionNonSleep as Android envoie ses événements (suivi démarré, réveil qui sonne, sommeil profond…) de deux façons, utilisez l'une ou les deux. Local : MQTT, vers un broker de votre réseau (Paramètres > Services > Automatisation > MQTT dans l'appli). Cloud : un webhook relayé par Gladys Plus, qui marche aussi hors de la maison (Paramètres > Services > Automatisation > Webhooks). « Tester la connexion » donne le topic et l'URL exacts à saisir dans l'appli.
DormeursstringNonUn téléphone par personne ? Leurs prénoms, séparés par des virgules : un appareil Gladys chacun. Laissez vide pour un seul téléphone. Le premier écoute le topic de base et l'URL telle quelle, les autres le topic de base suivi de /leur-prénom et l'URL suivie de ?sleeper=leur-prénom.
Local : MQTTsectionNonLe broker sur lequel l'appli publie, par exemple celui de l'intégration MQTT de Gladys. Laissez l'adresse vide pour ne recevoir que par Gladys Plus.
Adresse du broker MQTTstringNonmqtt://adresse:1883, ou mqtts:// pour TLS. Mettez l'adresse réseau du broker, jamais localhost : l'intégration tourne dans son propre conteneur.
Utilisateur MQTTstringNon
Mot de passe MQTTsecretNon
Topic MQTTstringNonLe topic saisi dans l'appli. Tous les sous-topics sont écoutés aussi (un par dormeur).
Fuseau horairestringNonLe fuseau horaire dans lequel le prochain réveil est écrit, un nom IANA comme Europe/Paris.

Comment installer Sleep as Android dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Sleep as Android apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/prohand/gladys-sleepasandroid:1.0.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/prohand/gladys-sleepasandroid.

Sleep as Android nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

Sleep as Android est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par prohand, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂