mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-16 10:46:03 +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:
parent
f49a2d9b50
commit
53e3872e38
@ -20,7 +20,7 @@ sub CALVIEW_Initialize($)
|
|||||||
$hash->{AttrList} = "do_not_notify:1,0 " .
|
$hash->{AttrList} = "do_not_notify:1,0 " .
|
||||||
"maxreadings " .
|
"maxreadings " .
|
||||||
"oldStyledReadings:1,0 " .
|
"oldStyledReadings:1,0 " .
|
||||||
"modes:multiple,all,modeAlarm,modeAlarmOrStart,modeAlarmed,modeChanged,modeEnd,modeEnded,modeStart,modeStarted,modeUpcoming,stateChanged,stateDeleted,stateNew,stateUpdated ".
|
"modes:next ".
|
||||||
$readingFnAttributes;
|
$readingFnAttributes;
|
||||||
}
|
}
|
||||||
sub CALVIEW_Define($$){
|
sub CALVIEW_Define($$){
|
||||||
@ -42,9 +42,9 @@ sub CALVIEW_Define($$){
|
|||||||
$hash->{STATE} = "Initialized";
|
$hash->{STATE} = "Initialized";
|
||||||
$hash->{INTERVAL} = $inter;
|
$hash->{INTERVAL} = $inter;
|
||||||
$modes = 1 if (!defined($modes));
|
$modes = 1 if (!defined($modes));
|
||||||
if($modes == 1) {$attr{$name}{modes} = "modeAlarm,modeStart,modeStarted,modeUpcoming";}
|
if($modes == 1) {$attr{$name}{modes} = "next";}
|
||||||
elsif($modes == 0){$attr{$name}{modes} = "modeAlarm,modeStart,modeStarted";}
|
elsif($modes == 0){$attr{$name}{modes} = "next";}
|
||||||
elsif($modes == 2){$attr{$name}{modes} = "all";}
|
elsif($modes == 2){$attr{$name}{modes} = "next";}
|
||||||
else {return "invalid mode \"$modes\", use 0,1 or 2!"}
|
else {return "invalid mode \"$modes\", use 0,1 or 2!"}
|
||||||
InternalTimer(gettimeofday()+2, "CALVIEW_GetUpdate", $hash, 0);
|
InternalTimer(gettimeofday()+2, "CALVIEW_GetUpdate", $hash, 0);
|
||||||
return undef;
|
return undef;
|
||||||
@ -190,22 +190,39 @@ sub getsummery($)
|
|||||||
my @terminliste ;
|
my @terminliste ;
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
# my $calendername = $hash->{KALENDER};
|
# my $calendername = $hash->{KALENDER};
|
||||||
my @calendernamen = split( ",", $hash->{KALENDER});
|
my @calendernamen = split( ",", $hash->{KALENDER});
|
||||||
my $modi = $attr{$name}{modes};
|
my $modi = $attr{$name}{modes};
|
||||||
my @modes = split(/,/,$modi);
|
my @modes = split(/,/,$modi);
|
||||||
foreach my $calendername (@calendernamen){
|
foreach my $calendername (@calendernamen){
|
||||||
foreach my $mode (@modes){
|
#foreach my $mode (@modes){
|
||||||
my $all = ReadingsVal($calendername, $mode, "");
|
my $all = CallFn($calendername, "GetFn", $defs{$calendername},(" ","full", "next"));
|
||||||
my @uids=split(/;/,$all);
|
my @termine=split(/\n/,$all);
|
||||||
|
|
||||||
foreach my $uid (@uids){
|
foreach my $termin (@termine){
|
||||||
my $terminstart = CallFn($calendername, "GetFn", $defs{$calendername},(" ","start", $uid));
|
my @uid=split(/\s+/,$termin);
|
||||||
my $termintext = CallFn($calendername, "GetFn", $defs{$calendername}, (" ","summary", $uid));
|
|
||||||
my $terminend = CallFn($calendername, "GetFn", $defs{$calendername}, (" ","end", $uid));
|
#für jedes event die einzelnen infos holen
|
||||||
my $terminort = CallFn($calendername, "GetFn", $defs{$calendername}, (" ","location", $uid));
|
my $tmpstarts = CallFn($calendername, "GetFn", $defs{$calendername},(" ","start", $uid[0]));
|
||||||
push(@terminliste, [$terminstart, $termintext, $terminend, $calendername, $terminort, $mode]);
|
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;
|
return @terminliste;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user