{"id":243087,"date":"2026-07-02T12:24:16","date_gmt":"2026-07-02T10:24:16","guid":{"rendered":"https:\/\/emariete.com\/co2-gadget-guia-bthome\/"},"modified":"2026-07-05T12:26:37","modified_gmt":"2026-07-05T10:26:37","slug":"co2-gadget-guide-bthome","status":"publish","type":"post","link":"https:\/\/emariete.com\/en\/co2-gadget-guia-bthome\/","title":{"rendered":"BTHome Guide to the CO2 Gadget: Home Assistant without Wi-Fi or MQTT"},"content":{"rendered":"<p class=\"wp-block-paragraph\">BTHome v2 es un protocolo abierto de beacon BLE que Home Assistant descubre autom\u00e1ticamente: con tu medidor CO2 Gadget transmitiendo por Bluetooth, Home Assistant crea las entidades sin WiFi, sin MQTT ni configuraci\u00f3n manual. CO2 Gadget soporta 10 medidas (CO\u2082, temperatura, humedad, bater\u00eda, PM2.5, presi\u00f3n, PM10, voltaje, PM1.0 y PM4.0), encriptaci\u00f3n AES-CCM y coexistencia con MyAmbiance.<\/p>\n<div style=\"background:#fff8dc;border:1px solid #e6c300;border-radius:8px;padding:12px 16px;margin:12px 0;font-size:14px;line-height:1.5;color:#333\">\n<strong>Documentacion en actualizacion.<\/strong> Estamos revisando y mejorando todas las paginas. Es posible que encuentres algun enlace roto o contenido pendiente. Si ves algo que falla, ayudanos a arreglarlo en <a href=\"https:\/\/github.com\/melkati\/CO2-Gadget\/issues\" style=\"color:#0066cc\">GitHub<\/a>.\n<\/div>\n<p class=\"wp-block-paragraph\">\u00bfCansado de depender de MQTT o WiFi para que tu medidor de CO\u2082 aparezca en Home Assistant? Con la versi\u00f3n <strong>v0.16.015-beta<\/strong> de CO\u2082 Gadget, tu medidor habla directamente con Home Assistant por <strong>Bluetooth Low Energy<\/strong>, sin necesidad de red WiFi, sin broker MQTT, sin configuraci\u00f3n.<\/p>\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 necesitas?<\/h2>\n<ul class=\"wp-block-list\">\n<li>Un ESP32 con CO\u2082 Gadget v0.16.015-beta<\/li>\n<li>Home Assistant con integrador BTHome (incluido por defecto<\/li>\n<li>Unos segundos para activar BTHome en la Web UI<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">Nada m\u00e1s. No necesitas configurar MQTT, ni tener tu medidor en la misma red WiFi, ni abrir puertos. El medidor anuncia sus mediciones por BLE y Home Assistant las recoge.<\/p>\n<hr class=\"wp-block-separator\"\/>\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es BTHome?<\/h2>\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bthome.io\/\">BTHome<\/a> es un est\u00e1ndar abierto de beacon BLE para dispositivos dom\u00f3ticos. CO\u2082 Gadget anuncia sus mediciones como servicio-data BTHome bajo el UUID <strong>0xFCD2<\/strong>. Home Assistant, con el integrador BTHome integrado, descubre el dispositivo autom\u00e1ticamente y crea las entidades correspondientes.<\/p>\n<p class=\"wp-block-paragraph\"><strong>Ventajas frente a MQTT:<\/strong><\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Zero-config<\/strong> \u2014 no necesitas broker MQTT ni configuraci\u00f3n en Home Assistant<\/li>\n<li><strong>Sin WiFi<\/strong> \u2014 funciona aunque el medidor est\u00e9 en modo avi\u00f3n o sin red<\/li>\n<li><strong>Bajo consumo<\/strong> \u2014 compatible con deep sleep (anuncios en cada wake)<\/li>\n<li><strong>Independiente<\/strong> \u2014 funciona junto con MyAmbiance o por separado<\/li>\n<\/ul>\n<hr class=\"wp-block-separator\"\/>\n<h2 class=\"wp-block-heading\">C\u00f3mo activar BTHome<\/h2>\n<h3 class=\"wp-block-heading\">Desde la Web UI (recomendado)<\/h3>\n<ol class=\"wp-block-list\">\n<li>Abre `http:\/\/ip_del_medidor\/preferences.html`<\/li>\n<li>Ve a <strong>Connectivity<\/strong><\/li>\n<li>Activa <strong>BLE<\/strong> (si no lo est\u00e1)<\/li>\n<li>Activa <strong>BTHome<\/strong><\/li>\n<li>Se desplegar\u00e1 la configuraci\u00f3n BTHome con las opciones de sensores<\/li>\n<li>Pulsa <strong>Save<\/strong><\/li>\n<\/ol>\n<h3 class=\"wp-block-heading\">Desde el men\u00fa serie<\/h3>\n<pre class=\"wp-block-code\"><code>BLE Config\n\u2514\u2500\u2500 BTHome\n    \u251c\u2500\u2500 BTHome output [ON]\n    \u251c\u2500\u2500 Encryption [OFF] (opcional)\n    \u251c\u2500\u2500 BTHome key (32 hex)\n    \u2514\u2500\u2500 Publish Sensors\n        \u251c\u2500\u2500 Core: CO\u2082, Temperature, Humidity, Battery\n        \u251c\u2500\u2500 Optional: PM2.5, Pressure, PM10, Battery Voltage\n        \u2514\u2500\u2500 No BTHome object: PM1.0, PM4.0<\/code><\/pre>\n<hr class=\"wp-block-separator\"\/>\n<h2 class=\"wp-block-heading\">Sensores disponibles<\/h2>\n<p class=\"wp-block-paragraph\">CO\u2082 Gadget puede anunciar hasta <strong>10 tipos de medida<\/strong>. Est\u00e1n agrupados en tres categor\u00edas:<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>Grupo<\/th>\n<th>Sensores<\/th>\n<th>IDs BTHome<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Core<\/strong> (por defecto)<\/td>\n<td>CO\u2082, Temperatura, Humedad, Bater\u00eda (%)<\/td>\n<td>0x12, 0x02, 0x03, 0x01<\/td>\n<\/tr>\n<tr>\n<td><strong>Optional<\/strong><\/td>\n<td>PM2.5, Presi\u00f3n, PM10, Voltaje bater\u00eda<\/td>\n<td>0x0D, 0x04, 0x0E, 0x0C<\/td>\n<\/tr>\n<tr>\n<td><strong>No BTHome object<\/strong><\/td>\n<td>PM1.0, PM4.0<\/td>\n<td>0xEE, 0xEF (privados)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p class=\"wp-block-paragraph\"><strong>Selecci\u00f3n por defecto:<\/strong> solo los sensores Core. Los dem\u00e1s son opt-in desde la Web UI o el men\u00fa.<\/p>\n<p class=\"wp-block-paragraph\"><strong>L\u00edmite de payload:<\/strong> los anuncios BLE tienen un l\u00edmite de ~24 bytes. Si seleccionas demasiados sensores, los de menor prioridad se omiten autom\u00e1ticamente. La Web UI muestra el presupuesto en vivo.<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Nota sobre PM1.0 y PM4.0:<\/strong> usan IDs privados (no est\u00e1ndar BTHome). Home Assistant no los reconoce, pero no interfieren con el resto de sensores. Est\u00e1n pensados para sistemas que puedan parsear IDs personalizados.<\/p>\n<\/blockquote>\n<hr class=\"wp-block-separator\"\/>\n<h2 class=\"wp-block-heading\">Encriptaci\u00f3n AES-CCM<\/h2>\n<p class=\"wp-block-paragraph\">BTHome soporta encriptaci\u00f3n opcional con AES-CCM de 128 bits.<\/p>\n<ol class=\"wp-block-list\">\n<li>Activa <strong>Encryption<\/strong> en la Web UI o el men\u00fa<\/li>\n<li>Se genera autom\u00e1ticamente una <strong>bind key<\/strong> de 32 caracteres hexadecimales<\/li>\n<li>Para verla: en la Web UI pulsa <strong>Reveal<\/strong> (te pedir\u00e1 confirmaci\u00f3n)<\/li>\n<li>Copia la bind key e introd\u00facela en Home Assistant al emparejar<\/li>\n<\/ol>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u26a0\ufe0f <strong>Importante:<\/strong> La bind key <strong>no se incluye<\/strong> en las copias de seguridad (`preferences_backup.json`). Si restauras una copia, tendr\u00e1s que revelar la clave de nuevo o regenerarla y re-emparejar Home Assistant.<\/p>\n<\/blockquote>\n<hr class=\"wp-block-separator\"\/>\n<h2 class=\"wp-block-heading\">Integraci\u00f3n con Home Assistant<\/h2>\n<ol class=\"wp-block-list\">\n<li>Activa BTHome en el medidor (y opcionalmente la encriptaci\u00f3n)<\/li>\n<li>Si usas encriptaci\u00f3n, revela la bind key desde la Web UI<\/li>\n<li>En Home Assistant: <strong>Configuraci\u00f3n \u2192 Dispositivos y servicios<\/strong><\/li>\n<li>El medidor aparecer\u00e1 autom\u00e1ticamente como dispositivo BTHome<\/li>\n<li>Si est\u00e1 encriptado, pega la bind key cuando Home Assistant lo pida<\/li>\n<li>Las entidades de los sensores seleccionados se crear\u00e1n autom\u00e1ticamente<\/li>\n<\/ol>\n<p class=\"wp-block-paragraph\">Las mediciones est\u00e1ndar (CO\u2082, temperatura, humedad, bater\u00eda, presi\u00f3n, PM2.5, PM10) aparecen como entidades nativas. PM1.0 y PM4.0 no aparecen (IDs no est\u00e1ndar).<\/p>\n<hr class=\"wp-block-separator\"\/>\n<h2 class=\"wp-block-heading\">Comportamiento en modo low-power<\/h2>\n<p class=\"wp-block-paragraph\">En modo LOW_POWER (deep sleep), el comportamiento cambia ligeramente:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Part\u00edculas (PM)<\/strong> \u2014 No se anuncian en deep sleep. Los sensores de part\u00edculas necesitan varios segundos para el ventilador, incompatibles con el wake de ~0.3 s. La selecci\u00f3n se retiene y se reanuda autom\u00e1ticamente al volver a HIGH_PERFORMANCE.<\/li>\n<li><strong>Presi\u00f3n<\/strong> \u2014 Solo se lee en wake si compilas con `SUPPORT_LOW_POWER_PRESSURE` (opt-in). Actualmente solo compatible con BME280.<\/li>\n<li><strong>CO\u2082, temperatura, humedad<\/strong> \u2014 Se anuncian normalmente en cada wake.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">El medidor publica un anuncio BTHome inmediatamente al despertar, antes de volver a dormir.<\/p>\n<hr class=\"wp-block-separator\"\/>\n<h2 class=\"wp-block-heading\">C\u00f3mo actualizar<\/h2>\n<p class=\"wp-block-paragraph\">Si ya tienes CO\u2082 Gadget instalado, actualiza desde la Web UI:<\/p>\n<ol class=\"wp-block-list\">\n<li>Abre <code>http:\/\/ip_del_medidor\/update<\/code><\/li>\n<li>Sube el binario de la nueva versi\u00f3n<\/li>\n<li>El medidor se reinicia autom\u00e1ticamente<\/li>\n<\/ol>\n<p class=\"wp-block-paragraph\">Si es la primera vez, visita la <a href=\"https:\/\/emariete.com\/co2-gadget-instalacion\/\">Gu\u00eda de Instalaci\u00f3n<\/a>.<\/p>\n<h2 class=\"wp-block-heading\">Preguntas frecuentes<\/h2>\n<p class=\"wp-block-paragraph\"><strong>\u00bfPuedo tener BTHome y MyAmbiance a la vez?<\/strong> S\u00ed. Ambos pueden estar activos simult\u00e1neamente. Si ambos lo est\u00e1n, BTHome viaja en el scan response para no interferir con MyAmbiance.<\/p>\n<p class=\"wp-block-paragraph\"><strong>\u00bfBTHome funciona sin WiFi?<\/strong> S\u00ed. BTHome es puramente BLE. No necesita WiFi para nada.<\/p>\n<p class=\"wp-block-paragraph\"><strong>\u00bfCu\u00e1nto consume BTHome en bater\u00eda?<\/strong> Muy poco. Los anuncios son cortos y se env\u00edan con umbrales configurables. En modo low-power, solo se anuncia en cada wake.<\/p>\n<p class=\"wp-block-paragraph\"><strong>\u00bfPor qu\u00e9 no veo PM1.0\/PM4.0 en Home Assistant?<\/strong> Porque usan IDs privados que Home Assistant no reconoce. Si los necesitas, tendr\u00e1s que usar un receptor personalizado (ESPHome, Theengs, etc.).<\/p>\n<p class=\"wp-block-paragraph\"><strong>He restaurado una copia de seguridad y HA no encuentra el medidor.<\/strong> La bind key no se guarda en el backup. Revela la clave de nuevo desde la Web UI o regenera una nueva y re-empareja.<\/p>\n<hr class=\"wp-block-separator\"\/>\n<h2 class=\"wp-block-heading\">Limitaciones conocidas<\/h2>\n<ul class=\"wp-block-list\">\n<li>PM1.0 y PM4.0 no aparecen en Home Assistant (IDs privados)<\/li>\n<li>En low-power, PM no se anuncia (se retiene la selecci\u00f3n)<\/li>\n<li>Presi\u00f3n en wake solo con `SUPPORT_LOW_POWER_PRESSURE` y BME280<\/li>\n<li>La temperatura siempre se codifica en \u00b0C<\/li>\n<li>El presupuesto de bytes se calcula de forma conservadora (24 B), incluso en modo scan response<\/li>\n<\/ul>\n<hr class=\"wp-block-separator\"\/>\n<hr class=\"wp-block-separator\"\/>\n<p class=\"wp-block-paragraph\"><em>\u00bfTe ha sido \u00fatil? Comparte este art\u00edculo. Si tienes ideas, sugerencias o encuentras alg\u00fan problema, <a href=\"https:\/\/github.com\/melkati\/CO2-Gadget\/issues\">abre un issue en GitHub<\/a> o p\u00e1sate por el <a href=\"https:\/\/t.me\/emariete_chat\">grupo de Telegram<\/a>. Tambi\u00e9n consulta la <a href=\"https:\/\/emariete.com\/co2-gadget-guia-menu\/\">Gu\u00eda del Men\u00fa<\/a>.<\/em><\/p>\n<p>\u00ab><\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>BTHome v2 is an open BLE beacon protocol that Home Assistant detects automatically: with your Gadget CO\u2082 sensor transmitting via Bluetooth, Home Assistant creates the entities without the need for Wi-Fi, MQTT or manual configuration. The CO2 Gadget supports 10 measurements (CO\u2082, temperature, humidity, battery, PM2.5, pressure, PM10, voltage, PM1.0 and PM4.0), AES-CCM encryption and coexistence with \u2026 <a title=\"BTHome Guide to the CO2 Gadget: Home Assistant without Wi-Fi or MQTT\" class=\"read-more\" href=\"https:\/\/emariete.com\/en\/co2-gadget-guia-bthome\/\" aria-label=\"Read more about the BTHome CO2 Gadget Guide: Home Assistant without Wi-Fi or MQTT\">Read more<\/a><\/p>","protected":false},"author":1,"featured_media":243262,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[13],"tags":[71],"class_list":["post-243087","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-co2-gadget","tag-co2-gadget-guias"],"modified_by":null,"uagb_featured_image_src":{"full":["https:\/\/emariete.com\/wp-content\/uploads\/2026\/07\/Blue_banner_with_white_text_202607050739_2-2.jpeg",1376,768,false],"thumbnail":["https:\/\/emariete.com\/wp-content\/uploads\/2026\/07\/Blue_banner_with_white_text_202607050739_2-2-150x150.jpeg",150,150,true],"medium":["https:\/\/emariete.com\/wp-content\/uploads\/2026\/07\/Blue_banner_with_white_text_202607050739_2-2-300x167.jpeg",300,167,true],"medium_large":["https:\/\/emariete.com\/wp-content\/uploads\/2026\/07\/Blue_banner_with_white_text_202607050739_2-2-768x429.jpeg",768,429,true],"large":["https:\/\/emariete.com\/wp-content\/uploads\/2026\/07\/Blue_banner_with_white_text_202607050739_2-2-1024x572.jpeg",1024,572,true],"1536x1536":["https:\/\/emariete.com\/wp-content\/uploads\/2026\/07\/Blue_banner_with_white_text_202607050739_2-2.jpeg",1376,768,false],"2048x2048":["https:\/\/emariete.com\/wp-content\/uploads\/2026\/07\/Blue_banner_with_white_text_202607050739_2-2.jpeg",1376,768,false],"trp-custom-language-flag":["https:\/\/emariete.com\/wp-content\/uploads\/2026\/07\/Blue_banner_with_white_text_202607050739_2-2-18x10.jpeg",18,10,true]},"uagb_author_info":{"display_name":"Mariete","author_link":"https:\/\/emariete.com\/en\/author\/admin_xlyz052h\/"},"uagb_comment_info":0,"uagb_excerpt":"BTHome v2 es un protocolo abierto de beacon BLE que Home Assistant descubre autom\u00e1ticamente: con tu medidor CO2 Gadget transmitiendo por Bluetooth, Home Assistant crea las entidades sin WiFi, sin MQTT ni configuraci\u00f3n manual. CO2 Gadget soporta 10 medidas (CO\u2082, temperatura, humedad, bater\u00eda, PM2.5, presi\u00f3n, PM10, voltaje, PM1.0 y PM4.0), encriptaci\u00f3n AES-CCM y coexistencia con&hellip;","_links":{"self":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts\/243087","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/comments?post=243087"}],"version-history":[{"count":7,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts\/243087\/revisions"}],"predecessor-version":[{"id":243253,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/posts\/243087\/revisions\/243253"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/media\/243262"}],"wp:attachment":[{"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/media?parent=243087"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/categories?post=243087"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/emariete.com\/en\/wp-json\/wp\/v2\/tags?post=243087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}