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

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
hydrotec
Beiträge: 20
Registriert: 21. Jun 2021 06:10
Answers: 0

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

Beitrag 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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Quautiputzli
Beiträge: 364
Registriert: 29. Okt 2020 19:53
Answers: 2

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

Beitrag von Quautiputzli »

Evtl. das Urlaub in Anfürungsstriche "Urlaub", da es ein String ist. Weiß aber nicht ob es hilft.
Servus

hydrotec
Beiträge: 20
Registriert: 21. Jun 2021 06:10
Answers: 0

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

Beitrag von hydrotec »

@Quautiputzli

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

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

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

Beitrag 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 ;-)
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

hydrotec
Beiträge: 20
Registriert: 21. Jun 2021 06:10
Answers: 0

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

Beitrag 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

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

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

Beitrag 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 ;-)
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

hydrotec
Beiträge: 20
Registriert: 21. Jun 2021 06:10
Answers: 0

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

Beitrag 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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten