So, hat ein bisschen gedauertaber nun ist es geschafft!
Ein zweiter RasPi 4 (Debian 12) mit mqtt-Broker läuft.
Auch darauf ist das centronic Script von von "ole1986" (
https://github.com/ole1986/centronic-py/tree/master), das ich zum Einlernen verwende und mein abgewandeltes mqtt-client Script (centronic-stick-mqtt.py, Anhang). Dieses startet immer automatisch mit. Nur der USB-Stick hat ab und zu noch ein Power-Problem nach einem Restart und muss einmal händisch aus- und angesteckt werden.
Diese Script "lauscht" immer auf "/jalousie/#", wobei ich für die Wildcard "#" den CHANNEL verwende, den ich so auch über OH4 je nach Jalousie/Rolladen übergeben.
Beispiel:
Hier eine kleine Anleitung, wie ich es auf meinem RasPi 4 gemacht habe:
MQTT
Install mqtt Broker und Client
Code: Alles auswählen
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install -y mosquitto mosquitto-clients
Code: Alles auswählen
# install für SU
sudo pip install paho-mqtt --break-system-packages
# install für USER
pip install paho-mqtt --break-system-packages
Passe die mosquitto Config an
um von außerhalb erreichbar zu sein muss LISTENERS gesetzt werden
folgendes hinzufügen
dann noch Neustart des Service
und zum Autostart hinzufügen:
Script
Lade das Centronic repositorry von ole1986
mqtt extendetes Python Script in den gleichen Ordner kopieren
centronic-stick-mqtt.py (siehe Anhang - KEIN GEWÄHR!!!)
zu autoloader hinzufügen
Code: Alles auswählen
touch centronic-py/output.log
sudo vim /lib/systemd/system/centronic.service
ACHTUNG: User/Userpfad im folgenden Anpassen!!
Code: Alles auswählen
[Unit]
Description=Python MQTT controlling CENTRONIC rollershutter
Wants=network-online.target
After=network-online.target
StartLimitIntervalSec=30
StartLimitBurst=2
FailureAction=reboot
[Service]
Type=idle
#Type=simple
ExecStart=/usr/bin/python /home/USERXYZ/centronic-py/centronic-stick-mqtt.py
#ExecStart=/usr/bin/python /home/USERXYZ/centronic-py/centronic-stick-mqtt.py > /home/USERXYZ/centronic-py/output.log 2>&1
Restart=on-failure
# Use a dedicated user to run our service
User= USERXYZ
[Install]
WantedBy=multi-user.target
nun aktivieren wir den Service, damit er auch beim Neustart gestartet wird:
Code: Alles auswählen
sudo systemctl daemon-reload
sudo systemctl enable centronic.service
einen ersten Start können wir so ausführen:
Status check
nun kann man das System einmal durchstarten und schauen ob der Service auch beim Reboot hochgefahren wird.
Jalousie anlernen
bei mir im PY-File "centronic-stick.py" anpassen, für korrekte USB-Stick Erkennung (default ist UPPERCASE)
Code: Alles auswählen
....
DEFAULT_DEVICE_NAME = '/dev/serial/by-id/usb-Becker-Antriebe_GmbH_CDC_RS232_v125_Centronic-if00'
...
Check, ob USB-Stick RICHTIG initialisiert ist (hat mich etliche Nerven gekostet, bis ich das herausgefunden hatte)
Code: Alles auswählen
sudo screen /dev/serial/by-id/usb-Becker-Antriebe_GmbH_CDC_RS232_v125_Centronic-if00 115200,cs8
Darin kurzer Check:
Code: Alles auswählen
h
i --> Info: Centronic-II PC-Central 868MHz V201 [2022-04-06]
r --> RSSI: -111 dBm
Wenn das nicht kommt, sondern schwarz bleibt, Centronic-Stick ziehen, bis 5 zählen, einstecken und sollte vorheriges wiederholen, bis Response kommt
Tip: Beenden von „screen“ mit
Rollo Anlernen
- Auf MASTER-Fernbedienung gewünschten KANAL wählen
- PROG Taste an MASTER für 4 Sekunden gedrückt halten -> Bestätigung mit CLICK
- Im Terminal für diesen Channel TRAIN ausführen
Code: Alles auswählen
python3 centronic-py/centronic-stick.py --send TRAIN --channel 1
- Bestätigung mit CLICK … CLICK
- OK-Taste an MASTER
ggf. für weitere Rollos/Jalousien wiederholen
Viel Spaß damit