Gemini Generated Image Xupmryxupmryxupm

IoT Avanzado con Tasmota y MQTT: Guía Completa

Tasmota, un firmware de código abierto, y MQTT, un protocolo de mensajería ligero, son una combinación ideal para la domótica. Aquí te mostraremos cómo configurarlos y usarlos eficazmente.

¿Qué es MQTT?

MQTT usa un modelo de publicación/suscripción. Un broker MQTT actúa como intermediario. Los dispositivos publican mensajes en "topics" y se suscriben a ellos para recibir mensajes.

Configuración de MQTT en Tasmota

  1. Broker MQTT:

    • Puedes usar un broker local (Mosquitto) o uno en la nube.

  2. Configuración en Tasmota:

    • Interfaz Web:

      • Accede a la interfaz web de Tasmota.

      • Ve a "Configuración" -> "Configurar MQTT".

      • Host: 192.168.1.100 (IP del broker).

      • Puerto: 1883.

      • Usuario: domotica.

      • Contraseña: miclave.

      • Topic: luz_salon.

      • FullTopic: %prefix%/%topic%/.

    • Backlog:

      • En la consola de Tasmota, usa:

        • Backlog mqtthost 192.168.1.100; mqttport 1883; mqttuser domotica; mqttpassword miclave; topic luz_salon

  3. Verificación:

    • En la consola, verás mensajes de conexión MQTT.

Comandos MQTT con Ejemplos

  • Control de Dispositivos:

cmnd/luz_salon/POWER ON (enciende la luz).

cmnd/luz_salon/POWER OFF (apaga la luz).

cmnd/luz_salon/POWER TOGGLE (cambia el estado).

  • Solicitud de Estado:

    • cmnd/luz_salon/STATUS (obtiene información del dispositivo).

  • Actualización de Firmware:

    • cmnd/luz_salon/OtaUrl http://mi_servidor/tasmota.bin

    • cmnd/luz_salon/Upgrade 1

  • Respuestas:

    • Tasmota responde en stat/luz_salon/POWER ON.

    • La telemetría se envía a tele/luz_salon/SENSOR {"Temperatura": 25.5}.

  • Uso de Clientes MQTT:

    • MQTT.fx o Mosquitto para enviar y recibir mensajes.

Topics MQTT Avanzados

  • FullTopic:

    • %prefix%/casa/salon/%topic%/ (estructura personalizada).

  • GroupTopic:

    • cmnd/luces_salon/POWER ON (enciende todas las luces del salón).

  • Fallback Topic:

    • DVES_123456_fb (topic de respaldo).

  • LWT (Last Will and Testament):

    • tele/luz_salon/LWT Online (dispositivo conectado).

    • tele/luz_salon/LWT Offline (dispositivo desconectado).

Mensajes Retained:

  • PowerRetain 1 (guarda el estado de la luz en el broker).

  • Para limpiar mensajes retained, usa un cliente MQTT o herramientas como Tasmota Device Manager.

Automatización con Reglas:

  • Necesitas compilar Tasmota con SUPPORT_MQTT_EVENT.

  • Ejemplo:

    • Rule1 ON mqtt#connected DO Subscribe temp_salon, tele/sensor_salon/SENSOR, Temperatura ENDON ON Event#temp_salon>25 DO cmnd/aire_salon/POWER ON ENDON

MQTT Estándar vs. MQTT sobre WebSockets

  • MQTT Estándar:

    • Usa el puerto 1883.

    • Protocolo binario ligero.

    • Ideal para dispositivos IoT con recursos limitados.

  • MQTT sobre WebSockets:

    • Usa el puerto 80 o 443.

    • Encapsula MQTT en WebSockets.

    • Permite la comunicación a través de firewalls y proxies.

    • Es mas utilizado para aplicaciones web.

  • Soporte de Tasmota:

    • Tasmota solo soporta MQTT estándar. No soporta MQTT sobre WebSockets.

Códigos de Retorno MQTT:

  • 5: MQTT_CONNECT_UNAUTHORIZED (credenciales incorrectas).

  • -3: MQTT_CONNECTION_LOST (conexión perdida).