Unterstützung für dynamisches „Select“-Feld für Integrationen

Kontext

Heute kann eine Integration Folgendes exponieren:

  • numerische Werte (binary, temperature, volume, …)
  • Textwerte (category: text, type: text)

Andererseits gibt es derzeit keine Möglichkeit, eine dynamische Liste auswählbarer Werte zu exponieren.

Der Mechanismus supported_options dient einem anderen Zweck: Er ist für bekannte Aufzählungen aus dem Kern von Gladys (Klimaanlagenmodi, Lüftungsgeschwindigkeiten usw.) konzipiert. Die Werte sind fest und durch die Taxonomie von Gladys definiert.

Problem

Einige Integrationen benötigen Listen, die:

  • dynamisch entdeckt werden;
  • für jedes Gerät spezifisch sind;
  • Identifikatoren in Form von Zeichenfolgen verwenden;
  • sich im Laufe der Zeit ändern können.

Beispiel mit einem LG webOS TV

Die installierten Anwendungen sind von TV zu TV unterschiedlich und können sich ändern:

  • Netflix
  • Disney+
  • Prime Video
  • YouTube
  • Plex
  • …

Jede Anwendung hat einen eigenen Identifikator:

netflix
com.disney.disneyplus-prod
amazon
youtube.leanback.v4
cdp-30

Das Gleiche gilt für die Quellen:

  • HDMI 1
  • HDMI 2
  • PlayStation 5
  • Nintendo Switch
  • …

mit Identifikatoren wie:

HDMI_1
HDMI_2
com.webos.app.hdmi3
…

Diese Werte auf ganze Zahlen abzubilden, wäre gefährlich: Nach der Installation oder dem Entfernen einer Anwendung kann sich die Reihenfolge ändern und eine Szene könnte eine andere Anwendung starten als erwartet.

Vorschlag

Es sollte Integrationen ermöglichen, eine dynamische Liste von Optionen basierend auf Zeichenfolgen zu veröffentlichen.

Zum Beispiel:

{

« category »: « text »,

« type »: « select »,

« options »: [

{

  "value": "netflix",

  "label": "Netflix"

},

{

  "value": "youtube.leanback.v4",

  "label": "YouTube"

},

{

  "value": "amazon",

  "label": "Prime Video"

}

]

}

Die Benutzeroberfläche würde einfach Folgendes anzeigen:

▼ Netflix
▼ YouTube
▼ Prime Video

und die Integration würde direkt Netflix erhalten, anstatt einen numerischen Index.

Anwendungsfälle

Diese Funktion betrifft nicht nur Fernseher. Sie könnte für zahlreiche Integrationen nützlich sein:

  • TV-Anwendungen
  • HDMI-Quellen
  • Teile eines Robotervakuums
  • Playlists oder Favoriten
  • Native Szenen eines Geräts (z. B. Roborock)
  • Lademodi eines Elektrofahrzeugs
  • usw.

In meinem Fall würde dies beispielsweise ermöglichen, direkt einen Selektor zum Starten einer Anwendung (Netflix, Plex, YouTube…) oder Wechseln der Quelle (HDMI 1, HDMI 2, PlayStation 5…) anzubieten, anstatt den Benutzer aufzufordern, einen technischen Identifikator wie netflix oder HDMI_1 einzugeben.
Meiner Meinung nach ist dieser Bedarf generisch und könnte von zahlreichen Integrationen genutzt werden, sobald ein Gerät eine dynamische Liste von Elementen exponiert (Anwendungen, Quellen, Teile, Playlists, Favoriten, native Szenen, Routinen usw.).

Ich schließe diesen Beitrag, da die Funktion in Gladys Assistant 4.86 verfügbar ist: