[gelöst] set_Exec mit telgram Bot an einen anderen Teilnehmer

Begonnen von Stelaku, 09 April 2023, 23:54:06

Vorheriges Thema - Nächstes Thema

Stelaku

Hallo alle zusammen und frohe Ostern

Ich habe ein Doif im perl Modus mit einen simplen timer erstellt in dem ich verzögert eine Nachricht über telegram an mein Handy haben möchte.
Das funktioniert auch alles wie gewohnt.
Wenn ich jetzt aber in diesen timer die Nachricht an ein anderen Teilnehmer senden möchte geht die Nachricht weiterhin an mein Handy.
Hier mal ein raw aus meinen Versuch.

defmod di_test DOIF subs{\
sub teilnehmer{\
fhem_set('telegramm msg @123456789 linkes Handy');;\
}\
}\
\
{\
([irgentwas]);;\
fhem_set('telegramm msg @123456789 linkes Handy');;\
set_Exec("timer1","2",'fhem_set("telegramm msg @123456789 linkes Handy")');;\
set_Exec("timer2","3",'teilnehmer()');;\
}
attr di_test alias di_test
attr di_test room Test

eigentlich sollten aus diesem test DOIF alle Nachrichten an das Handy @123456789 gehen.
gehen sie aber nicht.

fhem_set('telegramm msg @123456789 linkes Handy')                          ## geht wie es soll auf das linke Handy
set_Exec("timer1","2",'fhem_set("telegramm msg @123456789 linkes Handy")') ## geht nach zwei Sekunden auf das falsche Handy
set_Exec("timer2","3",'teilnehmer()')                                      ## geht nach drei Sekunden auf das richtige Handy
mit den single quotes und double quotes hab ich schon ohne Erfolg herumgespielt.
In FHEM Modus geht es auch ohne weiters mit
(set telegramm msg @123456789 linkes Handy)
und einen wait timer
gibt es da vieleicht eine Lösung ohne über eine sub zu gehen.

Viele Grüsse

Stephan


Damian

#1
Zitatset_Exec("timer1","2",'fhem_set("telegramm msg @123456789 linkes Handy")') ## geht nach zwei Sekunden auf das falsche Handy

Was ist hier das fasche Handy? Hier gibt es doch gar keine Variablen.

evtl. musst du @ maskieren mit \@
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Stelaku

Hallo Damian

vielen dank für Deine Antwort.
Und wie immer war Deine Vermutung die Richtige Lösung.
set_Exec("timer1","2",'fhem_set("telegramm msg \@424078817 linkes Handy")')
damit geht die Nachricht an das linke Handy.

Das falsche Handy so wie ich es genannt habe ist das Standart Handy im Telegram Bot an den alle Nachrichten gehen wenn nicht nach den msg ein @ mit den Teilnehmer steht.

Vielen dank für Deine schnelle hilfe.

Gruß

Stephan