"Disable Thing" automatisieren
- RES
- Beiträge: 33
- Registriert: 20. Aug 2020 14:38
- Wohnort: Innsbruck
- Kontaktdaten:
"Disable Thing" automatisieren
Guten Tag.
Ich betreibe mit openHAB auch ca. 45 Z-Wave-Geräte und verwende dafür den "Z-Stick Gen5" von Aeotec als Controller.
Nun ist es so, dass der "Z-Stick" nach einigen Tagen Laufzeit immer wieder für einige Sekunden keine Arbeit verrichtet. Das ist auch daran zu beobachten, dass der Farbwechsel der Statusanzeige am Controller für einige Sekunden stecken bleibt.
Ich habe nun festgestellt, dass dieses Problem für einige Tage zu beheben ist, indem ich in "Paper UI" die Funktion "Disable Thing" verwende, um das Gerät zu deaktivieren und nach einigen Sekunden wieder zu aktivieren.
Kennt jemand von Euch eine Möglichkeit, wie ich openHAB dazu bringen kann, dieses Deaktivieren und Aktivieren in der Nacht automatisch durchzuführen?
Vielen Dank für Eure Hilfe.
Ich betreibe mit openHAB auch ca. 45 Z-Wave-Geräte und verwende dafür den "Z-Stick Gen5" von Aeotec als Controller.
Nun ist es so, dass der "Z-Stick" nach einigen Tagen Laufzeit immer wieder für einige Sekunden keine Arbeit verrichtet. Das ist auch daran zu beobachten, dass der Farbwechsel der Statusanzeige am Controller für einige Sekunden stecken bleibt.
Ich habe nun festgestellt, dass dieses Problem für einige Tage zu beheben ist, indem ich in "Paper UI" die Funktion "Disable Thing" verwende, um das Gerät zu deaktivieren und nach einigen Sekunden wieder zu aktivieren.
Kennt jemand von Euch eine Möglichkeit, wie ich openHAB dazu bringen kann, dieses Deaktivieren und Aktivieren in der Nacht automatisch durchzuführen?
Vielen Dank für Eure Hilfe.
Ohne es ausprobiert zu haben:
<bundlename> musst Du Dir raus suchen, im Zweifel irgendwas in Richtung openhab-binding-zwave, kann aber auch mit org…. beginnen
sleep kann auch mit Minuten, Stunden oder Tagen umgehen, dann muss man nur den passenden Buchstaben anhängen.
Das Script kannst Du natürlich von openHAB starten lassen. Du kannst aber auch genauso gut einen Eintrag in der crontab hinterlegen, dann macht das Betriebssystem das direkt, das ist weniger nervig als das Rumgeschraube am Exec Binding…
EDIT: <passwort> ergänzt...
Gehe zur vollständigen AntwortCode: Alles auswählen
#! /bin/bash
openhab-cli console -p <passwort> bundle:stop <bundlename>
sleep 60
openhab-cli console -p <passwort> bundle:start <bundlename>
sleep kann auch mit Minuten, Stunden oder Tagen umgehen, dann muss man nur den passenden Buchstaben anhängen.
Das Script kannst Du natürlich von openHAB starten lassen. Du kannst aber auch genauso gut einen Eintrag in der crontab hinterlegen, dann macht das Betriebssystem das direkt, das ist weniger nervig als das Rumgeschraube am Exec Binding…
EDIT: <passwort> ergänzt...
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: "Disable Thing" automatisieren
openHAB selbst kann das nicht so einfach automatisieren. Du kannst aber ein bash-Script schreiben, welches über die Karaf Konsole das Bundle stoppt und wieder startet. Eventuell reicht sogar ein einfacher Restart des Bundle.
Bist Du eventuell im openHAB3 unterwegs? Dort heißt die UI „Main UI“. Paper UI ist openHAB2.
Bist Du eventuell im openHAB3 unterwegs? Dort heißt die UI „Main UI“. Paper UI ist openHAB2.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
- RES
- Beiträge: 33
- Registriert: 20. Aug 2020 14:38
- Wohnort: Innsbruck
- Kontaktdaten:
Re: "Disable Thing" automatisieren
Ein Neustart wäre zu schnell, man muss dem Z-Wave-System nach der Deaktivierung ca. eine Minute Zeit geben, bevor es wieder aktiviert wird.
Hast Du evtl. ein Script, welches eine Aktion in der "Karaf Konsole" auslöst, das ich als Vorlage verwenden könnte?
Es läuft noch openHAB 2 auf dem System.
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: "Disable Thing" automatisieren
Ohne es ausprobiert zu haben:
<bundlename> musst Du Dir raus suchen, im Zweifel irgendwas in Richtung openhab-binding-zwave, kann aber auch mit org…. beginnen
sleep kann auch mit Minuten, Stunden oder Tagen umgehen, dann muss man nur den passenden Buchstaben anhängen.
Das Script kannst Du natürlich von openHAB starten lassen. Du kannst aber auch genauso gut einen Eintrag in der crontab hinterlegen, dann macht das Betriebssystem das direkt, das ist weniger nervig als das Rumgeschraube am Exec Binding…
EDIT: <passwort> ergänzt...
Code: Alles auswählen
#! /bin/bash
openhab-cli console -p <passwort> bundle:stop <bundlename>
sleep 60
openhab-cli console -p <passwort> bundle:start <bundlename>
sleep kann auch mit Minuten, Stunden oder Tagen umgehen, dann muss man nur den passenden Buchstaben anhängen.
Das Script kannst Du natürlich von openHAB starten lassen. Du kannst aber auch genauso gut einen Eintrag in der crontab hinterlegen, dann macht das Betriebssystem das direkt, das ist weniger nervig als das Rumgeschraube am Exec Binding…
EDIT: <passwort> ergänzt...
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
- RES
- Beiträge: 33
- Registriert: 20. Aug 2020 14:38
- Wohnort: Innsbruck
- Kontaktdaten:
Re: "Disable Thing" automatisieren
Vielen Dank.
Es gibt dabei aber zwei Probleme:
Einerseits wird ein Passwort verlangt, was die Ausführung des Scripts blockieren würde, andererseits scheint openHAB nur den Befehl "org.openhab.binding.zwave" und nicht den Befehl "bundle:stop org.openhab.binding.zwave" zu erhalten.
Es gibt dabei aber zwei Probleme:
Code: Alles auswählen
openhab-cli console -p bundle:stop org.openhab.binding.zwave
Logging in as openhab
Password:
Command not found: org.openhab.binding.zwave
- RES
- Beiträge: 33
- Registriert: 20. Aug 2020 14:38
- Wohnort: Innsbruck
- Kontaktdaten:
Re: "Disable Thing" automatisieren
Habe nochmal nachgesehen:
"openhab-cli" erwartet hinter "-p" das Passwort.
Die Befehle müssen also so aussehen:
Vielen Dank für Deine erneute Hilfe!
"openhab-cli" erwartet hinter "-p" das Passwort.
Die Befehle müssen also so aussehen:
Code: Alles auswählen
openhab-cli console -p <Passwort> bundle:stop org.openhab.binding.zwave
openhab-cli console -p <Passwort> bundle:start org.openhab.binding.zwave
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: "Disable Thing" automatisieren
Ja, irgendwie hat er oben den Parameter verschluckt... Ich hab das korrigiert.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
- RES
- Beiträge: 33
- Registriert: 20. Aug 2020 14:38
- Wohnort: Innsbruck
- Kontaktdaten:
Re: "Disable Thing" automatisieren
Das war's leider noch nicht ganz:
Wenn ich das Script
als Benutzer "openhabian" manuell ausführe, funktioniert es.
Wenn das Script per "crond" über
gestartet wird (auch unter dem Benutzer "openhabian"), funktioniert es nicht. Das Script gibt in diesem Fall einfach
aus.
Fehlen da evtl. Umgebungsvariablen, wenn das Script per "crond" ausgeführt wird?
Wenn ich das Script
Code: Alles auswählen
#!/bin/bash
/usr/bin/openhab-cli console -p <Passwort> bundle:stop org.openhab.binding.zwave
/usr/bin/sleep 60
/usr/bin/openhab-cli console -p <Passwort> bundle:start org.openhab.binding.zwave
Wenn das Script per "crond" über
Code: Alles auswählen
30 4 * * * /home/openhabian/mkzwaverestart
Code: Alles auswählen
Benndet
Beendet
Fehlen da evtl. Umgebungsvariablen, wenn das Script per "crond" ausgeführt wird?
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: "Disable Thing" automatisieren
Die Umgebungsvariablen sollten eigentlich keine Rolle spielen, da Du die absoluten Pfade verwendet hast.
Du könntest die Ausgabe gezielt in eine Datei umleiten bzw. im Normalbetrieb gezielt nach /dev/null umleiten:
bzw.
Keine Ahnung, ob das hilft.
Du könntest die Ausgabe gezielt in eine Datei umleiten bzw. im Normalbetrieb gezielt nach /dev/null umleiten:
Code: Alles auswählen
30 4 * * * /home/openhabian/mkzwaverestart >> /home/openhabian/cronausgabe.txt
Code: Alles auswählen
30 4 * * * /home/openhabian/mkzwaverestart >> /dev/null
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
- RES
- Beiträge: 33
- Registriert: 20. Aug 2020 14:38
- Wohnort: Innsbruck
- Kontaktdaten:
Re: "Disable Thing" automatisieren
Es liegt nicht an der Ausgabe. Das Problem ist, dass die Befehle von/durch "openhab-cli" nicht ausgeführt werden, wenn "openhab-cli" über ein Script gestartet wird, welches durch "crond" gestartet wird (unabhängig davon, ob/wohin die Ausgabe umgeleitet wird). Wenn das Script manuell gestartet wird (z. B. per "./mkzwaverestart"), verrichtet "openhab-cli" seine Aufgaben.
Hat evtl. jemand bereits ein durch "crond" gestartetes Script aktiv, welches auf "openhabian" per "openhab-cli" Befehle ausführt?
Hat evtl. jemand bereits ein durch "crond" gestartetes Script aktiv, welches auf "openhabian" per "openhab-cli" Befehle ausführt?