mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-26 16:19:32 +00:00
10_MAX: rename internal sub MAX_Restore
git-svn-id: https://svn.fhem.de/fhem/trunk@21840 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
044bba6a8c
commit
4df57ac796
@ -29,7 +29,6 @@ package main;
|
||||
use strict;
|
||||
use warnings;
|
||||
use AttrTemplate;
|
||||
use MIME::Base64;
|
||||
use Date::Parse;
|
||||
|
||||
my %device_types = (
|
||||
@ -185,6 +184,28 @@ sub MAX_Define
|
||||
|
||||
return $type." is not a valid MAX type !" if (!MAX_TypeToTypeId($type) && ($type ne 'Cube'));
|
||||
|
||||
|
||||
my $old_addr = '';
|
||||
|
||||
# check if we have this address already in use
|
||||
foreach my $dev ( keys %{$modules{MAX}{defptr}} ) {
|
||||
next if (!$modules{MAX}{defptr}{$dev}->{NAME});
|
||||
$old_addr = $dev if ($modules{MAX}{defptr}{$dev}->{NAME} eq $name);
|
||||
last if ($old_addr); # device found
|
||||
}
|
||||
|
||||
if (($old_addr ne '') && ($old_addr ne $addr)){
|
||||
my $msg1 = 'please dont change the address direct in DEF or RAW !';
|
||||
my $msg2 = "If you want to change $old_addr please delete device $name first and create a new one";
|
||||
Log3($hash, 3, "$name, $msg1 $msg2");
|
||||
return $msg1."\n".$msg2;
|
||||
}
|
||||
|
||||
if (exists($modules{MAX}{defptr}{$addr}) && $modules{MAX}{defptr}{$addr}->{type} ne $type) {
|
||||
my $msg = "$name, type changed from $modules{MAX}{defptr}{$addr}->{type} to $type !";
|
||||
Log3($hash, 2, $msg);
|
||||
}
|
||||
|
||||
Log3 $hash, 5, 'Max_define, '.$name.' '.$type.' with addr '.$addr;
|
||||
$hash->{type} = $type;
|
||||
$hash->{devtype} = MAX_TypeToTypeId($type);
|
||||
@ -194,6 +215,7 @@ sub MAX_Define
|
||||
$hash->{'.sendToAddr'} = '-1'; # zu wem haben wird direkt gesendet ?
|
||||
$hash->{'.sendToName'} = '';
|
||||
$hash->{'.timer'} = 300;
|
||||
$hash->{SVN} = (qw($Id$))[2];
|
||||
$modules{MAX}{defptr}{$addr} = $hash;
|
||||
|
||||
#$hash->{internals}{interfaces} = $interfaces{$type}; # wozu ?
|
||||
@ -234,6 +256,8 @@ sub MAX_Timer
|
||||
return;
|
||||
}
|
||||
|
||||
AssignIoPort($hash, AttrVal($name,'IODev','')) if (exists($hash->{IODevMissing})); # mit proposed $_
|
||||
|
||||
InternalTimer(gettimeofday() + $hash->{'.timer'}, "MAX_Timer", $hash, 0) if ($hash->{'.timer'});
|
||||
|
||||
return if (IsDummy($name) || IsIgnored($name));
|
||||
@ -614,7 +638,7 @@ sub MAX_Set($@)
|
||||
my $f = $args[0];
|
||||
$args[0] =~ s/(.)/sprintf("%x",ord($1))/eg;
|
||||
return if (!$f || ($args[0] eq 'c2a0'));
|
||||
return MAX_Restore($devname,$setting,$f);
|
||||
return MAXX_Restore($devname,$setting,$f);
|
||||
}
|
||||
elsif($setting eq "deviceRename")
|
||||
{
|
||||
@ -1397,7 +1421,7 @@ sub MAX_saveConfig
|
||||
return $error;
|
||||
}
|
||||
|
||||
sub MAX_Restore
|
||||
sub MAXX_Restore
|
||||
{
|
||||
my $name = shift;
|
||||
my $action = shift;
|
||||
|
Loading…
x
Reference in New Issue
Block a user