{"id":22451428,"url":"https://github.com/rperezll/maidesite2homeassistant","last_synced_at":"2026-05-03T23:32:00.698Z","repository":{"id":266717551,"uuid":"897799695","full_name":"rperezll/Maidesite2HomeAssistant","owner":"rperezll","description":"Guía fácil para conectar y controlar tu mesa Maidesite desde Home Assistant con ayuda de ESPHome.","archived":false,"fork":false,"pushed_at":"2024-12-05T17:49:47.000Z","size":564,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-02T07:02:40.103Z","etag":null,"topics":["esp32","esphome","homeassistant","maidesite"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rperezll.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-03T09:05:55.000Z","updated_at":"2025-05-08T19:45:04.000Z","dependencies_parsed_at":"2024-12-05T18:35:07.352Z","dependency_job_id":"960b4909-9828-4d80-a740-fdf05f36b5b7","html_url":"https://github.com/rperezll/Maidesite2HomeAssistant","commit_stats":null,"previous_names":["rperezll/maidesite2homeassistant"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rperezll/Maidesite2HomeAssistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rperezll%2FMaidesite2HomeAssistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rperezll%2FMaidesite2HomeAssistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rperezll%2FMaidesite2HomeAssistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rperezll%2FMaidesite2HomeAssistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rperezll","download_url":"https://codeload.github.com/rperezll/Maidesite2HomeAssistant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rperezll%2FMaidesite2HomeAssistant/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263091028,"owners_count":23412343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp32","esphome","homeassistant","maidesite"],"created_at":"2024-12-06T06:07:53.771Z","updated_at":"2026-05-03T23:32:00.669Z","avatar_url":"https://github.com/rperezll.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!NOTE]  \n\u003e Fuentes actualizados según el nuevo [External Components](https://esphome.io/components/external_components.html#external-components) de ESPHome.\n\n# ⚡Maidesite2HomeAssistant\n\nGuía detallada para integrar tu mesa **Maidesite con Home Assistant** usando ESPHome. Aquí encontrarás todo lo necesario, desde la configuración del hardware hasta la integración final, para que puedas controlar y automatizar tu mesa de forma fácil e inteligente.\n\n\u003e Este DIY viene inspirado en las geniales aportaciones de [shades66](https://github.com/shades66/Maidesite-standing-desk). Desde aquí todos mis kudos para él!\n\n# 🤔 Prerequisitos\n\nAunque esta guía cubre todo lo necesario para completar la integración, tener los siguientes conocimientos previos facilitará la comprensión de los temas tratados:\n\n| Requisito                                                                 | Estado       |\n|---------------------------------------------------------------------------|--------------|\n| Contar con una instalación funcional de Home Assistant.                  | Obligatorio  |\n| Tener la integración de ESPHome configurada en Home Assistant y experiencia en su uso. | Obligatorio  |\n| Conocer la sintaxis básica de YAML.                                      | Deseado      |\n| Conocimientos básicos de soldadura electrónica.                          | Deseado      |\n\n## 🛠️ Materiales\n\n- Placa ESP32-WROOM-32 (o similar), con conector USB Type-C de 5V y conectividad Wi-Fi + Bluetooth.\n- Resistencias de 1.5kΩ (x1) y 3.3kΩ (x1).\n- Kit de soldadura de estaño.\n- Cable RJ12.\n- Cable USB Type-C.\n- Mesa Maidesite TH2 Pro Plus ✨.\n\n# ✨ Home Assistant\n\nLa integración de **Home Assistant con ESPHome** nos proporcionará la siguiente serie de funcionalidades:\n\n- Monitorización de la altura, desplazamiento y uso de las 4 alturas memorizadas.\n- Monitorización de si estamos sentados o de pie, con contador de tiempo.\n- Bloqueo de la mesa.\n- Uso de las memorias 1 y 2 para representar la altura de pie y sentado respectivamente.\n- Y todo lo que se nos ocurra con automatizaciones ✨.\n\n![Vista de controles disponibles desde ESPHome](resources/ha-controls.png)\n![Vista de sensores disponibles desde ESPHome](resources/ha-sensors.png)\n\n# 🤖 Circuito Madesite-ESP32\n\nEn la parte trasera de nuestro controlador Maidesite, es necesario utilizar el puerto RJ12 que no está siendo utilizado por ningún otro componente de la mesa.\n\n![Parte trasera del controlador Madesite](resources/maidesite-back-control.png)\n\nSiguiendo la misma orientación que se muestra en la imagen anterior, podemos contar los **6 pines** de nuestro conector RJ12. La numeración de los pines será del **6 al 1, de izquierda a derecha**. Tras mapear los pines de nuestro controlador, podemos proceder a esbozar el circuito.\n\n![Circuito ESP32 y RJ12](resources/rj12-esp32.png)\n\nLa alimentación del ESP32 se proporciona a través de su conector USB Type-C, el cual está conectado al puerto de carga USB del controlador de nuestra mesa.\n\n\u003e En mi caso, he conectado la entrada **TX al pin 26** y la salida **RX al pin 27** de mi ESP32.\n\n# 🕹️ ESPHome\n\nPara realizar el trabajo de firmware en nuestro ESP32, debemos añadir un nuevo dispositivo para crear un nuevo \"sketch\". En mi caso, lo he llamado `maidesite-desk.yaml` y puedes ver su implementación [aquí](/esphome/maidesite-desk.yaml).\n\nEn este archivo YAML puedes ver cómo configurar el puerto **UART**, junto con algunos ejemplos de sensores y controles que puedes adaptar a tus necesidades. Lo más importante es la sección de **external components**, que es el nuevo estándar para componentes personalizados en ESPHome. Gracias a esto, tu mesa puede detectar los cambios en los sensores y mostrarlos directamente en Home Assistant.\n\n```yaml\nexternal_components:\n  - source:\n      type: git\n      url: https://github.com/rperezll/Maidesite2HomeAssistant\n      ref: main\n    components: [ desk_control ]\n    refresh: 1d # Opcional\n\ndesk_control:\n  uart_id: maidesite_uart\n  height_slider: height_slider\n  sensor_m1: sensor_m1\n  sensor_m2: sensor_m2\n  sensor_m3: sensor_m3\n  sensor_m4: sensor_m4\n```  \n\nEste componente incluye la clase **DeskControl**, que permite al ESP32 comunicarse directamente con el controlador de la mesa Maidesite. Gracias a esta clase, el ESP32 puede acceder a las posiciones predefinidas que están almacenadas en el controlador. Los valores de altura y las posiciones guardadas se envían a Home Assistant como sensores, lo que hace que podamos monitorizar todo.\n\n```\n📂 esphome/\n├── maidesite-desk.yaml (yaml de ejemplo para nuestro sketch)\n├── 📂 components/\n    ├── 📄 __init__.py (\"Puente\" que conecta el YAML con el código C++)\n    ├── 📄 desk-control.h (Archivo con las cabeceras de nuestra lógica)\n    ├── 📄 desk-control.cpp (Archivo con la lógica de nuestro componente)\n```\n\nPuedes ver la documentación del anterior scaffolding [aquí](https://esphome.io/components/external_components.html#example-of-local-components).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frperezll%2Fmaidesite2homeassistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frperezll%2Fmaidesite2homeassistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frperezll%2Fmaidesite2homeassistant/lists"}