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?! :(
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.
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!