Seite 1 von 1

Funksteckdose bekommt Statusänderung durch Cronjob nicht mit

Verfasst: 12. Okt 2019 22:32
von smarty
Hallo zusammen,

ich habe meine Funksteckdosen integriert und habe zur Beleuchtung des Aquariums diese durch Cron zeitgesteuert. Zudem möchte ich aber auch den Status der Steckdose in der Sitemap sehen und diese manuell steuern.

Jetzt habe ich das Problem, dass wenn durch die Cron Zeitsteuerung die Steckdose angeschaltet wird, ich dieses Update nicht in der Sitemap aktualisiert bekomme. Muss ich hier in Cron noch irgendwas anpassen?
Es findet im Log Viewer auch kein Eintrag statt.

Mein Code in Cron:

Code: Alles auswählen

  29 22   *   *   6          /opt/433Utils/RPi_utils/codesend ...

Das Funktioniert auch wunderbar und die Steckdose schaltet sich an, allerdings wird der Status in der Sitemap nicht aktualisiert.

Hat jemand eine Idee?

Viele Grüße und vielen Dank für eure Unterstützung!

Re: Funksteckdose bekommt Statusänderung durch Cronjob nicht mit

Verfasst: 12. Okt 2019 23:29
von udo1toni
Wenn Du die Steckdose in openHAB integriert hast, warum nutzt Du dann einen cron Job aus dem Betriebssystem?

Deine Funksteckdosen (es gibt übrigens so viele verschiedene Systeme, dass es sich lohnt, zumindest ein Wort zum Funkstandard zu verlieren...) sind vermutlich unidirektional, sprich, sie melden nicht ihren Schaltzustand zurück. Entsprechend musst Du die Schaltaktion aus openHAB heraus initiieren, über das Item, welches die Steckdose repräsentiert, dann hat das Item automatisch den richtigen Status.

Am einfachsten geht das über eine simple Rule, die mittels Time cron Trigger ausgelöst wird (aber nicht verwechseln mit einem cron job...)

Code: Alles auswählen

rule "Steckdose Sonntags um 22:29 an"
when
    Time cron "0 29 22 * * SUN" //22:29:00 Uhr, immer wieder sonntags
then
    MeinSteckdosenItem.sendCommand(ON)
end
Der cron-Ausdruck ist hier sekundengenau, da es sich um Quartz Cron handelt, nicht den GNU/Linux Cron Scheduler. Die erste 0 ist also die Sekunde.
Die Rule wird in einer Datei mit der Endung .rules gespeichert, im Verzeichnis /etc/openhab2/rules/ (so Du über die debian Paketverwaltung oder openHABian installiert hast).

Re: Funksteckdose bekommt Statusänderung durch Cronjob nicht mit

Verfasst: 13. Okt 2019 11:09
von smarty
Vielen Dank für deine Antwort. Mit dem cron trigger muss ich mich dann noch auseinandersetzen! Die rule habe ich erstellt, aber ist ja etwas unhandlich, wenn ich Änderungen in cron durchführe, muss ich ja die rule jedesmal mitändern.

Aber so wie ich es aus deiner Antwort lese, kann das auch alles direkt über den cron trigger laufen lassen?

Bei meiner Funksteckdose handelt es sich um eine mit 433 MHz und ich habe das WiringPi Addon installiert und sende aus cron über den codesend Befehl.

Re: Funksteckdose bekommt Statusänderung durch Cronjob nicht mit

Verfasst: 13. Okt 2019 13:09
von smarty
Huhu,
vielen Dank nochmal für die Hilfe! Habe das nun verstanden und alles über die Rules eingestellt und muss jetzt testen, ob es läuft. Aber das sieht nach einer sauberen Lösung aus :) Danke!

Re: Funksteckdose bekommt Statusänderung durch Cronjob nicht mit

Verfasst: 13. Okt 2019 14:19
von udo1toni
smarty hat geschrieben: 13. Okt 2019 11:09Die rule habe ich erstellt, aber ist ja etwas unhandlich, wenn ich Änderungen in cron durchführe, muss ich ja die rule jedesmal mitändern.
Andersrum wird ein Schuh draus. Vergiss die crontab komplett, die ist ausschließlich für das Betriebssystem (oder besser formuliert für Dinge, die mit openHAB nichts zu tun haben) zuständig.

Alles, was in openHAB ist, wird ausschließlich aus openHAB heraus gesteuert. Wobei ich damit natürlich nur Automatismen meine. Kleiner Einblick in meine Installation:
  1. Die gesamte Elektrik läuft bei mir mit knx. Jeder Lichtsschalter, jede Lampe, jeder Rollladen, jeder Heizkörper ist über knx angebunden. Alle Bewegungsmelder sind an knx angebunden (auch die im Außenbereich). Dieser Teil funktioniert auch, denn openHAB ausgeschaltet ist, aber nur manuell.
  2. Ich habe Lautsprecher in den Bädern und der Küche, die von einem zentralen Verstärker gespeist sind. Der Verstärker hängt an einer 7.1 Soundkarte, die wiederum an einem OdroidU3 angeschlossen ist. Auf diesem SBC laufen 4 Instanzen von squeezelight. Dazu passend läuft auf meinem Server ein Squeezebox Server (Logitechmediaserver). Über die Weboberfläche kann ich jeden der Player manuell steuern.
  3. Ich habe mehrere VDR (yavdr), einige Internetradios und einen Yamaha Verstärker.
  4. Wenn openHAB läuft, kann ich im Bad das Licht einschalten und die Musik läuft los. Wenn ich das Licht ausschalte, stoppt die Musik (Pausenmodus!). Nach weiteren zwei Minuten wird der Player "abgeschaltet". Wenn ich am Lichtschalter die untere Wippe bediene, kann ich von Titel zu Titel springen (kurzer Tastendruck) und die Lautstärke verstellen (langer Tastendruck).
    Ebenso fahren die Rollläden automatisch nach Sonnenstand und temperaturabhängig.
    Auf dem Fernseher gibt es eine Ausgabe, falls jemand anruft, es an der Haustür klingelt oder eines der Hoftore verfahren wird (Klingel und Hoftor hängen mit am knx)
    Ich kann über openHAB zwischen BluRay und VDR umschalten (passiert im Yamaha), abhängig davon, welches Gerät gerade eingeschaltet ist.
All das passiert über Rules, das ist einer der Kernpunkte von openHAB.