2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-17 17:36:01 +00:00

98_MSwitch.pm:Fix - some fixes,add metadata

git-svn-id: https://svn.fhem.de/fhem/trunk@18998 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
Byte09 2019-03-23 06:30:15 +00:00
parent d1af9356f9
commit 08c881844d

@ -8221,6 +8221,8 @@ sub MSwitch_backup($) {
{
print BACKUPDATEI "#N -> $testdevice\n"; #
foreach my $key (@areadings) {
next if $key eq "last_exec_cmd";
my $tmp = ReadingsVal( $testdevice, $key, 'undef' );
print BACKUPDATEI "#S $key -> $tmp\n";
}
@ -8228,8 +8230,19 @@ sub MSwitch_backup($) {
my %keys;
foreach my $attrdevice ( keys %{ $attr{$testdevice} } ) #geht
{
print BACKUPDATEI "#A $attrdevice -> "
. AttrVal( $testdevice, $attrdevice, '' ) . "\n";
my $inhalt = "#A $attrdevice -> ". AttrVal( $testdevice, $attrdevice, '' ) ;
$inhalt =~ s/\n/#[nla]/g;
print BACKUPDATEI $inhalt . "\n";
#CHANGE einspielen ungeprüft
#print BACKUPDATEI "#A $attrdevice -> ". AttrVal( $testdevice, $attrdevice, '' ) . "\n";
}
print BACKUPDATEI "#E -> $testdevice\n";
print BACKUPDATEI "\n";
@ -8260,7 +8273,7 @@ sub MSwitch_backup_this($) {
foreach (@found) {
if ( $_ =~ m/#S (.*) -> (.*)/ ) # setreading
{
next if $1 eq "last_exec_cmd";
if ( $2 eq 'undef' || $2 eq '' || $2 eq ' ' ) {
}
else {
@ -8270,10 +8283,18 @@ sub MSwitch_backup_this($) {
}
if ( $_ =~ m/#A (.*) -> (.*)/ ) # setattr
{
my $cs = "attr $Name $1 $2";
my $inhalt =$2;
my $aktattr =$1;
#MSwitch_LOG( $Name, 0,"$inhalt". __LINE__ );
$inhalt =~ s/#\[nla\]/\n/g;
$inhalt =~ s/;/;;/g;
#MSwitch_LOG( $Name, 0,"$inhalt". __LINE__ );
#MSwitch_LOG( $Name, 0,"------------------------". __LINE__ );
my $cs = "attr $Name $aktattr $inhalt";
my $errors = AnalyzeCommandChain( undef, $cs );
if ( defined($errors) ) {
MSwitch_LOG( $Name, 1, "ERROR $cs" );
MSwitch_LOG( $Name, 5 , "ERROR $cs" );
}
}
@ -8301,38 +8322,38 @@ sub MSwitch_Getsupport($) {
$tmp =~ s/</\\</g;
$tmp =~ s/>/\\>/g;
$tmp =~ s/'/\\'/g;
$tmp =~ s/\n/#[nl]/g;
$out .= "Attribut $attrdevice: " . $tmp . "\\n";
$out .= "Attribut $attrdevice: " . $tmp . "\\n";
}
}
$out .= "\\n----- Trigger -----\\n";
$out .= "Trigger device: ";
my $tmp = ReadingsVal( $Name, 'Trigger_device', 'undef' );
$out .= "$tmp\\n";
$out .= "Trigger time: ";
$tmp = ReadingsVal( $Name, '.Trigger_time', 'undef' );
$tmp =~ s/~/ /g;
$out .= "$tmp\\n";
$out .= "Trigger condition: ";
$tmp = ReadingsVal( $Name, '.Trigger_condition', 'undef' );
$out .= "$tmp\\n";
$out .= "Trigger Device Global Whitelist: ";
$tmp = ReadingsVal( $Name, '.Trigger_Whitelist', 'undef' );
$out .= "$tmp\\n";
$out .= "\\n----- Trigger Details -----\\n";
$out .= "$tmp\\n";
$out .= "Trigger time: ";
$tmp = ReadingsVal( $Name, '.Trigger_time', 'undef' );
$tmp =~ s/~/ /g;
$out .= "$tmp\\n";
$out .= "Trigger condition: ";
$tmp = ReadingsVal( $Name, '.Trigger_condition', 'undef' );
$out .= "$tmp\\n";
$out .= "Trigger Device Global Whitelist: ";
$tmp = ReadingsVal( $Name, '.Trigger_Whitelist', 'undef' );
$out .= "$tmp\\n";
$out .= "\\n----- Trigger Details -----\\n";
$out .= "Trigger cmd1: ";
$tmp = ReadingsVal( $Name, '.Trigger_on', 'undef' );
$out .= "$tmp\\n";
$out .= "Trigger cmd2: ";
$tmp = ReadingsVal( $Name, '.Trigger_off', 'undef' );
$out .= "$tmp\\n";
$out .= "Trigger cmd3: ";
$tmp = ReadingsVal( $Name, '.Trigger_cmd_on', 'undef' );
$out .= "$tmp\\n";
$out .= "Trigger cmd4: ";
$tmp = ReadingsVal( $Name, '.Trigger_cmd_off', 'undef' );
$tmp = ReadingsVal( $Name, '.Trigger_on', 'undef' );
$out .= "$tmp\\n";
$out .= "Trigger cmd2: ";
$tmp = ReadingsVal( $Name, '.Trigger_off', 'undef' );
$out .= "$tmp\\n";
$out .= "Trigger cmd3: ";
$tmp = ReadingsVal( $Name, '.Trigger_cmd_on', 'undef' );
$out .= "$tmp\\n";
$out .= "Trigger cmd4: ";
$tmp = ReadingsVal( $Name, '.Trigger_cmd_off', 'undef' );
$out .= "$tmp\\n";
my %savedetails = MSwitch_makeCmdHash($hash);
$out .= "\\n----- Device Actions -----\\n";
@ -8344,23 +8365,25 @@ sub MSwitch_Getsupport($) {
my @devicesplit = split( /#\[NF\]/, $_ );
$devicesplit[4] =~ s/'/\\'/g;
$devicesplit[5] =~ s/'/\\'/g;
$devicesplit[1] =~ s/'/\\'/g;
$devicesplit[3] =~ s/'/\\'/g;
$out .= "\\nDevice: " . $devicesplit[0] . "\\n";
$out .= "cmd1: " . $devicesplit[1] . " " . $devicesplit[3] . "\\n";
$out .= "\\nDevice: " . $devicesplit[0] . "\\n";
$out .= "cmd1: " . $devicesplit[1] . " " . $devicesplit[3] . "\\n";
$out .= "cmd2: " . $devicesplit[2] . " " . $devicesplit[4] . "\\n";
$out .= "cmd1 condition: " . $devicesplit[9] . "\\n";
$out .= "cmd2 condition: " . $devicesplit[10] . "\\n";
$out .= "cmd1 delay: " . $devicesplit[7] . "\\n";
$out .= "cmd2 delay: " . $devicesplit[8] . "\\n";
$out .= "repeats: " . $devicesplit[11] . "\\n";
$out .= "repeats delay: " . $devicesplit[12] . "\\n";
$out .= "priority: " . $devicesplit[13] . "\\n";
$out .= "id: " . $devicesplit[14] . "\\n";
$out .= "comment: " . $devicesplit[15] . "\\n";
$out .= "cmd1 exit: " . $devicesplit[16] . "\\n";
$out .= "cmd2 exit: " . $devicesplit[17] . "\\n";
$out .= "cmd2: " . $devicesplit[2] . " " . $devicesplit[4] . "\\n";
$out .= "cmd1 condition: " . $devicesplit[9] . "\\n";
$out .= "cmd2 condition: " . $devicesplit[10] . "\\n";
$out .= "cmd1 delay: " . $devicesplit[7] . "\\n";
$out .= "cmd2 delay: " . $devicesplit[8] . "\\n";
$out .= "repeats: " . $devicesplit[11] . "\\n";
$out .= "repeats delay: " . $devicesplit[12] . "\\n";
$out .= "priority: " . $devicesplit[13] . "\\n";
$out .= "id: " . $devicesplit[14] . "\\n";
$out .= "comment: " . $devicesplit[15] . "\\n";
$out .= "cmd1 exit: " . $devicesplit[16] . "\\n";
$out .= "cmd2 exit: " . $devicesplit[17] . "\\n";
}
$out =~ s/#\[dp\]/:/g;
@ -8395,6 +8418,9 @@ sub MSwitch_Getconfig($) {
foreach my $key (@areadings) {
next if $key eq "last_exec_cmd";
my $tmp = ReadingsVal( $testdevice, $key, 'undef' );
if ( $key eq ".Device_Affected_Details" ) {
$tmp =~ s/#\[nl\]/;;/g;
@ -8442,6 +8468,14 @@ sub MSwitch_Getconfig($) {
$tmp =~ s/</\\</g;
$tmp =~ s/>/\\>/g;
$tmp =~ s/'/\\'/g;
#CHENGE einspielen noch ungeprüft
$tmp =~ s/\n/#[nl]/g;
$out .= "#A $attrdevice -> " . $tmp . "\\n";
$count++;
}
@ -8524,7 +8558,15 @@ sub MSwitch_backup_all($) {
}
if ( $_ =~ m/#A (.*) -> (.*)/ ) # setattr
{
my $cs = "attr $testdevice $1 $2";
my $inhalt =$2;
my $aktattr =$1;
#MSwitch_LOG( $Name, 0,"$inhalt". __LINE__ );
$inhalt =~ s/#\[nla\]/\n/g;
$inhalt =~ s/;/;;/g;
#MSwitch_LOG( $Name, 0,"$inhalt". __LINE__ );
#MSwitch_LOG( $Name, 0,"------------------------". __LINE__ );
my $cs = "attr $Name $aktattr $inhalt";
#my $cs = "attr $testdevice $1 $2";
my $errors = AnalyzeCommandChain( undef, $cs );
if ( defined($errors) ) {
MSwitch_LOG( $testdevice, 1, "ERROR $cs" );
@ -8545,7 +8587,6 @@ sub MSwitch_backup_all($) {
}
return $answer;
}
################################################
sub MSwitch_savesys($$) {
my ( $hash, $cont ) = @_;
@ -9442,3 +9483,18 @@ werden aber nicht ausgeführt <br />3. schreibt alle Aktionen in ein seperates L
</ul>
=end html_DE
=for :application/json;q=META.json 98MSwitch.pm
{
"author": [
"T. Pause"
],
"x_fhem_maintainer": [
"Byte09"
],
"keywords": [
"MSwitch"
]
}
=end :application/json;q=META.json