API SDK: Wake-on-LAN über Gladys Core

Kontext

Externe Integrationen werden in einem isolierten Docker-Container ausgeführt. Sie können ein Wake-on-LAN-Paket im Unicast senden, aber kein Broadcast-Paket im lokalen Netzwerk senden.

Problem

Manche Geräte (in meinem Fall ein LG webOS TV) reagieren nach längerem Standby nicht mehr auf Wake-on-LAN im Unicast, wahrscheinlich aufgrund des Ablaufs des ARP-Eintrags.

Der Weckruf funktioniert perfekt im Broadcast (`192.168.1.255`), aber dieser Broadcast kann nicht von einer externen Integration gesendet werden.

Vorschlag

Eine API im SDK hinzufügen, die es ermöglicht, Gladys Core aufzufordern, ein Wake-on-LAN-Paket zu senden.

Beispiel:


await gladys.network.wake({

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

  address: '192.168.1.255', // optional

  port: 9,                  // optional

  sourcePort: 9,            // optional

});

Gladys Core wird in `network=host` ausgeführt und kann den Broadcast im lokalen Netzwerk ohne die Einschränkungen des Containers senden.

Anwendungsfälle

  • TV (LG webOS, Samsung, …)

  • PC / NAS

  • Server

  • Jede Integration, die ein zuverlässiges Wake-on-LAN benötigt

@pierre-gilles
Gladys-Seite:
https://github.com/GladysAssistant/Gladys/pull/2848

SDK:

@pierre-gilles alle Tests scheinen bei GitHub Core grün zu sein :sweat_smile:

Ich schließe das Thema, da es in Gladys Assistant 4.86 verfügbar ist: