Rückgabewert für Adressaten wird bei Telegram als Text interpretiert

Begonnen von Sirel, 30 Mai 2021, 19:25:08

Vorheriges Thema - Nächstes Thema

Sirel

Habe die gleiche Frage im Anfängerforum gestellt, vielleicht ist sie hier aber besser aufgehoben...
+++++++++++++++++++++++++++

Hallo zusammen,
über eine kleine Subroutine ermittle ich, welche Personen derzeit anwesend sind. Nur diese Personen sollen per Telegram informiert werden, wenn bspw. ein Fenster offen ist. Über das Skript werden die Namen der Anwesenden so aufbereitet, dass der Rückgabewert die Form @Name1 @Name2 usw. hat. Das funktioniert auch, sofern ich den Rückgabewert bspw. in einem DOIF mit Telegram verwende.
(set xxxxtelegram send {(com_control)} hallo pallo)
com_control ist die Subroutine welche ermittelt, welche Personen anwesend sind.

Jetzt probiere ich, aus einer anderen Subroutine die "com_control" Routine aufzurufen. In der Telegram Nachricht steht auch der richte @Name, allerding versteht Telegram das nicht als Ziel wohin die Nachricht soll, sonder als Text der Nachricht.

Hat jemand eine Idee was ich machen muss, damit Telegram das @Name nicht als Text, sondern als Ziel versteht.

Also konkret:

{fhem ("set xxxx_telegram message {(com_control)} Morgen müssen xxxx")};  führt als Nachricht zu
Zitat@Name Morgen müssen xxxxx

Vielen Dank vorab und Grüße,

Max

Gisbert

Hallo Max,

bitte die gesamte Definition (im raw-Format) des nicht funktionierenden Falles posten; ansonsten nähern wir uns nur stückweise deinem Problem.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Sirel

Hallo Gisbert,

eine RAW Definition kann ich dir so gar nicht liefern.

Mache ich es über ein DOIF, funktioniert es ohne Probleme:


([Test] eq "open") (set xxxx_telegram send {(com_control)} blablabla)

DOELSE

Alle Empfänger erhalten die Nachricht.
Der String der zurückgegeben wird ist @Max @Johanna. Dies sind unsere @username. Der String wird dynamisch erstellt, abhängig wer zu Hause ist.

Wenn ich die gleiche Logik in einer myUtils anwende, dann erhalte ich eine Nachricht in der steht:

@Max @Johanna bla bla bla

Wobei @Max unterstrichen ist.

{fhem ("set xxxtelegram send '{(com_control)}' Morgen müssen folgende Tonnen rausgestellt werden \\n$tonne")};

Da wird etwas nicht richtig interpretiert.
Ich tippe das hat damit etwas zutun:

https://forum.fhem.de/index.php?topic=48859.0

VG,
Max

Gisbert

Hallo Max,

versuche die einzelnen Teile mit einem Punkt zu verbinden:
{fhem ("set xxxtelegram send".'{(com_control)}'."Morgen müssen folgende Tonnen rausgestellt werden \\n$tonne")};
Ungeprüft, aber einen Versuch wert.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Sirel

Hallo Gisbert,
danke für Deine Hilfe. Im Ergebnis ändert das jedoch leider nichts.

Aber ich glaube, die Richtung stimmt.

Beste Grüße,

Max