Auslösenden Rauchmelder erkennen

Begonnen von chaot4ever, 16 Dezember 2013, 16:46:08

Vorheriges Thema - Nächstes Thema

chaot4ever

und
{ my $alarm = ReadingsVal("SDTeam","smoke_detect","") ;; DebianMail('xx@@yyyyy.gmx', '12FEUERALARM FHEM', 'Rauchmelder "$alarm" hat ausgeloest!') }
ergibt im Mail ebenfalls: Rauchmelder "$alarm" hat ausgeloest!

crissiloop

Hallo,
ich hatte bei einer Frage zum Notify auch ein Problem mit den Anführungszeichen und dem Extrahieren der Variablen.
Lösung siehe: http://forum.fhem.de/index.php/topic,17698.msg116583.html#msg116583
Müsste dann bei dir wie folgt sein:
{ my $alarm = ReadingsVal("SDTeam","smoke_detect","") ;; DebianMail('xx@@yyyyy.gmx', '12FEUERALARM FHEM', "Rauchmelder ".$alarm." hat ausgeloest!") }

Gruß
Christian
FHEM 5.5 auf Cubietruck

1x HMLAN, 1x HMUSB, 12x HM-LC-Bl1 PBU-FM, 5x HM-LC-Sw1-Pl, 1x HM-LC-Sw1-FM, 2x HM-LC-Sw2-FM, 2x HM-SEC-RHS, 3x HM-SEC-SD, 8x HM-SEC-SC, 3x HM-RC-4-2, 1x HM-RC-8, 1x HM-Sec-SFA-SM, Jeelink, 7x Technoline TX 29 DTH-IT

martinp876

Hallo Christian,

du solltest dich ein bisschen mit perl syntax beschäftigen:
= ist eine Zuweisung
== ist ein Vergleich von Zahlen (nicht strings)

my $alarm = "ReadingsVal("SDTeam","smoke_detect","")" ;;

in hochkomma... ReadingsVal ist eine funktion - und soll nicht als text ausgewertet werden
die Hochkomma erzeugen folgende Gruppen:

my $alarm = "ReadingsVal("
                     SDTeam
                     ","
                     smoke_detect
                     ","
                     ")"
                     ;;

damit kann keiner etwas anfangen
daher sollte es so sein:

my $alarm = ReadingsVal("SDTeam","smoke_detect","");;

ein Funktionsaufruf mit 2 inputs, alle 3 strings.

Gruss Martin

crissiloop

Hallo Martin,

ich glaub jetzt verwechselst du mich wohl.
Ich habe nie etwas von == geschrieben und auch nicht von "ReadingsVal. Der Unterschied zwischen = und == ist mir auch klar.
Ich habe lediglich den Codeschnipsel von Richi ergänzt und zwar im hinteren Teil!
{ my $alarm = ReadingsVal("SDTeam","smoke_detect","") ;; DebianMail('xx@@yyyyy.gmx', '12FEUERALARM FHEM', "Rauchmelder ".$alarm." hat ausgeloest!") } stand in meinem Post.

Gruß und nix für ungut
Christian
FHEM 5.5 auf Cubietruck

1x HMLAN, 1x HMUSB, 12x HM-LC-Bl1 PBU-FM, 5x HM-LC-Sw1-Pl, 1x HM-LC-Sw1-FM, 2x HM-LC-Sw2-FM, 2x HM-SEC-RHS, 3x HM-SEC-SD, 8x HM-SEC-SC, 3x HM-RC-4-2, 1x HM-RC-8, 1x HM-Sec-SFA-SM, Jeelink, 7x Technoline TX 29 DTH-IT

martinp876