[Gelöst:] Calender (calview) Eintrag abfragen

Begonnen von DJ-Mix, 10 April 2017, 13:25:48

Vorheriges Thema - Nächstes Thema

DJ-Mix

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ß

DJ-Mix

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

Amenophis86

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
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

DJ-Mix

Danke Amenophis86 schaue ich mir mal an.

VG

chris1284

#4
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

Amenophis86

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.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Per

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->Regex

DJ-Mix

@Per

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

VG

Damian

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"])
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Amenophis86

Und wie komme ich an die dreistellige Nummer aus dem Reading mit einem DOIF dran?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Damian

#10
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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

DJ-Mix

@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

Damian

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"])
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

DJ-Mix

@Damian

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

VG

huhu

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?