Ich habe mir die Änderungen von Shadow3561 angeguckt. Ich glaube allerdings, daß diese Änderungen nicht zur internen Logik von 70_DENON_AVR paßen.
Ich bin nochmal auf die Idee gekommen, die Doku von 70_DENON_AVR anzugucken, und dort steht klar, welche Stati dieses Modul verarbeiten kann/soll:
state - state of AV reciever (on,off,disconnected)
stateAV - state of AV reciever (on,off,absent,mute)
[BTW, kleiner Tippfehler in der Doku bei receiver]
Die Fehler aus DevIo_Expect sollten nur auftreten, wenn der state beim Aufruf nicht "opened" ist. Aber eigentlich setzt 70_DENON_AVR beim DENON_AVR_ConnectionCheck vollkommen korrekt auf "opened" vor dem Aufruf von DevIo_Expect:
sub
DENON_AVR_ConnectionCheck($)
{
my ($hash) = @_;
my $name = $hash->{NAME};
Log3 $name, 5, "DENON_AVR $name: called ConnectionCheck.";
my $connectionCheck = AttrVal($name, "connectionCheck", "60");
if ($connectionCheck ne "off") {
$hash->{STATE} = "opened";
RemoveInternalTimer($hash, "DENON_AVR_ConnectionCheck");
my $connState = DevIo_Expect( $hash, "PW?\r", $hash->{TIMEOUT} )
Und ich glaube, die Fehlerursache entdeckt zu haben: Das alte DevIo hat STATE in GROSSBUCHSTABEN gelesen, das neue state in Kleinbuchstaben. D.h. ich teste jetzt mal, ob eine Änderung von Zeile 3439 von STATE in 70_DENON_AVR zu state das DevIo-Problem löst.
Grüßle, Michael