My Habita Installer

Prise en main

Application Android

Installation, capteurs du téléphone, présence et notifications.

L'application My Habita pour Android est une application native (Kotlin, Jetpack Compose) qui reprend l'apparence de l'interface web — mêmes couleurs, thèmes, boutons, cartes, icônes — avec une disposition pensée pour le téléphone. Elle ajoute ce qu'un navigateur ne peut pas faire : le téléphone devient un appareil de la maison avec ses capteurs, il reçoit les notifications et peut être commandé (« Faire sonner »).

Tout passe uniquement entre le téléphone et votre serveur : aucun service cloud, aucun compte tiers.

Installer

  1. Sur le serveur, l'application est construite et publiée par sudo myhabitactl android (déjà fait sur <nom-du-serveur>).
  2. Sur le téléphone, ouvrez l'interface web, Réglages → Téléphones, puis Télécharger l'application (ou scannez le code QR affiché sur l'ordinateur). Adresse directe : http://<serveur>/api/v1/mobile/app/download.
  3. Ouvrez le fichier .apk. Android demande d'autoriser l'installation depuis le navigateur : c'est normal pour une application qui ne vient pas du Play Store.

Android 8.0 ou plus récent. L'application se met ensuite à jour depuis votre serveur (Plus → Réglages → À propos), avec une notification quand une nouvelle version est publiée.

Première connexion

  1. Adresse du serveur : adresse IP locale (<adresse-du-serveur>), nom local (<nom-du-serveur>.local) ou nom de domaine si le serveur est accessible de l'extérieur (https://maison.exemple.fr). Les serveurs My Habita du réseau Wi-Fi sont détectés automatiquement (annonce Bonjour/mDNS) : un appui suffit.
    • Sans http:// ou https://, l'application essaie HTTP pour une adresse locale, HTTPS d'abord pour un domaine.
    • HTTPS avec l'autorité locale de My Habita : l'application affiche l'autorité et son empreinte SHA-256 ; comparez-la avec sudo myhabitactl doctor avant d'accepter. Le nom du serveur reste vérifié.
    • Une adresse publique en HTTP (non chiffrée) est signalée.
  2. Connexion avec votre compte My Habita (le même que sur le web). Le téléphone est ajouté à la maison.
  3. Ce téléphone : notifications, présence à la maison (position), connexion permanente.

Ce que fait l'application

Barre de navigation du bas : Accueil, Pièces, Chauffage, Alarme, Plus. Les tableaux de bord, les automatisations et les autres sections sont dans Plus.

Écran Contenu
Accueil Mode de la maison, résumé (lumières, température, alarme, indisponibles), problèmes, scènes en un geste, favoris en tuiles (un appui allume / éteint, appui long : détails), chauffage, pièces — ou, si Réglages → Écran d’accueil le désigne, un tableau de bord de l’application (ci-dessous)
Pièces Cartes des pièces (image, couleur, température, lumières allumées, ouvertures), recherche ; liste de tous les appareils, avec le bouton + (administrateur) à côté de la cloche dans l'onglet Appareils
Ajouter un appareil Matter : réseau Thread (le réseau Thread de My Habita est d'abord enregistré sur le téléphone) ou Wi-Fi, configuration par le Bluetooth du téléphone ; ou appareil déjà dans une autre application (Google Home, Apple Maison, SmartThings, Alexa, application du fabricant) : saisir son code de partage. Zigbee : « Lancer la recherche » ouvre le réseau Zigbee 4 minutes ; les appareils mis en mode appairage sont reconnus et ajoutés tout seuls, puis nommés et rangés dans leur pièce sur le même écran (conseils d'appairage par marque). Par la marque : catalogue des intégrations (Philips Hue, Shelly, Dreame, Google, Netatmo, WLED, TP-Link…) avec recherche, formulaire et autorisation du fabricant ; pour une intégration déjà ajoutée (Shelly, WLED…), ajout d'un appareil par son adresse ou « Rechercher sur le réseau » ; équipements trouvés sur votre réseau ajoutés en un geste
Pièce, appareil Tuiles de commande, capteurs, fiche de l'appareil (renommer, changer de pièce pour un administrateur)
Panneau de commande Luminosité, température de couleur, roue des couleurs, transitions ; volets ; consigne de thermostat ; serrure (avec code) ; sélecteurs ; mini-graphique des dernières 24 h ; ★ favori
Tableaux de bord Pour ce téléphone : tableaux « pour l’application », dessinés en natif (pas de page web) ; pages web : tableaux du site, affichés exactement comme vous les avez composés (format téléphone), plein écran et rotation (appui long)
Tableau de l’application Grille automatique de 12 colonnes (cartes ¼, ⅓, ½, ⅔, ¾ ou pleine largeur, hauteur en rangées de 48 dp, ou au quart de rangée en réglage fin) : tuiles, boutons, lumières avec curseur ou boutons et couleurs, mesures avec courbe ou barres et seuils de couleur, thermostats (boutons − / + ou jauge à faire glisser, modes de la zone), volets, listes, graphiques (courbes, aires ou barres, choix de la période), bonjour, résumé, scènes, mode, alarme (Partielle / Totale / Nuit, désarmement par code), pièces (liste, photo et boutons ronds ou boutons seuls), chauffage, favoris du téléphone, plan (2D ou 3D par défaut, visite), caméras (image ou direct, changement de caméra dans la carte), aspirateur robot (commandes, carte, pièces à nettoyer), titres de section (trait, séparateur, centré, souligné), textes. Crayon : appui long puis glisser pour déplacer une carte ; toucher une carte pour changer sa largeur, sa hauteur (réglage fin au quart de rangée), son type (ceux qui conviennent à l’appareil) et ses principales options d’affichage, la renommer ou la retirer ; ajouter un appareil ou une carte de la maison. Composition complète sur l’ordinateur : Tableaux de bord → Nouveau tableau de bord → « Pour l’application du téléphone » (options courantes et « Paramètres avancés », bouton « Hauteur juste »)
Aspirateur robot Toucher un aspirateur (tuile, liste, carte, fiche) ouvre son écran de pilotage natif, comme sur l’ordinateur : état et batterie, Démarrer / Pause / Arrêter / Base, carte du robot avec sa position, pièces à toucher sur la carte ou en pastilles, nombre de passages, « Nettoyer les pièces choisies », modes (aspiration, eau), consommables, vidage de la station
Plans Affichage natif des plans de la maison (pas de page web) : liste avec aperçus dessinés et plans épinglés ; vue de dessus (Compose) identique au site — calques dans l'ordre de l'éditeur (ordre de priorité au toucher compris), mobilier dessiné par le moteur à la taille de chaque objet (/plans/:id/shapes), portes, volets et lumières en direct, carte de l'aspirateur calée pièce par pièce et robot en direct (vacuum_live), maillage radio (liaisons, ondes, couverture) ; 3D (OpenGL ES 2 : orbite, visite avec collisions, murs coupés, lumières allumées, portes) ; toucher : action, appui long : détails ; panneau de pièce (mesures, lumières, nettoyage, appareils). Préférences d'affichage mémorisées par plan. Création et modification : sur le site
Automatisations Onglets Automatisations, Scripts et Variables ; recherche, filtres, activer / désactiver, exécuter, simuler, dernières exécutions et leurs traces ; éditeur simplifié natif (quand… / et si… / alors… avec les blocs essentiels expliqués : appareils, heure, soleil, mode, variables, notification, scène, script, autre automatisation) ; lancer un script avec ses champs ; variables avec leur valeur en direct et leurs commandes, création d'une variable ; recettes et éditeur complet en pages web intégrées
Chauffage Mode général repliable (Planning, Manuel, Absence, Hors gel, Arrêt) ; une carte dépliable par zone : jauge de consigne (glisser sur l'arc ou − / +), température mesurée, « Ensuite » (prochain changement), « Mode actuel » (dérogation : température ou mode, pour une durée), Chauffage / Arrêt de la zone ; thermostats My Habita hors zone dans le même format ; chaudière ; raccourcis. Réglages natifs (roue dentée, administrateur) : zones (identité, équipements, planning suivi, sécurité), thermostats My Habita (capteurs, relais, régulation, protections), chaudière, plannings (températures, semaine type, périodes et saisons)
Alarme État et comptes à rebours, armement présence / absence (avec « armer quand même » si un capteur est ouvert), clavier de code pour désarmer, journal
Données Graphiques (24 h à 1 an, zone min–max), consommation par jour, export CSV
Notifications, santé Centre de notifications ; problèmes et intégrations
Plus Tableaux de bord, plans (et plans épinglés), automatisations, scènes, données, notifications, santé ; réglages de l'application ; pages d'administration (intégrations, comptes, sauvegardes, système…) en web intégré

Les commandes suivent la règle de My Habita : l'état affiché est celui confirmé par l'équipement ; une commande en cours est signalée (anneau pointillé), un échec est expliqué.

Fonctions propres au téléphone :

  • Tuiles des réglages rapides (3) : allumer / éteindre un appareil, activer une scène, voir l'alarme — Plus → Raccourcis.
  • Widget d'écran d'accueil : alarme, mode de la maison et trois scènes.
  • Raccourcis de l'icône (appui long) : Alarme, Chauffage, Tableaux de bord.
  • Verrouillage par empreinte, visage ou code du téléphone (Réglages).
  • Thèmes : les mêmes que l'interface web, y compris ceux créés pour la maison, ou automatique (clair / sombre).

Le téléphone, appareil de la maison

Chaque téléphone connecté apparaît dans l'intégration Application mobile (créée automatiquement) et dans Pièces et appareils. Ses capteurs sont des entités ordinaires : tableaux de bord, historique, automatisations.

Capteurs

Ils se choisissent sur le téléphone (Plus → Ce téléphone → Capteurs) ou dans l'interface web (Réglages → Téléphones, puis le téléphone). Un capteur désactivé n'est ni lu ni transmis ; son entité est masquée mais conservée (les automatisations qui l'utilisent restent valides).

Groupe Capteurs (★ activés par défaut) Autorisation Android
Batterie ★ niveau, ★ état (en charge, sur batterie, pleine), ★ type de charge, santé, température —
Position et présence ★ position (coordonnées et précision) Position (« Toujours » pour l'arrière-plan)
Réseau ★ réseau Wi-Fi (nom), ★ type de connexion, point d'accès, signal, adresse IP, opérateur Position (exigée par Android pour le nom du Wi-Fi)
Écran et appareil ★ écran, ★ prochaine alarme, verrouillage, économie d'énergie, mode avion, Bluetooth, stockage libre —
Son et téléphone ★ mode de sonnerie, ★ ne pas déranger, sortie audio, volumes, appel en cours Téléphone (pour les appels)
Activité et environnement pas, luminosité ambiante, pression atmosphérique Activité physique (pour les pas)

Présence à la maison

My Habita calcule l'entité Présence de chaque téléphone (« À la maison » / « Absent ») et sa distance de la maison :

  • connecté à un Wi-Fi de la maison → à la maison ;
  • sinon d'après la position : à la maison dans le rayon choisi (150 m par défaut, plus la précision de la mesure), absent au-delà de 1,5 × le rayon ; entre les deux, l'état précédent est conservé (pas de bascules en limite de rayon).

Réglages : intégration Application mobile (rayon, noms des Wi-Fi de la maison). La position de la maison se règle dans Réglages → Maison.

Exemples d'automatisations : « quand la présence de tous les téléphones passe à Absent, passer la maison en mode Absence » ; « quand mon téléphone passe en charge après 22 h, mode Nuit ».

Notifications

  • Les notifications de la maison (alarme, appareils muets, automatisations…) sont envoyées aux téléphones selon leur niveau : toutes, avertissements et alertes, alertes critiques seulement, ou aucune.
  • L'action d'automatisation Envoyer une notification a un choix Destinataires : toute la maison, ou des téléphones précis (toujours remise, quel que soit leur niveau).
  • Sur Android, des canaux réglables : Informations, Avertissements, Alertes critiques (vibration, peut passer outre « Ne pas déranger » si vous l'autorisez, sans sonnerie d'alarme), et pour l'alarme Alarme : vibration continue et Alarme : sonnerie. L'ancien canal « Alertes critiques », qui sonnait comme une alarme pour toute alerte critique, est remplacé à la mise à jour de l'application.

Alarme : lors d'une intrusion ou d'une alerte (incendie, fuite d'eau, panique…), la notification insiste jusqu'à ce que vous ouvriez le volet des notifications (ou la notification) : vibration continue, ou vibration et sonnerie d'alarme. Elle s'affiche sur l'écran verrouillé, n'existe qu'une fois par incident (« Intrusion confirmée » remplace « Alarme déclenchée ») et disparaît d'elle-même au désarmement ou à l'acquittement de l'alerte, sur tous les téléphones (aussitôt avec la connexion permanente, sinon à la relève suivante).

  • Le comportement de la maison se choisit sur le site : Sécurité → Réglages → Alarme → Notifications → Téléphones et tablettes (vibration continue par défaut, vibration et sonnerie d'alarme, ou notification simple).
  • Chaque appareil peut faire autrement : Plus → Ce téléphone → Alarme sur cet appareil (comme le réglage de la maison, vibration continue, vibration et sonnerie d'alarme, notification simple). Sur une tablette sans vibreur, l'application le signale et conseille la sonnerie. Ce choix ne s'applique qu'aux notifications d'alarme insistantes : si la maison est réglée sur « Notification simple », aucune ne l'est.
  • Les autres notifications de l'alarme (pré-alarme, armement, désarmement, clavier bloqué, capteur perdu) restent des notifications ordinaires.

Connexion permanente (recommandée, Plus → Ce téléphone) : le téléphone garde une connexion légère avec le serveur → notifications immédiates, « Faire sonner », capteurs envoyés dès qu'ils changent. Une notification discrète l'indique (masquable dans Android). Autorisez l'application à ignorer l'optimisation de la batterie, sinon certains fabricants coupent la connexion.

Sans connexion permanente, le téléphone relève notifications et capteurs toutes les 15 minutes environ (selon Android) : les messages attendent 24 h sur le serveur.

Commandes vers le téléphone

  • Faire sonner : sonnerie d'alarme 30 s au volume maximal, même en silencieux (téléphone égaré). Nécessite la connexion permanente.
  • Actualiser les capteurs.

Disponibles comme boutons de l'appareil (interface web, tableaux de bord, automatisations) et dans Réglages → Téléphones.

Kiosque (tablette murale)

Une tablette Android peut devenir un kiosque : My Habita en plein écran, verrouillé, avec un accès restreint et des réglages décidés depuis l'interface web.

  1. Sur un ordinateur : Réglages → Comptes et écrans → « Nouveau kiosque » (nom, tableaux proposés, code d'accès facultatif). Le code d'appairage s'affiche (6 caractères, 15 minutes, usage unique). « Nouvel écran mural » reste disponible pour un simple navigateur.
  2. Sur la tablette : installer l'application, « Utiliser comme kiosque », adresse du serveur, puis le code.
  3. La gestion du kiosque s'ouvre : accorder les autorisations proposées (notifications, batterie non restreinte, affichage par-dessus les autres applications, application d'accueil ; facultatif : administrateur de l'appareil, paramètres système, caméra), retirer le code de verrouillage d'Android, puis « Démarrer le kiosque ».

Sur le kiosque :

  • Affichage : tableaux de l'application (natifs) et du site, et selon les réglages Pièces, Sécurité, Chauffage, Plans ; barre du haut avec l'heure et un bouton par page ; retour au tableau par défaut après inactivité.
  • Écran : luminosité imposée, économiseur (horloge, tableau assombri, écran noir), plage de nuit, réveil au toucher, par mouvement devant la caméra (image analysée sur la tablette, jamais enregistrée), par la main approchée, par l'alarme ou une notification ; bips pendant les délais de l'alarme.
  • Droits : commander les appareils, scènes, armer, désarmer (toujours avec un code), caméras, chauffage, historique — appliqués par le moteur. Jamais d'administration.
  • Gestion de la tablette : 5 touchers rapides en haut à gauche (ou sur l'heure ; geste réglable : n'importe où, ou appui long de 3 secondes sur l'heure), puis code du kiosque ou code personnel d'un administrateur. Sans action pendant 5 minutes, le kiosque reprend.
  • Depuis l'interface web (page du kiosque) : « Ouvrir la gestion » déverrouille la tablette sans code pendant 15 minutes (boutons, barres et restrictions levés) ; « Reprendre le kiosque » ; menu ⋯ → « Quitter le mode kiosque » libère la tablette.
  • Verrouillage (onglet Verrouillage) : bloquer Retour, Accueil, l'aperçu des applications, la barre du haut d'Android (notifications, réglages rapides), le menu du bouton d'alimentation, les boutons de volume ; restrictions d'Android (réinitialisation, mode sans échec, Wi-Fi, installation d'applications, débogage USB…), avec un avertissement sur les plus risquées. Le blocage complet et les restrictions exigent que My Habita soit propriétaire de l'appareil ; sans cela, le service d'accessibilité « My Habita » referme le volet et ramène au kiosque.
  • Contrôle complet (page du kiosque → menu ⋯ → « Contrôle complet de la tablette »), en trois niveaux :
    1. Sans ordinateur, toutes versions d'Android : autorisations de la gestion + service d'accessibilité, qui rend les barres d'Android inactives et referme volet, aperçu et menu d'alimentation.
    2. ADB une seule fois, sans réinitialiser (Android 8 et plus) : avec un câble et un ordinateur (commandes à copier, affichées aussi sur la tablette), ou par le réseau depuis le serveur (Android 11+, débogage sans fil ; sudo myhabitactl adb-install une fois sur le serveur). Accorde tout d'un coup, plus les « paramètres sécurisés » (accessibilité remise active toute seule, écran allumé sur secteur, barres masquées).
    3. Propriétaire de l'appareil : par ADB après avoir retiré tous les comptes de la tablette (remis ensuite), ou par code QR sur une tablette réinitialisée (Android 7 et plus avec services Google). Pour rendre la tablette : gestion → « Rendre la tablette ».
  • Service d'accessibilité (gestion → Préparation) : à activer à la main dans Accessibilité ; sur Android 13+, ouvrir d'abord les infos de l'application → ⋮ → « Autoriser les paramètres restreints ».
  • Prise en main à distance (bouton de la page du kiosque) : écran de la tablette en direct, toucher et glisser à la souris, boutons d'Android, saisie de texte, ouverture d'applications et de réglages d'Android, informations, journal, et en option commandes du shell. Tout l'écran avec le service d'accessibilité (Android 11+), sinon la fenêtre de My Habita seulement. Un bandeau rouge l'indique sur la tablette ; tout est inscrit au journal d'audit.
  • Mises à jour : commande « Mettre à jour l'application », ou installation automatique (propriétaire de l'appareil).

Tous les réglages se modifient ensuite sur la page du kiosque (Réglages → Comptes et écrans → Gérer) et s'appliquent aussitôt sur la tablette. La tablette est aussi un appareil de la maison : entités Écran, Économiseur d'écran, Luminosité, Volume, Tableau affiché, Recharger l'affichage, capteurs Mouvement devant la tablette, Proximité, Mode kiosque, batterie… utilisables dans les tableaux et les automatisations, qui ont aussi une action « Kiosque (tablette) » (allumer, éteindre, afficher un tableau, annonce vocale, carillon…). Une nouvelle tablette associée au même kiosque reprend son appareil : les automatisations restent valides.

Multimédia

Plus → Multimédia (natif) : accueil (ce qui joue, vos enceintes, reprendre, écoutés récemment, favoris), musique (Spotify, bibliothèque, playlists, favoris), films et séries, radios et podcasts, télévision (télécommande), enceintes (enceintes My Habita, puis par pièce). Recherche dans toutes les sources ; page d'un album, d'un artiste, d'une playlist, d'un film ou d'une série (reprendre, depuis le début, aléatoire, sur un écran, J'aime, vu).

  • « Lire sur » : Ce téléphone, une ou plusieurs enceintes, une enceinte My Habita (enceintes synchronisées par le serveur), un téléviseur (choix mémorisé sur le téléphone ; demandé si la sortie ne convient pas : film sur une enceinte, Spotify sur le téléphone…).
  • Ce téléphone : lecture en arrière-plan avec notification et commandes de l'écran verrouillé (Media3, service mediaPlayback), file d'attente, aléatoire, répétition, reprise gardée sur le serveur ; le son sort sur ce qui est relié au téléphone, enceinte Bluetooth comprise. Les vidéos s'affichent dans « En cours ».
  • Mini-lecteur au-dessus de la barre d'onglets quand quelque chose joue ; « En cours » compact, sans défilement (comme Spotify) : pochette, titre et « J'aime », barre d'avance fine, aléatoire, précédent, lecture, suivant, répétition, un volume, puis où ça joue et la file d'attente (panneaux). Panneau des enceintes : celles qui jouent (volume de chacune, ✓ pour en retirer une), « Ce téléphone », les enceintes My Habita, les autres ; toucher une enceinte y passe la musique (y compris vers ou depuis le téléphone), « + » l'ajoute à l'écoute en cours. Menu « … » : voir l'album, l'artiste, arrêter.
  • Télévision : pavé directionnel, retour, accueil, volume, chaînes, lecture, couleurs, chiffres, saisie de texte, applications (Netflix, YouTube…), entrées, association (code ou accord sur la TV).
  • Spotify : Multimédia → Musique → « Relier mon compte Spotify » ouvre la page de Spotify dans l'application et récupère l'autorisation toute seule (pas d'adresse à copier).
  • Réglages de la bibliothèque, de l'application Spotify de la maison et des enceintes My Habita (accord, Spotify Connect, AirPlay) : sur le site.

Pages web intégrées

Les tableaux de bord et les éditeurs complexes (automatisation, tableau de bord, intégrations, administration) s'ouvrent dans l'application en mode intégré : sans la barre latérale ni les menus du site, avec le thème choisi dans l'application. La session est la même que celle de l'application (aucune reconnexion). Ce mode est reconnu par l'identifiant de navigateur MyHabitaApp/… ou par ?embed=1 (voir packages/web/src/lib/embed.ts).

Sécurité

  • Connexion par identifiant et mot de passe (mêmes limitations des tentatives que le web) → session « mobile » propre au téléphone (1 an, prolongée à l'usage). Le jeton est chiffré sur le téléphone (clé AES du Keystore Android, non exportable) et transmis dans l'en-tête Authorization.
  • Changer son mot de passe ferme aussi la session du téléphone ; retirer le téléphone (web ou application) la révoque immédiatement.
  • Chacun gère ses téléphones ; un administrateur gère tous ceux de la maison.
  • La position est visible des utilisateurs de la maison comme les autres capteurs : désactivez le capteur si vous ne voulez pas la partager (la présence peut alors venir du Wi-Fi seul).
  • Données exclues des sauvegardes cloud d'Android. Mises à jour vérifiées (empreinte SHA-256 publiée par le serveur, signature de l'application).

Construire et publier (serveur)

sudo /opt/myhabita/scripts/install-android-sdk.sh   # une fois : JDK 21 et SDK Android (/opt/android-sdk)
sudo myhabitactl android                            # construit, signe et publie
  • Version : android/VERSION + nombre de commits (ex. 1.0.18) ; code de version croissant.
  • Clé de signature : créée au premier passage dans /etc/myhabita/android/ (incluse dans les sauvegardes). Ne la perdez pas : sans elle, les téléphones ne peuvent plus installer les mises à jour (désinstaller puis réinstaller l'application).
  • Publication : /var/lib/myhabita/mobile/myhabita.apk et myhabita.json (version, taille, empreinte).
  • La compilation utilise beaucoup de mémoire pendant 2 à 3 minutes ; le démon Gradle est arrêté à la fin.

Développement : le projet Gradle est dans android/ (Kotlin 2.4, AGP 9.4, Compose). ./gradlew :app:testDebugUnitTest lance les tests (lecture des réponses réelles du moteur, rendus des écrans par Robolectric/Roborazzi dans app/build/outputs/roborazzi/). Avec -PmhDemoUrl=http://… -PmhDemoToken=…, les rendus interrogent un serveur de démonstration. Les icônes sont régénérées depuis celles du web par node android/tools/gen-icons.mjs.

API de l'application (/api/v1/mobile)

Requête Rôle
POST /mobile/login Connexion : {username, password, installId, device} → {token, user, mobile, server}
GET /mobile/me · PATCH /mobile/me Ce téléphone (informations, réglages, version publiée) ; nom, réglages
POST /mobile/me/sensors Déclaration des capteurs (facultative) et valeurs → réglages à jour
GET /mobile/me/pushes · POST /mobile/me/pushes/ack Relève et accusé des messages en attente
POST /mobile/me/logout Déconnexion (l'appareil et son historique restent)
GET /mobile/devices · GET/PATCH/DELETE /mobile/devices/:id Téléphones (les siens ; tous pour un administrateur)
POST /mobile/devices/:id/test · …/command Notification de test ; ring, refresh_sensors
GET /mobile/app · GET /mobile/app/download Version publiée ; téléchargement de l'APK (public)
POST /kiosk/pair Appairage d'une tablette en kiosque : {code, installId, device} → {token, user, mobile, kiosk, server}
GET /kiosk/me · POST /kiosk/me/state Configuration et pages du kiosque ; état remonté (écran, page, Android)
POST /kiosk/me/unlock · POST /kiosk/me/lock Ouvre (code) ou referme la gestion de la tablette
PATCH /kiosk/me/config · POST /kiosk/me/unpair Réglages depuis la tablette, sortie du mode kiosque (gestion ouverte)
WebSocket /kiosk/me/remote?session=… Prise en main à distance : images de l'écran, commandes reçues (séance ouverte par /kiosks/:id/remote)

WebSocket (/api/v1/ws, même jeton) : push_sub pour recevoir les messages poussés {t:'push', id, push} (notification, retrait d'une notification d'alarme, commande, réglages, téléphone retiré), push_ack pour les acquitter, unsub pour suspendre le flux d'événements quand l'application passe en arrière-plan.

Dépannage

Symptôme Piste
« Le serveur ne répond pas à cette adresse » Le téléphone est-il sur le Wi-Fi de la maison ? Essayez l'adresse IP. Hors de la maison : VPN (WireGuard, Tailscale) ou domaine en HTTPS.
« Certificat non reconnu » Acceptez l'autorité locale dans l'application (vérifiez l'empreinte) ou installez http://<serveur>/ca.crt dans Android.
Notifications en retard Activez la connexion permanente et retirez l'optimisation de la batterie (Plus → Ce téléphone).
La présence ne change pas Position autorisée « Toujours » ? Position de la maison renseignée ? Wi-Fi de la maison saisis dans l'intégration ?
« Faire sonner » refusé La connexion permanente doit être active sur le téléphone.
L'alarme ne vibre pas (tablette) L'appareil n'a peut-être pas de vibreur : Plus → Ce téléphone → Alarme sur cet appareil → « Vibration et sonnerie d'alarme ». Vérifiez aussi les canaux « Alarme » dans les réglages Android de l'application.
Mise à jour refusée par Android Autorisez « Installer des applications inconnues » pour My Habita ; la signature doit être celle de l'application installée.

Limites connues

  • Pas encore essayée sur un vrai téléphone au moment de la livraison (vérifiée par compilation, tests automatisés et rendus des écrans).
  • Pas de service de notifications Google (FCM) : volontaire (fonctionnement local). Sans connexion permanente, les notifications arrivent par relève périodique.
  • Pas d'activité physique (marche, voiture) : elle nécessite les services Google.
  • Kiosque : peu essayé sur une vraie tablette (propriétaire de l'appareil, installation par code QR, accessibilité et prise en main jamais essayés sur du matériel). Le réveil après une extinction réelle de l'écran dépend du fabricant ; le réveil par mouvement ne fonctionne qu'en « écran noir » (caméra arrêtée quand l'écran est réellement éteint). L'épinglage d'Android sans propriétaire de l'appareil reste déverrouillable par ses boutons.