Diseño de un termostato inteligente integrable en HomeAssistant para sistemas calefactores resistivos a dos hilos, sin necesidad de alimentación independiente.
Introducción
El «termostato bimetálico» es un sistema de control por temperatura muy extendido en equipos domésticos e industriales. Es simple y eficiente, la energía para su funcionamiento se obtiene del mismo medio que supervisa, conectando o desconectando circuitos eléctricos como un simple interruptor de la luz.
Integrar medida y actuación en un mismo dispositivo simplifica la instalación: no es necesario cablear sistemas auxiliares como fuentes de alimentación, control de interruptores o comunicaciones.

Aunque cumplen perfectamente su función, su simpleza limita las actuaciones a traspasar un determinado umbral de temperatura. El reemplazo por componentes más complejos es difícil al no necesitar una fuente de alimentación, ya que suelen instalarse sin prever un suministro energético independiente. Las soluciones más habituales en estos casos son termostatos inteligentes alimentados con pilas .
Home-Ambient da solución a estas situaciones, ofreciendo una plataforma hardware que permite implementar un termostato inteligente alimentado desde el mismo sistema sobre el que actúa, imitando al termostato que se sustituye.

Requisitos del proyecto
El hardware propuesto debe cumplir con:
| Requerimiento | Descripción | Definición |
|---|---|---|
| Alimentación | Alimentación desde la misma fuente que el elemento calefactor | 80-275VAC 47-63Hz |
| Temperatura | Proporcionar medida de temperatura local | Rango mínimo: 0-50º Precisión: ±2ºC |
| Humedad | Proporcionar medida de humedad local | Rango mínimo: 10-90% Precisión: ±5% |
| Interruptor | Conectar y desconectar el circuito calefactor | >16A >250VAC |
| Feedback de interruptor | Confirmación de que el interruptor se encuentra abierto o cerrado | Medida directa, indirecta o deducida. |
| Home Assistant | Integración con Home Assistant | ESPHome, MQTT, etc. |
| Display (opcional) | Mostrar información a elegir por el usuario | e-ink para consumo mínimo |
| Calidad de aire (opcional) | Medida de parámetros que den una aproximación de la calidad del aire | Dependiente del hardware elegido, no se prevé sensor exclusivo |
| Autonomía | Mantener el termostato operativo sin alimentación mientras se caldea | Máxima posible |
Principio fundamental de Home-Ambient
Aprovechando la baja impedancia de los calentadores resistivos es posible intercalar un convertidor AC/DC en serie con ellos.
Se tienen dos modos de operación:
Calefactor apagado

Mientras el elemento calefactor está desconectado de la red, la alimentación se realiza a la tensión de la misma. La impedancia del convertidor AC/DC será tan grande comparada con la resistencia que toda la tensión recae en él, sin que la corriente a través de la resistencia suponga un gasto energético apreciable.
Calefactor encendido

El problema que enfrenta esta configuración es la alimentación mientras la tensión debe aplicarse a la resistencia calefactora. En este estado es necesario proveer energía al termostato, siendo una pequeña batería una de las opciones más obvias.
Diagrama de bloques de Home-Ambient
Para plantear el prototipo se utiliza el siguiente diagrama de bloques, que será la guía para el diseño de la electrónica. Las decisiones de la elección de los componentes y las partes se explicará a lo largo de esta y otras entradas que componen este proyecto.

Unidad de control
Para simplificar un desarrollo no hay nada como utilizar plataformas ampliamente conocidas y distribuidas. Cuando se habla de domotización en el mundo «maker» Home Assistant es el rey. Una vez se ha desplegado Home Assistant, pocas cosas serán tan flexibles y eficaces para integrar electrónica personalizada como ESPHome.
ESPHome ofrece, sin el más mínimo esfuerzo, actualizaciones Over The Air (OTA), integración automática de la inmensa mayoría de sensores, actuadores y displays. Y mantenimiento desde una comunidad gigante Open Source, sinónimo de constantes auditorías de seguridad y mejoras.
Unas de las mejores opciones por memoria, capacidad de procesamiento y conectividad inalámbrica, son los chips del fabricante Espressif: ESP32.

Planificación del proyecto Home-Ambient
La planificación del proyecto se divide en varios bloques.
- Prototipo: Se trata de montar con los menores recursos posibles una prueba de concepto. Como la ejecución la realiza un persona primará el coste temporal sobre el material: comprar todo lo posible aunque sea más barato construirlo. Tras una fase de validación básica, incluye una validación extendida que alimentará al desarrollo principal.
- Firmware: Por la particularidad del proyecto se divide en dos bloques:
- Test: Este firmware servirá principalmente para validar el hardware, no necesita ser complejo, por lo que usar Arduino será más que suficiente. Podría servir como base para realizar una implementación del proyecto sin integración con Home-Assistant.
- HomeAssistant: La integración del termostato con Home-Assistant se desarrolla aquí. Decidida la unidad de control consiste en el desarrollo de los «.yaml» con la herramienta ESPHome Builder.
- Hardware: Cálculo de convertidores y actuadores, integración de unidad de control, sensores y diseño de la PCB.
- Mecánica: Se diseñará una carcasa lo más sencilla y fácil de fabricar que sea posible.
- Validación: Finalmente, una comprobación de la integración del sistema que encuentre errores y proponga mejoras.
Los recursos invertidos en la etapa de prototipo deberían evitar iteraciones en los bloques de Hardware y Mecánica. En proyectos no profesionales el desarrollo convive con la Producción, cada muestra es casi un producto y un descarte tiene un impactos significativo.
Como los imprevistos ocurren las planificaciones están vivas, y aunque siempre se esperan cambios, la siguiente servirá de guía durante todo el proceso. Las tareas tienen abstracción suficiente para no hacer correcciones constantemente, algo que en proyectos amateur no es solo necesario, también suficiente.
gantt title Home-Ambient Gantt Diagram dateFormat YYYY axisFormat %W tickInterval 1week Inicio : vert, 0, 0 section Prototipo Selección MCU :mcu_sel, 0, 2d Selección BMS :bms_sel, 0, 5d Selección sensores :sensor_sel, 0, 5d Selección Fuente Alimentación :dcdc_sel, 0, 7d Compra componentes :compra_proto, after dcdc_sel, 7d Montaje prototipo :montaje_proto, after compra_proto, 7d Validación básica :test_proto1, after montaje_proto, 2w Validación continua :test_proto2, after test_proto1, until fw_bugfix Desarrollo : vert, after test_proto1, 0 section FW Test FW base :fw_base, after sensor_sel, 3d WiFi :fw_wifi, after fw_base, 2d FOTA :fw_fota, after fw_base, 3d Sensores :fw_sense, after fw_base, 10d Actuador :fw_actuator, after fw_sense, 1d RGB(*) :fw_rgb, after fw_actuator, 1d e-Ink(*) :fw_eink, after fw_actuator, 3w Bug fix :fw_bugfix, after assembly, 4w section HomeAssist Integración base :HA_base, after compra_proto, 1d RGB(*) :fw_rgb, after HA_base, 2d Sensores :HA_sense, after HA_base, 4d Reglas BMS :BMS_rules, after HA_base, 1w Actuador :HA_actuator, after HA_sense, 1d Termostato :HA_thermostat, after HA_actuator, 3d Planificador :HA_Schedule, after HA_actuator, 10d e-Ink(*) :HA_eink, after HA_thermostat, 4w Bug fix :HA_bugfix, after assembly, 4w section Hardware Diseño Fuente Alimentación :dcdc_design, after test_proto1, 4w Diseño BMS :bms_design, after test_proto1, 2w Diseño Control :bms_design, after test_proto1, 1w Boceto PCB :pcb_concept, after bms_design, 5d Dimensiones PCB :milestone, after pcb_concept, 0 Diseño PCB :pcb_design, after mech_concept, 20d Compra PCB :pcb_buy, after pcb_design, 1w section Mecánica Concepto :mech_concept, after pcb_concept, 1w Diseño carcasa :case_design, after mech_concept, 16d Impresión 3D :case_manufacture, after case_design, 1w Montaje :assembly, after pcb_buy, 7d Validación : vert, after assembly, 0 section Validación Mecánica :mech_validation, after assembly, 2d PCB :pcb_test, after assembly, 1w Integración :HA_validation, after pcb_test, 3w Loop?: vert, after HA_validation, 0 section . Fin :milestone, after HA_validation, 0

El desarrollo de Home-Ambient
Todas las etapas de desarrollo del termostato Home-Ambient se plasman en las siguientes entradas:
- Home-Ambient: Hardware (próximamente)
- Home-Ambient: Integración con Home Assistant (próximamente)
Home-Ambient en GitHub
Como es habitual el proyecto se reposita «Open Source» en GitHub. Se hará público cuando se finalicen todas las entregas en esta página.

