zigbee2mqtt auf RaspberryMatic

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

rr745
Beiträge: 306
Registriert: 19.01.2021, 14:53
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 34 Mal

Re: zigbee2mqtt auf RaspberryMatic

Beitrag von rr745 » 03.01.2024, 22:08

Henke hat geschrieben:
03.01.2024, 21:32
rr745 hat geschrieben:
03.01.2024, 19:54
node red ist akutell, alles läuft-was will ich mehr
Das wird langsam eng mit NR. Wundert mich, das sie die 14 node.js noch nicht gesperrt haben.
Siehe: https://nodered.org/docs/faq/node-versions

Lass mal npm audit laufen und achte auf die Anzahl der "vulnerabilities". Dabei sind die "moderate" noch egal.
Oder npm doctor, mit:

Code: Alles auswählen

cd /usr/local/addons/redmatic/var
source /usr/local/addons/redmatic/home/.profile
npm doctor
hab ich mal drüber laufen lassen:

root@homematic-raspi:/usr/local/addons/redmatic/var# npm doctor
Check Value Recommendation/Notes
npm ping ok
npm -v not ok Use npm v10.2.5
node -v not ok Use node v20.10.0 (current: v14.16.0)
npm config get registry ok using default registry (https://registry.npmjs.org/)
which git ok /usr/local/addons/redmatic/bin/git
Perms check on cached files ok
Perms check on local node_modules ok
Perms check on global node_modules ok
Perms check on local bin folder ok
Perms check on global bin folder ok
Verify cache contents ok verified 84 tarballs
npm ERR! Some problems found. See above for recommendations.

so wie es aussieht könnte da was upgedatet werden. under debian bookworm wäre es ein spaziergang aber bei raspberrymatic bricht man sich wahrscheinlich stundenlang die finger und handelt sich evtl. andere probleme ein.
Wenn etwas schiefgehen kann, dann geht es schief (Murphy)

rr745
Beiträge: 306
Registriert: 19.01.2021, 14:53
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 34 Mal

Re: zigbee2mqtt auf RaspberryMatic

Beitrag von rr745 » 08.01.2024, 14:07

Matten Matten hat geschrieben:
27.12.2023, 14:02
ACHTUNG bisher in der Experimentellen Phase

Voraussetzung sind die Addons Mosquitto & RedMatic auf der RM.

Folgenden Ablauf hab ich durchgeführt:

Verbindung via putty und folgendes eingegeben

Node Version prüfen

Code: Alles auswählen

node --version
dabei kam raus:
v18.18.2

NPM Version prüfen

Code: Alles auswählen

npm --version
dabei kam raus:
10.2.5

Soweit so gut Nodejs und NPM sind verfügbar und auch nicht zu alt

Dann habe ich einen Ordner Namens "zigbee2mqtt" im Pfad /usr/local/addons/ erstellt

Code: Alles auswählen

mkdir /usr/local/addons/zigbee2mqtt
als weiterses hab ich das Projekt zigbee2mqtt von Github (Git durch Redmatic verfügbar) in den eben erstellten Ordner kopiert

Code: Alles auswählen

cd /usr/local/addons/redmatic/var
source /usr/local/addons/redmatic/home/.profile
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /usr/local/addons/zigbee2mqtt
als nächstes hab ich ein Zigbee Coordinator Stick an USB der RM gesteckt und in Putty folgende Zeile eingegeben:

Code: Alles auswählen

ls -l /dev/serial/by-id
Dabei wurde folgendes ausgegeben:
lrwxrwxrwx 1 root root 13 Dec 27 13:05 usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001CD402AF-if00 -> ../../ttyACM0

Also hat der Coordinator Stick die Adresse "ttyACM0" bekommen, die ich gleich in der Config benötige.


Info: Wer CuxD nutzt muss in der CuxD "Setup" folgendes Eintragen und speichern

Code: Alles auswählen

TTYASSIGN=ttyACM0:NC
Info: wer die Firewall auf der RM aktiv hat sollte folgenden Port für das z2m Webinterface eintragen

Code: Alles auswählen

8080;
als nächstes habe ich via Filezilla die Datei "configuration.yaml" im Pfad "/usr/local/addons/zigbee2mqtt/data" mit
folgender Config befüllt. gespeichert und übertragen.

Info: den tty Port nicht vergessen anzupassen!

Code: Alles auswählen

# Home Assistant integration (MQTT discovery)
homeassistant: false

# Enable the frontend, runs on port 8080 by default
# Raspberrymatic Firewall nicht vergessen!
frontend: true

# MQTT settings
mqtt:
  # MQTT base topic for zigbee2mqtt MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL (Mosqitto Addon auf der RM)
  server: 'mqtt://localhost'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password

# Serial settings
serial:
  # Location of CC2531 USB sniffer (CuxD Eintragung nicht vergessen)
  port: /dev/ttyACM0

# Advanced settings
advanced:
  # Let Zigbee2MQTT generate a network key on first start
  network_key: GENERATE
  # Let Zigbee2MQTT generate a pan_id on first start
  pan_id: GENERATE
  # Let Zigbee2MQTT generate a ext_pan_id on first start
  ext_pan_id: GENERATE
Info! Die Config wird beim ersten START über schrieben! das liegt an den letzten Zeilen, da wird mitgeteilt das der
"network_key", die "pan_id" und die "ext_pan_id" Generiert werden.


als nächstes hab ich im Pfad "/usr/local/addons/zigbee2mqtt" die Dependencies installiert, dann das Build durchgeführt und
zuletzt Zigbee2MQTT gestartet indem ich folgendes via Putty eingegeben hab:
den Ordner betreten:

Code: Alles auswählen

cd /usr/local/addons/zigbee2mqtt
Install dependencies:

Code: Alles auswählen

npm ci
nach Beendigung kam folgendes raus

added 813 packages, and audited 814 packages in 1m

90 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities


Build the app:

Code: Alles auswählen

npm run build
nach Beendigung kam folgendes raus

> zigbee2mqtt@1.34.0 build
> tsc && node index.js writehash


Programm Starten:

Code: Alles auswählen

npm start

Folgendes wurde bei mir ausgegeben und somit z2m erfolgreich gestartet:


> zigbee2mqtt@1.34.0 start
> node index.js

Zigbee2MQTT:info 2023-12-27 13:10:54: Logging to console and directory: '/usr/local/addons/zigbee2mqtt/data/log/2023-12-27.13-10-54' filename: log.txt
Zigbee2MQTT:info 2023-12-27 13:10:54: Starting Zigbee2MQTT version 1.34.0 (commit #unknown)
Zigbee2MQTT:info 2023-12-27 13:10:54: Starting zigbee-herdsman (0.25.0)
Zigbee2MQTT:info 2023-12-27 13:11:02: zigbee-herdsman started (reset)
Zigbee2MQTT:info 2023-12-27 13:11:02: Coordinator firmware version: '{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20211116,"transportrev":2},"type":"zStack12"}'
Zigbee2MQTT:info 2023-12-27 13:11:02: Currently 0 devices are joined:
Zigbee2MQTT:info 2023-12-27 13:11:02: Zigbee: disabling joining new devices.
Zigbee2MQTT:info 2023-12-27 13:11:02: Connecting to MQTT server at mqtt://localhost
Zigbee2MQTT:info 2023-12-27 13:11:02: Connected to MQTT server
Zigbee2MQTT:info 2023-12-27 13:11:02: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload '{"state":"online"}'
Zigbee2MQTT:info 2023-12-27 13:11:02: Started frontend on port 8080
Zigbee2MQTT:info 2023-12-27 13:11:02: Zigbee2MQTT started!


Nun kann ich auch das webinterface öffnen!

wenn ich bei Putty aus dem Komando wieder raus gehe wird Zigbee2mqtt wieder beendet.

Damit ich Zigbee2mqtt wieder starten kann hab ich in Nodered ein befehlsflow.
Zigbee2mqtt-startpng.png

Code: Alles auswählen

[{"id":"03c1b8b067bce3c0","type":"exec","z":"8fd5c83f65d2e6b0","command":"node /usr/local/addons/zigbee2mqtt/index.js","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"","x":470,"y":1660,"wires":[["8c0d91a1da7cf47f"],["af00c4828cb2a3ce"],["a9589204bc86cf98"]]},{"id":"0d1c2497ebadca2f","type":"inject","z":"8fd5c83f65d2e6b0","name":"Start ","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":190,"y":1640,"wires":[["03c1b8b067bce3c0"]]},{"id":"8c0d91a1da7cf47f","type":"debug","z":"8fd5c83f65d2e6b0","name":"debug 17","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":760,"y":1620,"wires":[]},{"id":"af00c4828cb2a3ce","type":"debug","z":"8fd5c83f65d2e6b0","name":"debug 18","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":760,"y":1660,"wires":[]},{"id":"a9589204bc86cf98","type":"debug","z":"8fd5c83f65d2e6b0","name":"debug 19","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":760,"y":1700,"wires":[]},{"id":"32ac707e2b45349a","type":"comment","z":"8fd5c83f65d2e6b0","name":"Zigbee2Mqtt Start","info":"","x":150,"y":1600,"wires":[]},{"id":"3a4e7ad15b99408a","type":"inject","z":"8fd5c83f65d2e6b0","name":"Stop","props":[{"p":"payload"},{"p":"kill","v":"true","vt":"bool"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":190,"y":1680,"wires":[["03c1b8b067bce3c0"]]}]
Alternativ kann man zigbee2mqtt auch via CCU Programm starten. Bei leerer Programm Bedingung wird das
Programm nach einem Neustart automatisch ausgelöst.
Zigbee2mqtt-start CCU Programm.png


# sofort ausführen

Code: Alles auswählen

system.Exec('logger -t zigbee2mqtt -p daemon.info "warte 60 Sekunden bis zigbee2mqtt Start"');
# nach 60 Sekunden ausführen

Code: Alles auswählen

system.Exec('logger -t zigbee2mqtt -p daemon.info "starte zigbee2mqtt..."');
system.Exec("node /usr/local/addons/zigbee2mqtt/index.js &");
system.Exec('logger -t zigbee2mqtt -p daemon.info "zigbee2mqtt gestartet"');
Danach steht im LOG in etwa folgendes:

17:20:08 homematic-asus daemon.info zigbee2mqtt: warte 60 Sekunden bis zigbee2mqtt Start
17:21:08 homematic-asus daemon.info zigbee2mqtt: starte zigbee2mqtt...
17:21:08 homematic-asus daemon.info zigbee2mqtt: zigbee2mqtt gestartet
17:21:17 homematic-asus daemon.notice mosquitto[1817]: New connection from 127.0.0.1 on port 1883.
17:21:17 homematic-asus daemon.notice mosquitto[1817]: New client connected from 127.0.0.1 as zigbee2mqtt (c1, k60).
17:21:17 homematic-asus daemon.err node-red: Bridge online




Link vom z2m Webinterface in Systemsteuerung einspeichern

button.png

Via Filezilla ein neuen Ordner namens "zigbee2mqtt" in "/usr/local/etc/config/addons/www/" erstellen und betreten,
Dann eine neue Datei namens "zigbee2mqtt.html" erstellen.
die erstellte Datei "zigbee2mqtt.html" bearbeiten und mit folgenden Zeilen Füllen und speichern

Code: Alles auswählen

<script language="javascript">
document.write('<meta http-equiv="refresh" content="0; url=http://' + window.location.hostname + ':8080/#/dashboard">');
</script>
als nächstes im Pfad "/usr/local/etc/config" die Datei "hm_addons.cfg" bearbeiten und folgendes hinten anfügen und speichern

Code: Alles auswählen

 zigbee2mqtt {CONFIG_URL /addons/zigbee2mqtt/zigbee2mqtt.html CONFIG_DESCRIPTION {de {<li>zigbee2mqtt</li>} en {<li>zigbee2mqtt</li>}} ID zigbee2mqtt CONFIG_NAME Zigbee2Mqtt}
webui neu laden und schauen ob der Link Zigbee2Mqtt in der Systemsteuerung auftaucht und den link testen.

TO DO:
  • z2m vernünftig in Homematic autostart bekommen.
  • z2m updatebar machen
  • das problem mit git clone beheben
Gruß
Matten Matten
Ich muss mich noch einmal bei "Maten Matten" bedanken.
Nun habe ich nach vielen Stunden quasi die Eierlegendewollmilchsau auf EINEM Raspberry. Nachdem ich Zigbee2mqtt nach einigen Tests mit Backup und Restore stabil ans laufen brachte, habe ich alle meine Zigbee Brigdes (Tuya, Ewelink, Hue) aufgelöst und sämtlich Sensoren und Aktoren implementiert. Hölle....Alles spielt mit allem zusammen. Alles auf einem Gerät. Das hatte wirklich noch gefehlt. 👍
Dateianhänge
Screenshot_2024-01-08-13-58-22-161_org.mozilla.firefox.jpg
Wenn etwas schiefgehen kann, dann geht es schief (Murphy)

rr745
Beiträge: 306
Registriert: 19.01.2021, 14:53
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 34 Mal

Re: zigbee2mqtt auf RaspberryMatic

Beitrag von rr745 » 09.01.2024, 09:56

Matten Matten hat geschrieben:
27.12.2023, 16:06
Hier eine Anleitung wie man die zigbee2mqtt Version aktualisiert.

SSH konsole öffnen

# Backup der Konfiguration erstellen:

Code: Alles auswählen

cd /usr/local/addons/zigbee2mqtt/
mkdir /usr/local/addons/backup
cp -R data /usr/local/addons/backup/data-backup
# Alte Installation löschen:

Code: Alles auswählen

rm -rf /usr/local/addons/zigbee2mqtt/*
# aktuelle Version laden:

Code: Alles auswählen

cd /usr/local/addons/redmatic/var
source /usr/local/addons/redmatic/home/.profile
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /usr/local/addons/zigbee2mqtt/
# Installing dependencies...

Code: Alles auswählen

cd /usr/local/addons/zigbee2mqtt/
npm ci
# Building...

Code: Alles auswählen

npm run build
# Backup zurück spielen:

Code: Alles auswählen

cp -R /usr/local/addons/backup/data-backup/* /usr/local/addons/zigbee2mqtt/data
# lösche alten Backup Ordner

Code: Alles auswählen

rm -rf /usr/local/addons/backup
# Test Start

Code: Alles auswählen

npm start

Gruß
Matten Matten
Hi Matten Matten,
(nur zu Info)
gestern Abend hatte ich gesehen das es ein Update von Zigbee2mqtt gibt. Hute wollte ich es nach deiner Anleitung einspielen. Da funktioniert leider nicht. Zwei Punkte sind mir aufgefallen. Unter dem Punkt "alte Installation löschen" ist das Verzeichnis zigbee2mqtt nicht leer. Es musste von Hand komplett geleert werden.
Die Zeile git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /usr/local/addons/zigbee2mqtt/ quitiert mit einem Fehler.

Nach deiner ersten Anleitung (Paket Downloaden, entpacken, kopieren, etc. funktiioniert es.
Wenn etwas schiefgehen kann, dann geht es schief (Murphy)

Matten Matten
Beiträge: 286
Registriert: 09.12.2018, 17:14
System: CCU
Hat sich bedankt: 70 Mal
Danksagung erhalten: 24 Mal
Kontaktdaten:

Re: zigbee2mqtt auf RaspberryMatic

Beitrag von Matten Matten » 09.01.2024, 10:12

rr745 hat geschrieben:
09.01.2024, 09:56

Die Zeile git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /usr/local/addons/zigbee2mqtt/ quitiert mit einem Fehler.
Wie ist die genaue Ausgabe des Fehlers?


git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /usr/local/addons/zigbee2mqtt/

Ich hoffe du hast das in der ssh Eingabe kein Umbruch drin?

Und war der Ordner auch wirklich leer? Das kann das "git clone" auch verhindern
Zuletzt geändert von Matten Matten am 09.01.2024, 11:41, insgesamt 1-mal geändert.

rr745
Beiträge: 306
Registriert: 19.01.2021, 14:53
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 34 Mal

Re: zigbee2mqtt auf RaspberryMatic

Beitrag von rr745 » 09.01.2024, 10:36

Matten Matten hat geschrieben:
09.01.2024, 10:12
rr745 hat geschrieben:
09.01.2024, 09:56

Die Zeile git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /usr/local/addons/zigbee2mqtt/ quitiert mit einem Fehler.
Wie ist die genaue Ausgabe des Fehlers?


git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /usr/local/addons/zigbee2mqtt/

Ich hoffe du hast das in der ssh Eingabe kein Umbruch drin?

Und war der Ordner auch wirklich leer? Das kann das gut clone auch verhindern
für dich tue ich alles :-)
hab es noch einmal durchlaufen, die Meldung lautet:

root@homematic-raspi:/usr/local/addons/redmatic/var# git clone --depth 1 https:/
/github.com/Koenkk/zigbee2mqtt.git /usr/local/addons/zigbee2mqtt/
Cloning into '/usr/local/addons/zigbee2mqtt'...
/usr/local/addons/redmatic/libexec/git-core/git-remote-https: error while loadin g shared libraries: libcurl.so.4: wrong ELF class: ELFCLASS64
Wenn etwas schiefgehen kann, dann geht es schief (Murphy)

Matten Matten
Beiträge: 286
Registriert: 09.12.2018, 17:14
System: CCU
Hat sich bedankt: 70 Mal
Danksagung erhalten: 24 Mal
Kontaktdaten:

Re: zigbee2mqtt auf RaspberryMatic

Beitrag von Matten Matten » 09.01.2024, 11:36

rr745 hat geschrieben:
09.01.2024, 10:36
Cloning into '/usr/local/addons/zigbee2mqtt'...
/usr/local/addons/redmatic/libexec/git-core/git-remote-https: error while loadin g shared libraries: libcurl.so.4: wrong ELF class: ELFCLASS64
Redmatic hast du in zwischen aktuell ?

rr745
Beiträge: 306
Registriert: 19.01.2021, 14:53
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 34 Mal

Re: zigbee2mqtt auf RaspberryMatic

Beitrag von rr745 » 09.01.2024, 12:23

Matten Matten hat geschrieben:
09.01.2024, 11:36
rr745 hat geschrieben:
09.01.2024, 10:36
Cloning into '/usr/local/addons/zigbee2mqtt'...
/usr/local/addons/redmatic/libexec/git-core/git-remote-https: error while loadin g shared libraries: libcurl.so.4: wrong ELF class: ELFCLASS64
Redmatic hast du in zwischen aktuell ?

Yes
Wenn etwas schiefgehen kann, dann geht es schief (Murphy)

Matten Matten
Beiträge: 286
Registriert: 09.12.2018, 17:14
System: CCU
Hat sich bedankt: 70 Mal
Danksagung erhalten: 24 Mal
Kontaktdaten:

Re: zigbee2mqtt auf RaspberryMatic

Beitrag von Matten Matten » 09.01.2024, 16:49

rr745 hat geschrieben:
09.01.2024, 12:23
Yes
was kommt raus wenn du

Code: Alles auswählen

node --version

Code: Alles auswählen

npm --version
eingibst?

und was hast du eigentlich für Hardware? rpi3 ?

Matten Matten
Beiträge: 286
Registriert: 09.12.2018, 17:14
System: CCU
Hat sich bedankt: 70 Mal
Danksagung erhalten: 24 Mal
Kontaktdaten:

Re: zigbee2mqtt auf RaspberryMatic

Beitrag von Matten Matten » 09.01.2024, 17:09

rr745 hat geschrieben:
09.01.2024, 09:56
... Zwei Punkte sind mir aufgefallen. Unter dem Punkt "alte Installation löschen" ist das Verzeichnis zigbee2mqtt nicht leer. Es musste von Hand komplett geleert werden.
hab das in der Anleitung vervollständigt...

# Alte Installation löschen:

Code: Alles auswählen

rm -rf /usr/local/addons/zigbee2mqtt/*
rm -rf /usr/local/addons/zigbee2mqtt/.github
rm -rf /usr/local/addons/zigbee2mqtt/.dockerignore
rm -rf /usr/local/addons/zigbee2mqtt/.eslintignore
rm -rf /usr/local/addons/zigbee2mqtt/.eslintrc.js
rm -rf /usr/local/addons/zigbee2mqtt/.gitignore
rm -rf /usr/local/addons/zigbee2mqtt/.npmignore
rm -rf /usr/local/addons/zigbee2mqtt/.npmrc
rm -rf /usr/local/addons/zigbee2mqtt/.release-please-manifest.json

rr745
Beiträge: 306
Registriert: 19.01.2021, 14:53
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 34 Mal

Re: zigbee2mqtt auf RaspberryMatic

Beitrag von rr745 » 09.01.2024, 17:17

Matten Matten hat geschrieben:
09.01.2024, 16:49
rr745 hat geschrieben:
09.01.2024, 12:23
Yes
was kommt raus wenn du

Code: Alles auswählen

node --version

Code: Alles auswählen

npm --version
eingibst?

und was hast du eigentlich für Hardware? rpi3 ?
yes raspi 3

node --version
v18.18.2
npm --version
10.2.5
Wenn etwas schiefgehen kann, dann geht es schief (Murphy)

Antworten

Zurück zu „RaspberryMatic“