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 :
master ← vincentBesseau:master
ouvert 11:43AM - 11 Aug 26 UTC
### Description
Add Wake-on-LAN support to the external integration Host API.…
External integrations can now request Gladys Core to send a Wake-on-LAN magic packet from its network namespace through:
POST /api/integration/v1/network/wake
The API supports:
* MAC addresses in common formats (64:e4:d5:b4:12:66, 64-e4-d5-b4-12-66, 64E4D5B41266)
* Custom destination IPv4 address
* Custom UDP destination port
* Custom UDP source port
This allows external integrations running in isolated Docker networks to wake LAN devices through Gladys Core.
Tests cover magic packet generation, MAC address formats, source port handling, input validation and the external integration Host API controller.
## Forum
Forum: https://community.gladysassistant.com/t/api-sdk-wake-on-lan-via-le-coeur-gladys/10522
### Checklist
- [x] Tests pass: `cd server && npm run coverage` (Codecov requires 100% coverage on changed lines) and Cypress (`npm run cypress:run`) if the UI changed
- [x] Linter and prettier pass on both front and server (`npm run eslint`, `npm run prettier`)
- [ ] No undocumented breaking change
## Summary by CodeRabbit
* **New Features**
* Added Wake-on-LAN support for remotely waking compatible devices.
* Added an authenticated network endpoint for sending wake requests.
* Supports configurable device address, destination port, and source port.
* Wake requests require the appropriate network-wake permission.
* **Bug Fixes**
* Added validation for MAC addresses, IPv4 addresses, and port values.
* **Tests**
* Added coverage for packet generation, supported address formats, configuration options, permissions, and error handling.
SDK :
main ← vincentBesseau:main
ouvert 08:34PM - 11 Aug 26 UTC
## Summary by CodeRabbit
- **New Features**
- Added Wake-on-LAN support for s… ending network wake requests.
- Supports configurable MAC address, destination address, destination port, and source port.
- Added TypeScript declarations for Wake-on-LAN options and successful responses.
- Requires the appropriate network wake permission.
- **Bug Fixes**
- Added validation for MAC addresses, network addresses, and port ranges.
- Invalid requests are prevented from being sent, with authorization errors reported clearly.
@pierre-gilles todas las pruebas parecen estar en verde para github core
Cierro el tema porque ya está disponible en Gladys Assistant 4.86:
Salut à tous !
Super heureux de sortir Gladys Assistant 4.86.
C’est simple, c’est la plus grosse version depuis le début du projet, avec 68 PR fusionnées en une semaine
C’est juste incroyable, et ça montre le nouveau rythme qu’on peut tenir avec l’IA.
L’objectif est maintenant clair : rattraper et dépasser Home Assistant
Je vous parle de ces 68 nouveautés ici :
Merci à tous les contributeurs !!