🚚 Envío GRATIS en compras sobre $30.000 | Retiro en Curauma, Valparaíso | 📞 +56 9 65214463
IoT y Domótica 01 de August de 2026 · 2 min de lectura

ESP32 con MQTT y Home Assistant: Domótica Local sin Internet

Conecta tu ESP32 a Home Assistant vía MQTT para crear automatizaciones de domótica locales. Sin nube, sin suscripción. Temperatura, relays, sensores y dashboards en tiempo real.

Home Assistant + MQTT + ESP32 es la combinación definitiva para domótica local: tus datos no salen de tu red, no dependes de ningún servidor externo y las automatizaciones funcionan aunque no tengas internet.

Arquitectura del Sistema

  • ESP32: sensor o actuador → publica/suscribe a topics MQTT
  • Broker MQTT (Mosquitto): corre en Raspberry Pi o en el mismo Home Assistant
  • Home Assistant: recibe los datos y crea dashboards + automatizaciones

Instalar Broker Mosquitto en Home Assistant

En Home Assistant: Ajustes → Complementos → Tienda de complementos → Mosquitto Broker → Instalar → Iniciar. Luego en Ajustes → Dispositivos e integraciones → MQTT para configurar la integración. Usuario y contraseña se crean en el complemento Mosquitto.

Código ESP32 con PubSubClient

#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>

const char* SSID     = "TuWiFi";
const char* PASS     = "TuContraseña";
const char* MQTT_IP  = "192.168.1.100"; // IP de Home Assistant
const char* MQTT_USER = "mqtt_user";
const char* MQTT_PASS = "mqtt_pass";

DHT dht(4, DHT11);
WiFiClient espClient;
PubSubClient mqtt(espClient);

void setup() {
  Serial.begin(115200);
  dht.begin();
  WiFi.begin(SSID, PASS);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  mqtt.setServer(MQTT_IP, 1883);
  mqtt.connect("esp32-salon", MQTT_USER, MQTT_PASS);
}

void loop() {
  if (!mqtt.connected()) mqtt.connect("esp32-salon", MQTT_USER, MQTT_PASS);
  mqtt.loop();

  float t = dht.readTemperature();
  float h = dht.readHumidity();

  if (!isnan(t)) {
    mqtt.publish("salon/temperatura", String(t).c_str());
    mqtt.publish("salon/humedad",     String(h).c_str());
  }
  delay(30000);
}

Configuración en Home Assistant (configuration.yaml)

mqtt:
  sensor:
    - name: "Temperatura Salón"
      state_topic: "salon/temperatura"
      unit_of_measurement: "°C"
      device_class: temperature
    - name: "Humedad Salón"
      state_topic: "salon/humedad"
      unit_of_measurement: "%"
      device_class: humidity

Automatización de Ejemplo

En Home Assistant puedes crear una automatización que encienda un ventilador (via relay ESP32) cuando la temperatura supera 28°C: cuando sensor temperatura salón > 28 → activar switch ventilador. Todo corre localmente, en milisegundos, sin latencia de internet.

Compartir: WhatsApp
Escríbenos por WhatsApp