Hauptmenü

Fhem / perl / arrays

Begonnen von Guest, 24 April 2011, 13:27:16

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hi,

Ich möchte mir gerne ein eine Funktion basteln, die regelmäßig
überprüft, was die FHTs zurückgeben und u.U. mittels "set
report2 7" die Rückmeldungen entsprechend anpasst. Dazu will ich einfach
mit "ReadingsVal" "mode" abfragen - wenn dies nicht gesetzt ist, soll
der report2-Befehl abgesetzt werden. Soweit, so simpel. Falsch gedacht.

Ich dachte mir, statt extern in einer Perl-Funktion könnte ichs auch
intern in einem notify, welches ich trigger kann, aufbauen. Da fangen
aber schon die Probleme an. Warum geht Folgendes nicht:

define mytest notify mytest { \
  my @@fhts=('FHT_Bad','FHT_Wohnzimmer','FHT_Schlafzimmer');; \
  foreach(@@fhts) { \
    ReadingsVal($_, "mode", "nA");; \
  } \
}
trigger mytest

=> nischt.

define mytest notify mytest { \
  ReadingsVal("FHT_Wohnzimmer", "mode", "nA");; \
}
trigger mytest
 auto

=> geht.

Komischerweise liefert auch eine debugmeldung in obiger Funktion kein
output. Im fhem-Logfile taucht keine Fehlermeldung auf.

Wo liegt mein Denkfehler?

Gruß

Martin

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

rudolfkoenig

                                                   

> Wo liegt mein Denkfehler?

Trigger liefert die Verkettung aller notify Rueckgabewerte zurueck.  Notify
liefert das Ergebnis des Perl-Ausdrucks zurueck. Das Ergebnis eines Perl
Ausdrucks entspicht dem letzten Befehl. foreach liefert nichts zurueck, im
Gegensatz zu ReadingsVal.

Btw. ich habe in diesem Zusammenhang ein Bug behoben: $_; in einem Notify/At
wurde zu $;_ umgewandelt.

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.