Matter - Enphase mit der Plugin-Fabrik Matterbridge

Hallo,

Ich habe Solarpaneele mit Enphase-Ausrüstung ohne Batterie und möchte an der Integration teilnehmen. Derzeit habe ich folgende Rückmeldungen.

Dort gibt es die Werte von „Grid Consumption“, die ich in meiner App und in HA nicht finde.
Kann mir jemand erklären, was ich ausgeben muss? Ist das die Tabelle „Mapping Matter“ im GitHub-Issue? ([PLUGIN REQUEST] Enphase Envoy · Issue #31 · GladysAssistant/matterbridge-ai-plugin-factory · GitHub)

In Matterbridge hast du eine andere Ansicht des Geräts, mit der du die Matter-Cluster anzeigen kannst, die vom Plugin bereitgestellt werden. Kannst du uns einen Screenshot dieser Ansicht zeigen?

@pierre-gilles Meinst du diese Ansicht?

Nein, es gibt eine genauere Ansicht, in der du alle verfügbaren Cluster siehst.

Ansonsten kannst du auf Gladys-Seite die JSON-Datei der Matter-Knoten herunterladen und das gibt uns dieselbe Liste :slight_smile:

Ich habe dir die JSON-Datei per PN geschickt.

Danke für die Datei!

Hier ist, was Matterbridge anbietet: die von Gladys verwalteten Cluster und diejenigen, die Gladys derzeit nicht verwaltet:

Bereits von Gladys verwaltete Cluster (in der Datei enthalten)

  • OnOff — Steckdosen (#2, #3)
  • BooleanState — Kontakt (#31)
  • TemperatureMeasurement — Temperatur (#30)
  • ElectricalPowerMeasurement / ElectricalEnergyMeasurement — Energie (#28, #29)
  • PowerSource — Batterie/Stromversorgung (#28)
  • BridgedDeviceBasicInformation — Metadaten der gebridgten Geräte

Nicht verwaltete Cluster

  1. PowerTopology (#28, #29)
    Beschreibt, wie Energie zwischen Endpunkten fließt (elektrische Topologie). Keine Zuordnung zu Gladys heute.
  2. DeviceEnergyManagement (#28)
    Verwaltung des Energieverbrauchs des Geräts (Leistungsbegrenzung usw.). Keine Zuordnung zu Gladys.
  3. DeviceEnergyManagementMode (#28)
    Energiemanagement-Modi, abgeleitet vom Basis-Modus-Cluster. Keine Zuordnung zu Gladys.

Diese drei Cluster betreffen hauptsächlich das Solarmodul (#28) und teilweise den Stromsensor (#29). Die Hauptmessungen (Leistung, kumulierte Energie) werden bereits über die Cluster ElectricalPowerMeasurement und ElectricalEnergyMeasurement übertragen, die bereits unterstützt werden.

Hier sind die Geräte, die ich in Gladys habe.

Ich habe nichts anderes.

Zur Info: Ich kann den Raum „Haus“ nicht auswählen und habe nur diesen einen.

Wie kann ich dir helfen?

Seltsam, bist du in der letzten Version von Gladys?

Kannst du die Logs von Gladys herunterladen und sie mir per PN schicken?

Ich glaube, du hast keine Räume auf deiner Instanz erstellt, du musst welche in „Einstellungen“ → „Haus“ erstellen.

Ich habe Version 4.81.0.

Erledigt.

Ja, das stimmt :slight_smile:

Danke für die Logs, es gibt einen sehr klaren Fehler in den Logs, jetzt müssen wir sehen, ob das vom Plugin, von Gladys oder von Matter.js kommt:

[2m2026-07-08 20:56:15.582 WARN   �[0;1;90mExchangeManager      �[0;35m@1:1•81e2⇵5aac✉07bb95bf �[33mUnhandled error handling incoming message: �[31mCannot mix BigInt and other types, use explicit conversions
2026-07-08T18:56:15.732854580Z   �[2;39mat �[0m/src/server/services/matter/lib/matter.listenToStateChange.js�[2m:432:75
2026-07-08T18:56:15.732867500Z   at �[0m/src/server/services/matter/node_modules/@project-chip/matter.js/src/cluster/client/AttributeClient.ts�[2m:182:45
2026-07-08T18:56:15.732878854Z   at �[0mArray.forEach�[2m (<anonymous>)
2026-07-08T18:56:15.732889471Z   bei �[0mSupportedAttributeClient.update�[2m (/src/server/services/matter/node_modules/@project-chip/matter.js/src/cluster/client/AttributeClient.ts:182:25)
2026-07-08T18:56:15.732900478Z   bei �[0mObject._triggerAttributeUpdate�[2m (/src/server/services/matter/node_modules/@project-chip/matter.js/src/cluster/client/ClusterClient.ts:281:52)
2026-07-08T18:56:15.732911584Z   bei �[0mPairedNode.#handleNodeChange�[2m (/src/server/services/matter/node_modules/@project-chip/matter.js/src/device/PairedNode.ts:665:58)
2026-07-08T18:56:15.732922415Z   bei �[0mBasicObservable.emit�[2m (/src/server/services/matter/node_modules/@matter/general/src/util/Observable.ts:309:26)
2026-07-08T18:56:15.732933134Z   bei �[0mCommissioningController.#handleNodeChange�[2m (/src/server/services/matter/node_modules/@project-chip/matter.js/src/CommissioningController.ts:848:23)
2026-07-08T18:56:15.732944033Z   bei �[0mBasicObservable.emit�[2m (/src/server/services/matter/node_modules/@matter/general/src/util/Observable.ts:309:26)
2026-07-08T18:56:15.732955065Z   bei �[0mChangeNotificationService.broadcastUpdate�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/integration/ChangeNotificationService.ts:51:22)
2026-07-08T18:56:15.732966012Z   bei �[0mClientBehaviorBacking.broadcastChanges�[2m (/src/server/services/matter/node_modules/@matter/node/src/behavior/internal/BehaviorBacking.ts:365:30)
2026-07-08T18:56:15.732977232Z   bei �[0mClientBehaviorBacking.broadcastChanges�[2m (/src/server/services/matter/node_modules/@matter/node/src/behavior/internal/ClientBehaviorBacking.ts:68:15)
2026-07-08T18:56:15.732988378Z   bei �[0mDatasourceImpl.integrateExternalChange�[2m (/src/server/services/matter/node_modules/@matter/node/src/behavior/state/managed/Datasource.ts:518:38)
2026-07-08T18:56:15.733034338Z   bei �[0mDatasourceCache.externalSet�[2m (/src/server/services/matter/node_modules/@matter/node/src/storage/client/DatasourceCache.ts:124:33)
2026-07-08T18:56:15.733044460Z   bei �[0mClientStructure.#updateCluster�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/client/ClientStructure.ts:487:29)
2026-07-08T18:56:15.733052594Z   bei �[0mClientStructure.#mutateAttribute�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/client/ClientStructure.ts:384:24)
2026-07-08T18:56:15.733060637Z   bei �[0mClientStructure.mutate�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/client/ClientStructure.ts:226:53)
2026-07-08T18:56:15.733068713Z   bei �[0mObject.updated�[2m (/src/server/services/matter/node_modules/@matter/node/src/behavior/system/network/NetworkClient.ts:144:38)
2026-07-08T18:56:15.733076645Z   bei �[0mObject.updated�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/client/ClientNodeInteraction.ts:107:21)
2026-07-08T18:56:15.733084570Z   bei �[0mClientSubscriptionHandler.#handleExchange�[2m (/src/server/services/matter/node_modules/@matter/protocol/src/action/client/subscription/ClientSubscriptionHandler.ts:124:21)
2026-07-08T18:56:15.733092852Z   bei �[0mClientSubscriptionHandler.onNewExchange�[2m (/src/server/services/matter/node_modules/@matter/protocol/src/action/client/subscription/ClientSubscriptionHandler.ts:49:13)
2026-07-08T18:56:15.733101026Z   bei �[0mInteractionServer.onNewExchange�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/server/InteractionServer.ts:193:20)
2026-07-08T18:56:15.733108956Z   bei �[0mExchangeManager.#onMessage�[2m (/src/server/services/matter/node_modules/@matter/protocol/src/protocol/ExchangeManager.ts:380:21)�[0m
2026-07-08T18:56:15.734395009Z 2026-07-08T20:56:15+0200 <info> device.newStateEvent.js:17 (DeviceManager.newStateEvent) DeviceFeature "matter:1:1:child_endpoint:28:144:power" nicht gefunden (oder nicht zu Gladys hinzugefügt), Überspringen des Zustandsupdates.
2026-07-08T18:56:41.061019372Z �[2m2026-07-08 20:56:41.052 WARN   �[0;1;90mExchangeManager      �[0;35m@1:1•81e2⇵5aad✉07bb95c0 �[33mUnhandled error handling incoming message: �[31mCannot mix BigInt and other types, use explicit conversions
2026-07-08T18:56:41.061101575Z   �[2;39mat �[0m/src/server/services/matter/lib/matter.listenToStateChange.js�[2m:432:75
2026-07-08T18:56:41.061117520Z   bei �[0m/src/server/services/matter/node_modules/@project-chip/matter.js/src/cluster/client/AttributeClient.ts�[2m:182:45
2026-07-08T18:56:41.061131412Z   bei �[0mArray.forEach�[2m (<anonymous>)
2026-07-08T18:56:41.061144899Z   bei �[0mSupportedAttributeClient.update�[2m (/src/server/services/matter/node_modules/@project-chip/matter.js/src/cluster/client/AttributeClient.ts:182:25)
2026-07-08T18:56:41.061158676Z   bei �[0mObject._triggerAttributeUpdate�[2m (/src/server/services/matter/node_modules/@project-chip/matter.js/src/cluster/client/ClusterClient.ts:281:52)
2026-07-08T18:56:41.061171933Z   bei �[0mPairedNode.#handleNodeChange�[2m (/src/server/services/matter/node_modules/@project-chip/matter.js/src/device/PairedNode.ts:665:58)
2026-07-08T18:56:41.061229899Z   bei �[0mBasicObservable.emit�[2m (/src/server/services/matter/node_modules/@matter/general/src/util/Observable.ts:309:26)
2026-07-08T18:56:41.061245787Z   bei �[0mCommissioningController.#handleNodeChange�[2m (/src/server/services/matter/node_modules/@project-chip/matter.js/src/CommissioningController.ts:848:23)
2026-07-08T18:56:41.061259879Z   bei �[0mBasicObservable.emit�[2m (/src/server/services/matter/node_modules/@matter/general/src/util/Observable.ts:309:26)
2026-07-08T18:56:41.061272828Z   bei �[0mChangeNotificationService.broadcastUpdate�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/integration/ChangeNotificationService.ts:51:22)
2026-07-08T18:56:41.061286640Z   bei �[0mClientBehaviorBacking.broadcastChanges�[2m (/src/server/services/matter/node_modules/@matter/node/src/behavior/internal/BehaviorBacking.ts:365:30)
2026-07-08T18:56:41.061300162Z   bei �[0mClientBehaviorBacking.broadcastChanges�[2m (/src/server/services/matter/node_modules/@matter/node/src/behavior/internal/ClientBehaviorBacking.ts:68:15)
2026-07-08T18:56:41.061313330Z   bei �[0mDatasourceImpl.integrateExternalChange�[2m (/src/server/services/matter/node_modules/@matter/node/src/behavior/state/managed/Datasource.ts:518:38)
2026-07-08T18:56:41.061330762Z   bei �[0mDatasourceCache.externalSet�[2m (/src/server/services/matter/node_modules/@matter/node/src/storage/client/DatasourceCache.ts:124:33)
2026-07-08T18:56:41.061344755Z   bei �[0mClientStructure.#updateCluster�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/client/ClientStructure.ts:487:29)
2026-07-08T18:56:41.061358118Z   bei �[0mClientStructure.#mutateAttribute�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/client/ClientStructure.ts:384:24)
2026-07-08T18:56:41.061371639Z   bei �[0mClientStructure.mutate�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/client/ClientStructure.ts:226:53)
2026-07-08T18:56:41.061385419Z   bei �[0mObject.updated�[2m (/src/server/services/matter/node_modules/@matter/node/src/behavior/system/network/NetworkClient.ts:144:38)
2026-07-08T18:56:41.061398858Z   bei �[0mObject.updated�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/client/ClientNodeInteraction.ts:107:21)
2026-07-08T18:56:41.061411726Z   bei �[0mClientSubscriptionHandler.#handleExchange�[2m (/src/server/services/matter/node_modules/@matter/protocol/src/action/client/subscription/ClientSubscriptionHandler.ts:124:21)
2026-07-08T18:56:41.061425323Z   bei �[0mClientSubscriptionHandler.onNewExchange�[2m (/src/server/services/matter/node_modules/@matter/protocol/src/action/client/subscription/ClientSubscriptionHandler.ts:49:13)
2026-07-08T18:56:41.061438864Z   bei �[0mInteractionServer.onNewExchange�[2m (/src/server/services/matter/node_modules/@matter/node/src/node/server/InteractionServer.ts:193:20)
2026-07-08T18:56:41.061451919Z   bei �[0mExchangeManager.#onMessage�[2m (/src/server/services/matter/node_modules/@matter/protocol/src/protocol/ExchangeManager.ts:380:21)�[0m

Ich habe ein Ticket erstellt:

Ok, danke. In der Zwischenzeit werde ich Matter-Plugins für MyRenault und Wallbox initialisieren, um mit etwas anderem voranzukommen :slight_smile:

@ArMour85 das war ein Bug von Gladys, dieser Bug ist behoben und wird in der nächsten Version von Gladys veröffentlicht :slight_smile:

Okay, ich werde es in der nächsten Version testen.

Der Fix ist live in Gladys Assistant 4.84

Ich werde eine externe Integration erstellen, um Enphase zu verwalten.

Ich hoffe, ich habe genug Freizeit :slight_smile:

Mehr Freizeit als ein Claude Code-Abo braucht man nicht :smiley:

Danach läuft alles auf dem Handy, in den öffentlichen Verkehrsmitteln, im Fitnessstudio ^^

Ja, ich bin einverstanden, aber man muss auch die Mittel dazu haben. Was mich jetzt stört und immer mehr in meiner Arbeit der Fall ist, ist, dass man für die Entwicklung ein Abo bezahlen muss. Das wirft andere Probleme auf, wie deine Abhängigkeit von einem Dienst, der aus politischen Gründen schließen könnte.

Aber ich gebe dir recht, dass du damit viel schneller vorankommst.

Ich würde den Kommentar verstehen, wenn es eine Verpflichtung gäbe.

Aber hier geht es um 20 € (der Preis eines Menüs im Restaurant), ohne Verpflichtung, für einen Monat Zugang zu einem Senior-Softwareingenieur zu haben, der 24/7 verfügbar ist. Wenn man das mit den Gesamtkosten eines Senior-Entwicklers in Frankreich im Jahr 2026 (Gehalt, Sozialabgaben, Hardware usw.) vergleicht, spricht man von einem Service, der einen Wert von 7–11.000 € darstellt.

Ich habe in der Geschichte der Softwareentwicklung noch nie eine solche Asymmetrie zwischen dem gezahlten Preis und dem erhaltenen Wert gesehen.

Und du sprichst von Geschwindigkeit, ich würde eher von Qualität sprechen. Heute finde ich, dass KI ein besseres Ergebnis liefert als ein menschlicher Entwickler, nicht nur beim Code selbst, sondern vor allem bei der Gesamtstrenge des Projekts.

Die Pull Requests sind vollständig: Dokumentation, Spezifikationen, Unit-Tests, Linting, Migration usw. Die Kommunikation ist ausgezeichnet: Titel, Beschreibung und Verlauf der PR werden während der Entwicklung aktualisiert. Die KI behandelt auch eine Vielzahl kleiner Details, die ein Entwickler, selbst ein Senior, oft aufgrund von Zeitmangel oder einfach weil diese Aufgaben repetitiv sind, aufschiebt.

Ich war in den ersten Jahren sehr skeptisch, weil die Modelle einfach nicht auf dem richtigen Niveau waren. Heute sehe ich nicht mehr viele Gründe, Code für eine klassische Entwicklung manuell zu schreiben. Meiner Meinung nach wird diese Praxis immer marginaler werden.

Die meisten Unternehmen, die ich kenne, entwickeln bereits hauptsächlich mit KI (im spec-driven-development).

Meine Vorhersage ist, dass es in einem oder zwei Jahren als schlechte Praxis in vielen Teams angesehen wird, Code vollständig manuell zu schreiben, ein bisschen so, wie man heute findet, dass es abnormal ist, keinen Compiler, keine IDE oder kein Versionskontrollsystem zu verwenden. Ich weiß nicht, ob es „verboten“ sein wird, aber ich denke, es wird stark abgelehnt werden.

Ich bin voll und ganz deiner Meinung, aber es kommt auf den Geschäftsbereich an. Ich arbeite im Raumfahrtbereich, wo die Kunden dies nicht zulassen oder es sehr einschränkend ist. Zum Beispiel dürfen keine Online-Dienste verwendet werden, sondern lokale für die Vertraulichkeit und es muss bewiesen werden, dass der Code keine Softwarelizenz verletzt. Ein Albtraum :slightly_smiling_face:

Außerdem sind LLMs derzeit nicht in der Lage, zu erfinden und zu imaginieren. Sie geben nur wieder, was sie gelernt haben und was man ihnen sagt. Daher werden sie auf diesem Gebiet keine wissenschaftlichen Veröffentlichungen von A bis Z schreiben.

Ich nutze Cline, weil ich es mit Ollama verwenden kann und ich habe gerade gesehen, dass Cline für 10€ (ClinePass - Open Weights Models in Cline) sehr leistungsfähige Open-Source-Modelle anbietet. Ich werde das testen, auch wenn ich viel selbst codieren muss.