Calendar - wie bekommt man eine Liste der uids?

Begonnen von mlo, 20 Februar 2016, 10:53:24

Vorheriges Thema - Nächstes Thema

mlo

Moin,

gerade versuche ich meine bis dahin funktionierende Steuerung an das neue Calenda Modul anzupassen.

An einer zentralen Stelle erzeuge ich mir eine Liste aller uids, die ich dann abarbeite.
bislang war diese Liste der Inhalt meines $EVENT in einem notify mit der regex "modeUpcoming"

Diese soll ja nicht mehr verwendet werden, also hab ich das notify durch ein "triggered" ersetzt und wollte mir in der Funktion, die aufgerufen wird eine Liste der uids holen.

Leider kann ich in der Doku keinen Hinweis finden, wie ...

ein "get MyCalendar uids next" würde mir an der Stelle sehr helfen.

noch toller wäre ein "get MyCalendar uids today" ...
... aber ich will ja nicht vermessen sein ;-)

danke
gruß
mlo

mlo

ich hab eben in das Calendar Modul reingeschaut ...

Der Code ist ja sehr schön aufgeräumt :-)
Deshalb hab ich mich drübergetraut und folgendes implementiert:

--- 57_Calendar.pm   2016-02-20 11:21:17.545697872 +0100
+++ 57_Calendar_new.pm   2016-02-20 11:22:30.786866899 +0100
@@ -493,6 +493,13 @@
   return sprintf("%02d.%02d.%2d %02d:%02d", $day,$month+1,$year-100,$hour,$minute);
}

+sub asUid {
+  my ($self)= @_;
+  return sprintf("%s",
+    $self->uid()
+  );
+}
+
sub asText {
   my ($self)= @_;
   return sprintf("%s %s",
@@ -1630,7 +1637,7 @@

   }
   
-  my @cmds2= qw/text full summary location description alarm start end debug/;
+  my @cmds2= qw/uids text full summary location description alarm start end debug/;
   if($cmd ~~ @cmds2) {

     return "argument is missing" if($#a < 2);
@@ -1701,6 +1708,7 @@
         push @texts, $event->alarmTime() if $cmd eq "alarm";
         push @texts, $event->startTime() if $cmd eq "start";
         push @texts, $event->endTime() if $cmd eq "end";
+        push @texts, $event->asUid() if $cmd eq "uids";
       }
     }
     if(defined($a[$keeppos])) {


... scheint zu funktionieren ...
ich werde das erstmal so verwenden

gruß
mlo

Dr. Boris Neubert

Hallo,

ich war schneller! Meine Version ist schon eingecheckt ;-)

get ... uid ...

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