FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Tobi.W am 08 September 2013, 21:52:36

Titel: notify mit 2 fs20 geräten
Beitrag von: Tobi.W am 08 September 2013, 21:52:36
Ich versuche eine Lampe anzuschalten, wenn 2 Schalter gleichzeitig an sind, ich verstehe nicht was an diesem miniprogramm falsch ist, hat jemand eine Idee?

define ANLAGE_STATUS dummy
attr ANLAGE_STATUS room Alarmanlage
define ANLAGE_SCHARF FS20 a11f 00
attr ANLAGE_SCHARF dummy 1
attr ANLAGE_SCHARF room Alarmanlage
define ANLAGE_SCHARF_intern FS20 a11f 01
attr ANLAGE_SCHARF_intern dummy 1
attr ANLAGE_SCHARF_intern room Alarmanlage
define Scharfanzeige1 FS20 22224222 00
attr Scharfanzeige1 IODev CUL_0
attr Scharfanzeige1 room Alarmanlage
define Scharfanzeige2 FS20 22224222 01
attr Scharfanzeige2 IODev CUL_0
attr Scharfanzeige2 room Alarmanlage

define alarmtest notify (ANLAGE_SCHARF|ANLAGE_SCHARF_intern) {
my $r1 = value("ANLAGE_SCHARF");;
my $r2 = value("ANLAGE_SCHARF_intern");;

 if ($r1 eq "on" && $r2 eq "on") {
   fhem "set Scharfanzeige2 on"
 } else {
   fhem "set Scharfanzeige2 off"
 }
}

Ich bekomme da folgende Fehlermeldung:
Unknown command my, try help Unknown command my, try help Unknown command if, try help Unknown command fhem, try help Unknown command }, try help Unknown command fhem, try help Unknown command }, try help Unknown command }, try help

Titel: Aw: notify mit 2 fs20 geräten
Beitrag von: Markus am 08 September 2013, 22:14:35
Ich hab es so gelöst

define Fenster_Bad notify Fenster_Bad:open {\
if ( Value("ANLAGE_STATUS") ne "unscharf" && Value("ANLAGE_STATUS") ne "on") \
{ fhem "set Alarm on"} \
}


Gruß Markus
Titel: Aw: notify mit 2 fs20 geräten
Beitrag von: betateilchen am 08 September 2013, 23:11:30
vermutlich zuviele Semikolons
Titel: Aw: notify mit 2 fs20 geräten
Beitrag von: Zrrronggg! am 08 September 2013, 23:23:19
Zitatdefine alarmtest notify (ANLAGE_SCHARF|ANLAGE_SCHARF_intern) {
my $r1 = value("ANLAGE_SCHARF");;
my $r2 = value("ANLAGE_SCHARF_intern");;
ZitatUnknown command my, try help

Fast selbsterklärend:
Backslash am Ende Zeilenende vergessen.

Ausserdem:

Zitatmy $r1 = value("ANLAGE_SCHARF");;
my $r2 = value("ANLAGE_SCHARF_intern");;

if ($r1 eq "on" && $r2 eq "on")

Warum dieses Konstrukt? Wäre simpel:

{ if ("$value{ANLAGE_SCHARF}" eq "on" && "$value{ANLAGE_SCHARF_intern}" eq "on") { fhem("fhem "set Scharfanzeige2 on"...

nicht einfacher?
Ferner:
bei Alarmanlagen die ich so kenne würde  damit die Scharfanzeige *nie* an gehen, da eine Alarmanlage ENTEWEDER "scharf intern" ist ODER "scharf", aber nicht beides zugleich.