Da fällt mir ein, du hast ja nicht wenig Shelly-Geräte — eine Shelly-Integration wäre auch cool!! ![]()
Stimmt, die verwaltete ich alle unter Node Red
Gut beobachtet, da gibt es viel zu tun ^^ Ich habe schon eine kleine Auswahl ^^
Edit:
@pierre-gilles und was ist mit Tuya? Ich sehe schon, dass ich dir seit Januar viel für diese PRs abverlange…
Könnte das in dieses Format passen?
Für mich ist Tuya ein perfekter Kandidat für externe Integrationen. Ich sehe schon, dass ich heute eine Flasche bin, während wir viel schneller vorankommen könnten, wenn du eigenständig entwickeln könntest. ![]()
Ich denke, du kannst Claude bitten, die Arbeit, die du bereits geleistet hast, in das neue Format für externe Integrationen zu übertragen. Normalerweise deckt diese V1 alles ab, was Tuya benötigt. Wenn du eine Einschränkung identifizierst, lass es mich wissen und wir werden sie weiterentwickeln.
Gleiches gilt übrigens für Netatmo. ![]()
Und wenn du während der Entwicklung feststellst, dass Schnittstellenkomponenten, APIs oder irgendwelche Fähigkeiten fehlen, gib mir Bescheid. Mein Ziel ist es wirklich, dass externe Integrationen genau das Gleiche tun können wie eine interne Integration.
Im Grunde genommen ist das die ganze Philosophie dieser Architektur: Heute schreitet das Projekt eher linear voran, weil viele Dinge über mich laufen. Ich möchte, dass Gladys endlich von der Kraft des Kollektivs profitieren kann und ihre Entwicklung exponentiell statt linear wird.
Ich hatte meine Meinung noch nicht geäußert, obwohl ich das Thema sehr genau verfolgt habe.
Ich finde, das ist eine ausgezeichnete Idee und vor allem, dass alles so gut begrenzt ist.
Es ähnelt HA, es ähnelt Jeedom, aber es ist definitiv Gladys!
Dass man das Frontend nicht ändern kann, ist wirklich die Basis und ein super Schutz vor Entwicklungen, die in alle Richtungen gehen und schwer zu warten sind.
Nun, das sagt ein Nicht-Entwickler, aber ich gehöre zu denen, die lieber von Anfang an absichern, um später immer etwas Funktionales zu haben.
Das gesagt, bin ich mir nicht sicher, ob ich alles im Bereich der Entwicklung verstanden habe: Wird es wie bei der Matterbridge-Plugin-Fabrik funktionieren?
Kann ein Nicht-Entwickler automatisch ein Plugin entwickeln lassen?
Ich würde gerne ein MELCloud Home zusätzlich zum klassischen MELCloud entwickeln, das ich versucht habe, mit der Fabrik zu machen. Leider fehlt es auf Seiten von Matter an einigen Dingen, um zum Beispiel diese Klimaanlage vollständig zu steuern.
Ich habe auch Onkyo und MarantzDenon (für die Musik), Ecovacs (Rasenmäher-Roboter), Freebox, und warum nicht einen Watchdog für VM/LXC/Docker/PC/Server, den ich mit der LAN-Manager-Integration machen wollte (die nur die Anwesenheit erkennt).
Das war’s von mir fürs Erste ![]()
Langfristig könnte man sich eine Fabrik für Integrationen vorstellen, aber im Moment geht es vor allem darum, die Einstiegshürde für die Entwicklung von Integrationen drastisch zu senken und vor allem die Veröffentlichung von Integrationen ohne meine Überprüfung zu ermöglichen.
Die Idee ist, den Prozess so einfach und zugänglich zu gestalten, dass jeder Entwickler des Projekts schnell und reibungslos Integrationen erstellen kann und so die Anzahl der verfügbaren Integrationen natürlich vervielfacht.
Wenn du motiviert bist, uns zu helfen, auch ohne Entwickler zu sein, kannst du uns von Anfang an unterstützen. Du brauchst nur ein GitHub-Konto und einen Claude/Cursor ![]()
@Terdious Ich habe Fable gebeten, eine Analyse der fehlenden Punkte für die Migration von Netatmo und Tuya in externe Integrationen durchzuführen:
Ich werde die Spezifikation und die Implementierung weiterentwickeln!
Die Lücken — vier, davon eine blockierend
1. OAuth2 authorization-code: Blockierend für Netatmo. Der Kern-Flow (netatmo.retrieveTokens) wird vom Frontend gesteuert: Es baut die Autorisierungs-URL, der Nutzer stimmt auf netatmo.com zu, wird zum Gladys-Frontend umgeleitet, das {codeOAuth, state, redirectUri} an den Dienst zurücksendet. Der generierte Konfigurationsbildschirm hat jedoch weder einen „Verbinden“-Button, noch eine Callback-Route, noch einen Kanal, um den Code an die Integration zu übertragen. Es müsste: ein oauth2-Feldtyp im config_schema (Rendering = Button), eine generische Frontend-Callback-Route und zwei Server-Integration-Relais („Gib mir deine Autorisierungs-URL“ und „Hier ist der Code“) — die Integration tauscht dann selbst die Tokens aus und speichert sie außerhalb des Schemas in der Konfiguration.
2. command-result transportiert keine Daten. Die Bestätigung enthält nur success/error. Punkt 1 erfordert, dass die Integration etwas antwortet (die Autorisierungs-URL), und zukünftige Befehle ebenfalls (camera.get-image…). Es fehlt ein optionales data-Feld in command-result — eine triviale, rückwärtskompatible Erweiterung, aber besser ist es, sie jetzt in den v1-Verträgen festzulegen.
3. Der Anwendungsstatus ist unsichtbar. Netatmo core zeigt „Token wird verarbeitet“, „Getrennt“, „Token abgelaufen, bitte neu verbinden“. Unsere Zustandsmaschine sieht nur die Gesundheit des Containers: Eine Netatmo-Integration, deren Refresh-Token abgelaufen ist, wäre RUNNING (WS verbunden), aber stillschweigend kaputt. Es fehlt ein kleiner POST /api/integration/v1/connection_status { connected, message: {en, fr} }, der im Konfigurationsbildschirm angezeigt wird.
4. Lokale Broadcast-Entdeckung (Tuya-Lokalmodus). tuya.localScan hört auf UDP-LAN-Broadcasts (Ports 6666/6667/7000) — ein Container im Bridge-Modus empfängt diese nicht (Broadcasts durchqueren das Docker-NAT nicht; der Core kommt nur deshalb klar, weil er im network=host läuft). Der lokale Unicast-Poll zu einer bekannten IP durchquert das NAT, daher bliebe der lokale Modus teilweise möglich (IPs über die Cloud erhalten), aber der Broadcast-Scan nicht — das ist genau die „vermittelte Entdeckung“, die bereits für Phase 2 geplant war und durch diesen Fall als notwendig bestätigt wurde.
Neue Spezifikation: https://github.com/GladysAssistant/Gladys/blob/claude/focused-turing-q9vf41/PLAN_INTEGRATIONS_EXTERNES.md
Der Core + das SDK werden gerade implementiert…
Ok, quasi alles wurde von Fable implementiert:
- [nicht getestet] JS-SDK mit fehlendem Scope für Tuya/Netatmo/Frigate: feat: add OAuth2 relay, connection status and sub-container lifecycle (spec C.8 update) by Pierre-Gilles · Pull Request #5 · GladysAssistant/integration-sdk-js · GitHub
- [getestet] PR Gladys « Grundlage », den ich diese Woche getestet habe: https://github.com/GladysAssistant/Gladys/pull/2665
- [nicht getestet] PR Gladys « Sub-Container » für Frigate: External integrations phase 2 : sous-conteneurs, réseau privé et accès matériel by Pierre-Gilles · Pull Request #2677 · GladysAssistant/Gladys · GitHub
- [nicht getestet] PR Gladys « Kommunikation » für Telegram, etc…: External integrations phase 2 : type « communication » (canaux de messagerie) by Pierre-Gilles · Pull Request #2678 · GladysAssistant/Gladys · GitHub
- [nicht getestet] PR Gladys « Tuya/Netatmo »: External integrations: OAuth2, connection status, mediated discovery and field feedback (Netatmo/Tuya cases) by Pierre-Gilles · Pull Request #2680 · GladysAssistant/Gladys · GitHub
Claudes Worte
:
Deshalb ist es tatsächlich für Tuya unerlässlich.
Brauchst du, dass ich teste? Wie? ^^
Der einzige sichtbare Nachteil ist, dass ohne UDP-Scan der Benutzer alle IP-Adressen seiner Geräte eingeben muss. Ein kleinerer, aber schade im Vergleich zu heute ![]()
Ich dachte, Claude hätte das schon gemacht!! Ich werde ihn nochmal anstoßen
Für die Tests fange ich am Montag wieder an, aber wenn du deine Entwicklungen gegen die PRs testen möchtest, die ich gemacht habe, kannst du das gerne tun ![]()
Ich verfolge das Thema ein bisschen aus der Ferne, aber das ist wirklich eine gute Idee ![]()
Allerdings könnte das nicht ein bisschen mit der matterbridge-ai-plugin-factory in Konflikt geraten, wenn man Plugins wie bei letzterer direkt in Gladys integrieren kann?
Ich hätte gerne einen Daikin- und Overkiz-Plugin in den externen Integrationen, wenn möglich ![]()
Danke
@terdious C’est bon !
Die Spezifikation, Gladys und das SDK sind mit der integrierten Netzwerk-Scan-Funktion aktualisiert, also normalerweise hast du alles, was du für Tuya brauchst. Ich habe noch nichts von meiner Seite aus getestet, ich nehme das Thema am Montag wieder auf.
@prohand Das steht eindeutig in Konkurrenz zu Matterbridge, aber der Vorteil hier ist, dass es direkt in Gladys integriert ist, also einfacher zu implementieren und zu warten. Ich denke, beide haben ihren Platz: Jeder hat seine Stärken und Schwächen, und ein bisschen Konkurrenz ist immer gesund. ![]()
Heute stellte ich mir ein bisschen die gleiche Frage, aber als ich mir die Funktionsanfragen nochmal durchlas, bin ich auf eine Anfrage für ein Plugin „Kraftstoffpreise“ gestoßen.
Und für so etwas sind wir (soweit ich weiß) genau richtig bei dem, wofür eine externe Integration gedacht ist, während das Matterbridge-Plugin in diesem Fall nicht nützlich ist.
Habe ich recht?
Vollständig ![]()
Test Tuya, Externe Integration vs. Core-Integration:
Da gibt’s was in den Logs ^^ :
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "child_lock" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "unix_time" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "log_server_url" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "log_server_port" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "dev_token" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "hydraulic_pressure" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_mode_flag" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "program_num" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "irri_instant_flow" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "soft_ver" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "dev_state" wird nicht verwaltet
[2026-07-18T23:59:11.547Z] [WARN] [tuya] Tuya-Funktion mit dem Code "app_features" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_set" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_current" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "heat" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "light" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "countdown_left" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "sleep" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "health" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "windspeed" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode_ECO" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode_dry" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "windshake" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Fault" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Countdown" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "use_number" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "total_time" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "electricity" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "electricity_number" wird nicht verwaltet
[2026-07-18T23:59:11.548Z] [WARN] [tuya] Tuya-Funktion mit dem Code "unit" wird nicht verwaltet
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya-Funktion mit dem Code "horizontal" wird nicht verwaltet
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya-Funktion mit dem Code "vertical" wird nicht verwaltet
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya-Funktion mit dem Code "swing3d" wird nicht verwaltet
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya-Funktion mit dem Code "clean" wird nicht verwaltet
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya-Funktion mit dem Code "type" wird nicht verwaltet
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya-Funktion mit dem Code "fault2" wird nicht verwaltet
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya-Funktion mit dem Code "current_mode" wird nicht verwaltet
[2026-07-18T23:59:11.549Z] [WARN] [tuya] Tuya-Funktion mit dem Code "heat8" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "fan_speed_enum" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "eco" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "drying" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "cleaning" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_unit_convert" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_set" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_current" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "heat" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "light" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "countdown_left" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "sleep" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "health" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "windspeed" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode_ECO" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode_dry" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "windshake" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Fault" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Countdown" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "use_number" wird nicht verwaltet
[2026-07-18T23:59:11.550Z] [WARN] [tuya] Tuya-Funktion mit dem Code "total_time" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "electricity" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "electricity_number" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "unit" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "horizontal" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "vertical" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "swing3d" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "clean" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "type" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "fault2" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "current_mode" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "heat8" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_set" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_current" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "heat" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "light" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "countdown_left" wird nicht verwaltet
[2026-07-18T23:59:11.551Z] [WARN] [tuya] Tuya-Funktion mit dem Code "sleep" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "health" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "windspeed" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode_ECO" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode_dry" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "windshake" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Fault" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Countdown" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "use_number" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "total_time" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "electricity" wird nicht verwaltet
```[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "electricity_number" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "unit" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "horizontal" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "vertical" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "swing3d" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "clean" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "type" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "fault2" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "current_mode" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "heat8" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "child_lock" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "week_program_1" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "week_program_2" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "week_program_3" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "week_program_4" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "week_program_5" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "week_program_6" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "week_program_7" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "vacation_duration" wird nicht verwaltet
[2026-07-18T23:59:11.552Z] [WARN] [tuya] Tuya-Funktion mit dem Code "boost_duration" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "electricity_statistics" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "elec_statistics_day" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "elec_statistics_month" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "elec_statistics_year" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_current" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "average_power" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_correction" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "fault" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "air_pressure_index" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "support_features" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "window_check" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "window_state" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "window_keep_time" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_set" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_unit_convert" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "app_features" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "switch_diff" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "upper_temp" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "lower_temp" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "running_mode" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "night_led_config" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ecowatt_url" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "fan_speed_enum" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "eco" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "drying" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "cleaning" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_unit_convert" wird nicht verwaltet
[2026-07-18T23:59:11.553Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_set" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_current" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "heat" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "light" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "countdown_left" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "sleep" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "health" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "windspeed" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode_ECO" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode_dry" wird nicht verwaltet
[2026-07-18T23:59:11.554Z] [WARN] [tuya] Tuya-Funktion mit dem Code "windshake" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Fault" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Countdown" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "use_number" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "total_time" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "electricity" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "electricity_number" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "unit" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "horizontal" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "vertical" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "swing3d" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "clean" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "type" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "fault2" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "current_mode" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "heat8" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "mode" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "temp_set" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "timer_switch" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "travel_switch" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "cur_mode" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "travel_time" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "week_data" wird nicht verwaltet
[2026-07-18T23:59:11.555Z] [WARN] [tuya] Tuya-Funktion mit dem Code "lock_switch" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "VoltageA" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "CurrentA" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ActivePowerA" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "PowerFactorA" wird nicht verwaltet[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ReactivePowerA" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "EnergyConsumedA" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "VoltageB" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "CurrentB" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ActivePowerB" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "PowerFactorB" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ReactivePowerB" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "EnergyConsumedB" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "VoltageC" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "CurrentC" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ActivePowerC" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "PowerFactorC" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ReactivePowerC" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "EnergyConsumedC" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "EnergyConsumed" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Current" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ActivePower" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ReactivePower" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Frequency" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "Temperature" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "DeviceStatus" wird nicht verwaltet
[2026-07-18T23:59:11.556Z] [WARN] [tuya] Tuya-Funktion mit dem Code "voltage_phase_seq" wird nicht verwaltet
[2026-07-18T23:59:12.193Z] [INFO] onScanRequest -> Tuya-Geräte werden entdeckt
[2026-07-18T23:59:12.333Z] [INFO] [tuya] 10 Tuya-Geräte gefunden
[2026-07-18T23:59:13.233Z] [INFO] [tuya] [Tuya][localScan] Start des vermittelten UDP-Broadcast-Scans für 10s
Jetzt versuchen wir, voranzukommen ^^
Zu beachten ist, dass ich für den Test deine Entwicklungszweige verwendet habe, die ich lokal im Entwicklungsmodus (ohne Container) gestartet habe.
Nach einigen Problemen mit:
- dem Manifest (Beschreibung auf Englisch/Französisch zu lang, Fable sagt, dass es nicht erklärt ist)
- der Integration des SDK konnte ich das Tuya-Bild von meinem Zweig
test-e2e-sdk-pr5herunterladen:ghcr.io/terdious/gladys-tuya:dev
Ich habe nichts im Entdeckungsmenü. Aber in den Protokollen denke ich, das Problem zu sehen:
2026-07-19T01:54:32+0200 <debug> externalIntegration.saveStatus.js:15 (ExternalIntegration.saveStatus) Externe Integration ext-dev-tuya: Status LAUFEND
2026-07-19T01:54:32+0200 <debug> gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: nicht verbunden. Weiterleitung des Ereignisses verhindern.
2026-07-19T01:54:33+0200 <info> externalIntegration.integrationConnected.js:19 (ExternalIntegration.integrationConnected) Externe Integration ext-dev-tuya verbunden über Websocket
2026-07-19T01:54:33+0200 <debug> externalIntegration.saveStatus.js:15 (ExternalIntegration.saveStatus) Externe Integration ext-dev-tuya: Status RUNNING
2026-07-19T01:54:33+0200 <debug> gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: nicht verbunden. Weiterleitung des Ereignisses verhindern.
2026-07-19T01:55:00+0200 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Überprüfung der Kalenderauslöser am Sa, 18. Jul 2026 23:55:00 GMT
2026-07-19T01:55:13+0200 <debug> lan-manager.scanPresence.js:25 (LANManager.scanPresence) LANManager: 0 Anwesenheitssensor-Features
2026-07-19T01:56:00+0200 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Überprüfung der Kalenderauslöser am Sa, 18. Jul 2026 23:56:00 GMT
2026-07-19T01:57:00+0200 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Überprüfung der Kalenderauslöser am Sa, 18. Jul 2026 23:57:00 GMT
2026-07-19T01:57:13+0200 <debug> lan-manager.scanPresence.js:25 (LANManager.scanPresence) LANManager: 0 Anwesenheitssensor-Features
2026-07-19T01:58:00+0200 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Überprüfung der Kalenderauslöser am Sa, 18. Jul 2026 23:58:00 GMT
2026-07-19T01:58:40+0200 <debug> errorMiddleware.js:26 (errorMiddleware) BadParameters [Error]: devices[0].poll_frequency: ungültige Polling-Häufigkeit
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/lib/external-integration/externalIntegration.setDiscoveredDevices.js:43:13
at Array.map (<anonymous>)
at ExternalIntegration.setDiscoveredDevices (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/lib/external-integration/externalIntegration.setDiscoveredDevices.js:32:37)
at publishDiscoveredDevices (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/controllers/integrationHost.controller.js:64:46)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:26
From previous event:
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:18
at Layer.handle [as handle_request] (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/layer.js:95:5)
at next (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/route.js:144:13)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/externalIntegrationAuthMiddleware.js:30:5
2026-07-19T01:59:00+0200 <debug> scene.checkCalendarTriggers.js:25 (SceneManager.checkCalendarTriggers) Überprüfung der Kalenderauslöser am Sa, 18. Jul 2026 23:59:00 GMT
2026-07-19T01:59:02+0200 <debug> errorMiddleware.js:26 (errorMiddleware) ConflictError: EXTERNAL_INTEGRATION_SCAN_ALREADY_RUNNING
at ExternalIntegration.runNetworkDiscoveryScan (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/lib/external-integration/networkDiscovery/networkDiscovery.runScan.js:47:11)
at networkDiscoveryScan (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/controllers/integrationHost.controller.js:104:54)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:26
From previous event:
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:18
at Layer.handle [as handle_request] (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/layer.js:95:5)
at next (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/route.js:144:13)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/externalIntegrationAuthMiddleware.js:30:5
2026-07-19T01:59:02+0200 <debug> errorMiddleware.js:26 (errorMiddleware) BadParameters [Error]: devices[0].poll_frequency: ungültige Polling-Häufigkeit
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/lib/external-integration/externalIntegration.setDiscoveredDevices.js:43:13
at Array.map (<anonymous>)
at ExternalIntegration.setDiscoveredDevices (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/lib/external-integration/externalIntegration.setDiscoveredDevices.js:32:37)
at publishDiscoveredDevices (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/controllers/integrationHost.controller.js:64:46)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:26
From previous event:
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/asyncMiddleware.js:4:18
at Layer.handle [as handle_request] (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/layer.js:95:5)
at next (/home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/node_modules/express/lib/router/route.js:144:13)
at /home/gladys/GladysDev/gladys-external-integration-test/Gladys/server/api/middlewares/externalIntegrationAuthMiddleware.js:30:5
Nach den Korrekturen funktioniert es
![]()
Aber es gibt keinen lokalen Modus, da die IP-Adresse im Gerät sowie die Protokollversion angegeben werden müssen (die Core-Version von Tuya scannt die verschiedenen Protokolle, um das richtige zu bestimmen, sobald die IP eingegeben wurde):
Aber es funktioniert nur halbwegs im Moment (Befehle OK, Statusrückmeldungen nicht OK).
Es bleibt noch zu tun ^^
Einige Anmerkungen:
-
soweit ich nicht falsch liege, wäre es in der Entwicklung möglich, das Bild einfacher zu aktualisieren, insbesondere wenn sich das Manifest nicht ändert?
Und wenn man auf einem Entwicklungs-Tag ist, wäre es nicht möglich, das Manifest direkt von der Konfiguration aus zu ändern. -
Man kann die externen Integrationen nicht zu Favoriten hinzufügen
-
Die externen Integrationen zu filtern wäre super













