🚀 Matter & Gladys Assistant: Los geht’s!

Ich verwende ihr Plugin matterbridge-example-dynamic-platform nicht, es ist wirklich praktisch, es generiert Dutzende GerÀte aller vorhandenen Typen, das ermöglicht es, viele GerÀte zu testen!

Ich habe ein Bild gepusht, um einen kleinen Bug zu beheben. In einigen FÀllen hatte ich GerÀte mit leeren deviceData, was die Integration kaputt gemacht hat :slight_smile:

Allerdings kann ich die Steckdosen in Matterbridge gut steuern, also gute Nachricht, alles funktioniert!

Es ist nur das GerĂ€t « CookTop Â», das ich nicht steuern kann, aber ich frage mich, ob es nicht einfach nur ein Sensor ist


Ach, ich glaube, ich habe es verstanden:

Da es sich um Kochfelder handelt, können sie nur auf AUS gesteuert werden, nicht auf EIN (was sehr gefÀhrlich wÀre!). Das ermöglicht es, sie nur aus der Ferne auszuschalten :slight_smile:

Okay, etwas Neues zu implementieren, aha, aber gut, ich glaube nicht, dass es so viele GerĂ€te auf dem Markt dafĂŒr gibt, also ist es nicht meine PrioritĂ€t.

Heute fĂŒge ich die Steuerung von 2 unverzichtbaren Funktionen hinzu: Helligkeits- und Farbsteuerung fĂŒr Smart-Birnen :rocket:

Ich teste das alles in der Praxis mit der hervorragenden Birne Nanoleaft Matter Thread E27 :

Ich habe gerade ein neues Bild mit Farb- und Helligkeitssteuerung fĂŒr die Lampen veröffentlicht :slight_smile:

Ich habe gerade ein neues Bild mit der Verwaltung der Feuchtigkeitssensoren :droplet: veröffentlicht.

Ich habe gerade ein neues Bild mit der Verwaltung der Thermostate (Heizung + Klimaanlage) veröffentlicht. Bisher verwaltet es die Ziel-Temperatur sowie das Ein- und Ausschalten :fire:

Man kann dich nicht mehr aufhalten! :grinning_face:

eine Maschine unser @pierre-gilles :grin:

Einige Testberichte

Eine ausgezeichnete Funktion! Ich sehe die Nummern der Endpoint in den Namen der hinzuzufĂŒgenden GerĂ€te und der hinzugefĂŒgten.

Allerdings habe ich gerade das Somfy-Plugin in matterbridge gelöscht und die gepaarten GerÀte sind immer noch vorhanden :thinking:
Danach habe ich das Plugin neu installiert und habe nun neue Endpoint-Nummern, ABER Gladys hat die alten Nummern fĂŒr die gepaarten GerĂ€te beibehalten.
Ich habe das Hoch/Runter getestet und es funktioniert nicht.

Ich habe diesen matterbridge stillgelegt, die gepaarten Somfy-GerÀte sind tatsÀchlich verschwunden.

Ich habe matterbidge hinzugefĂŒgt und die Somfy-GerĂ€te sind wieder aufgetaucht, mit ihren neuen Endpoints, und meine gesicherten GerĂ€te sind nicht mehr mit etwas verbunden :(, ich muss sie löschen und alles neu machen.

Soweit ich sehen konnte (mit dem Somfy-Plugin), Ă€ndern sich die Endpoint-Nummern bei jeder Neuinstallation, wie du sagst, aber die serialNumber und uniqueId sind jedes Mal identisch. Ich weiß nicht, ob das ein Ansatz sein könnte.

Es sollte auch einen Spinner geben, wenn man ein GerĂ€t stilllegt, denn das Stilllegen eines matterbridge kann Zeit in Anspruch nehmen und man weiß nicht, ob es lĂ€uft oder nicht.

Ja, die gepaarten GerÀte verschwinden nicht, selbst wenn du sie auf der Matterbridge-Seite löschst. So funktioniert Matter.

Genauso, wenn mein Eve Energy Smart Stecker nicht erreichbar ist, bleibt er ĂŒberall sichtbar (z. B. auf meinem iPhone bleibt er in Homekit).

In diesem Fall kommt dieses Verhalten von Matter und nicht von Gladys.

Ja, leider kann man, da das Plugin die Endpoint-Nummern Ă€ndert, keine Übereinstimmung zwischen der alten und der neuen herstellen.

Allerdings könnte man im Extremfall eine „Keine Antwort“-Meldung auf der alten anzeigen, so wie es iOS zum Beispiel macht:

Das reicht leider nicht aus, die uniqueId gehört zum „Eltern“-GerĂ€t von Matter, und in diesem GerĂ€t kann ich mehrere „Child_Devices“ mit jeweils einer Liste von Funktionen haben.

Es gibt keinen Identifikator darunter, der sich nicht Àndert.

Ich wÀre neugierig zu sehen, was auf einem anderen Matter-Controller passiert. Könntest du das gleiche Verhalten auf iOS oder Google Home testen?

Gut beobachtet! Ich werde das hinzufĂŒgen :slight_smile:

Ich habe mehrere Versuche unternommen, indem ich ĂŒber Matterbridge von „bridge“ zu „childbridge“ gewechselt bin. Ja, natĂŒrlich Ă€ndert sich der Endpunkt, aber die Endpunkte der Funktionen sind immer in der gleichen Reihenfolge, also der Endpunkt des GerĂ€ts + 1 usw. Daher solltest du sie eigentlich wieder zusammenpaaren können, aber auf eine andere Art und Weise.
FĂŒr mich bleibt es dabei, dass:

  • die node_id ein Parameter ist => der sich Ă€ndern kann
  • der Endpunkt ein Parameter ist => der sich Ă€ndern kann.

Wenn du fĂŒr die external_id folgendes nimmst:

  • GerĂ€t => die Seriennummer, falls verfĂŒgbar, oder die unique_id, falls verfĂŒgbar, oder etwas anderes 
 (falls nichts anderes verfĂŒgbar ist, musst du darauf hinweisen, dass die historischen Daten bei einer erneuten Paarung verloren gehen können)
  • Funktionen => external_id des GerĂ€ts + « -1 Â» fĂŒr den ersten Endpunkt des GerĂ€ts, « -2 Â» fĂŒr den zweiten usw.

Normalerweise gibt es keinen Grund, warum du sie nicht wieder zuordnen könntest, und du aktualisierst die Parameter « node_id Â» und « endpoint Â» fĂŒr jedes der GerĂ€te


Du stĂŒtzt dich auf die Nutzung von Matterbridge, sie machen ihr eigenes Ding intern, aber das ist nicht reprĂ€sentativ fĂŒr das Matter-Protokoll als Ganzes, das reicht nicht aus, um Schlussfolgerungen zu ziehen :slight_smile:

Ich glaube nicht, dass der von dir vorgeschlagene Ansatz dem Matter-Standard entspricht, und ich habe noch keine andere Implementierung im Matter-Ökosystem gesehen, die auf diese Weise funktioniert.

Das heißt aber nicht, dass du in einem Punkt recht hast: Man könnte dem Benutzer vorschlagen, ein neues GerĂ€t mit einem alten zu verknĂŒpfen, vorausgesetzt, beide haben genau dieselben Funktionen in derselben Reihenfolge.

Aber das ist nicht immer möglich, denn:

  • Ein physisches GerĂ€t kann Updates erhalten und im Laufe der Weiterentwicklung des Protokolls neue Funktionen anbieten.
  • Im Fall von Matterbridge kann die Software selbst weiterentwickelt werden und bereits integrierten GerĂ€ten neue Funktionen hinzufĂŒgen.

Ich werde das Thema trotzdem vertiefen, um zu sehen, wie Apple oder Google diesen Fall handhaben. Mein Ziel bleibt es, den Matter-Standard so streng wie möglich einzuhalten.

@Terdious ich habe einen Matching-Ansatz (zum Ersetzen von GerÀten) auf Basis des eindeutigen Paares unique_id + Position getestet, aber das Risiko besteht wirklich darin, ein GerÀt in ein anderes GerÀt zu verschmelzen. Ich habe nichts in der Spezifikation gesehen, das diese Funktionsweise garantiert.

Solange es sich nur um ein Matching zum Ersetzen handelt, stört es mich weniger. Bei der external_id behalten wir den aktuellen Ansatz, der der offizielle Ansatz ist.

Das wÀre super, die Info in Echtzeit zu haben!

Eine Idee dazu: Was hÀltst du von einem Button, mit dem man ein GerÀt automatisch dekommissionieren und neu paaren könnte? WÀre das machbar?
Das wĂŒrde ein Refresh der gepaarten GerĂ€te ermöglichen. Das könnte dann nur ĂŒber Matterbridge verfĂŒgbar sein, nicht unbedingt fĂŒr einzelne GerĂ€te wie deine aktuellen (da ich keinen Sinn darin sehe).

Nein, nicht wirklich, denn in diesem Fall gibt es keine eindeutige Kennung auf dieser Ebene.

(Und ich sehe euch schon kommen, nein, « VendorID Â» und « ProductID Â» sind keine eindeutigen Kennungen :stuck_out_tongue: )

Im Fall von Matterbridge ist die eindeutige Kennung auf Ebene des Child-GerÀts, das ein GerÀt darstellt, daher kann ich dem Benutzer ein Matching auf dieser Ebene vorschlagen! Ich denke, das wird nicht perfekt funktionieren, aber es ist besser als nichts


Ich nutze die Gelegenheit, um dich daran zu erinnern :slight_smile:

HinzufĂŒgen eines Spinners wĂ€hrend des Decommissionings:

HinzufĂŒgen eines Badges fĂŒr getrennte Knoten:

Und mit einem ping6, denkst du, dass das fĂŒr Tests besser funktionieren wĂŒrde, anstatt das inet6 der Netzwerkschnittstelle zu ĂŒberprĂŒfen?
Wenn ich IPv6 auf dem Syno deaktiviere, verschwindet tatsĂ€chlich inet6 beim ifconfig auf dem Syno (nicht im Terminal des Docker-Gladys, ich kann es nicht ĂŒberprĂŒfen, da keine Netzwerkbefehl installiert ist).

Also habe ich wirklich Dinge, die ich nicht mehr verstehe :frowning: und die meine Docker/Netzwerk-Kenntnisse ĂŒbersteigen.
Auf meinem Syno habe ich also IPv6 im Netzwerk aktiviert:


meine Docker-Container (einschließlich Gladys) laufen im Host-Modus und IPv6 scheint nicht aktiv zu sein:

und trotzdem sieht matterbridge IPv6 und es ist die IPv6 des Syno selbst (normal, da host) :thinking:

@Terdious @pierre-gilles Docker auf PC/MAC oder NAS?

Du machst das gut!! (allerdings habe ich kein Google Home)

Also, ich habe gerade auf iOS getestet:

  • Erstellung eines Zuhauses in der Haus-App
  • Pairing mit Matterbridge ĂŒber QR-Code: OK
  • Automatische Erkennung der Somfy-GerĂ€te und HinzufĂŒgen zu Haus in verschiedenen RĂ€umen und Erstellung einer Open/Close-Szene
  • Tests zum Hoch- und Runterfahren: OK (ich finde die Steuerung der Slider nicht so gut)
  • Test der Szene: OK
  • Deaktivierung des Somfy-Plugins in Matterbridge: ALLE GerĂ€te (gespeichert) verschwinden aus Haus sowie die zugehörige Szene
  • Reaktivierung des Plugins: ALLE Somfy-GerĂ€te erscheinen wieder und werden alle in einem einzigen Raum standardmĂ€ĂŸig (Garage) platziert, aber die Szene ist nicht zurĂŒckgekehrt
  • Test Open/Close: OK
  • Löschen des Somfy-Plugins in Matterbridge: ALLE GerĂ€te (gespeichert) verschwinden aus Haus
  • Neuinstallation des Somfy-Plugins (also neuer Endpunkt): ALLE Somfy-GerĂ€te erscheinen wieder und werden alle in einem einzigen Raum standardmĂ€ĂŸig (Garage) platziert
  • Test Open/Close: OK

Interessanterweise hat das matterbridge-somfy-Plugin die alten Endpunkte „wiedergefunden“ und scheint sie mit den neuen abzugleichen:


Ich dekommissioniere und fĂŒge Matterbridge in Gladys wieder hinzu: Die Namen behalten die alten Endpunkte, aber es scheint, dass eine Synchronisation stattgefunden hat, da mein Testrollo (Wohnzimmer PF) mich auffordert, einen Raum zum Speichern auszuwĂ€hlen, obwohl ich „Haus“ angegeben hatte. Allerdings funktioniert das Öffnen/Schließen nicht.
Ich dekommissioniere erneut und fĂŒge es wieder hinzu
 nun, ich versuche es, aber es funktioniert nicht mehr :frowning:
image

Ich verwende nicht genau ifconfig, ich verwende in Node.js das Core-Modul os:

Ich mache:

const interfaces = os.networkInterfaces()

Das gibt mir etwas in dieser Art zurĂŒck:

{
  lo: [
    {
      address: '127.0.0.1',
      netmask: '255.0.0.0',
      family: 'IPv4',
      mac: '00:00:00:00:00:00',
      internal: true,
      cidr: '127.0.0.1/8'
    },
    {
      address: '::1',
      netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
      family: 'IPv6',
      mac: '00:00:00:00:00:00',
      scopeid: 0,
      internal: true,
      cidr: '::1/128'
    }
  ],
  eth0: [
    {
      address: '192.168.1.108',
      netmask: '255.255.255.0',
      family: 'IPv4',
      mac: '01:02:03:0a:0b:0c',
      internal: false,
      cidr: '192.168.1.108/24'
    },
    {
      address: 'fe80::a00:27ff:fe4e:66a1',
      netmask: 'ffff:ffff:ffff:ffff::',
      family: 'IPv6',
      mac: '01:02:03:0a:0b:0c',
      scopeid: 1,
      internal: false,
      cidr: 'fe80::a00:27ff:fe4e:66a1/64'
    }
  ]
}

Dann schaue ich, ob IPv6-Adressen verfĂŒgbar sind :slight_smile:

Normalerweise, wenn du keine IPv6-Schnittstellen mehr hast, sollte das auch auf Gladys-Seite verschwinden.

Wenn du das Ergebnis des Befehls bei dir sehen möchtest, kannst du den Inspektor deines Browsers öffnen und diese Anfrage auswÀhlen:

Ich bin mir nicht sicher, ob ich die Frage verstehe? Ich entwickle auf einem Mac und mein Gladys lÀuft auf einem Beelink mini S12 Pro :slight_smile:

Danke fĂŒr den Test! :slight_smile:

Okay, das habe ich vermutet, iOS behĂ€lt keine Spur der GerĂ€te und macht daher kein Matching alt ↔ neu, es löscht alles. Das finde ich etwas brutal :sweat_smile: Aber im Moment gibt es auf diesen Plattformen keine Historie (keine grafische Ansicht), also kĂŒmmern sie sich nicht so sehr um Legacy, was nicht unser Fall ist.

Übrigens, ich hatte meine Verbesserungen von heute Morgen noch nicht gepusht, also hast du die Version von Samstagabend getestet :stuck_out_tongue:

Ich habe gerade ein neues Docker-Build gepusht, dieses Mal mit automatischem Matching basierend auf dem Paar « UNIQUE_ID + Position Â» (eine unvollkommene Lösung, wie ich betone, aber « gut genug Â»)

Trotzdem solltest du es immer noch in der Liste unter « Einstellungen Â» sehen, oder? Das Decommissioning hat nicht funktioniert