mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-01 20:20:10 +00:00
fix: fhem abort at define of IODev
git-svn-id: https://svn.fhem.de/fhem/trunk@17274 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
4011faf0dc
commit
c6120fd4da
@ -29,7 +29,7 @@ use warnings;
|
||||
|
||||
#my $DEBUG = 1;
|
||||
my $cvsid = '$Id$';
|
||||
my $VERSION = "version 0.9.3 by hexenmeister\n$cvsid";
|
||||
my $VERSION = "version 0.9.4 by hexenmeister\n$cvsid";
|
||||
|
||||
my %sets = (
|
||||
);
|
||||
@ -394,6 +394,12 @@ sub removeOldUserAttr($;$$) {
|
||||
# kann spaeter auch delFromDevAttrList Methode genutzt werden
|
||||
my @devices = devspec2array($devspec);
|
||||
foreach my $dev (@devices) {
|
||||
# TODO: eingekommentieren, alte entfernen, testen
|
||||
#delFromDevAttrList($dev,$prefix.CTRL_ATTR_NAME_DEFAULTS);
|
||||
#delFromDevAttrList($dev,$prefix.CTRL_ATTR_NAME_ALIAS);
|
||||
#delFromDevAttrList($dev,$prefix.CTRL_ATTR_NAME_PUBLISH);
|
||||
#delFromDevAttrList($dev,$prefix.CTRL_ATTR_NAME_SUBSCRIBE);
|
||||
#delFromDevAttrList($dev,$prefix.CTRL_ATTR_NAME_IGNORE);
|
||||
my $ua = $main::attr{$dev}{userattr};
|
||||
if (defined $ua) {
|
||||
my %h = map { ($_ => 1) } split(" ", "$ua");
|
||||
@ -1531,16 +1537,20 @@ sub Attr($$$$) {
|
||||
#
|
||||
$attribute eq "IODev" and do {
|
||||
my $ioDevType = undef;
|
||||
$ioDevType = $defs{$value}{TYPE} if defined $defs{$value};
|
||||
$ioDevType = $defs{$value}{TYPE} if defined ($value) and defined ($defs{$value});
|
||||
$hash->{+HELPER}->{+IO_DEV_TYPE} = $ioDevType;
|
||||
|
||||
if ($main::init_done) {
|
||||
if ($command eq "set") {
|
||||
MQTT::client_stop($hash) if $ioDevType eq 'MQTT';
|
||||
$main::attr{$name}{IODev} = $value;
|
||||
MQTT::client_start($hash) if $ioDevType eq 'MQTT';
|
||||
unless (defined ($hash->{IODev}) and ($hash->{IODev} eq $value) ) {
|
||||
MQTT::client_stop($hash) if defined($main::attr{$name}{IODev}) and ($main::attr{$name}{IODev} eq 'MQTT');
|
||||
$main::attr{$name}{IODev} = $value;
|
||||
$hash->{IODev} = $value;
|
||||
RemoveAllSubscripton($hash);
|
||||
MQTT::client_start($hash) if defined ($ioDevType) and ($ioDevType eq 'MQTT');
|
||||
}
|
||||
} else {
|
||||
MQTT::client_stop($hash) if $ioDevType eq 'MQTT';
|
||||
MQTT::client_stop($hash) if defined ($ioDevType) and ($ioDevType eq 'MQTT');
|
||||
}
|
||||
}
|
||||
last;
|
||||
|
Loading…
x
Reference in New Issue
Block a user