Saltar al contenido principal

Integración domótica IoTaWatt, gratuita y de código abierto

Integración IoTaWatt para Gladys Assistant

Monitor de energía IoTaWatt en red local: potencia, energía y tensión por circuito.

Presentación​

Esta integración lleva sus monitores de energía IoTaWatt a Gladys. Un IoTaWatt es un monitor de energía Wi-Fi de hardware abierto: pinzas amperimétricas (CT) en los circuitos de su cuadro eléctrico y un transformador de tensión (VT) en un enchufe. La integración lo lee por su red local, mediante su API local documentada (/status y /query), y nunca escribe en él: nada sale de su casa. No está afiliada a IoTaWatt, Inc.

  • Un dispositivo para el propio IoTaWatt (señal Wi-Fi, pila del reloj, firmware) y un dispositivo por entrada o salida: potencia, energía consumida, energía exportada, tensión, intensidad.
  • Índices de energía contados cada minuto a partir del registro del IoTaWatt: un reinicio de Gladys o de la integración no pierde nada.
  • Dos widgets de panel: un IoTaWatt con sus canales más cargados; un canal con un gráfico del registro del IoTaWatt.
  • Disparadores de escena: no responde, vuelve a responder, reiniciado.
  • Acción de escena: la energía de un canal en un periodo (hoy, ayer, el mes pasado…).

Transporte: local. La integración habla con el IoTaWatt por HTTP en su red; ningún dato sale a Internet.

Requisitos previos​

  • Gladys Assistant 5.3.0 o posterior.
  • Un IoTaWatt configurado con su aplicación de configuración (entradas con nombre, salidas si las desea), en la misma red que Gladys.
  • Su dirección (IP o nombre), o deje que la integración lo encuentre: el IoTaWatt se anuncia por mDNS con su nombre de dispositivo, y la integración solo prueba los nombres que contienen «iota» (el nombre por defecto es «IotaWatt»). Un dispositivo renombrado debe introducirse a mano.
  • Ninguna contraseña, salvo si definió una en el IoTaWatt (Setup → Passwords) sin permitir el acceso local sin contraseña.

La integración lee la potencia de cada canal cada 10, 30 o 60 segundos (una petición), y cada minuto la energía de los minutos aún no contados (una petición más). Un IoTaWatt es un pequeño módulo ESP8266: las peticiones van de una en una, nunca en paralelo.

Configuración​

CampoFunción
DireccionesDirecciones IP o nombres de sus IoTaWatt, separados por comas (192.168.1.20, iotawatt.local); vacío: búsqueda automática
Usuariouser (solo lectura, suficiente) o admin; solo se usa con una contraseña
ContraseñaSolo si el IoTaWatt la pide (un secreto: nunca se vuelve a mostrar, nunca se escribe en los registros ni en /data)
Lectura de la potenciaCada 10 segundos, 30 segundos (por defecto) o cada minuto; la energía se cuenta cada minuto sea cual sea este ajuste
Idioma de los textosNombres de las funciones, textos de escenas y errores; automático sigue el idioma del último widget mostrado (en/fr/de/es)

Botones:

  • Buscar y probar busca los IoTaWatt (direcciones introducidas y búsqueda en la red), los lee y ofrece sus canales en la pantalla Descubrir.
  • Diagnóstico escribe lo que sabe la integración en sus registros, sin la contraseña.

La contraseña sirve para la autenticación HTTP Digest: nunca viaja por la red, solo una respuesta calculada a partir de ella. Cuando el «acceso local» está permitido en el IoTaWatt, una petición desde la misma red no necesita contraseña; las peticiones de la integración salen por el equipo de Gladys, así que suelen venir de la misma red.

Uso​

Dispositivos​

Tras la configuración, abra Descubrir: se ofrecen el IoTaWatt y cada uno de sus canales, con el nombre del IoTaWatt («Heat Pump (IoTaWatt)»). Añada solo los canales que le interesen, ponga cada uno en su habitación y renómbrelo si lo desea: los widgets y las escenas usan el nombre que usted le dé.

DispositivoFunciónCategoría / tipoUnidad
IoTaWattSeñal Wi-Fisignal / integer— (dBm)
IoTaWattPila del reloj bajabattery-low / binary—
IoTaWattFirmwaretext / text—
Entrada o salida de potenciaPotenciaenergy-sensor / powerW
Entrada o salida de potenciaEnergía consumidaenergy-sensor / indexkWh
Entrada o salida de potenciaEnergía exportadaenergy-production-sensor / indexkWh
Entrada/salida de tensiónTensiónenergy-sensor / voltageV
Salida de intensidadIntensidadenergy-sensor / currentA

Todas las funciones son de solo lectura. La potencia tiene signo: un canal que exporta (una pinza en la acometida mientras producen unos paneles solares) pasa a negativo. Energía exportada solo aparece cuando un canal se ha visto negativo (en los últimos 7 días en la primera lectura, o más tarde): pulse Actualizar en la pantalla Descubrir para añadirla a un dispositivo existente.

Los índices de energía empiezan en 0 cuando la integración ve un canal por primera vez; Gladys solo usa sus aumentos (consumo, coste). Cada minuto, la integración pide al IoTaWatt la energía de cada minuto aún no contado y suma los minutos positivos a «Energía consumida» y los negativos a «Energía exportada». Tras una parada de Gladys o de la integración, se pone al día a partir del registro del IoTaWatt, hasta 7 días atrás.

Una entrada conserva su dispositivo cuando la renombra en el IoTaWatt (se reconoce por su número de canal). Una salida solo se reconoce por su nombre: renombrada, se ofrece como un dispositivo nuevo. Las salidas en VA, VAR, PF o Hz no tienen función equivalente en Gladys y no se ofrecen.

Widgets del panel​

Los dos widgets: IoTaWatt con la potencia de sus cinco canales más cargados y su estado, y dos veces Canal IoTaWatt, la red con 24 horas de potencia y la bomba de calor con 14 días de energía (ilustración generada, no una captura de pantalla)

  • IoTaWatt: un IoTaWatt (elíjalo en los ajustes del widget; el primero por defecto): la potencia de sus cinco canales más cargados (una potencia negativa, exportada, en verde), luego su estado, la última lectura, la señal Wi-Fi, la pila del reloj, desde cuándo está en marcha y el firmware.
  • Canal IoTaWatt: un canal (el primero por defecto): su potencia actual, la energía de hoy y de ayer, y un gráfico del registro del IoTaWatt: potencia en 24 horas, energía por día en 14 días o energía por mes en 12 meses (ajuste Gráfico). Para un canal de tensión o de intensidad, el valor actual y 24 horas de gráfico. El historial se pide al IoTaWatt y se guarda 5 minutos.

Escenas​

Disparadores (una vez por cambio, nunca en la primera lectura, nunca a causa de una acción de escena), filtrados por IoTaWatt (el dispositivo del propio IoTaWatt, no un canal):

  • IoTaWatt: no responde: sin respuesta a 3 lecturas seguidas, durante al menos un minuto (corte de luz, Wi-Fi perdido, bloqueo); variables: nombre, dirección, dirección MAC, lecturas perdidas, mensaje.
  • IoTaWatt: vuelve a responder: vuelve a responder; variable: minutos sin respuesta.
  • IoTaWatt: reiniciado: su tiempo de funcionamiento retrocedió (corte de luz, actualización, bloqueo); variable: horas en marcha antes.

Una comparación como «potencia por encima de 3000 W» no es un disparador de la integración: use una condición de dispositivo de Gladys sobre la función Potencia, con su propio umbral.

Acción:

  • IoTaWatt: energía de un canal: la energía (kWh) y la potencia media (W) de un canal de potencia en un periodo (hoy, ayer, esta semana desde el domingo, la semana pasada, este mes, el mes pasado, este año, últimas 24 horas, últimos 7 días, últimos 30 días), con el inicio y el fin del periodo y una frase (summary). El IoTaWatt la calcula a partir de su propio registro, en su hora local.

Ejemplos:

  • Cada mañana a las 8:00 → IoTaWatt: energía de un canal (Heat Pump, ayer) → enviar su summary.
  • Cuando la Potencia del horno supere 3000 W (condición de dispositivo) → apagar el calentador de agua.
  • Cuando IoTaWatt: no responde → enviar «{{triggerEvent.data.meter_name}} no responde: ¿corte de luz?».

Solución de problemas​

  • «No se encontró ningún IoTaWatt»: introduzca su dirección en Direcciones y pulse Buscar y probar. La búsqueda automática solo prueba los nombres mDNS que contienen «iota».
  • «pide una contraseña o rechaza la introducida»: el IoTaWatt tiene contraseñas; introduzca el usuario (user basta) y su contraseña, o permita el acceso local en el IoTaWatt.
  • «responde, pero no es un IoTaWatt»: la dirección es de otro dispositivo; se deja de lado 30 minutos.
  • Un canal se llama «Input 3»: la lista de series no coincidía con las entradas; se vuelve a leer cada 10 minutos.
  • No hay «Energía exportada»: el canal nunca se ha visto negativo; en cuanto lo esté, pulse Actualizar en la pantalla Descubrir.
  • Los valores están desactualizados: el IoTaWatt no responde; quizá su dirección cambió: con la búsqueda automática, se vuelve a buscar cada 30 minutos (un IoTaWatt se reconoce por su dirección MAC).
  • Para un informe, indique las versiones de Gladys, de la integración y del firmware del IoTaWatt, el mensaje de Buscar y probar y las líneas «IoTaWatt diagnostic» que Diagnóstico escribe en los registros de la integración (DEBUG=gladys-integration-sdk añade los registros del SDK). No pegue nunca su contraseña.
  • Limitaciones: nunca probada con un IoTaWatt real (escrita según la documentación oficial y el firmware 02_08_04); las salidas en VA, VAR, PF y Hz no se ofrecen; los índices empiezan en 0, no en el historial del IoTaWatt.

Parámetros de configuración​

Estos son los parámetros que IoTaWatt te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
IoTaWatt en su redsectionNoLa integración lee su IoTaWatt por la red local, mediante su API local, y nunca escribe en él: nada sale de su casa. Deje las direcciones vacías para encontrarlo automáticamente (su nombre debe contener «iota», como por defecto), o introduzca su dirección IP o su nombre. No afiliada a IoTaWatt, Inc.
DireccionesstringNoDirecciones IP o nombres de sus IoTaWatt, separados por comas. Vacío: búsqueda automática.
Contraseña (opcional)sectionNoSolo si definió contraseñas en la aplicación de configuración del IoTaWatt (Setup → Passwords) sin permitir el acceso local sin contraseña. La cuenta «user» basta: solo puede leer.
UsuarioselectNo
ContraseñasecretNo
OpcionessectionNo
Lectura de la potenciaselectNoFrecuencia de lectura de la potencia. La energía se cuenta cada minuto a partir del registro del IoTaWatt, sea cual sea este ajuste.
Idioma de los textosselectNoNombres de las funciones, textos de escenas y errores. Automático: el idioma del último widget mostrado.

Cómo instalar IoTaWatt en Gladys​

  1. En Gladys, abre Integraciones: IoTaWatt aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. Haz clic en Instalar. Gladys descarga la imagen Docker (ghcr.io/william-de71/gladys-iotawatt:0.1.0), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. También puedes instalarla directamente desde la URL de su repositorio: https://github.com/William-De71/gladys-iotawatt.

IoTaWatt requiere Gladys >=5.3.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.

¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.

Sobre las integraciones externas​

IoTaWatt es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene William-De71, no el equipo principal de Gladys.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂