Contexte
Les intégrations externes sont exécutées dans un conteneur Docker isolé. Elles peuvent envoyer un paquet Wake-on-LAN en unicast, mais ne peuvent pas diffuser un paquet en broadcast sur le réseau local.
Problème
Certaines machines (dans mon cas une TV LG webOS) ne répondent plus au Wake-on-LAN en unicast après une veille prolongée, probablement à cause de l’expiration de l’entrée ARP.
Le réveil fonctionne parfaitement en broadcast (`192.168.1.255`), mais ce broadcast ne peut pas être émis depuis une intégration externe.
Proposition
Ajouter une API dans le SDK permettant de demander au cœur Gladys d’envoyer un paquet Wake-on-LAN.
Exemple :
await gladys.network.wake({
mac: '64:e4:a5:b4:88:74',
address: '192.168.1.255', // optionnel
port: 9, // optionnel
sourcePort: 9, // optionnel
});
Le cœur Gladys étant exécuté en `network=host`, il peut envoyer le broadcast sur le réseau local sans les limitations du conteneur.
Cas d’usage
TV (LG webOS, Samsung, …)
PC / NAS
Serveurs
Toute intégration nécessitant un Wake-on-LAN fiable
@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
- [ ] Tests pass: `cd server && npm run coverage` (Codecov requires 100% coverage on changed lines) and Cypress (`npm run cypress:run`) if the UI changed
- [ ] 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 tout les tests semble au vert pour github core
Je ferme le sujet car c’est disponible dans 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 !!