FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: DJ-Mix am 10 April 2017, 13:25:48

Titel: [Gelöst:] Calender (calview) Eintrag abfragen
Beitrag von: DJ-Mix am 10 April 2017, 13:25:48
Hallo zusammen,

ich habe ein Problem mit der Abfrage von Ereignissen im Calview Modul. Ich möchte einen Dummy (Schule) anhand von Ereignissen steuern.
Hierzu habe ich im Calender folgenden Termin eingetragen: "Schule_spaet"
Diesen Eintrag frage ich mittels DOIF ab
([Termin1:today_001_summary] =~"spaet") (set Schule spaet) DOELSE (set Schule normal)

Wenn jedoch nun mehrere Termine an diesem Tag statt finden, kann dieser Termin auch auf ein anderes Reading fallen (z.B. today_002_summary) und dann
funktioniert mein DOIF nicht mehr.

Frage: Wie kann ich hier das DOIF anpassen, damit alle "today_xxx_summary" in Betracht gezogen werden? Oder muss ich hier komplett anders aufbauen?

Vielen Dank Vorab

gruß
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: DJ-Mix am 11 April 2017, 08:01:19
gibt es vielleicht eine andere Möglichkeit, welche nicht auf DOIF basiert?

Bin zur Zeit etwas überfragt mit der Sache. Bin für jeden Lösungsvorschlag-/Ansatz dankbar.

VG
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: Amenophis86 am 11 April 2017, 21:47:30
Ich hatte genau das gleiche Problem heute. Ich bin wieder zur alten Variante gewechselt. Siehe hier: https://wiki.fhem.de/wiki/Google-Kalender_zur_Steuerung_von_Dummies
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: DJ-Mix am 12 April 2017, 06:35:46
Danke Amenophis86 schaue ich mir mal an.

VG
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: chris1284 am 12 April 2017, 06:42:50
es sollte doch möglich sien mit wildcards zu arbeiten. zumindest in notify sollte sowas gehen:

Zitatdefine ntf_calview notify Termin1:today_.*.summary { if(ReadingsVal($NAME, $EVTPART0, "") =~ "spaet") {fhem "set lamp $EVTPART1" } else {fhem "set lamp normal" }
oder etwas starrer
Zitatdefine ntf_calview notify Termin1:today_.*.summary { if(ReadingsVal("Termin1", $EVTPART0, "") =~ "spaet") {fhem "set lamp spaet" } else {fhem "set lamp normal" }
wäre noch einfacher als die myutils. leider weiss ich nicht wie deine summary  aussieht, da du regexp nutz gehe ich mal von mehr text aus und da könnte $EVTPART1 falsch sein und die starre lösung die bessere
ich würde aber die frage einfahc mal nach doif verschieben, da kann der entwickler sicher sagen ob es wildcards gibt
https://forum.fhem.de/index.php/board,73.0.html
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: Amenophis86 am 12 April 2017, 09:40:36
Das Problem welches ich dabei hatte ist, dass ich nicht an die 00X Nummer gekommen bin. Diese brauchte ich zum weiter arbeiten, da ich die Zeiten der Veranstaltung brauchte. Hier fehlt mir einfach das Wissen, wie ich dran komme. Daher hatte ich wieder auf die alte Lösung gewechselt.
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: Per am 12 April 2017, 10:57:27
Zitat von: DJ-Mix am 10 April 2017, 13:25:48Frage: Wie kann ich hier das DOIF anpassen, damit alle "today_xxx_summary" in Betracht gezogen werden?
DOIF->Events (https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events)->Regex
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: DJ-Mix am 12 April 2017, 11:28:16
@Per

das hatte ich versucht (["Termin1:^today"] =~"spaet")
hat aber leider auch nicht funktioniert.

VG
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: Damian am 12 April 2017, 12:53:24
Zitat von: DJ-Mix am 12 April 2017, 11:28:16
@Per

das hatte ich versucht (["Termin1:^today"] =~"spaet")
hat aber leider auch nicht funktioniert.

VG

eher:

(["Termin1:^today: spaet"])
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: Amenophis86 am 12 April 2017, 13:03:41
Und wie komme ich an die dreistellige Nummer aus dem Reading mit einem DOIF dran?
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: Damian am 12 April 2017, 13:58:48
Zitat von: Amenophis86 am 12 April 2017, 13:03:41
Und wie komme ich an die dreistellige Nummer aus dem Reading mit einem DOIF dran?

z. B.

Edit: so sollte es funktionieren

(["Termin1:today.*: spaet"]) (set bla {("$EVENT" =~ /today_(\d*)/;$1)})

in bla wäre dann die Nummer.
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: DJ-Mix am 12 April 2017, 17:32:19
@Damian

Funktioniert leider auch nicht.

Termin1 = CALVIEW Device
Reading = today_001_summary
Ergebnis = Schule_spaet

Frage ich so ab funktioniert es
([Termin1:today_001_summary] =~ "spaet")

Ich möchte nun today_xxx_summary abfragen, egal welche Zeichenfolge
An Stelle von xxx kommt.
VG
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: Damian am 12 April 2017, 17:40:38
Zitat von: DJ-Mix am 12 April 2017, 17:32:19
@Damian

Funktioniert leider auch nicht.

Termin1 = CALVIEW Device
Reading = today_001_summary
Ergebnis = Schule_spaet

Frage ich so ab funktioniert es
([Termin1:today_001_summary] =~ "spaet")

Ich möchte nun today_xxx_summary abfragen, egal welche Zeichenfolge
An Stelle von xxx kommt.
VG

(["Termin1:^today_..._summary: .*spaet"])
Titel: Antw:Calender (calview) Eintrag abfragen
Beitrag von: DJ-Mix am 12 April 2017, 20:22:52
@Damian

vielen Dank, jetzt funktioniert es so wie ich es haben möchte.

VG
Titel: Antw:[Gelöst:] Calender (calview) Eintrag abfragen
Beitrag von: huhu am 21 Oktober 2019, 14:57:01
Hallo,
ich versuche ebenfalls über Calview und DOIF ein bestimmtes Ereignis ausführen zulassen, allerdings komme ich nicht weiter und die hier beschrieben Lösung scheint bei mir nicht zu funktionieren:

define HomeOffice DOIF (["CALVIEWNAME:^today_..._summary: .*Homeoffice"] =~"Homeoffice") (set Automatik_Verkehr off) DOELSE (set Automatik_Verkehr on)

Ist die Syntax falsch?
Titel: Antw:[Gelöst:] Calender (calview) Eintrag abfragen
Beitrag von: Damian am 21 Oktober 2019, 17:43:32
ja, eher so:

define HomeOffice DOIF (["CALVIEWNAME:^today_..._summary: .*Homeoffice"]) (set Automatik_Verkehr off) DOELSE (set Automatik_Verkehr on)
Titel: Antw:[Gelöst:] Calender (calview) Eintrag abfragen
Beitrag von: huhu am 22 Oktober 2019, 14:03:33
Danke für die fixxe Antwort :)
Hab ich so angelegt, allerdings reagiert das DOIF nicht. Kann es an der Terminansicht liegen? Schaut bei mir so aus...

Danke und Viele Grüße