FHEMPY, Matter und OTBR (SLZB-06MU)

Begonnen von Rampler, 30 Oktober 2026, 19:22:47

Vorheriges Thema - Nächstes Thema

Rampler

Hallo zusammen,
nachdem ich erfolgreich ein WIFI Matter Device via FHEMPY und Matter habe integerieren können, möchte ich nun ein Thread Device (IKEA Timmerflotte) integrieren.
FHEM läuft auf einem Raspberry 2B (32Bit)

Als OTBR habe ich mir ein SLZB-06MU gekauft und als Thread+OTBR konfiguriert.
("Thread + OTBR running on device": OTBR runs directly on the SLZB device.)

Das Attribut thread_dataset bei matter habe ich mit dem TLV's des SLZB-06MU gefüllt (ewig langer Hex String).

Ein "set Matter pair_new_device xx-xx-xx" kann IMHO nicht funktionieren, da der RPI2 kein Bluetooth hat, und das BL des  SLZB-06MU nicht verwendet werden kann.
Bei attr matter bluetooth_device geht nur : Number of the Bluetooth adapter (0 for hci0) to pair brand-new devices via Bluetooth

Hat jemand so ein ähnliches Setup schon am laufen ?

Gruß Klaus

EDIT:
Habe jetzt mal einen BL Stick an den Raspberry angeschlossen.., trotzdem gibt es diese Fehlermeldung:

failed: Commission failed: discovery of node with discriminator 1 failed: No commissionable device was discovered. Check the code, put the device in pairing mode again and retry. IPv6 must be enabled in your network.




3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Trixie), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

300P

Zitat von: Rampler am 30 Oktober 2026, 19:22:47Das Attribut thread_dataset bei matter habe ich mit dem TLV's des SLZB-06MU gefüllt (ewig langer Hex String).
Ist ja "nur" copy - past notwendig gewesen. ;)
Hab ich so auch bei mir gemacht (SLZB-MR4U).

Bislang sieht es soweit bei mir okay aus - Problem ist meine Hardware (PERGOLUX) und aktuell wohl nicht das SLZB-MR4U.
Mein Problem hab ich hier "geschildert"
Gruß
300P

FHEM 6.5|QNAP-Container-bookworm|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|
Buderus-MQTT_EMS|Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|AI_on_the_Edge|ESP32CAM usw.

300P

#2
Zitat von: Rampler am 30 Oktober 2026, 19:22:47Ein "set Matter pair_new_device xx-xx-xx" kann IMHO nicht funktionieren, da der RPI2 kein Bluetooth hat, und das BL des  SLZB-06MU nicht verwendet werden kann.
Bei attr matter bluetooth_device geht nur : Number of the Bluetooth adapter (0 for hci0) to pair brand-new devices via Bluetooth

Hat jemand so ein ähnliches Setup schon am laufen ?


Versuche es mal so:

Öffnen die Apple Home App auf dem iPhone -> Tipp auf das (vorher darin gepairt :) ) Gerät -> Zahnrad (Einstellungen).
Wähl ,,Zubehör koppeln" oder ,,In anderen Apps verwenden" (je nach iOS-Version heißt das auch ,,Kopplungs-Code einblenden").
Apple Home generiert dann einen neuen 8-stelligen Setup-Code für die Freigabe an ein weiteres Ökosystem.
Diesen Code dann in FHEM fürs "set matter pair XXXXXXXX" nutzen / eingeben ;)

Gruß
300P

FHEM 6.5|QNAP-Container-bookworm|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|
Buderus-MQTT_EMS|Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|AI_on_the_Edge|ESP32CAM usw.

Rampler

Zitat von: 300P am 30 Oktober 2026, 22:28:03Versuche es mal so:

Öffnen die Apple Home App auf dem iPhone -> Tipp auf das (vorher darin gepairt :) ) Gerät -> Zahnrad (Einstellungen).
Wähl ,,Zubehör koppeln" oder ,,In anderen Apps verwenden" (je nach iOS-Version heißt das auch ,,Kopplungs-Code einblenden").
Apple Home generiert dann einen neuen 8-stelligen Setup-Code für die Freigabe an ein weiteres Ökosystem.
Diesen Code dann in FHEM fürs "set matter pair XXXXXXXX" nutzen / eingeben ;)



Ich habe "nur" Android..
Habe es dann mit Google Home probiert, doch GH will immer seinen eigenen Hub, welche ich nicht habe. Besitze eben auch nur den SLZB-06MU. Da ich gerade mit IKEA Sensoren teste, habe ich auch die IKEA App probiert, diese will aber auch immer Ihren IKEA Hub. Komm da nicht wirklich weiter.
Statt dessen bin ich am basteln mit Bluetooth. Weil der RPI 2 kein BL hat, habe ich einen Adapter mit BLE Unterstützung angesteckt, und dem Matter Server auch über das Attr bluetooth_adapter mit geteilt. Bluetooth ist jetzt enabled.
Trotzdem gelingt es mir nicht mit:
set pair_new_device xxxxxxxxxx zu pairen..

Hier mal ein Auszug aus dem Matter Log:

2[code]026-10-31 14:12:22.759 INFO MatterServer File logging enabled: /opt/fhem/.fhempy/matter_server/matter_server.log
2026-10-31 14:12:22.783 INFO ConfigStorage Storage location: /opt/fhem/.fhempy/matter_server/data (Directory)
2026-10-31 14:12:23.065 INFO ConfigStorage Set config key fabricLabel to FHEM
2026-10-31 14:12:23.124 INFO ConfigStorage Set config key nextNodeId to 4
2026-10-31 14:12:23.140 INFO ConfigStorage Set config key wifiSsid to undefined
2026-10-31 14:12:23.159 INFO ConfigStorage Set config key wifiCredentials to <redacted>
2026-10-31 14:12:23.177 INFO ConfigStorage Set config key threadDataset to <redacted>
2026-10-31 14:12:23.348 INFO ServerIdResolver Found existing storage for server ID: server-1-fff1
2026-10-31 14:12:23.590 INFO DclCertificateService Initialize CertificateService prod: https://on.dcl.csa-iot.org test: https://on.test-net.dcl.csa-iot.org github: yes
2026-10-31 14:12:23.624 INFO DclVendorInfoService Initialize VendorInfoService source: https://on.dcl.csa-iot.org interval: 24h
2026-10-31 14:12:23.642 INFO ControllerCommandHandler BLE is enabled
2026-10-31 14:12:23.664 NOTICE WebSocketControllerHandler Starting server: matter-server/1.4.0 (matter.js/0.17.9)
2026-10-31 14:12:24.722 INFO DclCertificateService Loaded 181 certificates from storage
2026-10-31 14:12:25.440 INFO DclVendorInfoService Loaded 891 vendors from storage
2026-10-31 14:12:25.447 INFO DclVendorInfoService seed: skipping vendors — storage has 891 entries >= seed expectedCount 891
2026-10-31 14:12:25.451 INFO DclVendorInfoService Fetching vendor information from DCL
2026-10-31 14:12:25.619 INFO DclCertificateService seed: consumed 0 PAA certs from snapshot 2026-10-31T02:10:20.737Z
2026-10-31 14:12:25.648 INFO DclCertificateService seed: consumed 0 CDSigner certs from snapshot 2026-10-31T02:10:20.737Z
2026-10-31 14:12:25.807 INFO ServerNodeStore Opened server-1-fff1 storage location: /opt/fhem/.fhempy/matter_server/data/server-1-fff1 driver: wal
2026-10-31 14:12:26.107 INFO SessionManager restoring resumption record for node @1:1 and peer node @1:1 for fabric id 0x01 (0xfff1, "FHEM")
2026-10-31 14:12:27.723 INFO BaseEventStore Loaded volatile event store with next number 5001
2026-10-31 14:12:27.829 INFO Endpoint server-1-fff1 ready endpoint#: 0 type: RootNode (0x16, rev 4) behaviors: 💤parts ✓index ✓accessControl ✓basicInformation ✓generalCommissioning ✓generalDiagnostics ✓administratorCommissioning ✓operationalCredentials ✓groupKeyManagement ✓commissioning ✓network 💤productDescription 💤subscriptions 💤sessions ✓events 💤controller ✓descriptor
2026-10-31 14:12:30.931 INFO Endpoint server-1-fff1.@1:1 ready endpoint#: 0 type: RootNode (0x16) behaviors: 💤parts ✓index ✓commissioning ✓network ✓descriptor ✓accessControl ✓basicInformation ✓otaSoftwareUpdateRequestor ✓localizationConfiguration ✓timeFormatLocalization ✓generalCommissioning ✓networkCommissioning ✓diagnosticLogs ✓generalDiagnostics ✓softwareDiagnostics ✓wiFiNetworkDiagnostics ✓switch ✓administratorCommissioning ✓operationalCredentials ✓groupKeyManagement ✓fixedLabel ✓userLabel
2026-10-31 14:12:31.769 INFO Endpoint server-1-fff1.@1:1.ep1 ready endpoint#: 1 type: ExtendedColorLight (0x010d, rev 1) behaviors: ✓descriptor ✓identify ✓groups ✓cluster$5 ✓onOff ✓levelControl ✓modeSelect ✓colorControl
2026-10-31 14:12:31.975 INFO DclOtaUpdateService Initialize OTAUpdateService prod: https://on.dcl.csa-iot.org test: https://on.test-net.dcl.csa-iot.org
2026-10-31 14:12:32.056 INFO DclCertificateService Certificate update failed [dcl-response] Error fetching /dcl/pki/root-certificates from DCL: 500 - The operation was aborted due to timeout: The operation was aborted due to timeout
2026-10-31 14:12:32.062 INFO DclVendorInfoService Error updating vendor information [dcl-response] Error fetching /dcl/vendorinfo/vendors?pagination.key=AAASHQAAAAAv from DCL: 500 - The operation was aborted due to timeout: The operation was aborted due to timeout
2026-10-31 14:12:32.201 INFO Endpoint server-1-fff1.ota-provider ready endpoint#: 1 type: OtaProvider (0x14, rev 1) behaviors: ✓otaSoftwareUpdateProvider ✓descriptor ✓softwareupdates
2026-10-31 14:12:32.217 INFO CertificateAuthority Loaded stored credentials with ID 0
2026-10-31 14:12:32.386 NOTICE FabricAuthority Rotated NOC for fabric 1
2026-10-31 14:12:32.711 NOTICE Node server-1-fff1 going online
2026-10-31 14:12:32.761 INFO ServerNetworkRuntime TCP transport enabled (incoming=true, outgoing=true)
2026-10-31 14:12:32.862 INFO NetworkProfiles Configure profile fast exchanges: 200 additionalMrpDelay: 0
2026-10-31 14:12:32.868 NOTICE Node server-1-fff1 is online
2026-10-31 14:12:32.883 INFO FabricAccessControl ACL List updated privilege: 5 authMode: 2 subjects: 112233 targets: null fabricIndex: 1 privilege: 3 authMode: 2 subjects:  targets: { cluster: 41, endpoint: 1, deviceType: null } fabricIndex: 1 privilege: 3 authMode: 2 subjects:  targets: { cluster: 1364, endpoint: 2, deviceType: null } fabricIndex: 1
2026-10-31 14:12:33.071 INFO MdnsAdvertisement Publishing kind: operational service: mdns:B39F61BC66635ADC-000000000001B669._matter._tcp.local
2026-10-31 14:12:33.081 INFO SoftwareUpdateManager Scheduling first OTA update check in 6m 32s
2026-10-31 14:12:33.170 NOTICE ControllerCommandHandler Matter Controller started
2026-10-31 14:12:33.177 INFO ControllerCommandHandler OTA event handlers registered
2026-10-31 14:12:33.211 INFO MatterController Registered Thread credentials from stored:default (xp=DEAD00BEEF00CAFE, network="OpenThread-ESP", ch=15, panId=0x1234, mlPrefix=FD000DB800A00000, activeTs=0000000000010000, pskc=set, networkKey=set, secPolicy=rotation672h/flags=0xF7F8, unknownTlvs=1)
2026-10-31 14:12:33.269 INFO WebRtcTransportRequestorServer WebRtcTransportRequestor initialized on endpoint=2 (id="camera-controller")
2026-10-31 14:12:33.405 INFO Endpoint server-1-fff1.camera-controller ready endpoint#: 2 type: CameraController (0x0147, rev 1) behaviors: ✓webRtcTransportRequestor ✓descriptor
2026-10-31 14:12:33.428 INFO ControllerCommandHandler WebRTC callback bridge wired
2026-10-31 14:12:33.434 INFO ControllerCommandHandler Found 1 nodes: @1:1
2026-10-31 14:12:33.436 INFO ControllerCommandHandler Initializing node "@1:1" ...
2026-10-31 14:12:33.445 INFO CommissioningController Connecting to node @1:1 ...
2026-10-31 14:12:33.460 INFO ClientNode server-1-fff1.@1:1 going online
2026-10-31 14:12:33.502 INFO PairedNode @1:1 Created paired node with device data { supportsThread: false, supportsWifi: true, supportsEthernet: false, rootEndpointServerList: [ 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 54, 59, 60, 62, 63, 64, 65 ], isMainsPowered: false, isBatteryPowered: false, isIntermittentlyConnected: false, isLongIdleTimeOperating: false, isThreadSleepyEndDevice: false, deviceTypes: {}, wifiActive: true }
2026-10-31 14:12:34.647 INFO ControllerCommandHandler All 1 nodes initialized, starting connections
2026-10-31 14:12:34.759 INFO NetworkProfiles Configure profile wifi exchanges: 200 additionalMrpDelay: 1000
2026-10-31 14:12:34.847 INFO PeerConnection @1:1•unsecured#a92335e58b2efefc⇵bc69 ip://[fe80::9a17:3cff:fe64:e99b%eth0]:5540 Connecting addr #: 1 attempt #: 1 connect time: 86ms addr time: 41ms wifi
2026-10-31 14:12:34.872 NOTICE WebServer Webserver listening on http://127.0.0.1:5580
2026-10-31 14:12:35.022 INFO CaseClient @1:1•7779 Resumed session with @1:1 2↔1 address: udp://[fe80::9a17:3cff:fe64:e99b%eth0]:5540 fabric: b39f61bc66635adc (#1) SII: 500ms SAI: 300ms SAT: 4s DMRev: 17 IMRev: 11 spec: 0x0 maxPaths: 1 CATs:
2026-10-31 14:12:35.041 INFO ClientNode server-1-fff1.@1:1 is online
2026-10-31 14:12:35.079 INFO IpServiceStatus @1:1 Connected
2026-10-31 14:12:35.419 INFO Session •unsecured#a92335e58b2efefc Session ended
2026-10-31 14:12:35.438 INFO ClientInteraction Read » @1:1•7779⇵bc6a bootstrap attributes: 1 events: 1
2026-10-31 14:12:35.514 INFO ClientInteraction Read « @1:1•7779⇵bc6a (empty)
2026-10-31 14:12:35.542 INFO ClientInteraction Subscribe » @1:1•7779⇵bc6b min: 0 max: 1m 4s attributes: 1 events: 1
2026-10-31 14:12:35.672 INFO ClientInteraction Subscription successful « @1:1•7779⇵bc6b 2↔2 id: 9585d09e interval: 1m 4s timeout: 1m 42s
2026-10-31 14:12:35.692 NOTICE ControllerCommandHandler Node @1:1 availability changed to true (state: Connected)
2026-10-31 14:12:48.268 INFO WebSocketControllerHandler [0] WebSocket connection established
2026-10-31 14:12:48.310 INFO WebSocketControllerHandler WebSocket server start_listening
2026-10-31 14:12:48.317 INFO WebSocketControllerHandler WebSocket server start_listening. Returned 1 nodes
2026-10-31 14:13:10.821 INFO ConfigStorage Set config key nextNodeId to 5
2026-10-31 14:13:10.855 INFO Discovery Initiating discovery of node with discriminator 1
2026-10-31 14:15:22.176 INFO ClientSubscription Subscription 9585d09e to peer @1:1 timed out after 1m 42s
2026-10-31 14:15:22.190 INFO ClientSubscription Replacing subscription to @1:1 after loss
2026-10-31 14:15:22.207 INFO ClientInteraction Probe » @1:1•7779⇵bc6c
2026-10-31 14:15:51.107 INFO ClientInteraction Probe « @1:1•7779⇵bc6c 0↔2+2 (failed)
2026-10-31 14:15:51.112 INFO PeerAddressMonitor @1:1•7779 All probes failed, closing session
2026-10-31 14:15:51.121 INFO ClientNode server-1-fff1.@1:1 is offline
2026-10-31 14:15:51.129 INFO Session @1:1•7779 Session ended
2026-10-31 14:15:51.158 INFO ClientSubscription Failed to probe reachability of peer @1:1, resubscribe with new session
2026-10-31 14:15:51.169 INFO IpServiceStatus @1:1 Resolving (no address known)
2026-10-31 14:15:51.195 INFO PeerConnection @1:1•unsecured#82ad0227277f57c5⇵bc6d udp://[fe80::9a17:3cff:fe64:e99b%eth0]:5540 Connecting addr #: 1 attempt #: 1 connect time: 27ms addr time: 7ms wifi fallback
2026-10-31 14:16:18.366 ERROR WebSocketControllerHandler [0] WebSocket error response (commission_with_code) 3 Commission failed: discovery of node with discriminator 1 failed: No commissionable device was discovered
    at ServerError.nodeCommissionFailed (file:///opt/fhem/.fhempy/matter_server/node_modules/@matter-server/ws-controller/dist/esm/types/WebSocketMessageTypes.js:38:12)
    at ControllerCommandHandler.commissionNode (file:///opt/fhem/.fhempy/matter_server/node_modules/@matter-server/ws-controller/dist/esm/controller/ControllerCommandHandler.js:959:25)
    at async #commissionWithRetry (file:///opt/fhem/.fhempy/matter_server/node_modules/@matter-server/ws-controller/dist/esm/server/WebSocketControllerHandler.js:786:39)
    at async #handleCommissionWithCode (file:///opt/fhem/.fhempy/matter_server/node_modules/@matter-server/ws-controller/dist/esm/server/WebSocketControllerHandler.js:834:20)
    at async #handleWebSocketRequest (file:///opt/fhem/.fhempy/matter_server/node_modules/@matter-server/ws-controller/dist/esm/server/WebSocketControllerHandler.js:527:20)
  Caused by: [discovery] discovery of node with discriminator 1 failed: No commissionable device was discovered
    at CommissioningDiscovery.onComplete (file:///opt/fhem/.fhempy/matter_server/node_modules/@matter/node/dist/esm/behavior/system/controller/discovery/ParallelPaseDiscovery.js:123:13)
2026-10-31 14:18:22.192 WARN ControllerCommandHandler Node @1:1 offline grace period expired, marking unavailable
2026-10-31 14:18:22.195 INFO WebSocketControllerHandler [0] Node @1:1 availability changed to false


Das Matter Zeug ist schon ein wenig kompliziert, man könnte meinen das es von der EU entwickelt wurde  ;)
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Trixie), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

300P

Zitat von: Rampler am 31 Oktober 2026, 14:38:47Das Matter Zeug ist schon ein wenig kompliziert, man könnte meinen das es von der EU entwickelt wurde  ;)
👍👌
Gruß
300P

FHEM 6.5|QNAP-Container-bookworm|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|
Buderus-MQTT_EMS|Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|AI_on_the_Edge|ESP32CAM usw.

Rampler

Heureka !!

Ich habe es nun geschafft den IKEA TimmerFlotte via  dem OTBR (SLZB-06MU) mit Bluetooth des Raspberry anzulernen. Also völlig ohne irgendwelche Handy Apps..

Wie immer, nicht nur ein Stolperstein..

1. Zuerst konnte der Matter Server kein BLE Scan durchführen, weil BL geblockt war
   sudo rfkill list
   sudo rfkill unblock bluetooth
2. Dann haben Linux Rechte auf Node gefehlt:
    getcap $(readlink -f $(which node))
    sudo setcap cap_net_raw,cap_net_admin+eip $(readlink -f $(which node))
3. Der Klassiker IPV6  Routing, der OTBR war hinter einem Openwrt Repeater, weshalb das RA nicht richtig funktioniert hat.
4. Pairen mit set pair_new_device yyyyyy (wobei yyyyyy der QR Code ist, das ist nicht die elfstellige Nummer !!)
   Pairing Nummer: 0241-373-6435      QR Code "MT:M7GA1S0.03.B8Z5Z910"   
   Also erst den QR Code, dann popt ein Fenster hoch, dann die elfstellige Nummer (den QR mit einer Kamera auflösen)

Was ist sonst noch wichtig ist:
attr matter bluetooth_adapter 0 ( 0 für HCI0)
set matter thread_dataset  xxxxxxxxxxxxxxxxxxx   (aus TLV vom OTBR kopiert)

3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Trixie), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!