{"id":10829,"date":"2026-03-01T11:59:53","date_gmt":"2026-03-01T09:59:53","guid":{"rendered":"https:\/\/www.sigalou-domotique.fr\/?p=10829"},"modified":"2026-03-10T23:03:39","modified_gmt":"2026-03-10T21:03:39","slug":"je-surveille-mon-reseau-zigbee-linkquality-last_seen","status":"publish","type":"post","link":"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen","title":{"rendered":"Monitoreo visualmente mi red Zigbee (Linkquality &amp; Last_seen)"},"content":{"rendered":"<p><strong>Objetivo:<\/strong> hacer visibles (y utilizables) dos piezas clave de informaci\u00f3n para cada dispositivo Zigbee:<\/p>\n<ul>\n<li><strong>linkquality<\/strong> (salud radioel\u00e9ctrica) y<\/li>\n<li><strong>ultimo _seen<\/strong> (\u00faltima comunicaci\u00f3n)<\/li>\n<\/ul>\n<p>Se trata de detectar inmediatamente una sirena \u00abperdida\u00bb o una bater\u00eda HS, sin esperar a descubrirla por casualidad.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10857\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202311.png\" alt=\"\" width=\"328\" height=\"187\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202311.png 328w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202311-300x171.png 300w\" sizes=\"auto, (max-width: 328px) 100vw, 328px\" \/><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<label for=\"ez-toc-cssicon-toggle-item-6ae43e6ba0721\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">alternar<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6ae43e6ba0721\"  aria-label=\"Alternador\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%F0%9F%A7%AD_Pourquoi_jai_mis_ca_en_place\" >\ud83e\udded \u00bfPor qu\u00e9 pongo esto en su lugar?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%E2%9A%A0%EF%B8%8F_Piege_1_il_y_a_deux_%E2%80%9Cconfigurationyaml%E2%80%9D\" >Atrapa de \u26a0 #1 : hay dos \u00abconfiguration.yaml\u00bb<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%F0%9F%A7%B9_Piege_2_lUI_de_ladd-on_Zigbee2MQTT_peut_%E2%80%9Cnettoyer%E2%80%9D_des_options\" >Atrapa de \ud83e\uddf9 #2 : La interfaz de usuario adicional Zigbee2MQTT puede \u00ablimpiar\u00bb las opciones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%F0%9F%95%92_Activer_last_seen_dans_Zigbee2MQTT_obligatoire\" >\ud83d\udd52 Activar el \u00faltimo _seen en Zigbee2MQTT (requerido)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Formats_utiles_pour_choisir\" >Formatos \u00fatiles (a elegir)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%F0%9F%A7%A9_Activer_last_seen_et_linkquality_%E2%80%9Cpar_defaut%E2%80%9D_dans_Home_Assistant_facultatif\" >\ud83e\udde9 Activar \u00faltimo _seen y linkquality \u201cdefault\u201d en Home Assistant (opcional)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Important_impact_sur_les_appareils_deja_installes\" >Importante: impacto en los dispositivos ya instalados<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%F0%9F%97%84%EF%B8%8F_Base_de_donnees_garder_linfo_visible_sans_%E2%80%9Cpolluer%E2%80%9D_lhistorique\" >\ud83d\uddc4 Base de datos: mantener visible la informaci\u00f3n sin \u00abcontaminar\u00bb la historia<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Ce_que_je_mets_dans_configrecordersyaml\" >Lo que puse en \/config\/recorders.yaml<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%F0%9F%97%BA%EF%B8%8F_Supervision_visuelle_un_plan_%E2%80%9Cradio_fraicheur%E2%80%9D\" >\ud83d\uddfa Supervisi\u00f3n visual: un plan de \u00abradio + frescura\u00bb<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%F0%9F%A7%B0_La_carte_%E2%80%9Cdecluttering%E2%80%9D_reutilisable\" >\ud83e\uddf0 La tarjeta de decluttering (reutilizable)<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Exemple_page_Dashboard_tres_simple\" >Ejemplo: P\u00e1gina de Dashboard muy simple<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Le_template_linkquality_le_%E2%80%9Cgros_morceau%E2%80%9D\" >La plantilla de linkquality (la \u00abpieza grande\u00bb)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Simplement_que_fait_ce_code\" >Simplemente, \u00bfqu\u00e9 hace este c\u00f3digo?<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%F0%9F%A7%A0_Ajouts_utiles_infos_%E2%80%9Csante%E2%80%9D_globales_Zigbee2MQTT\" >\ud83e\udde0 Adiciones \u00fatiles: Zigbee2MQTT Informaci\u00f3n de Salud Global<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Voici_le_code_de_cette_carte\" >Aqu\u00ed est\u00e1 el c\u00f3digo de esta tarjeta<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Jai_ajoute_un_capteur_pour_calculer_la_moyenne_de_Linkquality\" >He a\u00f1adido un sensor para calcular el promedio de Linkquality<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Jai_ajoute_un_capteur_pour_calculer_le_nombre_de_capteurs\" >He a\u00f1adido un sensor para calcular el n\u00famero de sensores<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Jai_ajoute_un_capteur_pour_calculer_le_nombre_dappareils_en_erreur\" >He a\u00f1adido un sensor para calcular el n\u00famero de dispositivos por error<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Jai_ajoute_un_indicateur_sur_le_dasboard_principal_pour_signaler_le_nombre_en_erreur\" >He a\u00f1adido un indicador en el tablero principal para informar el n\u00famero de error<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Pour_savoir_qui_est_en_erreur\" >Para averiguar qui\u00e9n est\u00e1 equivocado<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%E2%9C%85_Recapitulatif_simple_les_3_blocs_indispensables\" >\u2705 Resumen simple (los 3 bloques esenciales)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#1_Zigbee2MQTT_activer_last_seen\" >1. Zigbee2MQTT: Activar last_seen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#2_Zigbee2MQTT_activer_par_defaut_dans_HA_optionnel_mais_pratique\" >2. Zigbee2MQTT: Habilitar por defecto en HA (opcional pero conveniente)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#3_Home_Assistant_ne_pas_enregistrer_ces_entites_dans_la_DB\" >3. Asistente del hogar: no registrar estas entidades en el PP<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#%F0%9F%8E%AF_Ce_que_ca_change_au_quotidien\" >\ud83c\udfaf Lo que cambia a diario<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/www.sigalou-domotique.fr\/es\/je-surveille-mon-reseau-zigbee-linkquality-last_seen\/#Besoin_de_precisions_des_questions\" >Aclaraci\u00f3n ? preguntas ?<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%A7%AD_Pourquoi_jai_mis_ca_en_place\"><\/span>\ud83e\udded \u00bfPor qu\u00e9 pongo esto en su lugar?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Con <strong>69 Dispositivos Zigbee<\/strong>, No ten\u00eda visibilidad simple para responder a dos preguntas b\u00e1sicas: <strong>\u00bfEl dispositivo captura correctamente?<\/strong> y <strong>\u00bfSe ha comunicado recientemente?<\/strong><br \/>\nEn una <strong>sirena<\/strong>, no es aceptable averiguar \u00abal azar\u00bb: Quiero ver inmediatamente si est\u00e1 muda, fuera de la red, o en problemas de radio.<\/p>\n<p>Por lo tanto, he decidido mostrar en todas partes:<\/p>\n<ul>\n<li><strong>linkquality<\/strong> : Indicador de calidad de enlace de radio (LQI). (Esta es una \u00abfoto\u00bb \u00fatil para identificar las zonas d\u00e9biles).<\/li>\n<li><strong>ultimo _seen<\/strong> : fecha\/hora de la \u00faltima comunicaci\u00f3n (o hora relativa: 12s, 4m, 2h \u2026).<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937.png\" target=\"_blank\" rel=\"noopener\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10839 size-large\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-1024x588.png\" alt=\"\" width=\"1024\" height=\"588\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-1024x588.png 1024w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-300x172.png 300w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-768x441.png 768w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-1536x882.png 1536w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-600x345.png 600w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937.png 1541w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\n<\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E2%9A%A0%EF%B8%8F_Piege_1_il_y_a_deux_%E2%80%9Cconfigurationyaml%E2%80%9D\"><\/span>Atrapa de \u26a0 #1 : hay dos \u00abconfiguration.yaml\u00bb<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Al principio, me dijeron: En Home Assistant, hay dos archivos diferentes.<\/p>\n<ul>\n<li>El archivo principal de Home Assistant: <strong>\/config\/configuration.yaml<\/strong><\/li>\n<li>El archivo Zigbee2MQTT: <strong>\/config\/zigbee2mqtt\/configuration.yaml<\/strong><\/li>\n<\/ul>\n<p><strong>Importante:<\/strong> para <code>ultimo _seen<\/code> y (en la pr\u00e1ctica) la exposici\u00f3n\/activaci\u00f3n por defecto, todo est\u00e1 configurado lateralmente <strong>Zigbee2MQTT<\/strong>, es decir, en <code>\/config\/zigbee2mqtt\/configuration.yaml<\/code>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10859\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/config.png\" alt=\"\" width=\"456\" height=\"262\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/config.png 456w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/config-300x172.png 300w\" sizes=\"auto, (max-width: 456px) 100vw, 456px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%A7%B9_Piege_2_lUI_de_ladd-on_Zigbee2MQTT_peut_%E2%80%9Cnettoyer%E2%80%9D_des_options\"><\/span>Atrapa de \ud83e\uddf9 #2 : La interfaz de usuario adicional Zigbee2MQTT puede \u00ablimpiar\u00bb las opciones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10858\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202550.png\" alt=\"\" width=\"1064\" height=\"183\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202550.png 1064w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202550-300x52.png 300w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202550-1024x176.png 1024w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202550-768x132.png 768w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202550-600x103.png 600w\" sizes=\"auto, (max-width: 1064px) 100vw, 1064px\" \/><\/p>\n<p>Me he comportado muy dolorosamente: A\u00f1ad\u00ed opciones avanzadas, guard\u00e9 \u2026 y luego la interfaz complementaria pareci\u00f3 \u00absimplificar\u00bb el archivo suprimiendo lo que no entend\u00eda.<\/p>\n<p><strong>El m\u00e9todo fiable (en casa):<\/strong><\/p>\n<ul>\n<li>Edito directamente <code>\/config\/zigbee2mqtt\/configuration.yaml<\/code> (Editor de archivos o SSH)<\/li>\n<li>Ahorro<\/li>\n<li>Estoy reiniciando Zigbee2MQTT<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%95%92_Activer_last_seen_dans_Zigbee2MQTT_obligatoire\"><\/span>\ud83d\udd52 Activar <code>ultimo _seen<\/code> en Zigbee2MQTT (obligatorio)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Por defecto, Zigbee2MQTT no puede publicar <code>ultimo _seen<\/code> (desactivar el valor).<br \/>\nPara activarlo, a\u00f1ado esto en la secci\u00f3n <code>avanzado<\/code> desde <code>\/config\/zigbee2mqtt\/configuration.yaml<\/code> :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">avanzado: # A\u00f1ade \"last_seen\" en los mensajes MQTT # posibles valores: inhabilitar, ISO_8601, ISO_8601_local, \u00e9poca last_seen: ISO_8601 _local<\/pre>\n<p>Esta configuraci\u00f3n le dice a Zigbee2MQTT que agregue el atributo <code>ultimo _seen<\/code> Mensajes MQTT, con un formato legible por hora local.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Formats_utiles_pour_choisir\"><\/span>Formatos \u00fatiles (a elegir)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>ISO_8601 _local<\/strong> : husillo legible + local (el m\u00e1s pr\u00e1ctico a diario).<\/li>\n<li><strong>ISO_8601<\/strong> : legible, pero en UTC (\u00fatil para centralizar todo en UTC).<\/li>\n<li><strong>\u00e9poca<\/strong> : marca de tiempo Unix (pr\u00e1ctica para scripts\/procesamiento).<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%A7%A9_Activer_last_seen_et_linkquality_%E2%80%9Cpar_defaut%E2%80%9D_dans_Home_Assistant_facultatif\"><\/span>\ud83e\udde9 Activar <code>ultimo _seen<\/code> y <code>linkquality<\/code> \u00abpor defecto\u00bb en Asistente para el hogar (opcional)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10857\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202311.png\" alt=\"\" width=\"328\" height=\"187\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202311.png 328w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-202311-300x171.png 300w\" sizes=\"auto, (max-width: 328px) 100vw, 328px\" \/><\/p>\n<p>Una vez <code>ultimo _seen<\/code> activado en el lado Zigbee2MQTT, queda un punto: en Home Assistant, estas entidades a menudo se clasifican como \u00abdiagn\u00f3stico\u00bb, por lo que pueden crearse, pero <strong>discapacitado<\/strong> autom\u00e1ticamente.<\/p>\n<p>Para que cada nuevo dispositivo Zigbee a\u00f1adido llegue directamente \u00ablisto para supervisar\u00bb, lo a\u00f1ado en <code>\/config\/zigbee2mqtt\/configuration.yaml<\/code> :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">dispositivo_opciones: homeasistente: ultimo _visen: habilitada_por_por defecto: verdadera calidad del v\u00ednculo: habilitada_por_por defecto: cierto<\/pre>\n<p>Luego reinicio Zigbee2MQTT.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Important_impact_sur_les_appareils_deja_installes\"><\/span>Importante: impacto en los dispositivos ya instalados<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Esta configuraci\u00f3n ayuda especialmente a la <strong>nuevos dispositivos<\/strong> (o dispositivos redescubiertos).<br \/>\nPara los dispositivos ya presentes, a menudo es necesario activar manualmente las entidades correspondientes en Home Assistant.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%97%84%EF%B8%8F_Base_de_donnees_garder_linfo_visible_sans_%E2%80%9Cpolluer%E2%80%9D_lhistorique\"><\/span>\ud83d\uddc4 Base de datos: mantener visible la informaci\u00f3n sin \u00abcontaminar\u00bb la historia<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>El \u00abriesgo\u00bb no es tanto Zigbee2MQTT (solo agrega un campo de marca de tiempo en los mensajes), sino m\u00e1s bien Home Assistant si guarda cada actualizaci\u00f3n de <code>ultimo _seen<\/code> en la base de datos: Puede generar mucha escritura con muchos sensores.<\/p>\n<p>Mi elecci\u00f3n: Quiero <strong>ver<\/strong> estos valores en todas partes, pero no necesito gr\u00e1ficos minuto a minuto. Por lo tanto, excluyo a esas entidades de la grabadora.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Ce_que_je_mets_dans_configrecordersyaml\"><\/span>Lo que puse en <code>\/config\/recorders.yaml<\/code><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">registrador: excluir: _globs de la entidad: *_last _seen - sensor.*_linkquality<\/pre>\n<p>Despu\u00e9s de eso, reinicio Home Assistant: Los valores permanecen visibles en tiempo real, pero limito fuertemente la creaci\u00f3n de historia innecesaria.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%97%BA%EF%B8%8F_Supervision_visuelle_un_plan_%E2%80%9Cradio_fraicheur%E2%80%9D\"><\/span>\ud83d\uddfa Supervisi\u00f3n visual: un plan de \u00abradio + frescura\u00bb<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>No quer\u00eda \u00abuna entidad perdida en una lista\u00bb: Yo quer\u00eda <strong>supervisi\u00f3n visual<\/strong>, inmediatamente legible.<\/p>\n<p>Principio:<\/p>\n<ul>\n<li>Cada dispositivo Zigbee aparece como un peque\u00f1o rect\u00e1ngulo en un plano.<\/li>\n<li>El n\u00famero que se muestra a granel = <strong>Linkquality<\/strong>.<\/li>\n<li>El tiempo en la parte inferior derecha = <strong>Last_seen<\/strong> relativo (s\/m\/h\/d).<\/li>\n<li>El marco negro = router (variable <strong>enrutador: 1<\/strong>), para reconocer r\u00e1pidamente los routers.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10840\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-184703.png\" alt=\"\" width=\"282\" height=\"236\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%F0%9F%A7%B0_La_carte_%E2%80%9Cdecluttering%E2%80%9D_reutilisable\"><\/span>\ud83e\uddf0 La tarjeta de decluttering (reutilizable)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Utilizo la magia de la tarjeta de _templates que describ\u00ed en esta p\u00e1gina hace tres a\u00f1os:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.sigalou-domotique.fr\/es\/utilisation-de-la-carte-decluttering-card\/\" target=\"_blank\" rel=\"noopener\">Uso de la tarjeta de Decluttering<\/a><\/li>\n<\/ul>\n<p>Por lo tanto, <code>despejar _templates<\/code> + <code>custom:decluttering-card<\/code> reutilizar el mismo componente en todas partes, cambiando solo 4 variables.<\/p>\n<p>Simplemente defino cuatro elementos que son diferentes para cada dispositivo:<\/p>\n<ul>\n<li>Superficie: es el sensor que ser\u00e1 procesado<\/li>\n<li>parte superior: su posici\u00f3n desde arriba<\/li>\n<li>izquierda: su posici\u00f3n desde la izquierda<\/li>\n<li>enrutador: 1 si se trata de un router de lo contrario 0<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Exemple_page_Dashboard_tres_simple\"><\/span>Ejemplo: P\u00e1gina de Dashboard muy simple<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">Tipo: Imagen de los elementos de la imagen: \/local\/house\/1920x1000\/off_0800.png elementos: - tipo: custom:decluttering-card plantilla: variables de calidad de enlace: - \u00e1rea: sensor.light_chambre_parents - top: 20% - izquierda: 35% - router: 1 - tipo: custom:decluttering-card plantilla: variables de calidad de enlace: - \u00e1rea: sensor.fenetre_de_la_chambre_des_parents - top: 15% - izquierda: 37% - router: 0<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Le_template_linkquality_le_%E2%80%9Cgros_morceau%E2%80%9D\"><\/span>La plantilla <code>linkquality<\/code> (la \u00abpieza grande\u00bb)<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">desmontaje de _templates: calidad de los enlaces: por defecto: - superior: 5% - izquierda: 95% - router: 0 elementos: Tipo: custom:entidad de tarjeta de bot\u00f3n: | [[retorno \u201c[[zona]]_linkquality\u201c; ]]] mostrar _icon: nombre falso: | [[ return '[[zone]]]' .replace(\/^sensor \\.\/i, '') .replace(\/_\/g, ' '') .trim(); ]]] mostrar _state: true show_unidades: false custom_fields (en ingl\u00e9s): Visto por \u00faltima vez: | [[const obj = states[\u201c[[zone]]_last _seen\u201c]; si (!obj ||!obj.state || obj.state === 'no disponible') devuelve '!!'; const last = nueva fecha (obj.state); si (isNaN(last.getTime()) devuelve '!!'; const now = nueva fecha(); const segundos = Math.floor((ahora - \u00faltimo) \/ 1000); if (seconds &lt; 60) return ` (en ingl\u00e9s)${segundos}s\u201c; const minutos = Math.floor (segundos \/ 60); si (minutos &lt; 60) devuelve `${minutos}m\u201c; const hours = Math.floor (minutos \/ 60); \u00ab if (hours &lt; 24) return `\u00bb (en ingl\u00e9s).${horas}h\u201c; const days = Math.floor (horas\/24); \u00a1 Regreso `${d\u00edas}d\u201c; ]]] estilos: tarjeta: - frontera: \u00bf| [[volver ([router]]] == 1)? \u00ab2px s\u00f3lido negro\u00bb: \u00abninguno\u00bb; ]]] - sombra de caja: Ninguno - posici\u00f3n: relativo - radio fronterizo: 8px - anchura m\u00ednima: 100px - altura: 45px - pantalla: flex \u2013 direcci\u00f3n flexible: columna - Justificar contenido: centro - alinear-elementos: centro - color: nombre blanco: - tama\u00f1o de fuente: 10px - altura de l\u00ednea: \u00ab1\u00bb - relleno: 0 - margen: 0 - Alineaci\u00f3n de texto: centro - color: blanco - flex: 1 - anchura m\u00e1xima: 95px - envoltura de palabras: break-word - desbordamiento: oculto - espacio en blanco: estado normal: - tama\u00f1o de fuente: 15px - font-weight: negrita - altura de l\u00ednea: \u00ab1\u00bb - relleno: 0 - margen: 0 - Alineaci\u00f3n de texto: centro - color: blanco - flex: 1 custom_fields: Visto por \u00faltima vez: - posici\u00f3n: absoluto - inferior: 0px - derecha: 0px - tama\u00f1o de fuente: 10px - color: negro - relleno: 2px 4px - radio-frontera: 4px - caja-sombra: 0 1px 3px rgba(0,0,0,0.3) - fondo: | [[const obj = states[\u201c[[zone]]_last _seen\u201c]; si (!obj ||!obj.state) devuelve \u00abrgba(128,128,128,0.5)\u00bb; const last = nueva fecha (obj.state); const now = nueva fecha(); const segundos = Math.floor((ahora - \u00faltimo) \/ 1000); si (seconds &lt; 1200) devuelve \u00abrgba(0.255,0,0.9)\u00bb; \/\/ Green &lt;20min si (segundos &lt; 1800) devuelve 'rgba(255,255,0,0.9)'; \/\/ Amarillo 20-30min si (segundos &lt; 7200) devuelve 'rgba(255,165,0,0.9)'; \/\/ Orange &lt;2h retorno 'rgba(255,0,0,0.9)'; \/\/ Rojo &gt;2h ]]] Estado: -valor: estilos no disponibles: tarjeta: - antecedentes: rgba(255,0,0,0.3) - operador: Valor \u00ab&gt;\u00bb: 200 estilos: tarjeta: - antecedentes: rgba(0,180,0,0.3) - operador: Valor \u00ab&gt;\u00bb: 150 estilos: tarjeta: - antecedentes: rgba(34,255,34,0.3) - operador: Valor \u00ab&gt;\u00bb: 130 estilos: tarjeta: - antecedentes: rgba(255,255,0,0.3) - operador: Valor \u00ab&gt;=\u00bb: 80 estilos: tarjeta: - antecedentes: rgba(255,165,0,0.3) - operador: Valor \u00ab&lt;\u00bb: 80 estilos: tarjeta: - antecedentes: estilo rgba(255,107,53,0.3): parte superior: \u00ab[[arriba]]\u00bb a la izquierda: \u00ab[[izquierda]]\u00bb<\/pre>\n<h4><span class=\"ez-toc-section\" id=\"Simplement_que_fait_ce_code\"><\/span>Simplemente, \u00bfqu\u00e9 hace este c\u00f3digo?<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Esta plantilla define una plantilla de mapa \u00fanica que se reutiliza para todos los dispositivos Zigbee, cambiando solo la variable [[zona]].<\/p>\n<p>La propiedad de entidad se construye din\u00e1micamente en JavaScript ([[[ \u2026 ]]) para apuntar a la entidad [[zona]] _linkquality, que muestra autom\u00e1ticamente la calidad del enlace del dispositivo (valor LQI devuelto por Zigbee2MQTT o ZHA).<\/p>\n<p>El nombre tambi\u00e9n se genera en el lado del cliente: Se elimina el prefijo del sensor, se sustituye el _ por espacios y se realiza un recorte(), que produce una etiqueta legible a partir del identificador de entidad.<\/p>\n<p>El \u00faltimo campo personalizado lee la entidad [[zona]] _last _seen en estados[], convierte su valor en objeto Date, y luego calcula la diferencia con la hora actual para mostrar un tiempo relativo (s, m, h, d). Si el valor est\u00e1 vac\u00edo, no est\u00e1 disponible o es una fecha no v\u00e1lida, se muestra !! en lugar de mostrar un valor inconsistente.<\/p>\n<p>El \u00faltimo estilo de insignia visto en la parte inferior derecha utiliza una funci\u00f3n JavaScript que devuelve un color RGBA diferente dependiendo de la edad de la \u00faltima comunicaci\u00f3n (gris si no hay valor, luego verde \u2192 amarillo \u2192 naranja \u2192 rojo dependiendo del n\u00famero de segundos transcurridos), que codifica visualmente la frescura de los datos.<\/p>\n<p>La secci\u00f3n dice: la tarjeta de botones define varios umbrales para el valor de LinkQuality: no disponible, luego corta &gt;200, &gt;150, &gt;130, &gt;=80, &lt;80, cada uno aplicando un fondo de color espec\u00edfico de la tarjeta, que convierte un valor num\u00e9rico en un indicador de calidad de radio inmediatamente legible.<\/p>\n<p>Las propiedades de formato (flex, min-width, height, border-radius, absolute badge position, etc.) aseguran una representaci\u00f3n compacta y uniforme, con un borde negro opcional cuando [[router]] == 1 para identificar visualmente los routers Zigbee en comparaci\u00f3n con los terminales simples.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%A7%A0_Ajouts_utiles_infos_%E2%80%9Csante%E2%80%9D_globales_Zigbee2MQTT\"><\/span>\ud83e\udde0 Adiciones \u00fatiles: Zigbee2MQTT Informaci\u00f3n de Salud Global<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11012\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-10-220310.png\" alt=\"\" width=\"516\" height=\"552\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-10-220310.png 516w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-10-220310-280x300.png 280w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Voici_le_code_de_cette_carte\"><\/span>Aqu\u00ed est\u00e1 el c\u00f3digo de esta tarjeta<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">Tipo: Imagen de los elementos de la imagen: \/local\/house\/1920x1000\/off_0800.png elementos: - tipo: custom:mod-tarjeta: Tipo: T\u00edtulo de las entidades: Aparece en Zigbee2MQTT _header _toggle: entidades falsas: - entidad: _bridge _permit _join nombre: Permitir la inclusi\u00f3n - entidad: button.zigbee2mqtt _bridge _restart nombre: Reiniciar - entidad: select.zigbee2mqtt _bridge _log _level nombre: Nivel de registro - entidad: _sensor.zigbee2mqtt _bridge _connection _nombre del estado: Estado de conexi\u00f3n - tipo: custom:template-entity-row name (nombre de la fila de la entidad de la plantilla): Lanzado desde el estado: &gt; {% set e = states.binary_sensor.zigbee2mqtt _bridge _connection _state %} {% si e no es ninguno y e.state no est\u00e1 en ['no disponible', 'desconocido'] %} {{ ((now() - e.last _changed).total _seconds() \/ 3600) | round(1) }} h {% de lo contrario %} No disponible {% endif %} - entidad: sensor.zigbee2mqtt _bridge _coordinator _version nombre: Versi\u00f3n de coordinaci\u00f3n - entidad: Sensor.zigbee2mqtt _bridge _version nombre: Versi\u00f3n Zigbee2MQTT - entidad: sensor.number_de _sensors_linkq_en _error nombre: Icono inalcanzable: mdi:c\u00edrculo de alerta - entidad: sensor.number_de _sensors_linkq nombre: Icono total: mdi:dispositivos - entidad: sensor.zigbee _linkquality _nombre medio: Icono de LinkQuality promedio: mdi:estilo de se\u00f1al: parte superior: 35% izquierda: 75% anchura: 450px<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Jai_ajoute_un_capteur_pour_calculer_la_moyenne_de_Linkquality\"><\/span>He a\u00f1adido un sensor para calcular el promedio de Linkquality<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10845\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192042.png\" alt=\"\" width=\"437\" height=\"48\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192042.png 437w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192042-300x33.png 300w\" sizes=\"auto, (max-width: 437px) 100vw, 437px\" \/><\/p>\n<p>Este sensor se agrega al archivo templates.yaml, aqu\u00ed est\u00e1 su c\u00f3digo:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- nombre: \u00abzigbee_linkquality_average\u00bb (en ingl\u00e9s): zigbee _linkquality _unidad media _of _measurement: \"LQI\" state_class: estado de medici\u00f3n: &gt;- {% | selectattr('entity_id', 'search', '_linkquality') | selectattr('state', 'is_number') | map(attribute='state') | map('float') | list %} {% si linkqualities | longitud &gt; 0 %} {{ (cualidades | suma\/longitud |) | round(1) }} {% de lo contrario %} 0 {% endif %}<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Jai_ajoute_un_capteur_pour_calculer_le_nombre_de_capteurs\"><\/span>He a\u00f1adido un sensor para calcular el n\u00famero de sensores<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10846\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192227.png\" alt=\"\" width=\"445\" height=\"49\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192227.png 445w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192227-300x33.png 300w\" sizes=\"auto, (max-width: 445px) 100vw, 445px\" \/><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- nombre: \"N\u00famero de sensores Linkq\" _id \u00fanico: sensor.number _sensors Estado de _linkq: &gt;- {% set lq _sensors = states.sensor | selectattr('entidad _id', 'b\u00fasqueda', '_linkquality'$') Lista | %} {{ lq _sensors | count }} icono: mdi:unidad se\u00f1al-variante_of_measurement: \"sensores\"<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Jai_ajoute_un_capteur_pour_calculer_le_nombre_dappareils_en_erreur\"><\/span>He a\u00f1adido un sensor para calcular el n\u00famero de dispositivos por error<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10847\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192328.png\" alt=\"\" width=\"445\" height=\"48\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192328.png 445w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192328-300x32.png 300w\" sizes=\"auto, (max-width: 445px) 100vw, 445px\" \/><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- nombre: \"N\u00famero de sensores Linkq en error\" _id \u00fanico: sensor.number _sensors _linkq Estado de error de _: &gt;- {% set lq _sensors = states.sensor | selectattr('entidad _id', 'b\u00fasqueda', '_linkquality'$') | selectattr('state', 'in', ['unavailable', 'unknown', 'None']) Lista de | %} {{ lq _sensors | count }} icono: mdi:unidad de c\u00edrculo de alerta_of_measurement: \"sensores\"\r\n<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Jai_ajoute_un_indicateur_sur_le_dasboard_principal_pour_signaler_le_nombre_en_erreur\"><\/span>He a\u00f1adido un indicador en el tablero principal para informar el n\u00famero de error<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10848\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192533.png\" alt=\"\" width=\"68\" height=\"57\" \/><\/p>\n<p>En primer lugar esta plantilla para mostrar xx en error \/ yy en total<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- nombre: \"zigbee _unreachable _synthese\" _id \u00fanico: Sensor.zigbee _estado de _synthese alcanzable: &gt;- {{ states('sensor.number_de _sensors _linkq _en _error') }}\/{ states('sensor.number_de _sensors _linkq') }} icono: mdi:alert-circle<\/pre>\n<p>Y en mis elementos pict\u00f3ricos, a\u00f1ado:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- tipo: condiciones condicionales: - condici\u00f3n: entidad estatal: sensor.number _de _sensors _linkq _en _en Estado de error _not: Elementos \"0\": - tipo: custom:entidad de tarjeta de bot\u00f3n: Sensor.zigbee _Icono de _synthese accesible: mdi:zigbee show_nombre: falso show_state: verdadero estilo: parte superior: 5% izquierda: 5% transforma: traducir(-50%, -50%) estilos: ind\u00edquese: - color: rojo - font-weight: 700 - tama\u00f1o de fuente: Icono de 16px: - color: rojo - anchura: 20px - altura: Tarjeta de 20px: - radio fronterizo: 999px - relleno: 4px 6px - fondo: transparente - caja-sombra: ninguno<\/pre>\n<p>Este bloque se utiliza para mostrar un peque\u00f1o indicador rojo \"Zigbee in error\" en el plan del tablero <strong>solo<\/strong> cuando hay al menos un sensor problem\u00e1tico.<\/p>\n<p>Este es un elemento condicional en una tarjeta de elementos de imagen: s\u00f3lo muestra su contenido si sensor.number _sensors _linkq _en _en error es diferente de \"0\" (por lo que si al menos un sensor es inalcanzable o en error de LinkQuality).<\/p>\n<p>Cuando la condici\u00f3n es verdadera, muestra una custom:button-card basada en sensor.zigbee _unreachable _synthese, que probablemente contiene \"3 in error\" o texto similar.<\/p>\n<p>El bot\u00f3n se coloca en la parte superior izquierda del avi\u00f3n (5\u202f% \/ 5\u202f%), centrada a trav\u00e9s de la transformada: traducir(-50%, -50%), con un fondo transparente y sin sombras para mantener solo el icono de Zigbee y el texto.<\/p>\n<p>El icono y el estado de Zigbee est\u00e1n estilizados en rojo, negrita y tama\u00f1o 16 px, con un radio de borde: 999px para dar una apariencia de rotulador \/ etiqueta, por lo que es una advertencia visual discreta pero claramente visible, siempre y cuando haya sensores por error.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Pour_savoir_qui_est_en_erreur\"><\/span>Para averiguar qui\u00e9n est\u00e1 equivocado<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10849\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192955.png\" alt=\"\" width=\"504\" height=\"134\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192955.png 504w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-192955-300x80.png 300w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/p>\n<p>Para echar un vistazo a la lista de equipos por error, aqu\u00ed est\u00e1n los c\u00f3digos necesarios.<\/p>\n<p>Declaraci\u00f3n de plantillas<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">- nombre: \"N\u00famero de sensores Linkq en error\" _id \u00fanico: sensor.number _sensors _linkq Estado de error de _: &gt;- {% set lq _sensors = states.sensor | selectattr('entidad _id', 'b\u00fasqueda', '_linkquality'$') | selectattr('state', 'in', ['unavailable', 'unknown', 'None']) Lista de | %} {{ lq _sensors | count }} icono: mdi:unidad de c\u00edrculo de alerta_of_measurement: \"sensores\" - nombre: \u00abLinkquality Sensor List in Error\u00bb (en ingl\u00e9s): Sensor.liste _sensors _linkquality Estado del _error: &gt;- {% set lq _sensors = states.sensor | selectattr('entidad _id', 'b\u00fasqueda', '_linkquality'$') | selectattr('state', 'in', ['unavailable', 'unknown', 'None']) | map(attribute='entity _id') | map('regex _replace', 'sensor \\\\\\\\\\\\\\\\.(.*) _linkquality$', '\\\\\\\\\\\\\\\\1') | list %} {% N\u00famero de conjuntos = lq _sensors | length %} {% si cuenta == 0 %} Ninguna {% elif count &lt;= 5 %} {{ lq _sensors | join(', ') }} {% de lo contrario %} {{ lq _sensors[:5] | join(', ') ~ ' + ' ~ count }} {% endif %} atributos: c\u00f3mputo: &gt;- {% set lq _sensors = states.sensor | selectattr('entidad _id', 'b\u00fasqueda', '_linkquality'$') | selectattr('state', 'in', ['unavailable', 'unknown', 'None']) | map(attribute='entity _id') | map('regex _replace', 'sensor \\\\\\\\\\\\\\\\.(.*) _linkquality$', '\\\\\\\\\\\\\\\\1') | list %} {{ lq _sensors | length }} _list completo: &gt;- {% set lq _sensors = states.sensor | selectattr('entidad _id', 'b\u00fasqueda', '_linkquality'$') | selectattr('state', 'in', ['unavailable', 'unknown', 'None']) | map(attribute='entity _id') | map('regex _replace', 'sensor \\\\\\\\\\\\\\\\.(.*) _linkquality$', '\\\\\\\\\\\\\\\\1') | list %} {{ lq _sensors | join(', ') | default('None') }} icono: mdi:alert-circle\r\n\r\n<\/pre>\n<p>Y en el Dasboard, siempre en los elementos de la imagen<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">Tipo: Imagen de los elementos de la imagen: \/local\/house\/1920x1000\/off_0800.png elementos: - tipo: custom:mod-tarjeta: Tipo: T\u00edtulo de las entidades: Sensores Zigbee en entidades de error: - tipo: custom:template-entity-row entity: sensor.liste _sensors _linkquality _en _error nombre: Estado de la lista: &gt; {% set s = states('sensor.liste _sensors _linkquality _en _error') %} {% si no est\u00e1 en ['desconocido', 'no disponible', ''] %} {{ s.replace(',', '\\\\\\\\n') } {% de lo contrario %} Ninguna {% endif %} estilo: parte superior: 80% izquierda: 75% anchura: 450px\r\n<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"%E2%9C%85_Recapitulatif_simple_les_3_blocs_indispensables\"><\/span>\u2705 Resumen simple (los 3 bloques esenciales)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1_Zigbee2MQTT_activer_last_seen\"><\/span>1. Zigbee2MQTT: Activar last_seen<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">avanzado: ultimo _visen: ISO_8601 _local<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"2_Zigbee2MQTT_activer_par_defaut_dans_HA_optionnel_mais_pratique\"><\/span>2. Zigbee2MQTT: Habilitar por defecto en HA (opcional pero conveniente)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">dispositivo_opciones: homeasistente: ultimo _visen: habilitada_por_por defecto: verdadera calidad del v\u00ednculo: habilitada_por_por defecto: cierto<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"3_Home_Assistant_ne_pas_enregistrer_ces_entites_dans_la_DB\"><\/span>3. Asistente del hogar: no registrar estas entidades en el PP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\">registrador: excluir: _globs de la entidad: *_last _seen - sensor.*_linkquality<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"%F0%9F%8E%AF_Ce_que_ca_change_au_quotidien\"><\/span>\ud83c\udfaf Lo que cambia a diario<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Veo inmediatamente<\/strong> zonas d\u00e9biles (baja calidad de enlace) y s\u00e9 qu\u00e9 reforzar (enrutador, colocaci\u00f3n, canal, etc.).<\/li>\n<li><strong>Lo s\u00e9 exactamente<\/strong> Cuando una sirena dej\u00f3 de hablar (la \u00faltima _seen), ya no \u00absupongo\u00bb.<\/li>\n<li><strong>Mantengo una base de datos saludable<\/strong> (sin historial innecesario en sensores que se mueven todo el tiempo).<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937.png\" target=\"_blank\" rel=\"noopener\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10839\" src=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937.png\" alt=\"\" width=\"1541\" height=\"885\" srcset=\"https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937.png 1541w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-300x172.png 300w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-1024x588.png 1024w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-768x441.png 768w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-1536x882.png 1536w, https:\/\/www.sigalou-domotique.fr\/wp-content\/uploads\/2026\/03\/Capture-decran-2026-03-01-183937-600x345.png 600w\" sizes=\"auto, (max-width: 1541px) 100vw, 1541px\" \/><br \/>\n<\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Besoin_de_precisions_des_questions\"><\/span>Aclaraci\u00f3n ? preguntas ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Este debate (si sigue abierto) est\u00e1 disponible:<\/p>\n<p><a href=\"https:\/\/forum.hacf.fr\/t\/retex-je-surveille-visuellement-mon-reseau-zigbee-linkquality-last-seen\/76732\" target=\"_blank\" rel=\"noopener\">https:\/\/forum.hacf.fr\/t\/retex-je-surveille-visuellement-mon-reseau-zigbee-linkquality-last-seen\/76732<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Objetivo: hacer que dos elementos clave de informaci\u00f3n sean visibles (y utilizables) para cada dispositivo Zigbee: linkquality (radio health) y last_seen (\u00faltima comunicaci\u00f3n) Esto con el fin de detectar inmediatamente una sirena \u00abperdida\u00bb o una bater\u00eda HS, sin esperar a descubrirla por casualidad. \ud83e\udded Por qu\u00e9 configur\u00e9 esto Con 69 dispositivos Zigbee, no ten\u00eda [...]<\/p>","protected":false},"author":1,"featured_media":10835,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[14,53],"tags":[],"class_list":["post-10829","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-domotique","category-home-assistant"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.sigalou-domotique.fr\/es\/wp-json\/wp\/v2\/posts\/10829","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigalou-domotique.fr\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigalou-domotique.fr\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigalou-domotique.fr\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigalou-domotique.fr\/es\/wp-json\/wp\/v2\/comments?post=10829"}],"version-history":[{"count":0,"href":"https:\/\/www.sigalou-domotique.fr\/es\/wp-json\/wp\/v2\/posts\/10829\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigalou-domotique.fr\/es\/wp-json\/wp\/v2\/media\/10835"}],"wp:attachment":[{"href":"https:\/\/www.sigalou-domotique.fr\/es\/wp-json\/wp\/v2\/media?parent=10829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigalou-domotique.fr\/es\/wp-json\/wp\/v2\/categories?post=10829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigalou-domotique.fr\/es\/wp-json\/wp\/v2\/tags?post=10829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}