letzter Termin für heute im Calendar

Begonnen von Otto, 30 Januar 2019, 22:32:30

Vorheriges Thema - Nächstes Thema

Otto

Hallo,

ich möchte den letzten Termin für heute aus dem Calendar ausgeben. Habe einen Stundenplan und will den Schulschluss ausgeben.
Und im zweiten Schritt bei einer Änderung des Stundenplans über den Tag einen Alarm bei Änderung der letzten Schulstunde ausgeben.

Wie bekomme ich den letzten heutigen Termin?
Weder im Modul Calendar noch im Modul CALVIEW finde ich es...
Gruss Otto

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

docker - homematic

Otto123

#1
Hallo Otto,

ich habe die Lösung nicht parat, aber mein Gedanke dazu:
Frag die upcoming Events von heute ab, nimm den letzten und das ist es.
In Perl -> $element=$array[-1];
get <Kalender> events filter:mode=="upcoming" limit:from=0d,to=0d

Das mit der Änderung wird schwieriger, Du musst Dir also zum Zeitpunkt X den Status merken und zum Zeitpunkt Y abfragen ob es eine Änderung gibt. Die Module selbst werden das nicht leisten.

Edit
Erster Ansatz für  den Test in der FHEM Kommandozeile (Kalender Name ersetzen):
{my $rcal = fhem ('get Kalender events filter:mode=="upcoming" limit:from=0d,to=0d');; my @events = split ("\n", $rcal);;$events[-1]}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rabehd

ZitatUnd im zweiten Schritt bei einer Änderung des Stundenplans über den Tag einen Alarm bei Änderung der letzten Schulstunde ausgeben.
Dann müsstest Du die Info haben wann es die letzte Änderung an einem Eintrag gab, incl. der Löschung. Ich weiß nicht ob  das vorhanden ist, da ich GCALVIEW verwende.
Idee:
2 Instanzen mit versetztem Update und dem Inhaltsvergleich zwischen beiden.
Auch funktionierende Lösungen kann man hinterfragen.

Otto

Hallo Otto ;)

danke für deine Hilfe, ich bekomme mit limit:to=1d
{my $rcal = fhem ('get UntisCal events filter:mode=="upcoming" limit:to=1d');; my @events = split ("\n", $rcal);;$events[-1]}
Das 'fast' gewünschte Ergebnis 31.01.2019 14:15 0:45 Mensa

Schön wäre nicht die Startzeit sondern die Endzeit: 15:00

Der Eintrag der ical ist:
55: VEVENT @382 [new]
    DESCRIPTION: Test
    DTEND: 20190131T140000Z
    DTSTAMP: 20190131T094904Z
    DTSTART: 20190131T131500Z
    LOCATION: 0.1.11
    SUMMARY: Mensa
    UID: 226965-1843-
    >>> Events:
      2269651843    upcoming                     31.01.2019 14:15-31.01.2019 15:00 Mensa  0.1.11
    >>> Skipped events:


Wie bau ich es um?
... in der Commandref steht dazu ja nix, oder bin ich blind
Gruss Otto

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

docker - homematic

Beta-User

Zitat von: Otto am 31 Januar 2019, 11:27:02
... in der Commandref steht dazu ja nix, oder bin ich blind
ZitatThe format parameter determines the overall formatting of the calendar event. The following format specifications are available:
Müßte also in etwa so gehen
format:custom="Ende: $T2 $S" timeFormat:"%H:%M"
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Otto

Moin,

danke perfekt.
So sieht es dann aus:
{my $rcal = fhem ('get UntisCal events filter:mode=="upcoming" limit:to=1d format:custom="Ende: $T2 $S" timeFormat:"%H:%M"');; my @events = split ("\n", $rcal);;$events[-1]}
Gruss Otto

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

docker - homematic

nils_

Zitat von: Otto am 31 Januar 2019, 11:27:02
... in der Commandref steht dazu ja nix, oder bin ich blind

momentan ist nur die englische auf die neue Syntax angepasst !!
viele Wege in FHEM es gibt!

Beta-User

Zitat von: nils_ am 31 Januar 2019, 13:08:15
momentan ist nur die englische auf die neue Syntax angepasst !!
:) .
Deswegen war ich so frei, aus der _im Zweifel allein maßgeblichen Fassung_ (englisch!) zu zitieren...

Im Ernst: Gut, dass ihr euch da dran gemacht habt, die cref zu übersetzen!
Es wäre evtl. auch eine gute Idee, neben der dt. commandref noch ein paar (ähnliche) Beispiele (wie das hier und bei der ASC-Diskussion) ins Wiki zu packen und deutliche Warnhinweise anzubringen, dass die diversen verstreuten Beispiele nach alter Syntax halt nicht mehr funktionieren....
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Otto123

Zitat von: Otto am 31 Januar 2019, 11:27:02
... in der Commandref steht dazu ja nix, oder bin ich blind
Ich lege mal noch - erklärend und nicht anklagend - nach  :D
Steht in der deutschen Doku ganz am Anfang:
ZitatDiese deutsche Übersetzung ist nicht mehr aktuell (siehe bitte Forumsbeitrag). Bitte hilf bei FHEM mit und aktualisiere diese Übersetzung. Die englischsprachige Dokumentation ist immer aktuell.
Was mich wundert ist der Filter limit:from=
Ich bekomme mit filter:mode=="upcoming" limit:to=1dden nächsten Termin von Morgen mit angezeigt.
Die Frage ist, warum Dir der Termin von heute bei to=0d nicht angezeigt wird. Bei mir funktioniert das.
Das from brauchst Du bei upcoming nicht, dass stimmt. Das braucht man wenn man den Filter mode nicht angibt. Aber ohne "mode" bekomme ich bei limit:from=0d,to=0d exakt die von heute angezeigt.
@Beta-User
ZitatEs wäre evtl. auch eine gute Idee, neben der dt. commandref noch ein paar (ähnliche) Beispiele (wie das hier und bei der ASC-Diskussion) ins Wiki zu packen und deutliche Warnhinweise anzubringen, dass die diversen verstreuten Beispiele nach alter Syntax halt nicht mehr funktionieren....
Ja das wollte ich eh auch machen. Wobei ich zunächst auch alle Beispiele der englischen Doku nochmal durchspielen wollte, es könnten sich ja Fehler eingeschlichen haben. Mit meinem Schnellschuss von gestern bin ich nicht glücklich.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

Zitat von: Otto123 am 31 Januar 2019, 15:26:40
@Beta-User
Ja das wollte ich eh auch machen. Wobei ich zunächst auch alle Beispiele der englischen Doku nochmal durchspielen wollte, es könnten sich ja Fehler eingeschlichen haben.
Das ist sicher eine gute Idee, wobei ich im Moment den Eindruck habe, dass das ganz gut paßt. Meine aktuellen Codings zum Thema kennst du ja vermutlich, die sind den cref-Beispielen (und einigen sehr hilfreichen Beiträgen in einem endlos-Thread, der nach der Umstellung des Modul entstanden ist, den ich aber leider grade nicht mehr wiederfinde und diesem hier) nachgebildet.

Vielleicht sollte man im Wiki eine Art "Praxisbeispiele" einfügen; die cref hat zwar eigentlich alles drin, was man so braucht (eventbasiertes Arbeiten und Abfrage von Listen usw. zur Vorausschau), aber das ist cref-üblich recht kurz gefaßt und daher vermutlich für manche zu abstrakt.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Otto

#10
Perl ist nicht mein Freund:

2019.02.02 08:13:56.093 1: PERL WARNING: Use of uninitialized value $rcal in string ne at (eval 536604) line 3.
2019.02.02 08:13:56.093 3: eval: my $EVTPART0='On';my $NAME='du_test2';my $TYPE='dummy';my $EVENT='On';my $SELF='n_dummy_cal';{
        my $rcal = fhem ('get UntisCal events filter:mode=="upcoming" limit:to=1d format:custom="$T2" timeFormat:"%H:%M"');;
        my @events = split ("\n", $rcal) if ($rcal ne "");;
        ##fhem("set dummy_cal $events[-1];");;
}


Wie fange ich das ab, $rcal ist leer. Keine Termine heute

notify:
du_test2 {
my $rcal = fhem ('get UntisCal events filter:mode=="upcoming" limit:to=1d format:custom="$T2" timeFormat:"%H:%M"');;
my @events = split ("\n", $rcal) if ($rcal ne "");;
##fhem("set dummy_cal $events[-1];");;
}
Gruss Otto

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

docker - homematic

Ellert

my @events = split ("\n", $rcal) if ($rcal);;

Otto

Moin Otto,

Was mich wundert ist der Filter limit:from=
Ich bekomme mit
Code: [Auswählen]
filter:mode=="upcoming" limit:to=1d
den nächsten Termin von Morgen mit angezeigt.


du hast Recht, ich bekomme einige Termine für Morgen angezeigt.

Aber mit get UntisCal events limit:to=0d bekomme ich keine "upcoming" Termine

Diese beiden Termin werden mit limt:to=0d angezeigt:
155: VEVENT @5 [known]
    DESCRIPTION: ε 3 Jür
    DTEND: 20190204T074500Z
    DTSTAMP: 20190204T063003Z
    DTSTART: 20190204T070000Z
    LOCATION: 0.1.11
    SUMMARY: LB-MA
    UID: 204371-1601-
    >>> Events:
      2043711601 *       end                     04.02.2019 08:00-04.02.2019 08:45 LB-MA  0.1.11
    >>> Skipped events:


158: VEVENT @32 [known]
    DESCRIPTION: ε 3 Jür
    DTEND: 20190204T083000Z
    DTSTAMP: 20190204T063003Z
    DTSTART: 20190204T074500Z
    LOCATION: 0.1.11
    SUMMARY: LB-MA
    UID: 204372-1601-
    >>> Events:
      2043721601 *     start                     04.02.2019 08:45-04.02.2019 09:30 LB-MA  0.1.11
    >>> Skipped events:


Und z.B. dieser nicht
161: VEVENT @59 [known]
    DESCRIPTION: ε 3 Wof
    DTEND: 20190204T093500Z
    DTSTAMP: 20190204T063003Z
    DTSTART: 20190204T085000Z
    LOCATION: 0.1.11
    SUMMARY: EN
    UID: 202191-1448-
    >>> Events:
      2021911448    upcoming                     04.02.2019 09:50-04.02.2019 10:35 EN  0.1.11
    >>> Skipped events:



Versteht ich nicht
Gruss Otto

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

docker - homematic

Otto123

Moin,

ehrlich gesagt, ich auch nicht.
Wie hast Du diese Ansicht der Termine erzeugt?
Kannst Du den Thread bitte nach Kalendermodule verschieben, da kann vielleicht Boris was zu sagen.
Die Termine werden ja richtig erkannt, der erste ist zu Ende, der zweite am Start der dritte hat noch nicht begonnen.
Die Inhalte sehen für mich auch in Ordnung aus.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto

Hi Otto,

ZitatWie hast Du diese Ansicht der Termine erzeugt?
mit get UntisCal vevents

ZitatKannst Du den Thread bitte nach Kalendermodule verschieben, da kann vielleicht Boris was zu sagen.
Done
Gruss Otto

.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.

docker - homematic