FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Jörg am 30 Mai 2014, 18:09:55

Titel: Frage zu einem Modul
Beitrag von: Jörg am 30 Mai 2014, 18:09:55
Hi,
zur Zeit programmiere ich ein Modul. Damit möchte ich ein Notify erstellen:
fhem ('define notify_tempsensor notify $Sensor_:(humi.*) {}');

Das Notify wird auch erstellt, aber der Inhalt des Strings wird nicht genommen, sondern der String wird nur als String angezeigt.
Gibt es da eine Möglichkeit, oder geht das nicht?


LG Jörg
Titel: Antw:Frage zu einem Modul
Beitrag von: herrmannj am 30 Mai 2014, 19:24:07
Hi,

anstelle von ' das doppelte Hochkomma (")

vg
jörg
Titel: Antw:Frage zu einem Modul
Beitrag von: Jörg am 02 Juni 2014, 10:32:25
Hi,
vielen Dank, das war es. :)


Habe aber noch eine Frage.
Mit if (!$defs {d_tmp}) {...} kann man feststellen, ob ein Dummy existiert. In meinem Modul habe ich eine Schleife laufen, mit der $_sn von 1 bis 10 hochzählt.
FHEM stürzt jedoch ab, wenn die Stelle if (!$defs {d_solartmp$_sn}) erreicht wird. Mit if (!$defs {'d_solartmp$_sn'}) Stürzt FHEM nicht mehr ab, aber gibt mir immer das Ergebnis, dass d_solartmp1 nicht existiert.

         if (!$defs {'d_solartmp$_sn'}) {
               Log3($name, 3, "Solarswitch $_sn NEIN");
         }
         else {
               Log3($name, 3, "Solarswitch $_sn JA");
         }


Hast Du da noch einen Tipp für mich?
Titel: Antw:Frage zu einem Modul
Beitrag von: Elektrolurch am 02 Juni 2014, 11:35:08
'$name' wird nicht ausgewertet
"$name" schon, daher das andere Verhalten von $defs{'...$..

Titel: Antw:Frage zu einem Modul
Beitrag von: Jörg am 02 Juni 2014, 12:35:45
Danke für den Hinweis !!!

Mit if (!$defs {"d_solartmp".$_sn}) {...} funktioniert es nun. :)
Titel: Antw:Frage zu einem Modul
Beitrag von: Elektrolurch am 02 Juni 2014, 13:37:40
Schöner wäre allerdings:

if (!defined($defs {"d_solartmp".$_sn})) 
Titel: Antw:Frage zu einem Modul
Beitrag von: Jörg am 02 Juni 2014, 15:38:51
Inwiefern meinst Du denn, dass es schöner ist?
Ist die Abfrage dann ressourcenschonender, oder meintest Du die Optik des Codes?
Titel: Antw:Frage zu einem Modul
Beitrag von: Elektrolurch am 02 Juni 2014, 17:09:51
Lies mal in der Perl-Dok die Unterschiede von defined und exists nach.
Wenn man die Existenz eines Hashes prüfen möchte, ist es mit "defined klarer zu lesen. Es könnte ja auch so sein, dass der Hash existiert, aber keinen Wert enthält, also undef ist. Was macht dann Deine Abfrage mit ! vor dem Hash?

Gruß


Elektrolurch