Carte Lovelace pour capteurs multiples — Aeotec MultiSensor, Zigbee, Z-Wave, ESPHome. Design neutre, optimisé mobile, avec mini-graphes tirés de l'historique réel.
Mesure principale en grand avec sa courbe 24 h, tuiles secondaires avec sparklines, bande de présence, santé de l'appareil et détection de capteur muet.
Graphes réels, pas décoratifs. Les courbes viennent du recorder via
history/history_during_period, rééchantillonnées sur points valeurs. Aucune
dépendance à une autre carte. Le graphe principal affiche min, moyenne, max sur la
fenêtre et la tendance sur 3 h.
Bande de présence. Timeline des détections sur la fenêtre, avec repères horaires et compteur d'événements. Pour une chambre, on lit d'un coup d'œil le découpage de la nuit.
Détection de capteur muet. Un capteur sur pile qui cesse de rapporter continue
d'afficher sa dernière valeur, sans que rien ne signale qu'elle est périmée.
stale_after déclenche un bandeau au-delà d'un délai sans nouvelle, en s'appuyant sur
last_seen ou à défaut sur le last_reported le plus récent des mesures.
Détection de notification batterie verrouillée. En Z-Wave, une notification « remplacer la batterie » reste latchée jusqu'à remise à l'état repos : on obtient un niveau à 100 % et une demande de remplacement actives en même temps. La carte repère la contradiction, l'explique, et propose un bouton de réinitialisation.
Zones de confort. La valeur est colorée selon des seuils dérivés du device_class,
surchargeables par mesure. Rien n'est masqué ni corrigé : seule la couleur change.
Sans device_class reconnu, la valeur garde sa couleur de palette.
La carte fournit un éditeur graphique : sélecteurs d'entités filtrés par domaine et
device_class, libellés et textes d'aide en français, sections repliables pour la
batterie, la santé de l'appareil et l'affichage.
L'éditeur ne détruit pas ce qu'il ne sait pas représenter. Les réglages avancés
par mesure (decimals, color, icon_path, thresholds, unit) et toute clé
inconnue sont conservés à l'identique. Un bandeau les liste explicitement pour que
vous sachiez ce qui reste éditable uniquement en YAML.
Les mesures secondaires se choisissent dans un sélecteur multiple : l'ordre du sélecteur définit l'ordre des tuiles, et retirer puis remettre une entité ne perd pas ses réglages tant qu'elle reste dans la liste.
À l'ajout depuis le sélecteur de cartes, la configuration proposée est déduite de votre instance : la carte cherche un appareil portant à la fois température et humidité, puis rattache automatiquement luminosité, batterie et capteur de présence du même appareil, ainsi que son nom et sa pièce.
- HACS → Frontend → ⋮ → Dépôts personnalisés
- URL
https://github.com/junkoku38/multisensor-card, catégorie Lovelace - Installer, puis recharger le navigateur
Copier dist/multisensor-card.js dans /config/www/, puis déclarer la ressource
/local/multisensor-card.js en type module.
type: custom:multisensor-card
name: MultiSensor 7
area: Chambre parents
presence: binary_sensor.capteur_chambre_1er_motion_detection
main:
entity: sensor.capteur_chambre_1er_air_temperature
name: Température
thresholds: [null, 16, 19, 25]
sensors:
- entity: sensor.capteur_chambre_1er_humidity
name: Humidité
- entity: sensor.capteur_chambre_1er_illuminance
name: Luminosité
- entity: sensor.capteur_chambre_1er_ultraviolet
name: Index UV
battery: sensor.capteur_chambre_1er_battery_level
battery_warning: 35
battery_replace_now: binary_sensor.capteur_chambre_1er_replace_battery_now
battery_replace_soon: binary_sensor.capteur_chambre_1er_replace_battery_soon
battery_reset: button.capteur_chambre_1er_idle_power_management_battery_maintenance_status
node_status: sensor.node_34_etat_du_noeud
last_seen: sensor.node_34_derniere_connexion
firmware: update.capteur_chambre_1er_firmware
problem: binary_sensor.capteur_chambre_1er_system_software_failure_with_failure_code
stale_after: 120
hours: 24
points: 48
footer_note: Aeotec ZWA024-C · PIR 10 m/120° · 2× CR123A| Option | Type | Défaut | Rôle |
|---|---|---|---|
name |
string | MultiSensor |
Titre |
area |
string | — | Suffixe du titre, et sous-titre si presence est absent |
main |
mesure | — | Mesure principale, en grand avec sa courbe |
sensors |
liste | [] |
Mesures secondaires en tuiles |
presence |
entity | — | Capteur binaire de présence |
show_presence_strip |
bool | true |
Affiche la bande de présence |
battery |
entity | — | Niveau de batterie |
battery_warning |
number | 35 |
Seuil % de coloration de la pilule |
battery_replace_now |
entity | — | Notification de remplacement immédiat |
battery_replace_soon |
entity | — | Notification de remplacement prochain |
battery_reset |
entity | — | button de remise à l'état repos |
node_status |
entity | — | alive / asleep / dead. Pastille sur la pilule batterie |
last_seen |
entity | — | Horodatage du dernier contact |
firmware |
entity | — | Entité update |
problem |
entity | — | Défaut matériel ou logiciel |
tamper |
entity | — | Sabotage, affiché en pied |
stale_after |
number | 0 |
Minutes avant alerte de capteur muet. 0 désactive |
hours |
number | 24 |
Fenêtre d'historique |
points |
number | 48 |
Échantillons par courbe |
refresh |
number | 300 |
Secondes entre deux relectures d'historique |
footer_note |
string | — | Texte libre en pied |
Forme courte ou détaillée :
sensors:
- sensor.humidity
- entity: sensor.co2
name: CO₂
decimals: 0
color: "#9ec4a8"
thresholds: [null, null, 800, 1200]| Clé | Rôle |
|---|---|
entity |
obligatoire |
name |
libellé. Sinon déduit du friendly_name, préfixe d'appareil retiré |
unit |
unité. Sinon unit_of_measurement |
decimals |
décimales. Sinon adaptées à l'ordre de grandeur |
color |
couleur de courbe. Sinon palette du device_class |
device_class |
force la palette et les seuils |
thresholds |
[trèsBas, bas, haut, trèsHaut]. null pour désactiver |
icon_path |
contenu SVG personnalisé |
Le libellé retire le nom de l'appareil quand il préfixe le friendly_name, en
s'appuyant sur les registres exposés par le frontend. capteur_x Air temperature et
capteur_x Humidity donnent ainsi Air temperature et Humidity, et non
temperature et le nom complet.
Seuils par défaut :
device_class |
Seuils |
|---|---|
temperature |
[null, 18, 24, 26] |
humidity |
[null, 30, 60, 70] |
carbon_dioxide |
[null, null, 800, 1200] |
pm25 |
[null, null, 15, 35] |
pm10 |
[null, null, 45, 100] |
battery |
[null, 20, null, null] |
Une mesure ayant moins de deux points sur la fenêtre affiche une ligne pointillée au lieu d'une courbe. C'est le cas d'un index UV constant à 0 en intérieur.
Les courbes utilisent preserveAspectRatio="none" : les traits sont protégés par
vector-effect="non-scaling-stroke", et le point de fin est un segment de longueur
nulle à bout rond, qui reste un disque parfait quel que soit l'étirement. Un <circle>
deviendrait une ellipse.
MIT