Saltar al contenido principal

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

Integración ZeroTier para Gladys Assistant

Quién está en línea en sus redes ZeroTier y quién espera ser autorizado.

Siga a los miembros de sus redes ZeroTier en Gladys: un dispositivo por miembro (en línea o no, autorizado o no, visto por última vez, dirección IP gestionada, versión de ZeroTier), un dispositivo por red, un widget del panel y disparadores de escena cuando un miembro se conecta, se desconecta o pide unirse — por ejemplo, para saber que un móvil ha vuelto a la red familiar, o que un dispositivo desconocido llama a la puerta de una red privada.

Funciona con ZeroTier Central (my.zerotier.com, la nube) o con un controlador autoalojado (su propio nodo ZeroTier que gestiona sus redes). El modo autoalojado se ha probado con un controlador y un miembro ZeroTier 1.14.2 reales en Docker. El modo Central se ha desarrollado a partir de la documentación oficial de la API, sin una cuenta Central real: sus comentarios son bienvenidos en el foro de Gladys o en las issues.

Qué necesita​

  • Gladys Assistant 5.1.0 o posterior.
  • ZeroTier Central: un token de API de la cuenta propietaria de las redes (my.zerotier.com → Account → API Access Tokens), y acceso a Internet para Gladys.
  • Controlador autoalojado: el nodo ZeroTier que ejecuta el controlador, accesible desde Gladys en su puerto 9993, el contenido de su archivo authtoken.secret, y la dirección de Gladys permitida en su local.conf (vea más abajo).

Configuración​

  1. En Gladys, instale la integración y abra su pantalla de Configuración.
  2. Controlador: ZeroTier Central (nube) o Controlador autoalojado (local).
  3. Token de API: el token de Central, o el contenido de authtoken.secret.
  4. Redes a seguir: los identificadores de red (16 caracteres, como los muestra Central o zerotier-cli listnetworks), separados por comas. Vacío: todas las redes que ve el token.
  5. Intervalo de actualización: 1 minuto por defecto. Cada lectura cuesta una solicitud, más una por red.
  6. Permitir autorizar miembros: desactivado por defecto (vea los dispositivos más abajo).
  7. Idioma de los nombres: el idioma de los nombres de las funciones y de las fechas, francés por defecto.
  8. Guarde y pulse Probar la conexión: cada red aparece con sus miembros. Los dispositivos aparecen después en la pestaña Descubrimiento de la integración: añada los que quiera.

ZeroTier Central​

Cree un token en my.zerotier.com → Account → API Access Tokens. Da acceso a todas las redes de la cuenta: guárdelo para usted. Central limita el número de solicitudes de API por cuenta: mantenga el intervalo por defecto si otras herramientas usan el mismo token.

Controlador autoalojado​

Por defecto, la API local de ZeroTier solo responde al propio nodo. Permita la dirección desde la que llama Gladys en el archivo local.conf de la carpeta de ZeroTier del controlador (/var/lib/zerotier-one en Linux) y reinicie ZeroTier:

{ "settings": { "allowManagementFrom": ["192.168.1.0/24"] } }

Gladys llama desde su máquina (la integración se ejecuta en un contenedor Docker en el puente por defecto): permita la dirección de la máquina de Gladys o, si el controlador se ejecuta en la misma máquina, el rango de Docker (172.16.0.0/12). Como Dirección del controlador (autoalojado), indique la dirección de la máquina del controlador en su red local, nunca 127.0.0.1.

Los dispositivos​

Cada red (ZeroTier seguido de su nombre):

FunciónQué muestra
Miembros en líneaLos miembros en línea en este momento
MiembrosLos miembros de la red
Pendientes de autorizaciónLos miembros que han pedido unirse y todavía esperan

Cada miembro (su nombre, o su ID de nodo si no tiene, seguido de (ZeroTier)):

FunciónQué muestra
En líneaSí cuando el miembro se ha visto hace unos minutos como mucho
AutorizadoSi el miembro está autorizado en la red (un interruptor, de solo lectura por defecto)
Visto por última vezCuándo pasó a fuera de línea; en línea, desde cuándo lo está
Dirección IP gestionadaLas direcciones que le da la red (Ninguna si no tiene)
Versión de ZeroTierLa versión de ZeroTier del miembro

La misma máquina en dos redes son dos dispositivos: su autorización es propia de cada red.

En línea se lee de forma distinta según el modo. Con Central, un miembro está en línea cuando se ha comunicado con Central hace menos de 5 minutos (los miembros se comunican más o menos cada minuto). Con un controlador autoalojado, el controlador no guarda esa fecha: la integración lee los pares del nodo, y un miembro está en línea cuando el controlador lo ha oído hace menos de 3 minutos. Un miembro alcanzado a través de un relé (sin ruta directa) cuenta como en línea cuando el nodo lo lista desde hace 2 minutos; uno que pasa de una ruta directa a un relé se ve fuera de línea unos 12 minutos.

Autorizado solo se convierte en un comando cuando Permitir autorizar miembros está activado: entonces Gladys, sus escenas y los asistentes de voz pueden admitir o cortar a un miembro. Activar o desactivar la opción cambia el dispositivo: pulse Actualizar en la pestaña Descubrimiento.

Panel​

El widget Miembros ZeroTier muestra los miembros en línea y los miembros de las redes, y luego una fila por miembro: primero los que esperan autorización, luego los que están en línea y después los demás con el momento en que se vieron. Su ajuste Red (vacío: todas) muestra una sola red.

Escenas​

Disparadores​

  • Miembro ZeroTier en línea: un miembro se ha conectado.
  • Miembro ZeroTier fuera de línea: un miembro lleva unos minutos sin verse.
  • Nuevo miembro pendiente de autorización: un nuevo dispositivo ha pedido unirse a una red privada.

Cada disparador puede limitarse a un miembro (Miembro (vacío: cualquiera)) o a una red (Red (vacío: cualquiera)), y da las variables Nombre del miembro, ID del nodo y Nombre de la red a los mensajes de la escena. No se envía ningún evento en la primera lectura tras un arranque o un cambio de configuración: el estado anterior es desconocido. En línea y fuera de línea solo afectan a los miembros autorizados: un desconocido que va y viene no dispara nada, y autorizar a un miembro conectado dispara Miembro ZeroTier en línea.

Ideas de escenas​

  • Cuando un nuevo miembro espera autorización, envíese un mensaje con su ID del nodo y el Nombre de la red, y autorícelo en Central o desde su dispositivo en Gladys.
  • Cuando el portátil de un adolescente se conecta después de las 23 h, envíe una notificación.
  • Cuando el NAS remoto que guarda sus copias de seguridad se desconecta, envíe un mensaje.

Solución de problemas​

  • «token de API rechazado»: compruebe el token. Para un controlador autoalojado, es todo el contenido de authtoken.secret, sin salto de línea.
  • «ZeroTier no responde»: con Central, compruebe el acceso a Internet de Gladys. Con un controlador autoalojado, compruebe la dirección y el puerto (9993), y que allowManagementFrom permita a Gladys (vea más arriba).
  • «red no encontrada»: el identificador de red es incorrecto, o el token no ve esa red.
  • «este nodo ZeroTier no es un controlador de red»: la dirección es la de un nodo ZeroTier corriente, no la del controlador de sus redes.
  • «demasiadas solicitudes a ZeroTier Central»: la integración ya espera más entre dos lecturas; elija un intervalo más largo.
  • Un miembro sigue en línea después de apagarlo: tarda hasta 5 minutos, más una lectura, y hasta unos 9 minutos para un miembro relayado de un controlador autoalojado.

Límites​

  • Un controlador (o una cuenta Central) por instalación de la integración.
  • La integración no crea redes, ni renombra ni borra miembros: eso se queda en Central o en su controlador.
  • La fecha «visto por última vez» de un controlador autoalojado se guarda en memoria: vuelve a ser desconocida tras un reinicio de la integración, hasta que el miembro se vuelva a ver.
  • Los miembros borrados en Central (ocultos por Central) no se muestran.
  • Sin relación con ZeroTier, Inc. ZeroTier es una marca de ZeroTier, Inc.

Parámetros de configuración​

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

ParámetroTipoObligatorioDescripción
Sus redes ZeroTiersectionNoZeroTier Central (my.zerotier.com): un token de API de su cuenta. Controlador autoalojado: la dirección de su nodo y el contenido de su archivo authtoken.secret.
ControladorselectNoDónde se gestionan sus redes.
Token de APIsecretNoCentral: Account → API Access Tokens. Autoalojado: el contenido de authtoken.secret (/var/lib/zerotier-one en Linux).
Dirección del controlador (autoalojado)stringNoSolo para un controlador autoalojado: su dirección IP, puerto 9993 por defecto. Su local.conf debe permitir la dirección de Gladys (allowManagementFrom).
Redes a seguirstringNoIdentificadores de red (16 caracteres), separados por comas. Vacío: todas las redes que ve el token.
Intervalo de actualizaciónselectNoFrecuencia de lectura de ZeroTier: una solicitud por red, más una. Un miembro pasa a fuera de línea unos minutos después de detenerse.
Permitir autorizar miembrosbooleanNoDesactivado: el interruptor «Autorizado» es de solo lectura. Activado: Gladys, sus escenas y los asistentes de voz pueden admitir o cortar a un miembro.
Idioma de los nombresselectNoIdioma de los nombres de las funciones y de las fechas, fijado al añadir un dispositivo.

Cómo instalar ZeroTier en Gladys​

  1. En Gladys, abre Integraciones: ZeroTier 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/guim31/gladys-zerotier:1.0.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/guim31/gladys-zerotier.

ZeroTier 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​

ZeroTier 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 guim31, 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 🙂