MATTER im FHEM? Schon was in Planung?

Begonnen von misux, 18 Mai 2022, 15:40:21

Vorheriges Thema - Nächstes Thema

Rampler

Hallo zusammen,
ich habe gerade mal auf meinem Testsystem FHEMPY installiert...
Beim Start des Matter Server meckert dieser die Version von nodejs an.
Diese soll laut Matter Server mind. eine V22 sein.
Trixie (auf einem Raspberry 2B, leider nur 32 bit fähig) bringt nur v20.19.2  mit.
Die Installation empfiehlt folgendes:

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash - && sudo apt install nodejs 
Was aber zu folgender Fehlermeldung führt:

2026-10-28 08:59:08 - Error: Unsupported architecture: armhf. Only amd64, arm64 are supported. Contact Nodesource for an extended support version https://nodesource.com/pages/contact-us.html. (Exit Code: 1)

Sieht für mich so aus, als ob der Matter Server von FHEMPY nicht (mehr) auf einem Raspberry Model 2b lauffähig ist, trotz aktueller Linux Distro.

Mit diesen Befehlen ist es mir gelungen, zumidest Nodejs V22.15 zu installieren:

sudo apt update && sudo apt install -y curl tar apt-transport-https ca-certificates gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://nodesource.com | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt install -y nodejs

Vermutlich bringt das nichts auf Dauer, da neue Versionen des Matter Servers auch neuere Nodejs Versionen erfordern, oder ?

Ich möchte keinen neuen Raspberry kaufen, da der "alte" für mich völlig ausreichend ist .

Gibt es andere Möglichkeiten ein neueres Nodejs zu installieren ?

Gruß Klaus
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 !!

dominik

Antwort von Claude :)
Hallo Klaus,

danke für die ausführliche Beschreibung! Du hast recht: NodeSource baut seit einiger Zeit nur noch für amd64 und arm64, für 32-bit (armhf) gibt es dort nichts mehr. Der Hinweis in fhempy ist für den Pi 2B daher leider falsch, das passe ich an.

Zu deinem zweiten Weg: Der Schlüssel wurde von https://nodesource.com geladen, das ist aber die Webseite und kein GPG-Key (richtig wäre https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key). Außerdem hat die Repo für armhf keine Pakete. Schau bitte mal, woher dein Node 22.15 wirklich kommt:

which -a node
node -v
apt policy nodejs
Wenn apt update jetzt wegen der NodeSource-Quelle meckert, kannst du sie einfach wieder entfernen:

sudo rm /etc/apt/sources.list.d/nodesource.list /etc/apt/keyrings/nodesource.gpg
sudo apt update
Mein Vorschlag: offizielles Node 22 von nodejs.org. Für Node 22 gibt es auf nodejs.org weiterhin offizielle Binaries für armv7l (also auch den Pi 2B). Installation nach /usr/local, damit es auch der fhem-User findet:

cd /tmp
FILE=$(curl -fsSL https://nodejs.org/dist/latest-v22.x/ | grep -o 'node-v22[0-9.]*-linux-armv7l.tar.xz' | head -1)
curl -fsSLO https://nodejs.org/dist/latest-v22.x/$FILE
sudo tar -xJf $FILE -C /usr/local --strip-components=1 --exclude=CHANGELOG.md --exclude=README.md --exclude=LICENSE
hash -r
node -v
/usr/local/bin steht im PATH vor /usr/bin, das Debian-Node 20 darf also installiert bleiben. Für ein Update führst du die Befehle einfach nochmal aus. Danach fhempy neu starten, dann sollte der Matter Server starten.

nvm würde ich hier nicht nehmen: Es installiert Node nur ins Home-Verzeichnis des jeweiligen Users, fhempy läuft aber als fhem-User und sieht es dann nicht.

Zu deiner Frage "auf Dauer": Leider hast du recht. Node 22 bekommt noch bis Ende April 2027 Sicherheitsupdates. Ab Node 24 gibt es keine offiziellen 32-bit-ARM-Builds mehr, und auch die "unofficial builds" von Node.js bauen kein armv7l für Node 24. Der Matter Server braucht aktuell Node 22.13 oder neuer. Solange er nicht Node 24 verlangt, läuft es mit Node 22. Was danach kommt, kann ich heute nicht sagen.

Ein Tipp noch: Schau mal, welche Revision dein Pi 2B hat:

grep Revision /proc/cpuinfo
Steht dort a22042 (Pi 2B v1.2), dann hat dein Pi schon einen 64-bit-fähigen Chip (BCM2837, wie im Pi 3). Dann kannst du Raspberry Pi OS 64-bit (arm64) installieren und bekommst Node 22/24 ganz normal über NodeSource oder fhempy installiert es sogar selbst. Bei a01041 oder a21041 (v1.1) geht das leider nicht, dann bleibt nur der Weg über Node 22 oben.

Gruß Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Rampler

#167
Hi Dominik,
danke für Deine Anleitung.
Habe jetzt node v22.23.4 am laufen  :)
Leider habe ich noch den Raspberry Model 2B V1.1, also nur 32 bit.

Kann jetzt schon mal via Matter over Wifi meine Govee Ambilight schalten ..
Als nächstes möchte ich ein IKEA Thread device mit dem SMLIGHT SLZB-06MU testen ..

Gruß Klaus
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 !!

cetri

Hallo Dominik,

erstmal Danke für deine Arbeit.

Ich versuche gerade ein Smart Lock U200 von Aquara über Matter einzubinden. Der Aquara Hub M100 liess sich ohne Probleme pairen. Wenn ich das U200 über die App in den Pairingmodus versetze erkennt fhempy das ein neues Gerät im Netzwerk ist und ich kann den Pairing-Code eingeben. Dann passiert erstmal nichts und nach einiger Zeit taucht im Matter-Device die Fehlermeldung

failed: Commission failed: discovery of node with discriminator 1 failed: No device could be commissioned (1 of 1 started attempt(s) failed, 1 discovered). Check the code, put the device in pairing mode again and retry. IPv6 must be enabled in your network.
auf. Ich habe mal testweise test_dcl auf 1 gesetzt aber das ändert auch nichts.

Hast du eine Idee woran es liegen könnte?

Gruß
Jörg

List vom Matter-Device:

define matter fhempy matter
attr matter group matter
attr matter room Matter
attr matter test_dcl 1
#   DEF        matter
#   FHEMPYTYPE matter
#   FUUID      6ae2d4f3-f33f-47d8-8d05-10c69250291c6755
#   IODev      fhempy_local
#   NAME       matter
#   NR         107498
#   NTFY_ORDER 50-matter
#   PYTHONTYPE matter
#   STATE      connected
#   TYPE       fhempy
#   disableNotifyFn 1
#   eventCount 27
#   timeout    3000
#   READINGS:
#     2026-10-29 06:09:43   bluetooth       disabled
#     2026-10-29 06:09:43   fabric_id       1
#     2026-10-29 06:31:54   next_step       Ready. Pair more devices with 'set matter pair <code>'. Click 'Device specific help' for details.
#     2026-10-29 06:09:14   node_version    24.19
#     2026-10-29 06:31:54   nodes           1
#     2026-10-29 07:07:32   pairing         failed: Commission failed: discovery of node with discriminator 1 failed: No device could be commissioned (1 of 1 started attempt(s) failed, 1 discovered). Check the code, put the device in pairing mode again and retry. IPv6 must be enabled in your network.
#     2026-10-29 06:09:43   server_sdk      matter-server/1.4.0 (matter.js/0.17.9)
#     2026-10-29 06:09:38   server_version  1.4.0
#     2026-10-29 07:03:29   state           connected
#     2026-10-29 06:09:43   thread_dataset  not set
#     2026-10-29 06:09:43   wifi_credentials not set
#   args:
#     matter
#     fhempy
#     matter
#   argsh:
#   hmccu:
#



List vom funktionierenden M100:

define matter_1 fhempy matter matter 1
attr matter_1 alias Aqara Hub M100
attr matter_1 group matter
attr matter_1 icon mqtt_bridge_1
attr matter_1 room Matter
#   DEF        matter matter 1
#   FHEMPYTYPE matter
#   FUUID      6ae2da4a-f33f-47d8-a362-7c084e6a6f3c134d
#   IODev      fhempy_local
#   MATTER_CONTROLLER matter
#   MATTER_ID  1
#   MATTER_NODE 1
#   NAME       matter_1
#   NR         108367
#   NTFY_ORDER 50-matter_1
#   PYTHONTYPE matter
#   STATE      online
#   TYPE       fhempy
#   disableNotifyFn 1
#   eventCount 5
#   timeout    3000
#   READINGS:
#     2026-10-29 06:55:22   firmware        4.5.80
#     2026-10-29 06:31:54   label           Aqara Hub M100
#     2026-10-29 06:31:54   model           Aqara Hub M100
#     2026-10-29 07:03:29   state           online
#     2026-10-29 06:31:54   vendor          Aqara
#   args:
#     matter_1
#     fhempy
#     matter
#     matter
#     1
#   argsh:
#   hmccu:
#



taskkill

#169
Moin,
Kann jemand mal die Befehle und/oder Reihenfolge für eine parallele Installation von node hier aufschreiben.
Für RPi 3B+ /armv7l mit Bullseye und das Befehl für Befehl. Kann sein das fhempy auch schon seine eigne parallele Installation gemacht hatte, aber jetzt beim Modul matter sagt das list :

Internals:
   DEF        matter
   FHEMPYTYPE matter
   FUUID      6ae2f680-f33f-9a8d-d7f2-2caefc6f2b6efdce
   IODev      fhempy_local
   NAME       matter
   NR         385
   NTFY_ORDER 50-matter
   PYTHONTYPE matter
   STATE      Node.js 22.13 or newer needed
   TYPE       fhempy
   disableNotifyFn 1
   eventCount 4
   timeout    30000
   READINGS:
     2026-10-29 08:49:14   discovered      failed: Matter server is not connected, see state of matter
     2026-10-29 08:32:17   next_step       Install Node.js 22 or newer (https://nodejs.org or 'curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash - && sudo apt install nodejs') and restart fhempy.
     2026-10-29 09:15:09   node_version    found Node.js 20.19, 22.13 or newer needed
     2026-10-29 09:15:09   state           Node.js 22.13 or newer needed
   args:
     matter
     fhempy
     matter
   argsh:
Attributes:
   group      matter
   icon       control_building_control
   room       Matter
   verbose    5

Ich danke Euch schon mal, Reiner.
RPI 4 mit RB-OS Trixie SSD, RPI 3B+ mit RM-OS Bullseye SSD, aktiver USB-Hub, Fhem (is klar)              TI CC2652P, JeeLink 868 PCA301, nanoCUL 868 WMBUS, Echo Plus 2te Gen., ESPxxxx, usw.

Rampler


Hi Taskkill,
siehe Post #166:
cd /tmp
FILE=$(curl -fsSL https://nodejs.org/dist/latest-v22.x/ | grep -o 'node-v22[0-9.]*-linux-armv7l.tar.xz' | head -1)
curl -fsSLO https://nodejs.org/dist/latest-v22.x/$FILE
sudo tar -xJf $FILE -C /usr/local --strip-components=1 --exclude=CHANGELOG.md --exclude=README.md --exclude=LICENSE
hash -r
node -v

Besser wäre Du würdest dein RPI 3 mit ARM64 (trixie) neu installieren...  ;)

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 !!

dominik

Zitat von: cetri am 29 Oktober 2026, 07:24:40Hallo Dominik,

erstmal Danke für deine Arbeit.

Ich versuche gerade ein Smart Lock U200 von Aquara über Matter einzubinden. Der Aquara Hub M100 liess sich ohne Probleme pairen. Wenn ich das U200 über die App in den Pairingmodus versetze erkennt fhempy das ein neues Gerät im Netzwerk ist und ich kann den Pairing-Code eingeben. Dann passiert erstmal nichts und nach einiger Zeit taucht im Matter-Device die Fehlermeldung

failed: Commission failed: discovery of node with discriminator 1 failed: No device could be commissioned (1 of 1 started attempt(s) failed, 1 discovered). Check the code, put the device in pairing mode again and retry. IPv6 must be enabled in your network.
auf. Ich habe mal testweise test_dcl auf 1 gesetzt aber das ändert auch nichts.

Hast du eine Idee woran es liegen könnte?

Gruß
Jörg

List vom Matter-Device:

define matter fhempy matter
attr matter group matter
attr matter room Matter
attr matter test_dcl 1
#  DEF        matter
#  FHEMPYTYPE matter
#  FUUID      6ae2d4f3-f33f-47d8-8d05-10c69250291c6755
#  IODev      fhempy_local
#  NAME      matter
#  NR        107498
#  NTFY_ORDER 50-matter
#  PYTHONTYPE matter
#  STATE      connected
#  TYPE      fhempy
#  disableNotifyFn 1
#  eventCount 27
#  timeout    3000
#  READINGS:
#    2026-10-29 06:09:43  bluetooth      disabled
#    2026-10-29 06:09:43  fabric_id      1
#    2026-10-29 06:31:54  next_step      Ready. Pair more devices with 'set matter pair <code>'. Click 'Device specific help' for details.
#    2026-10-29 06:09:14  node_version    24.19
#    2026-10-29 06:31:54  nodes          1
#    2026-10-29 07:07:32  pairing        failed: Commission failed: discovery of node with discriminator 1 failed: No device could be commissioned (1 of 1 started attempt(s) failed, 1 discovered). Check the code, put the device in pairing mode again and retry. IPv6 must be enabled in your network.
#    2026-10-29 06:09:43  server_sdk      matter-server/1.4.0 (matter.js/0.17.9)
#    2026-10-29 06:09:38  server_version  1.4.0
#    2026-10-29 07:03:29  state          connected
#    2026-10-29 06:09:43  thread_dataset  not set
#    2026-10-29 06:09:43  wifi_credentials not set
#  args:
#    matter
#    fhempy
#    matter
#  argsh:
#  hmccu:
#



List vom funktionierenden M100:

define matter_1 fhempy matter matter 1
attr matter_1 alias Aqara Hub M100
attr matter_1 group matter
attr matter_1 icon mqtt_bridge_1
attr matter_1 room Matter
#  DEF        matter matter 1
#  FHEMPYTYPE matter
#  FUUID      6ae2da4a-f33f-47d8-a362-7c084e6a6f3c134d
#  IODev      fhempy_local
#  MATTER_CONTROLLER matter
#  MATTER_ID  1
#  MATTER_NODE 1
#  NAME      matter_1
#  NR        108367
#  NTFY_ORDER 50-matter_1
#  PYTHONTYPE matter
#  STATE      online
#  TYPE      fhempy
#  disableNotifyFn 1
#  eventCount 5
#  timeout    3000
#  READINGS:
#    2026-10-29 06:55:22  firmware        4.5.80
#    2026-10-29 06:31:54  label          Aqara Hub M100
#    2026-10-29 06:31:54  model          Aqara Hub M100
#    2026-10-29 07:03:29  state          online
#    2026-10-29 06:31:54  vendor          Aqara
#  args:
#    matter_1
#    fhempy
#    matter
#    matter
#    1
#  argsh:
#  hmccu:
#



Antwort von Claude :)

Hallo Jörg,
danke für die ausführlichen Infos, das hilft sehr.
Die Meldung "1 discovered" zeigt, dass fhempy das U200 im Netzwerk findet. Der Verbindungsaufbau zum Schloss klappt danach aber nicht. Ich vermute, das liegt an einer fehlenden IPv6-Route ins Thread-Netz.
Warum der M100 geht und das U200 nicht
Der M100 hängt direkt in deinem LAN, deshalb geht das Pairing ohne Probleme. Das U200 ist ein Thread-Gerät, das über den M100 als Thread Border Router funkt. Das Schloss hat eine IPv6-Adresse aus dem Thread-Netz (meist fdxx:...). Diese Adresse erreicht dein FHEM-Rechner nur, wenn er eine Route dorthin kennt. Der M100 kündigt diese Route per Router Advertisement an. Linux ignoriert solche Routen in der Standardeinstellung aber. Das Schloss wird also per mDNS gefunden, die Pakete von fhempy kommen beim Schloss aber nie an.
Prüfen
ip -6 route | grep -v fe80
Wenn dort keine Zeile wie fdxx:xxxx:xxxx:xxxx::/64 via fe80::... dev eth0 auftaucht, fehlt die Route. Du kannst auch set matter discover ausführen, während das U200 im Pairingmodus ist. Dann steht die Adresse im Reading discovered. Ein ping -6 <adresse> darauf sollte antworten.
Lösung (eth0 durch deine Schnittstelle ersetzen, z.B. wlan0)
sudo tee /etc/sysctl.d/60-matter-thread.conf <<'EOF'
net.ipv6.conf.eth0.accept_ra=1
net.ipv6.conf.eth0.accept_ra_rt_info_max_plen=64
EOF
sudo sysctl --system
Falls auf dem Rechner IPv6-Forwarding aktiv ist (z.B. durch Docker), nimm accept_ra=2 statt 1. Danach ein paar Minuten warten, bis der M100 die nächste Ankündigung schickt, oder einfach neu starten. Dann mit ip -6 route prüfen, ob die fd-Route da ist. Danach das U200 in der Aqara App wieder in den Matter-Pairingmodus setzen und gleich danach set matter pair <code> ausführen. Der Code aus der App gilt nur ein paar Minuten.
Noch ein paar Hinweise:
test_dcl hat damit nichts zu tun, das kannst du wieder auf 0 setzen.
thread_dataset und Bluetooth brauchst du nicht. Die sind nur für ganz neue Geräte nötig, die noch in keinem Netz sind. Dein U200 ist schon über den M100 im Thread-Netz.
Wenn FHEM in Docker läuft, muss der Container mit network_mode: host laufen, und die sysctl-Einstellungen gehören auf den Host.
Das U200 schläft zwischendurch, um Batterie zu sparen. Wenn es trotz Route einmal nicht klappt, das Schloss kurz aufwecken (z.B. Tastenfeld berühren) und gleich noch einmal versuchen.
Gib gern Bescheid, ob es danach klappt. Falls nicht, schick mir bitte die Ausgabe von ip -6 route und das Reading discovered.
Gruß
Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik