API SDK : Wake-on-LAN a través del núcleo de Gladys

Contexto

Las integraciones externas se ejecutan en un contenedor Docker aislado. Pueden enviar un paquete Wake-on-LAN en unicast, pero no pueden transmitir un paquete en broadcast en la red local.

Problema

Algunas máquinas (en mi caso una TV LG webOS) ya no responden al Wake-on-LAN en unicast después de un período prolongado de inactividad, probablemente debido a la expiración de la entrada ARP.

El despertar funciona perfectamente en broadcast (`192.168.1.255`), pero este broadcast no puede ser emitido desde una integración externa.

Propuesta

Añadir una API en el SDK que permita solicitar al núcleo Gladys que envíe un paquete Wake-on-LAN.

Ejemplo :


await gladys.network.wake({

  mac: '64:e4:a5:b4:88:74',

  address: '192.168.1.255', // opcional

  port: 9,                  // opcional

  sourcePort: 9,            // opcional

});

El núcleo Gladys, al ejecutarse en `network=host`, puede enviar el broadcast en la red local sin las limitaciones del contenedor.

Casos de uso

  • TV (LG webOS, Samsung, …)

  • PC / NAS

  • Servidores

  • Cualquier integración que requiera un Wake-on-LAN confiable

@pierre-gilles
Côté gladys :

SDK :

@pierre-gilles todas las pruebas parecen estar en verde para github core :sweat_smile:

Cierro el tema porque ya está disponible en Gladys Assistant 4.86: