Hauptmenü

Fehlermeldung Allgmemein

Begonnen von choetzu, 10 April 2017, 22:02:24

Vorheriges Thema - Nächstes Thema

CoolTux

Mich stellt sich die Frage was genau in dem Reading Pool_Aussen_Num vom Device PoolController drin steht. Eventuell mehr wie nur eine Zahl?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Thorsten Pferdekaemper

Zitat von: CoolTux am 12 April 2017, 08:16:55
Mich stellt sich die Frage was genau in dem Reading Pool_Aussen_Num vom Device PoolController drin steht. Eventuell mehr wie nur eine Zahl?
Kann das was mit dem Fehlerbild zu tun haben? Ich glaube nicht, da die Variable, um die es geht, vom Inhalt des Readings unabhängig ist.
Gruß,
   Thorsten
FUIP

rudolfkoenig

Habs gefixt, steht ab sofort via update zur Verfuegung.

Thorsten Pferdekaemper

Das ging aber mal wieder schnell.
@choetzu: Mit dem Fix müsstest Du das ":d" wieder weglassen können.
Gruß,
   Thorsten
FUIP

choetzu

danke für die hilfe..

ich lass es vorläufig mit :d. ;)

hab nun auch ein update gemacht, da kommt aber nun leider ein ähnlicher Fehler.

[Wed Apr 12 21:36:23 2017] fhem.pl: Use of uninitialized value $d in hash element at fhem.pl line 4035.
[Wed Apr 12 21:36:27 2017] fhem.pl: Use of uninitialized value $d in hash element at fhem.pl line 4035.
[Wed Apr 12 21:36:27 2017] fhem.pl: Use of uninitialized value $d in hash element at fhem.pl line 4035.


und wenn ich 4035 anschaue, kommt

  return $attr{$d}{$n} if(defined($attr{$d}) && defined($attr{$d}{$n}));

mehr drum herum steht

sub
OldValue($)
{
  my ($d) = @_;
  return $oldvalue{$d}{VAL} if(defined($oldvalue{$d})) ;
  return "";
}

sub
OldTimestamp($)
{
  my ($d) = @_;
  return $oldvalue{$d}{TIME} if(defined($oldvalue{$d})) ;
  return "";
}

sub
AttrVal($$$)
{
  my ($d,$n,$default) = @_;
  return $attr{$d}{$n} if(defined($attr{$d}) && defined($attr{$d}{$n}));
  return $default;
}

sub
AttrNum($$$;$)
{
  my ($d,$n,$default,$round) = @_;
  my $val = AttrVal($d,$n,$default);
  $val = ($val =~ /(-?\d+(\.\d+)?)/ ? $1 : "");
  $val = round($val,$round) if($round);
  return $val;
}

################################################################


geht es hier um einen ähnlichen Fehler?
Raspi3, EnOcean, Zwave, Homematic

Thorsten Pferdekaemper

Hi,
das kann ich mir jetzt auch nicht wirklich erklären. Das sieht so aus, als on ein Attribut ohne Device-Namen zugegriffen werden soll.
Gruß,
    Thorsten
FUIP

rudolfkoenig

Zitatgeht es hier um einen ähnlichen Fehler?
Ich meine nein.

Der Suffix (:d) im Set-Magic (das Ding mit []) ist nicht zwingend (und auch so dokumentiert), das Weglassen darf also nicht zu einem Fehler fuehren.

Bei diesem Problem hat jemand AttrVal mit einem undef - Geraetenamen aufgerufen, was weder dokumentiert, noch sinnvoll ist.
Im Rahmen einer "Gleichberechtigung" mit ReadingsVal wurde die vorherige Pruefung aus AttrVal ausgebaut, deswegen kriegst du jetzt diese Meldung.

Die Ursache solltest du mit gesetzten "attr global stacktrace" rauskriegen.