diff --git a/fhem/FHEM/98_MSwitch.pm b/fhem/FHEM/98_MSwitch.pm
index e7bf5dff4..897f5420a 100644
--- a/fhem/FHEM/98_MSwitch.pm
+++ b/fhem/FHEM/98_MSwitch.pm
@@ -743,9 +743,13 @@ sub MSwitch_Get($$@) {
$timehash = $hash->{helper}{delays};
foreach my $a ( sort keys %{$timehash} )
{
+
+
+
+
my $b = substr( $hash->{helper}{delays}{$a}, 0, 10 );
my $time = FmtDateTime($b);
- my @timers = split( /,/, $a );
+ my @timers = split( /#\[tr\]/, $a );
$ret .= "
" . $time . " " . $timers[0] . "
";
}
if ( $ret ne "Schaltzeiten (at - kommandos).
aktive Delays:
")
@@ -1244,8 +1248,10 @@ sub MSwitch_Set($@) {
if ( $cmd eq "details" )
{
# setze devices details
+ #Log3( 'test', 0, 'array: '.$args[0] );
$args[0] = urlDecode( $args[0] );
-
+ $args[0] =~ s/#\[pr\]/%/g;
+#Log3( 'test', 0, 'array: '.$args[0] );
my @devices =split( /,/, ReadingsVal( $name, '.Device_Affected', '' ) );
my @inputcmds = split( /#\[ND\]/, $args[0] );
my $counter = 0;
@@ -1338,7 +1344,7 @@ sub MSwitch_Set($@) {
# ersetzung sonderzeichen etc mscode
# auskommentierte wurden bereits dur jscript ersetzt
- $args[0] = urlDecode( $args[0] );
+ #$args[0] = urlDecode( $args[0] );
$savedetails =~ s/\n/#[nl]/g;
$savedetails =~ s/\t/ /g;
$savedetails =~ s/ /#[sp]/g;
@@ -1348,6 +1354,7 @@ sub MSwitch_Set($@) {
$savedetails =~ s/^#\]/#[ec]/g;
$savedetails =~ s/\|/#[wa]/g;
$savedetails =~ s/\|/#[ti]/g;
+ #$savedetails =~ s/%/#[ti]/g;
readingsSingleUpdate( $hash, ".Device_Affected_Details", $savedetails,0 );
return;
}
@@ -4727,8 +4734,12 @@ if ( ReadingsVal( $Name, '.change', 'undef') ne "undef")
devices = devices.replace(/:/g,'#[dp]');
devices = devices.replace(/;/g,'#[se]');
devices = devices.replace(/ /g,'#[sp]');
+ devices = devices.replace(/%/g,'#[pr]');
+
+
devices = encodeURIComponent(devices);
+ //alert(devices);
var def = nm+\" details \"+devices+\" \";
location = location.pathname+\"?detail=" . $Name . "&cmd=set \"+addcsrf(def);
@@ -5966,25 +5977,33 @@ sub MSwitch_Createtimer($) {
# keine timer vorhenden
my $condition = ReadingsVal( $Name, '.Trigger_time', '' );
- #MSwitch_LOG( $Name, 0,"create timer: ".$condition);
+
$condition =~ s/#\[dp\]/:/g;
-
+ #MSwitch_LOG( $Name, 0,"create timer: ".$condition);
my $x =0;
# (.*)\[(.*[a-zA-Z].*)\:(.*)\](.*)
- while ( $condition =~ m/(.*)\[(.*[^0-9]{2})\:(.*[^0-9]{2})\](.*)/ )
+ #while ( $condition =~ m/(.*)\[(.*[^0-9]{2})\:(.*[^0-9]{2})\](.*)/ )
#while ( $condition =~ m/(.*)\[(.*[a-zA-Z].*)\:(.*)\](.*)/ )
+ while ( $condition =~ m/(.*)(\[)([0-9]?[a-zA-Z]{1}.*)\:(.*)(\])(.*)/ )
{
+ #MSwitch_LOG( $Name, 0,"create timer1: ".$1);
+ #MSwitch_LOG( $Name, 0,"create timer2: ".$2);
+ #MSwitch_LOG( $Name, 0,"create timer3: ".$3);
+ #MSwitch_LOG( $Name, 0,"create timer4: ".$4);
+
$x++; # notausstieg notausstieg
last if $x > 20; # notausstieg notausstieg
- my $setmagic = ReadingsVal( $2, $3, 0 );
- $condition = $1.'['.$setmagic.']'.$4;
+ my $setmagic = ReadingsVal( $3, $4, 0 );
+ $condition = $1.'['.$setmagic.']'.$6;
+
+ #MSwitch_LOG( $Name, 0,"create timer: ".$condition);
}
my $lenght = length($condition);
- #MSwitch_LOG( $Name, 0,"create timer: ".$condition);
+
#remove all timers
@@ -6025,10 +6044,10 @@ sub MSwitch_Createtimer($) {
$timer[2] = '' if ( !defined $timer[2] );
$timer[3] = '' if ( !defined $timer[3] );
- MSwitch_LOG( $Name, 0,"timer0 $timer[0]");
- MSwitch_LOG( $Name, 0,"timer1 $timer[1]");
- MSwitch_LOG( $Name, 0,"timer2 $timer[2]");
- MSwitch_LOG( $Name, 0,"timer3 $timer[3]");
+ #MSwitch_LOG( $Name, 0,"timer0 $timer[0]");
+ #MSwitch_LOG( $Name, 0,"timer1 $timer[1]");
+ #MSwitch_LOG( $Name, 0,"timer2 $timer[2]");
+ #MSwitch_LOG( $Name, 0,"timer3 $timer[3]");
# lösche bei notify und toggle
@@ -7502,7 +7521,7 @@ readingsSingleUpdate( $hash, ".Device_Affected", $newdevices, 0 );
#details
my $tochange2 = ReadingsVal( $name, ".Device_Affected_Details", "" );
-Log3( $name, 0, "vor change: ".$tochange2 );
+#Log3( $name, 0, "vor change: ".$tochange2 );
my @devicesdetails = split( /#\[ND\]/,$tochange2 );
$x =0;
foreach (@devicesdetails)