Neue Version des SDK, v0.8.0 mit einem neuen Feld « section » und obligatorischem Link zur Dokumentation auf der Integrationsseite
Edit: Vorlage für die v0.8.0 aktualisiert
Neue Version des SDK, v0.8.0 mit einem neuen Feld « section » und obligatorischem Link zur Dokumentation auf der Integrationsseite
Edit: Vorlage für die v0.8.0 aktualisiert
Achtung, der Store wurde aktualisiert und ist jetzt strenger, es ist jetzt eine verpflichtende Dokumentation in den Integrationen erforderlich ![]()
Denkt daran, auszuführen:
npx github:GladysAssistant/integration-store
Um zu überprüfen, ob eure Integration die Validierung besteht, und euer Repo bei Bedarf zu korrigieren
(gebt diese Nachricht an Claude weiter)
Neue Version des SDK: v0.9.0!
Neuigkeiten:
Ok, ich habe den PR von Gladys mit 3 Änderungen aktualisiert:
1. Banner „Ihr Gerät ist nicht in der Liste?“ — es hebt nun Matter und die externen Integrationen der Community hervor: „jeder kann eine erstellen und sie im Store veröffentlichen, dann erscheint sie in dieser Liste“,
2. Ankündigung der Deprecation von Tuya, MELCloud, Telegram und Netatmo — ich habe beide gemacht, damit es keine Missverständnisse gibt:
deprecated in den JSON-Dateien der Integrationen, gerendert in IntegrationTags);DeprecationWarning): „wird bald zugunsten einer äquivalenten externen Integration veraltet sein… beide Versionen werden während des Übergangs im Katalog koexistieren — Sie können diese weiterhin für den Moment verwenden“.3. Authentifizierungsfehler beim Neustart (close code 4000) — Diagnose bestätigt, und es war sogar schlimmer: ohne die Umgebungsvariable JWT_SECRET wird das Geheimnis bei jedem Boot von Gladys neu generiert, und da start() den bestehenden Container mit dem in seiner Umgebung eingefrorenen JWT-Token neu startet (signiert mit dem alten Geheimnis), schlingerte die Integration in der Ablehnung ohne sich jemals zu reparieren. Zwei Korrekturen:
EXTERNAL_INTEGRATION_JWT_SECRET) persistiert — es überlebt Neustarts und Wiederherstellungen aus Backups, in Übereinstimmung mit den Containern, die er validiert;start(): Bevor ein bestehender Container neu gestartet wird, prüft verifyContainerToken den Token seiner Umgebung (Signatur mit dem aktuellen Geheimnis + guter Dienst + gute token_version); wenn er abgelaufen ist, wird der Container mit einem frischen Token neu erstellt, anstatt sinnlos neu gestartet zu werden. Das repariert auch beim nächsten Boot die Container, die vor diesem Fix erstellt wurden.Für Info @cicoub13 @Terdious @Lokkye:
[
{
"store_slug": "callemand/gladys-airzone-cloud",
"level": "error",
"reason": "docker_image: image is not publicly pullable (registry auth denied, HTTP 403)",
"checked_at": "2026-07-23T15:30:08.198Z"
},
{
"store_slug": "cicoub13/gladys-tp-link",
"level": "error",
"reason": "docs/en.md: file not found — user documentation is mandatory",
"checked_at": "2026-07-23T15:30:08.198Z"
},
{
"store_slug": "Terdious/gladys-netatmo",
"level": "error",
"reason": "docs/en.md: file not found — user documentation is mandatory",
"checked_at": "2026-07-23T15:30:08.198Z"
},
{
"store_slug": "Terdious/gladys-tuya",
"level": "error",
"reason": "docs/en.md: file not found — user documentation is mandatory",
"checked_at": "2026-07-23T15:30:08.198Z"
}
]
Quelle: https://integration-store-storage.gladysassistant.com/rejected.json
Ich muss sagen, ich bin beeindruckt von der Geschwindigkeit, mit der dieses neue System bereitgestellt wurde, der Anzahl der bereits verfügbaren Integrationen und der Einfachheit auf allen Ebenen:
Natürlich wäre dies in diesem Tempo ohne KI unmöglich gewesen. Aber die Entscheidungsträger (@pierre-gilles) und die Prompter haben viel dazu beigetragen!!
Die kommenden Monate versprechen viel auf diesem Gebiet ^^
@pierre-gilles wie läuft die Sicherung der externen Integrationen, wenn man z. B. den PC wechseln möchte?
Ich werde auch Empfehlungen für die Auswahl der Docker-Images hinzufügen, um die Verwendung großer Images zu vermeiden. Vorzugsweise Alpine, das extrem leicht und sehr für unseren Fall verwendet wird.
Das bringt mich zu einer weiteren Frage. Sollte Gladys nicht auch überprüfen, ob das verwendete Image nicht zu alt oder anfällig für Sicherheitslücken ist? Einfach eine Information, bevor die Integration installiert wird.
Man kann auch die Größe des Images hinzufügen.
Danke @Terdious für alle deine Entwicklungen, tatsächlich bin ich auch sehr beeindruckt von der Entwicklungsgeschwindigkeit, die wir erreichen können, das ist verrückt, das wird das Projekt revolutionieren ![]()
Dieses Wochenende war ich im Gebirge ohne Netzwerk, und trotzdem konnten 13 Integrationen auf dem Store veröffentlicht werden, undenkbar im alten Integrationssystem ^^
Das ist cool, wir werden mit einem bereits gefüllten Store beginnen!
Die Installationen werden automatisch neu installiert, da alle Daten nur in der Datenbank gespeichert sind ![]()
Hier ist der genaue Ablauf, erklärt von Claude:
Was in der Sicherung enthalten ist. Das Gladys Plus-Backup ist ein tar.gz-Archiv, das die SQLite-Datenbank (+ den DuckDB-Ordner) enthält — und alles, was eine externe Integration definiert, ist in der Datenbank: die Zeile t_service (Docker-Image, Manifest, store_slug, Version, token_version, Status), die Konfiguration (variablen, die auf den Dienst beschränkt sind, einschließlich der Geheimnisse und OAuth-Tokens), die Geräte, die zugewiesenen Materialklassen, die Kontaktprofile und das JWT-Geheimnis des Supervisors (EXTERNAL_INTEGRATION_JWT_SECRET, das als Variable gespeichert wird, um Überlebensfähigkeit nach Wiederherstellungen zu gewährleisten).
Was beim Start auf dem neuen Gerät passiert.
init() versöhnt die Container über Docker-Labels — der Codekommentar zitiert genau den Wiederherstellungsfall: die container_id in der Datenbank sind veraltet; da auf dem neuen PC keine Container existieren, werden sie auf null gesetzt (externalIntegration.init.js:70-84).start() gibt es keine container_id → createIntegrationContainer: das Docker-Image wird erneut vom Register heruntergeladen, ein neuer Container wird mit einem frisch signierten JWT erstellt (gültig, da das Geheimnis und die token_version aus der wiederhergestellten Datenbank stammen), das private Netzwerk und die Subcontainer werden neu erstellt, und die Konfiguration wird nach dem Verbinden mit der Integration zurückgeschoben.Die beiden Grenzen, die man kennen sollte.
/data wird nicht gesichert. Jede Integration hat eine Bindung <base>/external-integrations/<selector> → /data (und die Volumes der Subcontainer leben darunter). Die Doktrin besagt, dass Integrationen zustandslos sein sollten (die Zustände leben in Gladys), daher sollte das in der Praxis nichts kaputt machen — aber eine Integration, die dort einen lokalen Zustand speichert (oder einen Subcontainer wie einen Broker mit Persistenz), startet von vorne. Wenn wir das eines Tages abdecken wollen, müssten wir diesen Ordner in das Backup einbeziehen, mit der Frage der Größe, die zu klären ist.Gut beobachtet! Ich korrigiere das.
Das ist der Fall des Standard-Templates, ich empfehle das Node-Alpine-Image, das super leicht ist ![]()
Ich denke, dass für eine V1 die aktuelle Vorschlag ausreichend ist.
Wenn ein Benutzer technisch versiert genug ist, um nach dieser Art von Informationen zu suchen, wird er sie bereits im GitHub-Repository der Integration finden, das referenziert ist.
Ich denke auch, dass man zu technische Details vermeiden sollte. Das Ziel von Gladys ist es, ein sauberes Produkt anzubieten, das für die breite Öffentlichkeit zugänglich ist, mit möglichst wenig Fachjargon.
Die externen Integrationen wurden genau dafür konzipiert, transparent zu sein: der Benutzer hat kaum das Gefühl, dass ein externer Container ausgeführt wird. Das Erlebnis ist absichtlich sehr ähnlich dem der nativen Gladys-Integrationen heute ![]()
Ich komme heute super schnell voran! ![]()
Ich habe bereits auf den master-Branch des Gladys-Repositorys gemerged:
Danach habe ich ein neues Entwicklungsimage veröffentlicht:
gladysassistant/gladys:dev
Ich habe es auf meiner Produktionsinstanz bereitgestellt. Ich habe bereits meine MelCloud-Integration auf das neue System migriert und arbeite daran, dasselbe für Telegram zu tun.
Das Ziel ist es, das Ganze einige Tage unter realen Bedingungen zu testen. Wenn alles gut läuft, wird die Funktion diese Woche veröffentlicht.
Ich bin ziemlich zuversichtlich, bisher läuft alles super!
![]()
Ich werde dieses Bild auf X teilen
Super, ich bin total begeistert von den externen Integrationen bei mir!!
Ich denke, ich werde am Donnerstagabend eine Veröffentlichung machen! ![]()
Schon 20 externe Integrationen! ![]()
Wenn man bedenkt, dass wir in 6 Jahren Gladys v4 nur 36 interne Integrationen hatten, ist das schon ein unglaubliches Tempo. Und ich denke, es wird sich nur noch beschleunigen, je mehr wir neue Entwickler überzeugen, beizutragen.
Ich glaube, wir haben wirklich etwas Großartiges! ![]()
Release MORGEN ABEND ![]()
Also, ich konnte nicht anders, als die Release Notes 4.84.0 im Blog zu lesen, und das ist einfach der Hammer ![]()
Kleine Frage zu den internen Integrationen, die jetzt auch extern existieren und parallel weiterlaufen: Gibt es oder wird es ein Tool zum „automatischen Umschalten“ von intern auf extern geben?
Zum Beispiel bei Telegram: Meine Infos sind intern, ich klicke auf einen Button und alles wird extern und das interne wird deaktiviert? (Oh ja, ich bin faul!!
)
Hallo @mutmut! Danke für deine Nachricht! ![]()
Nein, es gibt keine automatische Umstellung. Aber ich beruhige dich, es ist wirklich sehr einfach:
Du gehst in die aktuelle Telegram-Integration, kopierst deinen Token, deaktivierst die Integration, installierst dann die neue externe Integration, fügst deinen Token ein und folgst dem Pairing-Prozess. ![]()
Ich gebe zu, dass ich es vorziehe, dass ihr (die Power-User von Gladys) den „klassischen“ Installationsprozess durchlauft, den später alle Nutzer folgen werden. So können wir echte Erfahrungen mit der Installation externer Integrationen sammeln und den Prozess bei Bedarf verbessern. ![]()