Seite 1 von 1

[OH3] Rules - conditions - Abfrage Kalender Status funktioniert nicht

Verfasst: 9. Jul 2021 07:37
von hydrotec
Hallo zusammen,

bin gerade dabei mir einen Wochenplan für mein Radio zu erstellen.
Dabei ist mir folgendes aufgefallen.

Wenn ich die Regel folgendermaßen erstelle, funktioniert sie einwandfrei.

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      time: 07:28
    type: timer.TimeOfDayTrigger
conditions:
  - inputs: {}
    id: "3"
    configuration:
      offset: 0
    type: ephemeris.WeekdayCondition
  - inputs: {}
    id: "5"
    configuration:
      offset: 0
    type: ephemeris.NotHolidayCondition
  - inputs: {}
    id: "4"
    configuration:
      itemName: system_dummy_home_state_iphone
      state: ON
      operator: =
    type: core.ItemStateCondition
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: SYMFONISKBookshelfBuro_Fernbedienung
      command: PLAY
    type: core.ItemCommandAction

Zusätzlich möchte ich aber noch den Status des Kalenders mit einbinden.
Wenn ich die Abfrage mit einfüge, dann funktioniert die Regel nicht mehr, bzw. das Radio wird nicht eingeschaltet.

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      time: 07:30
    type: timer.TimeOfDayTrigger
conditions:
  - inputs: {}
    id: "3"
    configuration:
      offset: 0
    type: ephemeris.WeekdayCondition
  - inputs: {}
    id: "5"
    configuration:
      offset: 0
    type: ephemeris.NotHolidayCondition
  - inputs: {}
    id: "4"
    configuration:
      itemName: system_dummy_home_state_iphone
      state: ON
      operator: =
    type: core.ItemStateCondition
  - inputs: {}
    id: "6"
    configuration:
      itemName: KalenderAnwesenheit_TiteldesaktuellenEintrags
      state: Urlaub
      operator: =
    type: core.ItemStateCondition
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: SYMFONISKBookshelfBuro_Fernbedienung
      command: PLAY
    type: core.ItemCommandAction
OH3_Rules_conditions_01.png
Woran kann das liegen, was mache ich falsch oder wo liegt mein Denkfehler?


Vorab schon einmal Dankeschön für eure Unterstützung.

Gruß, Karsten

Re: [OH3] Rules - conditions - Abfrage Kalender Status funktioniert nicht

Verfasst: 9. Jul 2021 09:51
von Quautiputzli
Evtl. das Urlaub in Anfürungsstriche "Urlaub", da es ein String ist. Weiß aber nicht ob es hilft.

Re: [OH3] Rules - conditions - Abfrage Kalender Status funktioniert nicht

Verfasst: 9. Jul 2021 10:18
von hydrotec
@Quautiputzli

Danke für die schnelle Rückmeldung, doch das brachte auch keine Besserung.

Re: [OH3] Rules - conditions - Abfrage Kalender Status funktioniert nicht

Verfasst: 10. Jul 2021 12:44
von int5749
Sind die abgefragten Items denn mit den korrekten Werten gefüllt?
Ich baue zwecks debugging ganz oben in der spezifischen Regel einen Block, der mir alle in der Regel verwendeten Items ausgibt.

Beispiel

Code: Alles auswählen

logInfo("irrigation", "Valves: " + Valves.state.toString)
Dann pro Item einen Eintrag, damit man die Werte mal zusammengefasst sieht.

Wie dies in einer YAML geschrieben werden muss, kann ich nicht beantworten, das ich noch alle Rules in Textdateien habe. Dies ist für mich lesbarer ;-)

Re: [OH3] Rules - conditions - Abfrage Kalender Status funktioniert nicht

Verfasst: 10. Jul 2021 17:38
von hydrotec
Hallo int5749,

Dankeschön für deine Rückmeldung.
int5749 hat geschrieben: Sind die abgefragten Items denn mit den korrekten Werten gefüllt?
Davon gehe ich aus.
Wie schon in #1 beschrieben,
funktioniert die Regel ja ohne der Abfrage des Kalenderstatus.
Ich baue zwecks debugging ganz oben in der spezifischen Regel einen Block, der mir alle in der Regel verwendeten Items ausgibt.
...
Mit den ganzen Hintergrundinformationen muss ich mich erst noch genauer beschäftigen.
Bis jetzt habe ich den größten Teil meiner Geräte in OH3 über WebUI eingepflegt.
(Wenn man einmal das Prinzip von OH3 verstanden hat, funktioniert das eigentlich sehr gut)
Mit den Regeln bin ich noch ganz am Anfang.
Nur eine Frage der Zeit bis ich auch das gebacken bekomme. ;)

Gruß, Karsten

Re: [OH3] Rules - conditions - Abfrage Kalender Status funktioniert nicht

Verfasst: 10. Jul 2021 19:38
von int5749
hydrotec hat geschrieben: 10. Jul 2021 17:38 Davon gehe ich aus.
Wie schon in #1 beschrieben,
funktioniert die Regel ja ohne der Abfrage des Kalenderstatus.
Nun ja, evtl. ist genau das Item nicht ganz korrekt oder leicht anders gefüllt. Die Anführungszeichen bei einem String wurden ja schon erwähnt und getestet. Urlaub ist auch genau so geschrieben, oder evtl. über ein Transform angepasst?

Daher wäre es hilfreich zu wissen, wie das Item genau befüllt wurde ;-)

Re: [OH3] Rules - conditions - Abfrage Kalender Status funktioniert nicht

Verfasst: 10. Jul 2021 21:12
von hydrotec
int5749 hat geschrieben: ... wie das Item genau befüllt wurde ;-)
Hier mal meine Vorgehensweise.


Thing:

Menü Administration
Einstellungen -> Things -> add -> iCalendar-Binding -> Kalender (Bridge) -> Label angepasst -> URL, Aktualisierungsintervall, Benutzername und Passwort eingetragen -> Create Thing

Code: Alles auswählen

UID: icalendar:calendar:271bdd4a78
label: Kalender Anwesenheit
thingTypeUID: icalendar:calendar
configuration:
  password: <password>
  maxSize: 16
  url: https://<server.ip>/remote.php/dav/calendars/<username>/anwesenheit/?export
  refreshTime: 60
  username: <username>

Items:

Menü Administration
Einstellungen -> Things -> Kalender Anwesenheit -> Channels -> Add Equipment to Model -> Select All -> Add to Model
OH3_Rules_conditions_02.png
Aktueller Eintrag "UNDEF" ist dem geschuldet, das heute kein Eintrag vorhanden ist.
Wenn ich einen Ganztagestermin mit "Urlaub" im Kalender eintrage, ist auch der Status in dem Item "Urlaub".


Den einzigen Unterschied der beiden Einträge besteht darin, das im Nextcloud-Kalender "Urlaub " eingetragen ist.
(Das Leerzeichen wird bei iOS automatisch mit eingefügt)
OH3_Rules_conditions_03.png

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      time: 12:13
    type: timer.TimeOfDayTrigger
conditions:
  - inputs: {}
    id: "3"
    configuration:
      offset: 0
    type: ephemeris.WeekdayCondition
  - inputs: {}
    id: "5"
    configuration:
      offset: 0
    type: ephemeris.NotHolidayCondition
  - inputs: {}
    id: "4"
    configuration:
      itemName: system_dummy_home_state_iphone
      state: ON
      operator: =
    type: core.ItemStateCondition
  - inputs: {}
    id: "7"
    configuration:
      itemName: KalenderAnwesenheit_TiteldesaktuellenEintrags
      state: Urlaub
      operator: =
    type: core.ItemStateCondition
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: SYMFONISKBookshelfBuro_Fernbedienung
      command: PLAY
    type: core.ItemCommandAction
Unter id: "7" -> operator: habe ich auch schon "=~" oder "~" versucht, hat auch nichts gebracht.

Bei den ical-Eintragsfiltern hat man ja die Möglichtkeit exakt oder entspricht auszuwählen.
("Text" prüft, ob der Ausdruck enthalten ist, "Regulärer Ausdruck" prüft, ob der Ausdruck aus den Feldwert im Ganzen zutrifft)
Diese Möglichkeit besteht bei den Rules leider nicht.


Hoffentlich hilft das bei der Lösungsfindung etwas weiter.
Solltest du noch mehr Informationen brauchen, gerne fragen.

Gruß, Karsten