Autor Thema: Problem mit DevIo im Modul DENON  (Gelesen 2406 mal)

Offline olwaldi

  • Full Member
  • ***
  • Beiträge: 194
Problem mit DevIo im Modul DENON
« am: 22 November 2021, 08:53:56 »
Ich hoffe, hier mit meinem Problem richtig zu sein - ggf. gern verschieben!

Im April wurde DevIo.pm angepaßt, so daß seitherr das DENON Modul sehr viele Fehlermeldungen ausgibt und im worst case fhem crasht. Als workaround bin ich auf die vorige Version von DevIo.pm zurückgegangen, und DENON funktioniert wieder problemlos.

Das Ganze habe ich unter https://forum.fhem.de/index.php/topic,58452.msg1184642.html#msg1184642 beschrieben. Ich selber kann leider nur den Fehler inkl. Workaround melden. Für's Beheben fehlt mir das knowhow. Wäre schön, wenn sich jemand dieses Problems annähme.


Grüßle, Michael

Offline olwaldi

  • Full Member
  • ***
  • Beiträge: 194
Antw:Problem mit DevIo im Modul DENON
« Antwort #1 am: 11 Dezember 2021, 16:44:59 »
Zusatzfrage: Wie kann ich verhindern, daß DevIo. pm beim update aktualisiert wird?
attr global exclude_from_update DevIo.plfunktioniert leider nicht. Und kaum ist's aktualisiert, kommen Fehlermeldungen vom device DENON_AVR...


Grüßle, Michael

Offline yersinia

  • Hero Member
  • *****
  • Beiträge: 1504
    • Cyanide & Happiness
Antw:Problem mit DevIo im Modul DENON
« Antwort #2 am: 12 Dezember 2021, 14:48:18 »
attr global exclude_from_update DevIo.pl
Ist der typo beabsichtigt? Die Datei heisst DevIo.pm:
attr global exclude_from_update DevIo.pm
viele Grüße, yersinia
----
FHEM 6.1 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline olwaldi

  • Full Member
  • ***
  • Beiträge: 194
Antw:Problem mit DevIo im Modul DENON
« Antwort #3 am: 13 Dezember 2021, 07:49:06 »
Vielen Dank für den Hinweis - war tatsächlich von mir fehlerhaft eingetragen.

Grüßle, Michael


Offline olwaldi

  • Full Member
  • ***
  • Beiträge: 194
Antw:Problem mit DevIo im Modul DENON
« Antwort #4 am: 24 Februar 2022, 10:09:19 »
Ich komme nochmal auf das ursprüngliche Problem zwischen DevIo.pm und 70_DENON_AVR.pm zurück. Ich glaube, daß die Ursache mit der Schreibweise von STATE bzw. state zu tun hat. Hier hat sich was in DevIo.pm geändert. Daher habe ich versuchsweise in 70_DENON_AVR die Schreibweise von STATE in state geändert. Trotzdem gibt es hie und da Fehlermeldungen aus DevIo.pm (DevIo_getState liest explizit state in Kleinbuchstaben):
sub
DevIo_Expect($$$)
{
  my ($hash, $msg, $timeout) = @_;
  my $name= $hash->{NAME};
 
  my $state= DevIo_getState($hash);
  if($state ne "opened") {
    Log3 $name, 2, "Attempt to write to $state device.";
    return undef;
  }
im Denon Modul setzt ich state vor dem (einzigen) expliziten Aufruf von DevIo_Expect:
[ if ($connectionCheck ne "off") {

$hash->{state} = "opened";

RemoveInternalTimer($hash, "DENON_AVR_ConnectionCheck");

my $connState = DevIo_Expect( $hash, "PW?\r", $hash->{TIMEOUT} );

Andererseits gibt es die interne Funktion
sub
DevIo_setStates($$)
{
  my ($hash, $val) = @_;
  setReadingsVal($hash, "state", $val, TimeNow());
  if($hash->{devioNoSTATE}) {
    evalStateFormat($hash);
  } else {
    $hash->{STATE} = $val;
  }
}
wo wiederum STATE gesetzt wird.

Was ist die "richtige" Weise, um STATE/state für DevIo zu setzen?

Grüßle, Michael

 

decade-submarginal