Seite 1 von 1

time cron funktioniert nicht

Verfasst: 27. Jun 2025 08:23
von Tobii
Hallo zusammen,

ich habe in meinem Garten eine Bewässerung installiert, diese aber so einfach wie möglich gehalten. Es gibt keine Ventile, nur 2 Pumpen und daher nur 2 Kreisläufe an denen alle Regner hängen.
Diese Regner möchte ich nun in Abhängigkeit von der Tagestemperatur starten lassen. Die Dauer ist also immer abhängig welche Temperatur war und welche zu erwarten ist. Regnen möchte ich um 5Uhr und 20Uhr.
Für die Dauer in Abhängigkeit konnte ich eine rule erstellen, diese funktioniert auch. Ich kriege es jedoch nicht auf die Reihe die Regner zeitbasiert starten zu lassen. Testweise habe ich eine Rule erstellt welche mit einem switch gestartet wird, diese läuft ohne Probleme. Sobald ich aber auf den time cron umstelle passiert gar nichts, auch in den logs ist nichts zu sehen. Es muss also am time cron liegen.

Code: Alles auswählen

rule 
when
    Time cron "0 15 8 * * ?"  
then
    Regner_Ost.sendCommand(ON)
    Regner_Sued.sendCommand(ON)

    createTimer(now.plusMinutes(5), [ |
        Regner_Ost.sendCommand(OFF)
        Regner_Sued.sendCommand(OFF)
    ])
end

Re: time cron funktioniert nicht

Verfasst: 27. Jun 2025 10:10
von Tobii
Nachtrag:

Selbst das Einrichten direkt über UI funktioniert nicht.

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      time: 10:09
    type: timer.TimeOfDayTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: Regner_Sued
      command: ON
    type: core.ItemCommandAction

Der Regner startet nicht.

Ich habe auch andere Items ausprobiert, diese starten auch nicht.
Auch habe ich alle rules gelöscht um zu sehen ob sie welche behindern, auch das hat nicht funktioniert.

Re: time cron funktioniert nicht

Verfasst: 27. Jun 2025 10:30
von Tobii
Kann es vielleicht daran liegen? Ich habe 82 Probleme bei den Orphan links.

In den Items sehe ich immer 2 Brücken, eine mit ? und die andere ist sauber verbunden und funktioniert auch.
Bildschirmfoto 2025-06-27 um 10.29.42.png
Orphan links are items pointing to non-existent thing channels or vice versa.

Note that only the links of managed Items can be purged, not links defined in .items files - these must be fixed manually in the corresponding file. The latter are marked with lock_fill.
82 orphan links found

Re: time cron funktioniert nicht

Verfasst: 27. Jun 2025 11:46
von Tobii
Tobii hat geschrieben: Gestern 10:30 Kann es vielleicht daran liegen? Ich habe 82 Probleme bei den Orphan links.

In den Items sehe ich immer 2 Brücken, eine mit ? und die andere ist sauber verbunden und funktioniert auch.
Bildschirmfoto 2025-06-27 um 10.29.42.png

Orphan links are items pointing to non-existent thing channels or vice versa.

Note that only the links of managed Items can be purged, not links defined in .items files - these must be fixed manually in the corresponding file. The latter are marked with lock_fill.
82 orphan links found
Diese Fehler habe ich nun beseitigt, waren Themen aus meiner Anfangszeit von Openhab. Das kommt eben davon wenn man keine Ahnung hat und dann kommt so eine unsaubere Programmierung raus.

Re: time cron funktioniert nicht

Verfasst: 27. Jun 2025 11:48
von Tobii
Tobii hat geschrieben: Gestern 08:23 Hallo zusammen,

ich habe in meinem Garten eine Bewässerung installiert, diese aber so einfach wie möglich gehalten. Es gibt keine Ventile, nur 2 Pumpen und daher nur 2 Kreisläufe an denen alle Regner hängen.
Diese Regner möchte ich nun in Abhängigkeit von der Tagestemperatur starten lassen. Die Dauer ist also immer abhängig welche Temperatur war und welche zu erwarten ist. Regnen möchte ich um 5Uhr und 20Uhr.
Für die Dauer in Abhängigkeit konnte ich eine rule erstellen, diese funktioniert auch. Ich kriege es jedoch nicht auf die Reihe die Regner zeitbasiert starten zu lassen. Testweise habe ich eine Rule erstellt welche mit einem switch gestartet wird, diese läuft ohne Probleme. Sobald ich aber auf den time cron umstelle passiert gar nichts, auch in den logs ist nichts zu sehen. Es muss also am time cron liegen.

Code: Alles auswählen

rule 
when
    Time cron "0 15 8 * * ?"  
then
    Regner_Ost.sendCommand(ON)
    Regner_Sued.sendCommand(ON)

    createTimer(now.plusMinutes(5), [ |
        Regner_Ost.sendCommand(OFF)
        Regner_Sued.sendCommand(OFF)
    ])
end
Dieses Problem ist auch zum Teil beseitigt, aber die Lösung habe ich noch nicht zu 100% gefunden.
Problem ist, dass time cron einen Zeitunterschied im Bauch hat von 1h. Hier ist nicht die deutsche Zeit hinterlegt und deswegen startet auch nichts.
Habe in Openhab Berlin eingestellt, aber offenbar wird die Zeit woanders gezogen.

Re: time cron funktioniert nicht

Verfasst: 27. Jun 2025 22:48
von udo1toni
openHAB bezieht seine Zeit von Java. Java wiederum bezieht seine Zeit vom System.
Du musst also 1. die Zeit des Betriebssystems korrekt einstellen und 2. dafür sorgen, dass JAva sich in der richtigen Zeitzone befindet.
Die Einstellungen in openHAB selbst betreffen andere Aspekte (ja, unschön, aber so isses nun mal)

Für Punkt 1 kommt es auf das darunter laufende OS an, z.B. auf dem Raspberry Pi wäre es sinnvoll, die Zeit per ntp Client zu stellen.

Re: time cron funktioniert nicht

Verfasst: 27. Jun 2025 23:09
von udo1toni
openHAB bezieht seine Zeit von Java. Java wiederum bezieht seine Zeit vom System.
Du musst also 1. die Zeit des Betriebssystems korrekt einstellen und 2. dafür sorgen, dass JAva sich in der richtigen Zeitzone befindet.
Die Einstellungen in openHAB selbst betreffen andere Aspekte (ja, unschön, aber so isses nun mal)

Für Punkt 1 kommt es auf das darunter laufende OS an, z.B. auf dem Raspberry Pi wäre es sinnvoll, die Zeit per ntp Client zu stellen. Es gibt hier mehrere Wege, "modern" gehts über timedatectl, in der Datei /etc/systemd/timesyncd.conf trägst Du unter [Time] NTP= einen ntp-Server Deiner Wahl ein (gewöhnlich sollte der Router ntp ausliefern, ntp1.ptb.de wäre auch eine gute Quelle oder auch ein Server aus pool.ntp.org (wobei man gut daran tut, einen nahegelegenen Server zu nutzen)
Die Zeitzone kannst Du direkt über timedatectl set-timezone Europe/Berlin setzen, mit dem Befehl timedatectl show bekommst Du Konfigurationsdetails zu Gesicht, mit timedatectl status den aktuellen Zustand, mit timedatectl timesync-status bekommst Du den Zustand von ntp angezeigt. Eventuell musst Du ntp erst mit timedatectl set-ntp true aktivieren (vielleicht 1 statt true)

Damit Java die korrekte Zeitzone nutzt (Punkt 2), musst Du in /etc/default/openhab eventuell in EXTRA_JAVA_OPTS den Parameter -Duser.timezone=Europe/Berlin ergänzen - falls in dem String schon andere Parameter drin stehen, musst Du einfach ein Leerzeichen als Trennzeichen verwenden.
Nachdem Du diese Anpassung vorgenommen hast, musst Du openHAB neu starten (sudo systemctl restart openhab.service).

Unter Windows gibt es eine ähnliche Datei mit den Default-Werten, aber das habe ich nicht im Einsatz...