FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: otto am 29 Februar 2020, 19:01:24

Titel: Telegram senden/empfangen/schalten
Beitrag von: otto am 29 Februar 2020, 19:01:24
Hallo möchte mit denn Handys und Telegramm verschiedene Zustände abfragen und Schaltvorgänge machen,
das meiste funktioniert auch nur beim if mit EVTPART1 und EVENT hauts nicht hin
Licht  an/aus geht nicht
teleBot:msgText:.* {

my $sender = ReadingsVal($NAME, "msgPeerId", 0);
my $EVTPART1 = ReadingsVal($NAME, "msgText", "");

Log "Sender", "$sender";
Log "Nachricht", "$EVTPART1";

if ($EVTPART1 eq 'Licht') {
        if ($EVENT =~ 'an') {
  fhem("set teleBot message \@$sender Licht an");
      fhem("set Logo8_1 on");

        }
        elsif ($EVENT =~ 'aus') {
            fhem("set Logo8_1 off");
            fhem("set teleBot message \@$sender Licht aus");
        }

    }
elsif ($EVTPART1 eq 'Temp') {
        fhem("set teleBot message \@$sender Temperaturen \n Aussen [TH_Aussen:STATE]°\n Kessel  [Kessel:STATE]\°\n  Zisterne [Zisterne:level] %\n Boiler [Boiler:STATE]°");
}
       elsif ($EVTPART1 eq 'Ak_ein') {
        fhem("set Ausgang3 off");
fhem("set teleBot message \@$sender Akustik ist nun ein...");
    }
elsif ($EVTPART1 eq 'Reset') {
        fhem("set Ausgang2 on");
fhem("set teleBot message \@$sender Reset....");
    }
        elsif ($EVTPART1 eq 'Ak_aus') {
        fhem("set Ausgang3 on");
fhem("set teleBot message \@$sender Akustik ist nun aus...");
    }
        elsif ($EVTPART1 eq 'Br_ein') {
        fhem("set Buero_LED_RM on");
fhem("set teleBot message \@$sender Buero_LED_RM ist nun ein...");
    }
        elsif ($EVTPART1 eq 'Br_aus') {
        fhem("set Buero_LED_RM off");
fhem("set teleBot message \@$sender Buero_LED_RM ist nun aus...");
    }
        elsif ($EVTPART1 eq 'A_ein') {
        fhem("set Alarm_LED_RM on");
fhem("set teleBot message \@$sender Alarm_LED_RM ist nun ein...");
    }
        elsif ($EVTPART1 eq 'A_aus') {
        fhem("set Alarm_LED_RM off");
fhem("set teleBot message \@$sender Alarm_LED_RM ist nun aus...");
    }
}


Gruß Otto
Titel: Antw:Telegram senden/empfangen/schalten
Beitrag von: Raymund am 29 Februar 2020, 19:13:26
Hallo otto,

was steht denn im Logfile für $EVTPART1 und $sender?

Und warum bleibst Du bei den Vergleichen mit $EVENT nicht beim "eq" und nimmst plötzlich den Regex-Operator =~ ?

Gruß
Raymund
Titel: Antw:Telegram senden/empfangen/schalten
Beitrag von: otto am 29 Februar 2020, 19:42:04
Das waren eigendlich alles Schnipsel die ich aufgegriffen habe und an meine Bedürfnisse angepasst habe,
dachte evtl. kann mir einer sagen warum das so nicht geht
bei dieser conf ist es noch gegangen:
define teleBot_notify_1 notify teleBot:msgText.* {\
    if ($EVTPART1 eq 'Licht') {\
        if ($EVENT =~ 'an') {\
  fhem("set teleBot message Licht an");;\
      fhem("set Logo8_1 on");;\
\
        }\
        elsif ($EVENT =~ 'aus') {\
            fhem("set Logo8_1 off");;\
            fhem("set teleBot message Licht aus");;\
        }\
    }\



Gruß Otto
Titel: Antw:Telegram senden/empfangen/schalten
Beitrag von: Raymund am 29 Februar 2020, 19:52:02
Gib doch bitte mal die Variablen in das Logfile aus, speziell $EVENT. Dann kannst Du (bzw. "einer") sehen, ob Deine Vergleiche überhaupt passen können.

Wie soll dir "einer" ohne diese Infos sagen, ob es gehen kann oder nicht?
Titel: Antw:Telegram senden/empfangen/schalten
Beitrag von: viegener am 29 Februar 2020, 19:59:08
Vielleicht schaust Du Dir mal den Befehl msg an, vielleicht kommst Du damit leichter zum Ziel?

https://forum.fhem.de/index.php/topic,39983.0.html (https://forum.fhem.de/index.php/topic,39983.0.html)

Dialoge lassen sich damit auch gestalten über msgDialog


Titel: Antw:Telegram senden/empfangen/schalten
Beitrag von: Raymund am 29 Februar 2020, 20:12:00
Hallo Otto,

schau mal z.B. hier: http://majorshark.de/index.php/blog/15-vordefinierte-variablen-in-fhem (http://majorshark.de/index.php/blog/15-vordefinierte-variablen-in-fhem)

Du vergleichst $EVENT mit 'an' bzw. 'aus'. Da steht aber der ganze (!) Event drin, also vermutlich sowas wie 'msgText: Hallo' und eben nicht 'an'.