Transformierung einer HA Component (pybecker) zu OH möglich?
-
- Beiträge: 489
- Registriert: 30. Apr 2021 13:13
Re: Transformierung einer HA Component (pybecker) zu OH möglich?
Hi,
da Du selbst HA ins Gespräch gebracht hast bin ich davon ausgegangen, dass Du die Möglichkeit hast dieses zumindest temporär einzusetzen. Ich habe es z.B. zum "spielen" unter Proxmox in einem LXC-Container installiert.
Bei der Regel hatte ich, weil Du ja wohl keine Rückmeldungen bekommst, an diese als Grundlage gedacht -> viewtopic.php?t=8243 Nur so ein Gefühl... hatte noch in Erinnerung, dass Udo mal was in der Richtung gebastelt hat.
Mit Pyhton hatte ich mich zwar vor Jahren mal ein wenig beschäftigt aber nicht im Einsatz. Von daher kann ich Dir da nicht weiterhelfen. Meine Suche hier hatte aber gezeigt das es dazu reichlich Treffer gibt.
da Du selbst HA ins Gespräch gebracht hast bin ich davon ausgegangen, dass Du die Möglichkeit hast dieses zumindest temporär einzusetzen. Ich habe es z.B. zum "spielen" unter Proxmox in einem LXC-Container installiert.
Bei der Regel hatte ich, weil Du ja wohl keine Rückmeldungen bekommst, an diese als Grundlage gedacht -> viewtopic.php?t=8243 Nur so ein Gefühl... hatte noch in Erinnerung, dass Udo mal was in der Richtung gebastelt hat.
Mit Pyhton hatte ich mich zwar vor Jahren mal ein wenig beschäftigt aber nicht im Einsatz. Von daher kann ich Dir da nicht weiterhelfen. Meine Suche hier hatte aber gezeigt das es dazu reichlich Treffer gibt.
- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Transformierung einer HA Component (pybecker) zu OH möglich?
Python Scripte kannst Du recht einfach über das exec Binding steuern (wobei einfach und exec eigentlich nicht in einem Satz auftauchen kann. Nun ja...)
Je nachdem, wie das Python Script funktioniert, könnte man es auch um eine mqtt Schnittstelle erweitern und als Dienst laufen lassen. Das Python Script erledigt dann die Arbeit als "Gateway", und zwar zwischen Becker und mqtt.
Das mqtt Binding in openHAB ist super einfach in der Anwendung.
Je nachdem, wie das Python Script funktioniert, könnte man es auch um eine mqtt Schnittstelle erweitern und als Dienst laufen lassen. Das Python Script erledigt dann die Arbeit als "Gateway", und zwar zwischen Becker und mqtt.
Das mqtt Binding in openHAB ist super einfach in der Anwendung.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 5
- Registriert: 30. Aug 2022 16:20
Re: Transformierung einer HA Component (pybecker) zu OH möglich?
Update 16.05.2025:
So, ich hab jetzt den Centronic USB Stick für 45€ bekommen.
Auf meinem Openhabian Pi hab ich das Python script von "ole1986" (https://github.com/ole1986/centronic-py/tree/master) genommen. musste den USB Stick nicht via "/dev/serial/by-id/..." sondern mit "/dev/serial/by-path/..." nehmen, weil mein debian11 da wohl einen bug hat.
Was soll ich sagen: LÄUFT per Konsole
Ich hab eine Jalousie angelernt und diese per Konsolenbefehle UP / HALT / DOWN bewegen.
Was bei mir nicht funktioniert hat, ist die Reichweite des USB-Sticks trotz Verlängerung vom UG (Pi) zur Jalousie in das 2.OG. Der Homematic-USB-Sick hat das über diese Entfernung geschafft. Aber dafür wir sich bestimmt eine Lösung finden.
Nächster Schritt: Steuerung aus OH heraus - ich werde wieder berichten.
So, ich hab jetzt den Centronic USB Stick für 45€ bekommen.
Auf meinem Openhabian Pi hab ich das Python script von "ole1986" (https://github.com/ole1986/centronic-py/tree/master) genommen. musste den USB Stick nicht via "/dev/serial/by-id/..." sondern mit "/dev/serial/by-path/..." nehmen, weil mein debian11 da wohl einen bug hat.
Was soll ich sagen: LÄUFT per Konsole
Ich hab eine Jalousie angelernt und diese per Konsolenbefehle UP / HALT / DOWN bewegen.
Was bei mir nicht funktioniert hat, ist die Reichweite des USB-Sticks trotz Verlängerung vom UG (Pi) zur Jalousie in das 2.OG. Der Homematic-USB-Sick hat das über diese Entfernung geschafft. Aber dafür wir sich bestimmt eine Lösung finden.
Nächster Schritt: Steuerung aus OH heraus - ich werde wieder berichten.
-
- Beiträge: 5
- Registriert: 30. Aug 2022 16:20
Re: Transformierung einer HA Component (pybecker) zu OH möglich?
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
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
ACHTUNG: User/Userpfad im folgenden Anpassen!!
nun aktivieren wir den Service, damit er auch beim Neustart gestartet wird:
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)
Check, ob USB-Stick RICHTIG initialisiert ist (hat mich etliche Nerven gekostet, bis ich das herausgefunden hatte)
Darin kurzer Check:
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
- Bestätigung mit CLICK … CLICK
- OK-Taste an MASTER
ggf. für weitere Rollos/Jalousien wiederholen
Viel Spaß damit
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:
Code: Alles auswählen
mosquitto_pub -h localhost -t /jalousie/1/ -m "DOWN"
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
um von außerhalb erreichbar zu sein muss LISTENERS gesetzt werden
Code: Alles auswählen
sudo vim /etc/mosquitto/mosquitto.conf
Code: Alles auswählen
listener 1883
allow_anonymous true
Code: Alles auswählen
sudo systemctl restart mosquitto.service
Code: Alles auswählen
sudo systemctl enable mosquitto.service
Lade das Centronic repositorry von ole1986
Code: Alles auswählen
git clone https://github.com/ole1986/centronic-py.git
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
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
Code: Alles auswählen
sudo systemctl daemon-reload
sudo systemctl enable centronic.service
Code: Alles auswählen
sudo systemctl start centronic.service
Code: Alles auswählen
sudo systemctl status centronic.service
Code: Alles auswählen
sudo reboot -h now
bei mir im PY-File "centronic-stick.py" anpassen, für korrekte USB-Stick Erkennung (default ist UPPERCASE)
Code: Alles auswählen
vim centronic-py/centronic-stick.py
Code: Alles auswählen
....
DEFAULT_DEVICE_NAME = '/dev/serial/by-id/usb-Becker-Antriebe_GmbH_CDC_RS232_v125_Centronic-if00'
...
Code: Alles auswählen
sudo screen /dev/serial/by-id/usb-Becker-Antriebe_GmbH_CDC_RS232_v125_Centronic-if00 115200,cs8
Code: Alles auswählen
h
i --> Info: Centronic-II PC-Central 868MHz V201 [2022-04-06]
r --> RSSI: -111 dBm
Tip: Beenden von „screen“ mit
Code: Alles auswählen
crt+a
k
y
- 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
- OK-Taste an MASTER
ggf. für weitere Rollos/Jalousien wiederholen
Viel Spaß damit
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Transformierung einer HA Component (pybecker) zu OH möglich?
Sehr schön! Prima, dass Du es gleich hier dokumentiert hast.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet