{"id":4352,"date":"2020-02-02T22:17:51","date_gmt":"2020-02-02T21:17:51","guid":{"rendered":"http:\/\/bitacora.eniac2000.com\/?p=4352"},"modified":"2020-02-02T22:17:51","modified_gmt":"2020-02-02T21:17:51","slug":"integracion-de-aqara-cube-en-el-sistema-de-domotica","status":"publish","type":"post","link":"https:\/\/bitacora.eniac2000.com\/?p=4352","title":{"rendered":"Integraci\u00f3n de Aqara Cube en el sistema de dom\u00f3tica"},"content":{"rendered":"<p>Seguimos con actualizaciones sobre dom\u00f3tica. En esta ocasi\u00f3n se trata de un mando un tanto especial: un <a href=\"https:\/\/www.aqara.com\/eu\/cube.html\" target=\"_blank\">Aqara Cube<\/a> de Xiaomi. Consiste en un cubo con una serie de sensores de movimiento y aceler\u00f3metros que permiten (seg\u00fan el fabricante) definir seis gestos con el que controlar distintos elementos del sistema de domotica: agitar, golpear dos veces, girar a la izquierda, girar sobre una cara, voltear 90\u00ba y voltear 180\u00ba. Y especifico lo de \u00abque dice el fabricante\u00bb porque existe la manera de sacar mucho m\u00e1s partido de las especificaciones base: <a href=\"https:\/\/www.zigbee2mqtt.io\/devices\/MFKZQ01LM.html\" target=\"_blank\">utilizar Zigbee2MQTT<\/a>.<\/p>\n<figure id=\"attachment_4353\" aria-describedby=\"caption-attachment-4353\" style=\"width: 400px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2020\/02\/aqara-cube.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2020\/02\/aqara-cube-400x400.jpg\" alt=\"Aqara Cube\" title=\"Aqara Cube\" width=\"400\" height=\"400\" class=\"size-medium wp-image-4353\" \/><\/a><figcaption id=\"caption-attachment-4353\" class=\"wp-caption-text\">Aqara Cube<\/figcaption><\/figure>\n<p>El cubo se integra en el sistema de dom\u00f3tica (bien el del fabricante, bien de un tercero) mediante protocolo Zigbee. Y es aqu\u00ed donde viene lo interesante: si se hace uso del sistema de integraci\u00f3n de c\u00f3digo abierto Zigbee2MQTT, se descubre que el cubo env\u00eda mucha m\u00e1s informaci\u00f3n de la que el fabricante permite hacer uso en su sistema propietario. A las acciones anteriores a\u00f1ade informaci\u00f3n extra de la cara desde la que se realiza la acci\u00f3n; en el caso de las acciones de giro, si es a derecha o izquierda, y el \u00e1ngulo del giro aplicado; y en el caso de las acciones de volteo, las caras origen y destino. Todo esto permite dotar de mucha m\u00e1s potencia a la integraci\u00f3n con el sistema, definiendo una gran variedad de gestos para controlar distintos sistemas. La \u00fanica pega es que el cubo s\u00f3lo identifica visualmente una cara (con el logo del producto), pero no el resto, as\u00ed que puede resultar un tanto confuso a menos que nosotros marquemos visualmente el cubo de alguna manera.<\/p>\n<p>En cuanto a la integraci\u00f3n con el sistema, en la parte Zigbee2MQTT es pr\u00e1cticamente inmediata: el mismo sistema identifica e integra el cubo en sus elementos soportados, sin necesidad de acciones adicionales. Una vez integrado, las acciones realizadas se vuelcan a log y al servidor MQTT con un formato JSON como el siguiente:<\/p>\n<blockquote><p>info  2020-01-28 15:05:20: MQTT publish: topic &#8216;zigbee2mqtt\/0x00158d0002e94430&#8217;, payload &#8216;{\u00abbattery\u00bb:37,\u00bbvoltage\u00bb:2865,\u00bblinkquality\u00bb:157,\u00bbaction\u00bb:\u00bbshake\u00bb}&#8217;<br \/>\ninfo  2020-01-28 15:05:20: MQTT publish: topic &#8216;zigbee2mqtt\/0x00158d0002e94430&#8217;, payload &#8216;{\u00abbattery\u00bb:37,\u00bbvoltage\u00bb:2865,\u00bblinkquality\u00bb:157,\u00bbaction\u00bb:\u00bb\u00bb}&#8217;<br \/>\ninfo  2020-01-28 15:05:34: MQTT publish: topic &#8216;zigbee2mqtt\/0x00158d0002e94430&#8217;, payload &#8216;{\u00abbattery\u00bb:37,\u00bbvoltage\u00bb:2865,\u00bblinkquality\u00bb:141,\u00bbaction\u00bb:\u00bbrotate_left\u00bb,\u00bbangle\u00bb:-164.38}&#8217;<br \/>\ninfo  2020-01-28 15:05:34: MQTT publish: topic &#8216;zigbee2mqtt\/0x00158d0002e94430&#8217;, payload &#8216;{\u00abbattery\u00bb:37,\u00bbvoltage\u00bb:2865,\u00bblinkquality\u00bb:141,\u00bbangle\u00bb:-164.38,\u00bbaction\u00bb:\u00bb\u00bb}&#8217;<br \/>\ninfo  2020-01-28 15:05:35: MQTT publish: topic &#8216;zigbee2mqtt\/0x00158d0002e94430&#8217;, payload &#8216;{\u00abbattery\u00bb:37,\u00bbvoltage\u00bb:2865,\u00bblinkquality\u00bb:134,\u00bbangle\u00bb:-6.42,\u00bbaction\u00bb:\u00bbrotate_left\u00bb}&#8217;<br \/>\ninfo  2020-01-28 15:05:35: MQTT publish: topic &#8216;zigbee2mqtt\/0x00158d0002e94430&#8217;, payload &#8216;{\u00abbattery\u00bb:37,\u00bbvoltage\u00bb:2865,\u00bblinkquality\u00bb:134,\u00bbangle\u00bb:-6.42,\u00bbaction\u00bb:\u00bb\u00bb}&#8217;<br \/>\ninfo  2020-01-28 15:05:38: MQTT publish: topic &#8216;zigbee2mqtt\/0x00158d0002e94430&#8217;, payload &#8216;{\u00abbattery\u00bb:37,\u00bbvoltage\u00bb:2865,\u00bblinkquality\u00bb:144,\u00bbangle\u00bb:202.68,\u00bbaction\u00bb:\u00bbrotate_right\u00bb}&#8217;<br \/>\ninfo  2020-01-28 15:05:38: MQTT publish: topic &#8216;zigbee2mqtt\/0x00158d0002e94430&#8217;, payload &#8216;{\u00abbattery\u00bb:37,\u00bbvoltage\u00bb:2865,\u00bblinkquality\u00bb:144,\u00bbangle\u00bb:202.68,\u00bbaction\u00bb:\u00bb\u00bb}&#8217;\n<\/p><\/blockquote>\n<p>En lo referente a la integraci\u00f3n con el sistema de dom\u00f3tica Home Assistant, tampoco supone mayor problema. La idea es definir automatizaciones para los distintos elementos a controlar, con una sintaxis similar a la siguiente:<\/p>\n<blockquote><p>automation:<br \/>\n  &#8211; alias: Respond to Cube action<br \/>\n    trigger:<br \/>\n      platform: mqtt<br \/>\n      topic: &#8216;zigbee2mqtt\/<friendly_name '\n    condition:\n      condition: template\n      value_template: '{{ \"tap\" == trigger.payload_json.action }}'\n    action:\n      entity_id: light.bedroom\n      service: light.toggle<\/p><\/blockquote>\n<p>&#8230;en las que la idea es recoger el valor JSON del topic MQTT correspondiente, y disparar acciones en el sistema. Esto se puede complicar todo lo que se quiera, para identificar las caras del cubo, \u00e1ngulos de giro, etc&#8230; \u00bfY el resultado? Pues algo como lo que sigue:<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/H1Jag1ZhzfA\" frameborder=\"0\" allow=\"accelerometer; \nautoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>Control de las luces del sal\u00f3n de la casa.<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/aVPerpNsmJk\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>Control de la p\u00e9rgola del patio.<\/p>\n<p>La experiencia de uso es muy buena, ya que permite integrar el control de m\u00faltiples dispositivos en un mismo mando, y obviar el uso del control del tel\u00e9fono para acciones avanzadas, como ven\u00edamos haciendo hasta ahora. Una gran adquisici\u00f3n.<\/friendly_name><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Seguimos con actualizaciones sobre dom\u00f3tica. En esta ocasi\u00f3n se trata<\/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":[123,543,798,1817,1818],"series":[],"class_list":["post-4352","post","type-post","status-publish","format-standard","hentry","category-informatica","tag-aqara-cube","tag-domotica","tag-home-assistant","tag-zigbee","tag-zigbee2mqtt"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/4352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.eniac2000.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.eniac2000.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4352"}],"version-history":[{"count":0,"href":"https:\/\/www.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/4352\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4352"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/www.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=4352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}