{"id":11323,"date":"2025-12-05T18:17:53","date_gmt":"2025-12-05T17:17:53","guid":{"rendered":"https:\/\/bitacora.eniac2000.com\/?p=11323"},"modified":"2025-12-05T18:18:00","modified_gmt":"2025-12-05T17:18:00","slug":"trazabilidad-de-activos-e-ia-generativa-mas-alla-de-lorawan-motorola-moto-tag","status":"publish","type":"post","link":"https:\/\/bitacora.eniac2000.com\/?p=11323","title":{"rendered":"Trazabilidad de activos e IA generativa. M\u00e1s all\u00e1 de LoRaWAN. Motorola Moto Tag"},"content":{"rendered":"<div class=\"seriesmeta\">Esta entrada es la parte 6 de 7 de la serie <a href=\"https:\/\/bitacora.eniac2000.com\/?series=trazabilidad-de-activos-con-lorawan-e-ia-generativa\" class=\"series-1870\" title=\"Trazabilidad de activos con LoRaWAN e IA generativa\">Trazabilidad de activos con LoRaWAN e IA generativa<\/a><\/div>\n<p>El proyecto, llegado a este punto, hab\u00eda cumplido con sus objetivos: tener una aplicaci\u00f3n web capaz de relacionar dispositivos LoRaWAN con capacidad GPS y usuarios los mismos, representar sobre un mapa sus actividades, y tener un registro hist\u00f3rico de actividades que permitiera realizar b\u00fasquedas por usuario y fecha, y exportar los registros a otras plataformas. Como tal, hab\u00edamos llegado al final del punto que nos hab\u00edamos marcado al inicio.<\/p>\n\n\n\n<p>Pero hace ya mucho tiempo le\u00ed que una buena historia nunca termina, sino que contin\u00faa por otros medios. Y, en efecto, a medida que avanzaba en el desarrollo, ve\u00eda posibilidades de ampliar funcionalidades que surg\u00edan del tronco maestro como ramas con mucha, mucha fuerza. Y la primera opci\u00f3n era obvia: dado que ten\u00eda ya implementado un sistema con mensajer\u00eda interna que abstra\u00eda completamente de la infraestructura t\u00e9cnica subyacente, \u00bfpor qu\u00e9 no buscar otros mecanismos para ubicar personas que no estuvieran limitados por la tecnolog\u00eda LoRaWAN? Y fue aqu\u00ed donde entraron en danza los Motorola Moto Tag.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"958\" src=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/motorola-moto-tag-01.jpg\" alt=\"\" class=\"wp-image-11324\" style=\"aspect-ratio:1.0438413741193089;width:203px;height:auto\" srcset=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/motorola-moto-tag-01.jpg 1000w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/motorola-moto-tag-01-300x287.jpg 300w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/motorola-moto-tag-01-768x736.jpg 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">Motorola Moto Tag<\/figcaption><\/figure>\n\n\n\n<p>El Moto Tag es un disposito de posicionamiento de Motorola, que utiliza la red <strong>\u00abFind Hub\u00bb de Google<\/strong> para permitir localizar objetos como llaves, carteras o maletas. Sus caracter\u00edsticas son las siguientes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tecnolog\u00eda de Localizaci\u00f3n<\/strong>: Utiliza tecnolog\u00eda <strong>Bluetooth Low Energy (BLE)<\/strong> para conectarse con dispositivos Android cercanos, enviando su ubicaci\u00f3n a tu cuenta de Google para que solo el due\u00f1o del dispositivo pueda verlo en un mapa. Tambi\u00e9n dispone de <strong>caracter\u00edsticas de banda ultraancha (UWB<\/strong>), lo que permite el guiado direccional hacia la ubicaci\u00f3n exacta del tag con gran precisi\u00f3n. Usa la red Google Find Hub para utilizar dispositivos Android cercanos para obtener localizaciones aproximadas, de manera completamente an\u00f3nima.<\/li>\n\n\n\n<li><strong>Alcance<\/strong>: Tiene un alcance de <strong>hasta 100 metros<\/strong> a trav\u00e9s de Bluetooth.<\/li>\n\n\n\n<li><strong>Compatibilidad<\/strong>: Funciona con dispositivos que tengan <strong>Android 9.0 o posterior<\/strong>.<\/li>\n\n\n\n<li><strong>Resistencia<\/strong>: Cuenta con clasificaci\u00f3n <strong>IP67<\/strong> para resistencia al agua y al polvo, lo que lo hace apto para diversas condiciones de uso.<\/li>\n\n\n\n<li><strong>Bater\u00eda<\/strong>: Utiliza una <strong>pila CR2032<\/strong> est\u00e1ndar y reemplazable, con una duraci\u00f3n estimada de <strong>hasta un a\u00f1o<\/strong> (aunque esto \u00faltimo, como he podido comprobar, es bastante discutible).<\/li>\n\n\n\n<li><strong>Sonido<\/strong>: Emite un <strong>timbre<\/strong> con un nivel de ruido de <strong>hasta 75 dB<\/strong> para ayudarte a localizar objetos cercanos.<\/li>\n\n\n\n<li><strong>Funcionalidad Adicional<\/strong>: Tambi\u00e9n puede usarse como un <strong>control remoto para la c\u00e1mara<\/strong> del tel\u00e9fono vinculado.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Todo esto est\u00e1 muy bien, pero tiene una debilidad importante para mi proyecto: y es que depende completamente de la red \u00abFind Hub\u00bb de Google, por lo que en principio s\u00f3lo se puede acceder a la localizaci\u00f3n del dispositivo en dispositivos Android. Este podr\u00eda haber sido el punto final de esta historia, un dispositivo interesante, pero sin utilidad para el proyecto de localizaci\u00f3n de activos, pero fue entonces cuando di con algunos proyectos de GitHub extremadamente interesantes:<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/github.com\/leonboe1\/GoogleFindMyTools\">GoogleFindMyTools<\/a><\/strong>: Un proyecto que permite conectar a la red Find Hub mediante comandos e interactuar con ella como si se tratara de un dispositivo Android. La base para empezar a considerar los dispositivos Moto Tag como fuente de localizaci\u00f3n. Eso, y cualquier otro dispositivo (incluidos tel\u00e9fonos) dado de alta en tu Hub.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/github.com\/endeavour\/GoogleFindMyTools-homeassistant\">GoogleFindMyTools-homeassistant<\/a><\/strong>: Un derivado del anterior, que permite interactuar con Home Assistant para volcar la informaci\u00f3n extra\u00edda de Find Hub mediante un topic MQTT. La clave que and\u00e1bamos buscando, y que permit\u00eda volcar la informaci\u00f3n a nuestra plataforma.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/www.traccar.org\/forums\/topic\/google-find-hub-devices-in-traccar\">Google Find Hub devices in Traccar<\/a>:<\/strong> Este proyecto, vinculado con los anteriores, proporciona unas instrucciones claras para poder extraer la informaci\u00f3n necesaria de la plataforma de Google, y poder proceder a realizar las integraciones. <\/p>\n\n\n\n<p>Con todo esto, ten\u00edamos m\u00e1s que de sobra para poder realizar una integraci\u00f3n de los Moto Tag en el proyecto de trazabilidad de activos. Los pasos pasaban a ser los siguientes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Desplegar una m\u00e1quina virtual Linux con entorno gr\u00e1fico y un navegador Chrome. Este ser\u00eda el punto donde se descargar\u00eda el aplicativo de GoogleFindMyTools para extrar la clave API vinculada a la cuenta de Google donde has registrado los dispositivos, y posteriormente poder automatizar el proceso. Opt\u00e9 por desplegar una Ubuntu con entorno gr\u00e1fico.<\/li>\n\n\n\n<li>En mi caso, desplegar una segunda m\u00e1quina, en este caso mi servidor de <em>backend, <\/em>ya sin entorno gr\u00e1fico, donde instalar el aplicativo que iba a actuar de cliente para la red de Google.<\/li>\n\n\n\n<li>Desarrollar una aplicaci\u00f3n que se conectara a la red, extrajera la informaci\u00f3n del Moto Tag, y la volcara en el <em>topic<\/em> MQTT del proyecto de trazabilidad, correctamente formateada en JSON.<\/li>\n\n\n\n<li>Automatizar el proceso de inicio de la aplicaci\u00f3n mediante un servicio en <em>systemd<\/em>. El proceso se ejecuta cada 5 minutos, a fin de no sobrecargar de peticiones el servicio de Google Find Hub.<\/li>\n<\/ul>\n\n\n\n<p>Con ello tenemos ya en nuestro <em>topic<\/em> MQTT la informaci\u00f3n de posicionamiento del Moto Tag. Sin embargo, queda un peque\u00f1o detalle para que la informaci\u00f3n aparezca en la aplicaci\u00f3n, que es relativa al formateado. No estoy haciendo uso del mismo <em>topic<\/em> MQTT para la informaci\u00f3n en bruto del Moto Tag que para el proyecto de trazabilidad, debido a que he preferido mantener esta informaci\u00f3n separada, por si en el futuro la utilizo para otra cosa. He optado por desarrollar un peque\u00f1o flujo en Node-RED para hacer las adaptaciones oportunas, e inyectar la informaci\u00f3n ya formateada en el flujo habitual:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"823\" height=\"109\" src=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/adaptador-mototag.png\" alt=\"\" class=\"wp-image-11329\" srcset=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/adaptador-mototag.png 823w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/adaptador-mototag-300x40.png 300w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/adaptador-mototag-768x102.png 768w\" sizes=\"auto, (max-width: 823px) 100vw, 823px\" \/><figcaption class=\"wp-element-caption\">Flujo de adaptaci\u00f3n del Moto Tag<\/figcaption><\/figure>\n\n\n\n<p>La adaptaci\u00f3n m\u00e1s importante es que el Moto Tag no hace env\u00edo alguno relativo al <em>gateway<\/em>, por la sencilla raz\u00f3n de que no existe. Sin embargo, la aplicaci\u00f3n lo espera. Para solventar este problema he optado por definir un <em>gateway virtual<\/em> para Google, asign\u00e1ndole unas coordenadas escogidas bajo mi personal criterio. Con esto, queda completamente solventado el problema, y la informaci\u00f3n se procesa sin mayor inconveniente.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/actividad-mototag-1024x535.png\" alt=\"\" class=\"wp-image-11330\" srcset=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/actividad-mototag-1024x535.png 1024w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/actividad-mototag-300x157.png 300w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/actividad-mototag-768x401.png 768w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/actividad-mototag.png 1362w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Ejemplo de actividad del Moto Tag<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"272\" src=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/lorawantracker-05-1024x272.png\" alt=\"\" class=\"wp-image-11315\" srcset=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/lorawantracker-05-1024x272.png 1024w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/lorawantracker-05-300x80.png 300w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/lorawantracker-05-768x204.png 768w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/lorawantracker-05.png 1406w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Detalle de los <em>gateways<\/em>. Se puede apreciar el <em>gateway virtual<\/em> definido<\/figcaption><\/figure>\n\n\n\n<p>Con esto, queda la aplicaci\u00f3n de trazabilidad de activos pasa a ser capaz de trazar no s\u00f3lo usuarios que hagan uso de un dispositivo de tipo LoRaWAN en las cercan\u00edas de un <em>gateway<\/em> de la plataforma, sino que tambi\u00e9n permite integrar de una manera potent\u00edsima usuarios o activos en movilidad, y conocer su ubicaci\u00f3n all\u00ed donde haya tel\u00e9fonos Android en las cercan\u00edas. Es un salto brutal en las capacidades del sistema.<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"seriesmeta\">Esta entrada es la parte 6 de 7 de la serie <a href=\"https:\/\/bitacora.eniac2000.com\/?series=trazabilidad-de-activos-con-lorawan-e-ia-generativa\" class=\"series-1870\" title=\"Trazabilidad de activos con LoRaWAN e IA generativa\">Trazabilidad de activos con LoRaWAN e IA generativa<\/a><\/div><p>El proyecto, llegado a este punto, hab\u00eda cumplido con sus<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13],"tags":[106,1875,735,1874,1850,1134,1177],"series":[1870],"class_list":["post-11323","post","type-post","status-publish","format-standard","hentry","category-informatica","tag-android","tag-github","tag-google","tag-moto-tag","tag-motorola","tag-mqtt","tag-node-red","series-trazabilidad-de-activos-con-lorawan-e-ia-generativa"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/11323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11323"}],"version-history":[{"count":4,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/11323\/revisions"}],"predecessor-version":[{"id":11331,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/11323\/revisions\/11331"}],"wp:attachment":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11323"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=11323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}