Autor Thema: 57_CALENDAR - welche RRULE funktionieren?  (Gelesen 1357 mal)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14987
  • s/fhem\.cfg/configDB/g
Antw:57_CALENDAR - welche RRULE funktionieren?
« Antwort #15 am: 11 Mai 2018, 05:35:25 »
Naja, ich finde den Begriff "series" in diesem Zusammenhang schon sehr irreführend. Was ich als Ergebnis erwarte, sind einfach die nächsten 10 Termine aus einem bestimmten Kalender, egal ob sie einer Serie, mehreren Serien oder Einzelereignissen entstammen.

So wie das bisher ja auch funktionierrt 😀
« Letzte Änderung: 11 Mai 2018, 10:22:04 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 07.09.2018 - 18:30 Uhr

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4190
Antw:57_CALENDAR - welche RRULE funktionieren?
« Antwort #16 am: 11 Mai 2018, 08:43:17 »
Also werde ich noch den vierten Parameter implementieren, der bei mir auf der Liste stand:

limit:count=<count>,from=<fromDate>,to=<toDate>
Es können einer, zwei oder drei von count, from und to angegeben werden.

Brauche dazu noch einem Datumsparser. Den gibt es sicher schon irgendwo im FHEM.


Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14987
  • s/fhem\.cfg/configDB/g
Antw:57_CALENDAR - welche RRULE funktionieren?
« Antwort #17 am: 11 Mai 2018, 10:26:07 »
mir würde ja

list:next=10
ausreichen (und besser gefallen), weil der Zweck durch das "next" einfach erkennbar bleibt.

In das Modul habe ich jetzt noch nicht geschaut, aber "series:next=10" liefert doch die Ergebnisse vermutlich in einem sortierten Array zurück - davon müsste man eben nur die 10 ersten Einträge verwenden.

Also "list:next=10" ruft "series:next=10" auf und gibt die gewünschte absolute Anzahl der Einträge zurück. (wobei ich mich aktuelle frage, ob bei series auch Einzeltermine, die keine Serie haben, berücksichtigt werden)

-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 07.09.2018 - 18:30 Uhr

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4190
Antw:57_CALENDAR - welche RRULE funktionieren?
« Antwort #18 am: 11 Mai 2018, 11:05:15 »
Also es ist einfach zu realisieren. Wie Du sagst stehen die Termine zeitlich sortiert in einem Array.

Dein Anwendungsfall ist mit

limit:count=10,from=now
oder, alternativ, mit

limit:count=10 filter:mode=~"upcoming|start"

abgedeckt. Mache mich diese Tage daran.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14987
  • s/fhem\.cfg/configDB/g
Antw:57_CALENDAR - welche RRULE funktionieren?
« Antwort #19 am: 11 Mai 2018, 13:13:26 »
wenn Du grade am Frickeln bist, dann spendiere doch dem "get ... events" noch einen Parameter "raw" ganz am Schluß, der dafür sorgt, dass direkt das Ergebnis-Array zurückgeliefert wird, anstatt eines reinen Textes mit \n zur Zeilentrennung

Dann kann ich in meinen Anwendungen schreiben

my @a = fhem("get myCalendar events .... raw");
anstatt

my @a = split(/\n/,fhem("get myCalendar events ..."));
Danke  8)
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 07.09.2018 - 18:30 Uhr

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4190
Antw:57_CALENDAR - welche RRULE funktionieren?
« Antwort #20 am: 11 Mai 2018, 15:22:19 »
wenn Du grade am Frickeln bist, dann spendiere doch dem "get ... events" noch einen Parameter "raw" ganz am Schluß, der dafür sorgt, dass direkt das Ergebnis-Array zurückgeliefert wird, anstatt eines reinen Textes mit \n zur Zeilentrennung

Ist machbar - schließlich wird das Array erst am Schluss zu einem String gejoint.

Zum Keystore. Das wollte ich sowieso mal angehen, damit die geheime URL aus dem define herauskommt. Ich würde dann die Variante

define myCalendar ical key <key> [interval]
einführen. Wie geht denn Keystore bzw. wo ist die Doku? Habe das noch nie benutzt.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14987
  • s/fhem\.cfg/configDB/g
Antw:57_CALENDAR - welche RRULE funktionieren?
« Antwort #21 am: 11 Mai 2018, 20:54:39 »
Wie geht denn Keystore bzw. wo ist die Doku? Habe das noch nie benutzt.

Schau Dir in der fhem.pl die Funktionen getKeyValue() und setKeyValue() an.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 07.09.2018 - 18:30 Uhr

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4190
Antw:57_CALENDAR - welche RRULE funktionieren?
« Antwort #22 am: 15 Mai 2018, 21:20:49 »
So, der limit-Parameter ist implementiert und eingecheckt.

get MyCalendar events limit:count=10
get MyCalendar events limit:from=-2d
get MyCalendar events limit:count=10,from=0,to=+10d

Der Rest noch nicht.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14987
  • s/fhem\.cfg/configDB/g
Antw:57_CALENDAR - welche RRULE funktionieren?
« Antwort #23 am: 16 Mai 2018, 16:43:18 »
Jetzt solltest Du bitte noch die besprochene "Ankündigung" schreiben, damit die Anwender wissen, was die plötzlich vorhandenen Hinweise im Log bedeuten :)

https://forum.fhem.de/index.php/topic,87846.0.html
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 07.09.2018 - 18:30 Uhr

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14987
  • s/fhem\.cfg/configDB/g
Antw:57_CALENDAR - welche RRULE funktionieren?
« Antwort #24 am: 16 Mai 2018, 22:12:00 »
Also mal ganz ehrlich ...

Wenn ich die Wahl hätte zwischen

$actor = CommandGet(undef,"oc_Schalter summary $uid 1");

und

$actor = CommandGet(undef,'oc_Schalter events format:custom="$S" filter:uid=="'.$uid.'" limit:count=1');

fände ich die erste Variante auf jeden Fall sympathischer.

Vor allem finde ich es absolut unlogisch - und schwer zu merken - dass ich überall mit einem einfachen = arbeiten kann und nur beim Filterkriterien einen zweistelligen Vergleichsoperator verwenden muss.



Auf jeden Fall habe ich nun die ersten notify auf die neue Syntax umgebaut und werde vergleichen, ob meine eingebauten Debug-Ausgaben dem entsprechen, was die bisherige Syntax als Ergebnis lieferte.
« Letzte Änderung: 16 Mai 2018, 22:14:06 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 07.09.2018 - 18:30 Uhr