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
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
vermutlich zuviele Semikolons
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.