Saltar al contenido principal

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

Integración Pangolin para Gladys Assistant

Supervise sitios y recursos de Pangolin y active o desactive recursos desde Gladys.

Esta integración conecta Gladys con Pangolin, el proxy inverso con túneles que expone sus servicios en Internet sin abrir ningún puerto en su router. Funciona con un Pangolin autoalojado y con Pangolin Cloud.

Lo que obtiene en Gladys:

  • un dispositivo por sitio (un túnel Newt, un sitio WireGuard, el propio host de Pangolin), con su estado en línea y su tráfico (datos entrantes, datos salientes);
  • un dispositivo por recurso público (un sitio HTTPS en su dominio, un puerto TCP/UDP), con un interruptor activado que puede apagar desde Gladys y su estado de salud;
  • disparadores y acciones de escena, y un widget del panel (Gladys 5.1 o posterior).

Antes de empezar​

1. Activar la API de integración (solo autoalojado)​

Pangolin Cloud ya la tiene. En un Pangolin autoalojado (Community Edition) la API de integración está desactivada por defecto: añada esto a config/config.yml y reinicie Pangolin.

flags:
enable_integration_api: true

La API escucha entonces dentro del contenedor de Pangolin en el puerto 3003 (o 3004, según la versión: mire server.integration_port en su configuración). Consulte la documentación de Pangolin para publicarla en un dominio como https://api.example.com/v1.

2. Crear una clave de API​

En Pangolin, abra su organización y luego Claves API → Generar clave API. Dele estos permisos:

PermisoPara qué
Listar sitioslos dispositivos de sitio
Listar recursoslos dispositivos de recurso
Obtener organizaciónel nombre que muestra «Probar la conexión» (opcional)
Actualizar Recursoactivar o apagar un recurso desde Gladys (opcional)

Copie la clave enseguida: Pangolin solo la muestra una vez. Tiene este aspecto: abc123xyz.0123456789abcdef.

Use una clave de organización dedicada a Gladys, nunca una clave root.

3. Encontrar el ID de la organización​

Está en la barra de direcciones cuando navega por su organización en Pangolin: https://pangolin.example.com/mi-org/settings → mi-org.

Configuración​

CampoQué poner
Dirección local de la APISolo autoalojado: la API de integración en su red, p. ej. http://192.168.1.10:3004/v1. Si no, déjelo vacío.
Dirección de Internet de la APIPangolin Cloud: https://api.pangolin.net/v1. Autoalojado: su dirección pública, p. ej. https://api.example.com/v1.
Clave de APILa clave creada arriba.
ID de la organizaciónEl ID encontrado arriba.
Intervalo de actualización (s)Frecuencia de lectura de Pangolin (30 a 3600 s, 60 por defecto). Cada lectura son dos peticiones, sea cual sea el número de dispositivos.

Indique al menos una de las dos direcciones. Si olvida /v1, se añade.

Pulse luego Probar la conexión: prueba cada dirección indicada y dice, para cada una, lo que respondió Pangolin — la organización, el número de sitios y recursos, o el motivo del fallo.

Local o Internet: el interruptor «Preferir la conexión local»​

Con las dos direcciones, Gladys llama a la que indica el interruptor Preferir la conexión local, y solo recurre a la otra cuando la primera no responde (red caída, tiempo de espera agotado, un proxy que responde 502, 503 o 504). Una clave incorrecta o una organización desconocida no provocan el cambio: las dos direcciones llevan al mismo servidor y la respuesta sería la misma.

Cada dispositivo muestra la dirección en uso en su insignia: local, cloud o inaccesible. Un punto naranja significa que Gladys usa la dirección de respaldo: funciona, pero no como lo pidió — revise la dirección preferida.

Con una sola dirección no hay respaldo: la insignia muestra esa dirección, o inaccesible.

Dispositivos​

Abra la pestaña Descubrir de la integración: aparece cada sitio y cada recurso público de la organización. Cree en Gladys los que quiera.

Sitio​

FunciónValoresNotas
Online1 = túnel activo, 0 = túnel caídoAusente en un sitio «local»: Pangolin no da ningún estado
Data inmegabytesContador que lleva Pangolin, hasta que lo ponga a cero allí
Data outmegabytesIgual

Recurso público​

FunciónValoresNotas
Enabled1 = servido, 0 = desactivadoControlable: apagarlo hace que Pangolin deje de servir el recurso, sin borrarlo
Healthy1 = en buen estado, 0 = con fallosResultado de las comprobaciones de estado de sus destinos. Vacío si el recurso no tiene comprobación

Los recursos privados (los que se alcanzan con un cliente de Pangolin) no están cubiertos.

Los dispositivos conservan su identidad cuando renombra un sitio o un recurso en Pangolin: están ligados a los números internos de Pangolin, no a nombres ni dominios. Un sitio o recurso borrado en Pangolin aparece inaccesible: puede borrar el dispositivo en Gladys.

Escenas y panel (Gladys 5.1)​

Disparadores​

DisparadorFiltrosVariables
Un sitio Pangolin se conecta o desconectasitio, nuevo estado (en línea / sin conexión)site_name, status
Cambia el estado de un recurso de Pangolinrecurso, nuevo estadoresource_name, address, health, previous_health
Pangolin deja de responder o vuelve a hacerlonuevo estado (responde / no responde)status, reason, organization

Se disparan una vez por cambio, en la lectura que lo detecta — es decir, dentro del intervalo de actualización. Nada se dispara al arrancar ni tras un cambio de configuración: «el sitio está sin conexión» en ese momento es un estado, no un evento. Los disparadores funcionan incluso para los sitios y recursos que no ha creado como dispositivos.

En una escena, use las variables como cualquier otra, p. ej. {{triggerEvent.data.site_name}} está {{triggerEvent.data.status}}.

Acciones​

AcciónCamposSalidas
Activar o desactivar un recurso de Pangolinrecurso, activadoenabled
Actualizar Pangolin ahora—connected, sites_online, sites_offline, resources_unhealthy, resources_disabled

Ejemplo: cuando todos salen de casa, activar el recurso «Cámaras»; cuando vuelve la primera persona, desactivarlo.

Widget «Resumen de Pangolin»​

Añádalo desde el editor del panel. Muestra:

  • tres casillas: sitios en línea, recursos activos, recursos con fallos;
  • la conexión (local, Internet, naranja en la dirección de respaldo, rojo cuando Pangolin no responde);
  • los problemas, los más graves primero: sitios sin conexión, recursos con fallos, recursos desactivados — tantos como indique el ajuste Problemas listados (0 a 9);
  • un botón Actualizar.

Solución de problemas​

MensajeQué hacer
Pangolin no responde (…)Compruebe la dirección y el puerto, y que la API de integración esté activada. El motivo (ECONNREFUSED, tiempo agotado…) ayuda.
Pangolin rechazó la clave de APILa clave es incorrecta o se borró: cree una nueva.
La clave de API no puede leer la organización «…»La clave pertenece a otra organización o le falta un permiso: vea Crear una clave de API.
Pangolin no conoce ninguna organización «…»Compruebe el ID de la organización, y que la dirección sea la de la API (termina en /v1), no la del panel.
Un recurso no se apagaA la clave le falta Actualizar Recurso.

Los registros de la integración indican cada lectura fallida y cada cambio a la dirección de respaldo. La clave de API nunca aparece en ellos.

Seguridad​

  • La clave de API se guarda en un campo secreto, solo se envía a las direcciones que ha configurado y nunca se registra.
  • Cualquiera que pueda accionar un interruptor o lanzar una escena en Gladys puede abrir o cerrar sus recursos públicos: téngalo en cuenta al compartir Gladys.
  • Para la dirección de Internet, use https://.

Parámetros de configuración​

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

ParámetroTipoObligatorioDescripción
Primeros pasossectionNoGladys lee su organización Pangolin a través de su API de integración: un dispositivo por sitio (en línea, tráfico) y uno por recurso público (activado, en buen estado). Cree una clave de API de organización en Pangolin (Claves API → Generar clave API) con los permisos Listar sitios, Listar recursos, Actualizar Recurso y Obtener organización. Un servidor autoalojado debe tener activada la API de integración (flags: enable_integration_api: true).
Dirección local de la APIstringNoLa API de integración de un Pangolin autoalojado, accesible en su red (el contenedor de Pangolin escucha en el puerto 3003 o 3004 según la versión). Déjelo vacío si solo usa la dirección de Internet.
Dirección de Internet de la APIstringNoPangolin Cloud: https://api.pangolin.net/v1. Autoalojado: la dirección pública de su API de integración, p. ej. https://api.example.com/v1. Con las dos direcciones, el interruptor «Preferir la conexión local» elige la que se prueba primero; la otra toma el relevo cuando no responde.
Clave de APIsecretSíLa clave de API de la organización, tal como Pangolin la muestra una sola vez al crearla (tiene la forma id.secret).
ID de la organizaciónstringSíEl ID de la organización, como en la barra de direcciones de Pangolin: /mi-org/settings → mi-org.
Intervalo de actualización (s)numberNoFrecuencia de lectura de Pangolin, en segundos. Cada lectura son dos peticiones, sea cual sea el número de dispositivos.

Cómo instalar Pangolin en Gladys​

  1. En Gladys, abre Integraciones: Pangolin 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/prohand/gladys-pangolin:0.0.1), 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/prohand/gladys-pangolin.

Pangolin requiere Gladys >=5.1.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​

Pangolin 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 prohand, 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 🙂