$hash->{READINGS} is not hash? fehlermeldung nach neuem define [gelöst]

Begonnen von epsrw1, 11 Juni 2014, 11:24:50

Vorheriges Thema - Nächstes Thema

epsrw1

hallo zusammen,
ich verwende folgende zeile im get eines moduls:
my @stmgets = (keys($hash->{READINGS}));
auf meinen eigenen installationen kann ich einen fehler von dem ein anderer user berichtet nicht reproduzieren:
ZitatType of arg 1 to keys must be hash or array (not hash element) at ./FHEM/98_STELLMOTOR.pm line 338, near "})"
ich vermute daß der erste aufruf der GetFn nach dem define läuft, bevor das erste reading vorhanden ist. gibt es fhem-seietig einen workaround in der art wie "get erst nach x sekunden aufrufen" oder muß ich im modul selbst die symptome abfangen?
vielen dank !
florian

http://forum.fhem.de/index.php/topic,23933.msg175800.html#new

# $Id: 98_STELLMOTOR.pm 2014 2014-06-10 23:09:00Z Florian Duesterwald $
Ich habe keine Ahnung, aber davon wenigstens ganz viel

betateilchen

Zitat von: epsrw1 am 11 Juni 2014, 11:24:50
oder muß ich im modul selbst die symptome abfangen?

sauberes Programmieren ist immer besser als jeder workaround.

Offtopic: das Posten eines kompletten Modules in einem code-Tag ist m.E. ziemlich unsinnig, vor allem, wenn das gleiche Modul dann auch noch als Anhang am Beitrag hängt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

herrmannj

Hi,

gleicher Fall gerade im non blocking weather thread. witzig

Lösung: user hat "altes" perl. Hash in keys de-refernzieren.

%{$hash->{READINGS}}

vg
jörg

epsrw1

Zitatsauberes Programmieren ist immer besser als jeder workaround.

danke beta, darauf zielt auch meine frage ab. ich halte es für unsauber im modul etwas abzufangen was vllt schon anderweitig längst vorgesehen ist. impliziert Dein hinweis daß dem nicht so ist?
oder impliziert er daß die fragliche zeile an sich aus einem anderen mir nicht offensichtlichen grund "unsauber" ist?
Danke :)
florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

Ich habe keine Ahnung, aber davon wenigstens ganz viel