TelegramBot über Notify das Wort Schrank geht nicht

Begonnen von lepOManta, 09 März 2017, 20:33:34

Vorheriges Thema - Nächstes Thema

lepOManta

Hallo
habe TelegramBot erfolgreich eingerichtet.
Dann ein Notify erstellt mit dem ich die Texte die empfangen werden in abgearbeit werden sollen.

Genau so wie hier im CODE läuft es einwand frei
auch der Text wird zurück gesendet


teleBot:msgText.* {
    if ($EVTPART1 eq 'Befehl') {
           fhem("set teleBot send
   Licht an / aus
   Bett an / aus");
    }
elsif ($EVTPART1 eq 'Resiver') {
        my $e2duo = ReadingsVal("E2vuDUO", "power", "");
        fhem("set teleBot send VU DUO : $e2duo");
    }
    elsif ($EVTPART1 eq 'Bier') {
        if ($EVENT =~ 'an') {
    my $text1 = $EVENT;
            fhem("set HANDY1_D 1");
            fhem("set HANDY2_D 1");
            fhem("set HANDY3_D 1");
            fhem("set teleBot send Befehl : $text1");
        }
        elsif ($EVENT =~ 'aus') {
    my $text2 = $EVENT;
            fhem("set HANDY1_D 0");
            fhem("set HANDY2_D 0");
            fhem("set HANDY3_D 0");
            fhem("set teleBot send Befehl : $text2");
        }
    }
}


wenn ich jetzt das Wort "Bier" in "Schrank" ändere dann werden die Befehle für die "HANDYx_D" nicht aus geführt , aber der Text wird zurück gesendet.
Wie gesagt mit "Bier" geht es einwand frei

viegener

Ich kann Dir sagen, dass Bank oder Frank auch nicht funktionieren würde.

Das Problem ist, dass ($EVENT =~ 'an') bei Schrank immer match, da an darin vorkommt. Denn Du sendest ja "Bier an"

also könntest Du auf ($EVENT =~ 'Schrank an') erweitern dann würde es vermutlich auch mit Schrank gehen...


ABER ACHTUNG: Wenn Du nicht entsprechende Absicherungen vorgenommen hast, dann kann bei Dir jeder diese Befehle ausführen. Das kann ja wohl nicht sinnvoll sein
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können