mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-21 01:46:08 +00:00
57_SSCal: contrib 1.12.0
git-svn-id: https://svn.fhem.de/fhem/trunk@21216 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
7604036dfb
commit
f33c5d8878
@ -2190,10 +2190,10 @@ sub SSCal_doCompositeEvents ($$$) {
|
|||||||
my ($name,$abnr,$evref) = @_;
|
my ($name,$abnr,$evref) = @_;
|
||||||
my $hash = $defs{$name};
|
my $hash = $defs{$name};
|
||||||
|
|
||||||
my ($summary,$begin,$status,$isrepeat,$id,$event);
|
my ($desc,$begin,$status,$isrepeat,$id,$event);
|
||||||
|
|
||||||
foreach my $bnr (@{$abnr}) {
|
foreach my $bnr (@{$abnr}) {
|
||||||
$summary = ReadingsVal($name, $bnr."_01_Summary", "");
|
$desc = ReadingsVal($name, $bnr."_03_Description", "");
|
||||||
$begin = ReadingsVal($name, $bnr."_05_Begin", "");
|
$begin = ReadingsVal($name, $bnr."_05_Begin", "");
|
||||||
$status = ReadingsVal($name, $bnr."_17_Status", "");
|
$status = ReadingsVal($name, $bnr."_17_Status", "");
|
||||||
$isrepeat = ReadingsVal($name, $bnr."_55_isRepeatEvt", 0);
|
$isrepeat = ReadingsVal($name, $bnr."_55_isRepeatEvt", 0);
|
||||||
@ -2202,7 +2202,7 @@ sub SSCal_doCompositeEvents ($$$) {
|
|||||||
$begin =~ s/\s/T/; # Formatierung nach ISO8601 (YYYY-MM-DDTHH:MM:SS) für at-Devices
|
$begin =~ s/\s/T/; # Formatierung nach ISO8601 (YYYY-MM-DDTHH:MM:SS) für at-Devices
|
||||||
|
|
||||||
if($begin) { # einen Composite-Event erstellen wenn Beginnzeit gesetzt ist
|
if($begin) { # einen Composite-Event erstellen wenn Beginnzeit gesetzt ist
|
||||||
$event = "composite: $id $isrepeat $begin $status $summary";
|
$event = "composite: $id $isrepeat $begin $status $desc";
|
||||||
CommandTrigger(undef, "$name $event");
|
CommandTrigger(undef, "$name $event");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2212,7 +2212,7 @@ return;
|
|||||||
|
|
||||||
#############################################################################################
|
#############################################################################################
|
||||||
# erstellt automatisch AT-Devices aus Kalendereinträgen die FHEM-Befehle oder
|
# erstellt automatisch AT-Devices aus Kalendereinträgen die FHEM-Befehle oder
|
||||||
# Perl-Routinen in "Summary" enthalten.
|
# Perl-Routinen in "Description" enthalten.
|
||||||
# FHEM-Befehle sind in { } und Perl-Routinen in {{ }} einzufassen.
|
# FHEM-Befehle sind in { } und Perl-Routinen in {{ }} einzufassen.
|
||||||
#
|
#
|
||||||
# $abnr - Referenz zum Array aller vorhandener Blocknummern
|
# $abnr - Referenz zum Array aller vorhandener Blocknummern
|
||||||
@ -2223,33 +2223,41 @@ sub SSCal_createATdevices ($$$) {
|
|||||||
my ($name,$abnr,$evref) = @_;
|
my ($name,$abnr,$evref) = @_;
|
||||||
my $hash = $defs{$name};
|
my $hash = $defs{$name};
|
||||||
|
|
||||||
my ($summary,$begin,$status,$isrepeat,$id,@devs,$event);
|
my ($desc,$begin,$status,$isrepeat,$id,@devs,$err,$summary,$location);
|
||||||
|
|
||||||
foreach my $bnr (@{$abnr}) {
|
my $room = AttrVal($name, "room", "");
|
||||||
$id = ReadingsVal($name, $bnr."_98_EventId", "");
|
|
||||||
@devs = devspec2array("TYPE=at:FILTER=NAME=SSCal.$id.*");
|
# foreach my $bnr (@{$abnr}) {
|
||||||
|
# $id = ReadingsVal($name, $bnr."_98_EventId", "");
|
||||||
|
@devs = devspec2array("TYPE=at:FILTER=NAME=SSCal.$name.*");
|
||||||
foreach (@devs) {
|
foreach (@devs) {
|
||||||
next if(!$defs{$_});
|
next if(!$defs{$_});
|
||||||
Log3($name, 4, "$name - delete device: $_");
|
Log3($name, 4, "$name - delete device: $_");
|
||||||
CommandDelete(undef,$_);
|
CommandDelete(undef,$_);
|
||||||
}
|
}
|
||||||
}
|
# }
|
||||||
|
|
||||||
foreach my $bnr (@{$abnr}) {
|
foreach my $bnr (@{$abnr}) {
|
||||||
$summary = ReadingsVal($name, $bnr."_01_Summary", "");
|
$summary = ReadingsVal($name, $bnr."_01_Summary", "");
|
||||||
|
$desc = ReadingsVal($name, $bnr."_03_Description", "");
|
||||||
$begin = ReadingsVal($name, $bnr."_05_Begin", "");
|
$begin = ReadingsVal($name, $bnr."_05_Begin", "");
|
||||||
$status = ReadingsVal($name, $bnr."_17_Status", "");
|
$status = ReadingsVal($name, $bnr."_17_Status", "");
|
||||||
$isrepeat = ReadingsVal($name, $bnr."_55_isRepeatEvt", 0);
|
$location = ReadingsVal($name, $bnr."_35_Location", $room); # Location wird als room gesetzt
|
||||||
$id = ReadingsVal($name, $bnr."_98_EventId", "");
|
$id = ReadingsVal($name, $bnr."_98_EventId", "");
|
||||||
|
|
||||||
$begin =~ s/\s/T/; # Formatierung nach ISO8601 (YYYY-MM-DDTHH:MM:SS) für at-Devices
|
if($begin && $status =~ /upcoming|alarmed/ && $desc =~ /^\s*\{(.*)\}\s*$/) { # ein at-Device erstellen wenn Voraussetzungen erfüllt
|
||||||
|
|
||||||
if($begin && $status =~ /upcoming|alarmed/ && $summary =~ /^\s*\{(.*)\}\s*$/) { # ein at-Device erstellen wenn Voraussetzungen erfüllt
|
|
||||||
my $cmd = $1;
|
my $cmd = $1;
|
||||||
|
$begin =~ s/\s/T/; # Formatierung nach ISO8601 (YYYY-MM-DDTHH:MM:SS) für at-Devices
|
||||||
my $ao = $begin;
|
my $ao = $begin;
|
||||||
$ao =~ s/[-:]//g;
|
$ao =~ s/[-:]//g;
|
||||||
Log3($name, 3, "$name - Command detected. Create \"SSCal.$id.$ao\", Command: $cmd");
|
Log3($name, 4, "$name - Command detected. Create device \"SSCal.$id.$ao\" with type \"at\".");
|
||||||
CommandDefMod(undef, "-temporary SSCal.$id.$ao at $begin $cmd");
|
$err = CommandDefine(undef, "SSCal.$name.$id.$ao at $begin $cmd");
|
||||||
|
if ($err) {
|
||||||
|
Log3($name, 1, "$name - Error during create \"at\": $err");
|
||||||
|
} else {
|
||||||
|
CommandAttr(undef,"SSCal.$name.$id.$ao room $location");
|
||||||
|
CommandAttr(undef,"SSCal.$name.$id.$ao comment $summary - created automatic by SSCal \"$name\" ");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user