Simpler Perl Code will nicht funktionieren

Begonnen von lukasbastelpeter, 10 November 2016, 16:05:40

Vorheriges Thema - Nächstes Thema

lukasbastelpeter

Hallo zusammen,

ich habe mal wieder ein Brett vor dem Kopf

sub
shutterCheck($){
my ($room) = @_;
my ($device)="shutter_".$room;
my ($espDevice) = "ESPEasy_".$device."_interface";

my $upState=ReadingsVal($espDevice,"drivingUp","none");
my $downState=ReadingsVal($espDevice,"drivingDown","none");
if($upState eq "off" and $downState eq "off"){ #stop
fhem ("setreading $device movement false");
fhem ("setreading $device direction 0");
#fhem ("set $device fts_shutter");
} elsif($upState eq "on" and $downState eq "off"){#up
fhem ("setreading $device movement true");
fhem ("setreading $device direction 1");
fhem ("set $device fts_shutter_up");
}elsif($upState eq "off" and $downState eq "on"){#down
fhem ("setreading $device movement true");
fhem ("setreading $device direction -1");
fhem ("set $device fts_shutter_down");
}

}


das habe ich gebaut.

für stop und down funktioniert das wunderbar. Allerdings nicht für auf, warum ist das so?! :(
# Raspberry Pi
# Homematic, Z-Wave
# HUE, Tradfri
# Harmony
# ESP8266  Basteleien per MQTT

viegener

Um Dir helfen zu können würde es mir helfen, wenn Du erklärst, was im Falle "auf" (also vermutlich up?) nicht geht.
(Ein wenig Beschreibung, was die Routine machen soll hätte auch nicht geschadet).

Ich vermute die ROutine soll an einem (Dummy ?)-Device zwei readings movement und direction setzen, wenn entsprechend Änderungen von einem ESP-Device gemeldet oder abgefragt werden?

Der Befehl Debug im COde könnte helfen rauszufinden was schief steht. Dieser gibt etwas im Log aus, also z.B.
Debug  "upstate=".$upState":"
Denn meine Vermutung ist einfach, dass die Readings nicht genau Deinem "elsif" entsprechen, das lässt sich so rausfinden. Wichtig ist dabe, dass "eq" ziemlich pingelig ist und auch bei angehängten Leerzeichen oder Gross-/Kleinschreibung die Strings als nicht gleich ansieht.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

lukasbastelpeter

Hi,

sorry für die spärlichen Informationen...
Mittlerweile habe ich herausgefunden, dass das so funktioniert, nur das "up"-Event das notify nicht ausgelöst hat, weil ein Komma im event-on-update reading fehlte :(

Aber danke!
# Raspberry Pi
# Homematic, Z-Wave
# HUE, Tradfri
# Harmony
# ESP8266  Basteleien per MQTT