2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-08 05:15:10 +00:00

57_CALVIEW.pm: new version for new calendar-modul

git-svn-id: https://svn.fhem.de/fhem/trunk@10768 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
chris1284 2016-02-08 06:36:39 +00:00
parent f49a2d9b50
commit 53e3872e38

View File

@ -20,7 +20,7 @@ sub CALVIEW_Initialize($)
$hash->{AttrList} = "do_not_notify:1,0 " .
"maxreadings " .
"oldStyledReadings:1,0 " .
"modes:multiple,all,modeAlarm,modeAlarmOrStart,modeAlarmed,modeChanged,modeEnd,modeEnded,modeStart,modeStarted,modeUpcoming,stateChanged,stateDeleted,stateNew,stateUpdated ".
"modes:next ".
$readingFnAttributes;
}
sub CALVIEW_Define($$){
@ -42,9 +42,9 @@ sub CALVIEW_Define($$){
$hash->{STATE} = "Initialized";
$hash->{INTERVAL} = $inter;
$modes = 1 if (!defined($modes));
if($modes == 1) {$attr{$name}{modes} = "modeAlarm,modeStart,modeStarted,modeUpcoming";}
elsif($modes == 0){$attr{$name}{modes} = "modeAlarm,modeStart,modeStarted";}
elsif($modes == 2){$attr{$name}{modes} = "all";}
if($modes == 1) {$attr{$name}{modes} = "next";}
elsif($modes == 0){$attr{$name}{modes} = "next";}
elsif($modes == 2){$attr{$name}{modes} = "next";}
else {return "invalid mode \"$modes\", use 0,1 or 2!"}
InternalTimer(gettimeofday()+2, "CALVIEW_GetUpdate", $hash, 0);
return undef;
@ -194,18 +194,35 @@ sub getsummery($)
my $modi = $attr{$name}{modes};
my @modes = split(/,/,$modi);
foreach my $calendername (@calendernamen){
foreach my $mode (@modes){
my $all = ReadingsVal($calendername, $mode, "");
my @uids=split(/;/,$all);
#foreach my $mode (@modes){
my $all = CallFn($calendername, "GetFn", $defs{$calendername},(" ","full", "next"));
my @termine=split(/\n/,$all);
foreach my $uid (@uids){
my $terminstart = CallFn($calendername, "GetFn", $defs{$calendername},(" ","start", $uid));
my $termintext = CallFn($calendername, "GetFn", $defs{$calendername}, (" ","summary", $uid));
my $terminend = CallFn($calendername, "GetFn", $defs{$calendername}, (" ","end", $uid));
my $terminort = CallFn($calendername, "GetFn", $defs{$calendername}, (" ","location", $uid));
push(@terminliste, [$terminstart, $termintext, $terminend, $calendername, $terminort, $mode]);
};
foreach my $termin (@termine){
my @uid=split(/\s+/,$termin);
#für jedes event die einzelnen infos holen
my $tmpstarts = CallFn($calendername, "GetFn", $defs{$calendername},(" ","start", $uid[0]));
my @starts = split(/\n/,$tmpstarts);
#my $tmptexts = CallFn($calendername, "GetFn", $defs{$calendername},(" ","text", $uid[0]));
#my @texts = split(/\n/,$tmptexts);
my $tmpends = CallFn($calendername, "GetFn", $defs{$calendername},(" ","end", $uid[0]));
my @ends = split(/\n/,$tmpends);
my $tmpsummarys = CallFn($calendername, "GetFn", $defs{$calendername},(" ","summary", $uid[0]));
my @summarys = split(/\n/,$tmpsummarys);
my $tmplocations = CallFn($calendername, "GetFn", $defs{$calendername},(" ","location", $uid[0]));
my @locations = split(/\n/,$tmplocations);
for(my $i = 1; $i <= (scalar(@starts)); $i++) {
my $internali = $i-1;
my $terminstart = $starts[$internali];
my $termintext = $summarys[$internali];
my $terminend = $ends[$internali];
my $terminort = $locations[$internali];
push(@terminliste, [$terminstart, $termintext, $terminend, $calendername, $terminort, "next"]);
}
};
#};
};
return @terminliste;
}