Seite 1 von 2

Rules lösen nicht aus

Verfasst: 17. Aug 2022 20:32
von Murdock79
Hallo,
ich habe ein Problem bei der Erstellung einer Rule. Ich nutze OH3 als Docker.
Über Einstellungen --> Rules --> + habe ich eine einfache Regel erstellt.

Ein Thing oder auch item soll einfach nur zu einer Uhrzeit ausgeführt werden.
Ich benutze + und gebe dann (Name usw. eigegeben) unter WHEN --> add Trigger --> Time Event --> "at a fixed time of the day --> eine Uhrzeit an.
Unter THEN habe ich ein Blockly erstellt: send command, dann den Textstatus (bspw. ON) und dann das item oder das Thing. -->save
Führe ich dieses Blockly über die Playtaste aus, passt alles.
Wenn allerdings die entsprechende Uhrzeit aus dem WHEN erreicht ist, tut sich einfach nichts. Habe alles probiert und auch neu gestartet usw.
Woran kann das liegen? Mach ich etwas falsch?

Re: Rules lösen nicht aus

Verfasst: 18. Aug 2022 11:59
von udo1toni
Zeig doch bitte mal den Code der Rule. Da gibt es einen KArteireiter mit der Codeansicht. Textform ist vollständig und passt gut in ein Posting rein.
Bitte achte darauf, den Code direkt als Code markiert zu posten (mit den Tags [c ode] und [/c ode] markiert, ohne das Leerzeichen drin...)

Re: Rules lösen nicht aus

Verfasst: 18. Aug 2022 16:01
von Murdock79
So hier kommt der Code:

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      time: 16:00
    type: timer.TimeOfDayTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      blockSource: <xml xmlns="https://developers.google.com/blockly/xml"><block
        type="oh_event" id="1w0kuv{a+`hhZNcHc8hs" x="362" y="98"><field
        name="eventType">sendCommand</field><value name="value"><shadow
        type="text" id="%*}_doK1Zd,!2N/ZFaHd"><field
        name="TEXT">value</field></shadow><block type="text"
        id="?1fN8x0gODk3A2n40F4O"><field
        name="TEXT">ON</field></block></value><value name="itemName"><shadow
        type="oh_item" id="lO/mM[`_A#UGlRmmcT88"><field
        name="itemName">MyItem</field></shadow><block type="oh_item"
        id="@6My;8(WarjqTYxn/M:*"><field
        name="itemName">Schreibtischlicht_PowerState</field></block></value></block></xml>
      type: application/javascript
      script: |
        events.sendCommand('Schreibtischlicht_PowerState', 'ON');
    type: script.ScriptAction

Re: Rules lösen nicht aus

Verfasst: 18. Aug 2022 16:33
von udo1toni
Hmm... Eigentlich sieht das gut aus, müsste also funktionieren.
Ich habe das gerade bei mir auf dem Textsystem nachgestellt und bei mir wird der betreffende Schaltvorgang auch ausgeführt.
Stimmt die Uhrzeit des Systems? Nicht, dass die Rule sehr wohl schaltet, aber eine oder zwei Stunden vorher oder nachher...

Re: Rules lösen nicht aus

Verfasst: 18. Aug 2022 19:19
von Murdock79
Ja, habe ich gerade geprüft. Uhrzeit stimmt. Kann es sein, dass bei der Zeiteinstellung der Rules ein Fehler ist, den man iwo extra einstellen muss??

Re: Rules lösen nicht aus

Verfasst: 18. Aug 2022 19:49
von udo1toni
Nein. Sonst wäre bei mir ja auch ein Fehler aufgetreten. :)

Für die konkrete Anwendung brauchst Du übrigens kein Blockly, es reicht, das Item aus der Liste der Items auszuwählen und den gewünschten Befehl auszusuchen. Das wird aber nichts an dem Problem ändern, dass Deine Rule nicht triggert.

Du könntest noch auf Time cron ausweichen, das bezieht das Datum mit ein und kann eine Wiederholung nach recht flexiblen Regeln definieren. Du kannst hier also einfach 0 0 16 * * ? * eintragen, das steht für "täglich um 16:00:00 Uhr (Die Notation ist umgekeehrt, also 0 Sekunden, 0 Minuten, 16 Stunden, Tag egal, Monat egal, beliebiger Wochentag, egal welches Jahr.

Allerdings bleibt dann immer noch das Rätsel, warum der Time Trigger nicht auslöst.

Re: Rules lösen nicht aus

Verfasst: 18. Aug 2022 21:21
von Murdock79
Ja, das hatte ich genauso auch schon erfolglos versucht. Irgendwas stimmt da nicht, ich habe sowas schon mal gemacht und da ging es ja problemlos.

Re: Rules lösen nicht aus

Verfasst: 18. Aug 2022 23:42
von udo1toni
Da Du Docker verwendest...

WIE hast Du die Uhrzeit überprüft?

Oder um konkreter zu werden: es gibt Zeitzoneneinstellungen für den Hostrechner, für den Container und für Java innerhalb des Containers.

All diese Zeitzonen sind unabhängig voneinander, und keine wird vom NTP Binding beeinflusst, dies ist noch mal eine andere Zeit.
Die Zeitzone des Host ist keine Herausforderung, sudo dpkg-reconfigure tzdata sollte zur komfortablen Auswahl von Europe/Berlin reichen.
Für Container und Java wird die Zeitzone in der docker-compose.yaml eingetragen.

Re: Rules lösen nicht aus

Verfasst: 19. Aug 2022 10:31
von Murdock79
Also ich habe über ssh deinen Befehl : sudo dpkg-reconfigure tzdata eingegeben. --> kein Erfolg/ Command not found
Eine docker-compose.yaml habe ich gar nicht, aber die ist ja in den Einstellungen vom Docker integriert, wenn ich mich nicht irre, oder muss ich die manuell installieren? Wenn ja, welche docker-compose.yaml muss ich mir von github installieren?
Festgestellt habe ich aber jetzt, dass die Rules überhaupt nicht triggern. Habe wieder was ganz einfaches gemacht: Zwei Lampen: geht die eine an, soll die andere ausgehen. Auch hier funktioniert die Rules gar nicht.

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      itemName: LichtschalterAnkleide
      command: ON
    type: core.ItemCommandTrigger
conditions: []
actions:
  - inputs: {}
    id: "3"
    configuration:
      itemName: Schreibtischlicht_PowerState
      command: OFF
    type: core.ItemCommandAction
sehr, sehr komisch. Soll ich einfach den Docker ganz neu installieren? Alle bisher gemachten Einstellungen hätte ich ja in meinen conf/userdata/log gespeichert.

Re: Rules lösen nicht aus

Verfasst: 19. Aug 2022 12:28
von rfu
Hi,

hast Du mal in die Log-Dateien geschaut? in userdata/logs gibt es events.log und openhab.log ...
Da stehen übrigens auch Timestamps drin, an denen Du recht schnell siehst, ob die Uhrzeit im Container korrekt ist.

rfu