Benachrichtigung per Telegram im Silent-Mode

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

tonde
Beiträge: 7
Registriert: 24.03.2023, 11:30
System: CCU

Benachrichtigung per Telegram im Silent-Mode

Beitrag von tonde » 24.03.2023, 12:00

Hallo Zusammen,
meine CCU3 sendet per Skript diverse Statusmeldungen an Telegram. Hat jemand eine Idee welcher Parameter geändert/gesetzt werden muß, um die Nachricht ohne Hinweiston (Telegram zeigt diese Nachrichten mit einem durchgestrichenem Glockensymbol an) zu versenden?
Die Nachrichten werden durch folgenden Befehl versendet:

Code: Alles auswählen

system.Exec("wget --no-check-certificate -q -O - 'https://api.telegram.org/bot'"#TOKEN#"'/sendMessage?chat_id='"#CHATID#"'&text='"#MESSAGE);

Dennis-HM
Beiträge: 256
Registriert: 19.02.2023, 18:40
System: CCU
Hat sich bedankt: 16 Mal
Danksagung erhalten: 23 Mal

Re: Benachrichtigung per Telegram im Silent-Mode

Beitrag von Dennis-HM » 24.03.2023, 15:52

Schau mal https://core.telegram.org/bots/api#sendmessage
Es gibt den disable_notification Parameter im API call vom sendMessage

HTH Dennis

tonde
Beiträge: 7
Registriert: 24.03.2023, 11:30
System: CCU

Re: Benachrichtigung per Telegram im Silent-Mode

Beitrag von tonde » 25.03.2023, 12:37

Hallo Dennis,
danke für den Tip. In der Form kenn ich den Befehl aus den IO-Broker Skripten, die von Blockly generiert werden. Mir leuchtet allerdings noch nicht ein, wie ich diesen Befehl in dem CCU Scrikpt unterbringen kann.

VG Olli

Tyfys
Beiträge: 550
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 27 Mal
Danksagung erhalten: 125 Mal

Re: Benachrichtigung per Telegram im Silent-Mode

Beitrag von Tyfys » 25.03.2023, 12:50

ich hab es bei mir einfach an die Nachricht angehängt :

Code: Alles auswählen

string silent= "&disable_notification=1";
MESSAGE = MESSAGE # silent;
Gruß
Harry

tonde
Beiträge: 7
Registriert: 24.03.2023, 11:30
System: CCU

Re: Benachrichtigung per Telegram im Silent-Mode

Beitrag von tonde » 25.03.2023, 13:56

Hallo Harry,
ich glaube ich bin nah dran, aber die Syntax... :|

Code: Alles auswählen

string TOKEN = "111111111111111111111111111111111111";
string CHATID = "11111111111";
string SILENT= "&disable_notification=1";
string msg = "Test Test";
string MESSAGE = msg.ToUTF8().Replace(" ", "%20") # SILENT;
system.Exec("wget --no-check-certificate -O - 'https://api.telegram.org/bot'"#TOKEN#"'/sendMessage?chat_id='"#CHATID#"'&text='"#MESSAGE);

MichaelN
Beiträge: 9678
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Benachrichtigung per Telegram im Silent-Mode

Beitrag von MichaelN » 25.03.2023, 14:16

Tyfys hat geschrieben:
25.03.2023, 12:50
ich hab es bei mir einfach an die Nachricht angehängt :

Code: Alles auswählen

string silent= "&disable_notification=1";
MESSAGE = MESSAGE # silent;
Das kann ja nicht funktionieren. Zum einen fehlt im Befehl von tonde das schließende ' und zum anderen wird so der silent Befehl Bestandteil der Nachricht.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

tonde
Beiträge: 7
Registriert: 24.03.2023, 11:30
System: CCU

Re: Benachrichtigung per Telegram im Silent-Mode

Beitrag von tonde » 25.03.2023, 14:37

Hallo Michael,
mit folgendem Skript habe ich bisher immer erfolgreich Nachrichten versendet:

Code: Alles auswählen

string msg = "Test Test";
string TOKEN = "11111111111111111111111111";
string CHATID = "11111111111";
string MESSAGE = msg.ToUTF8().Replace(" ", "%20");
system.Exec("wget --no-check-certificate -O - 'https://api.telegram.org/bot'"#TOKEN#"'/sendMessage?chat_id='"#CHATID#"'&text='"#MESSAGE);
Auch mit den Ergänzungen aus Tyfys Post (s.o.) erhalte ich die Nachricht "Test Test", leider weiterhin mit Benachrichtigungston.

VG Olli

Tyfys
Beiträge: 550
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 27 Mal
Danksagung erhalten: 125 Mal

Re: Benachrichtigung per Telegram im Silent-Mode

Beitrag von Tyfys » 25.03.2023, 17:05

MichaelN hat geschrieben:
25.03.2023, 14:16
zum anderen wird so der silent Befehl Bestandteil der Nachricht
das stimmt so nicht ganz.

in der url folgen nach dem Fragezeichen die Parameter.
Die einzelnen Parameter werden dann durch das & (ampersand) getrennt,
nach dem & folgt der Parametername, danach nach dem = der Parameterwert.
Die Reihenfolge und Anzahl der Parameter sind egal.

Wieso die Konstruktion von tonde (und auch bei mir) so nicht klappt ist mir auch unverständlich.
Ich hab es etwas geändert und so funktioniert es nun bei mir:

Code: Alles auswählen

boolean lautlos = true;
string msg = "dies ist ein Test";
string silent = "&disable_notification=1";
if (lautlos) {
    msg = msg # silent;
}
string TOKEN = "11111111111111111111111111";
string CHATID = "11111111111";
string MESSAGE = msg.ToUTF8().Replace(" ", "%20");
string url = 'https://api.telegram.org/bot'#TOKEN#'/sendMessage?chat_id='#CHATID#'&parse_mode=HTML&text='#MESSAGE;
system.Exec("wget --no-check-certificate -q -O - '"#url#"'" );
PS: meine erste Aussage hatte ich aus einem Javascript abgeleitet, wo ich es so machte.
Gruß
Harry

MichaelN
Beiträge: 9678
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Benachrichtigung per Telegram im Silent-Mode

Beitrag von MichaelN » 25.03.2023, 17:29

Tyfys hat geschrieben:
25.03.2023, 17:05
Wieso die Konstruktion von tonde (und auch bei mir) so nicht klappt ist mir auch unverständlich.
Weil dein Befehl (abstrahiert) so aussah

Code: Alles auswählen

...&text='hierkommteinstring&einBefehl
Da du das mit ' eingeleitet hast, ist das alle ein String. Der Befehl würde erst nach dem schließenden ' erkannt werden.

Jetzt hast Du die stringdelimeter weggelassen. Das könnte ggf. zu Problemen führen, wenn Du ein & im Text hast. Oder auch schon bei einem Leerzeichen. Müsstest DU mal ausprobieren.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Dennis-HM
Beiträge: 256
Registriert: 19.02.2023, 18:40
System: CCU
Hat sich bedankt: 16 Mal
Danksagung erhalten: 23 Mal

Re: Benachrichtigung per Telegram im Silent-Mode

Beitrag von Dennis-HM » 25.03.2023, 17:56

Ich hätte der "Optik" wegen den Silent-Parameter vor die Nachricht gesetzt, aber wie schon oben geschrieben,ist die Position der & Parameter in eine URL/Get-Aufruf egal.

Code: Alles auswählen

string TOKEN = "1111";
string CHATID = "1111";
string SILENT= "&disable_notification=1";
string msg = "Test Test";
string MESSAGE = msg.ToUTF8().Replace(" ", "%20");
WriteLine("wget --no-check-certificate -O - 'https://api.telegram.org/bot'"#TOKEN#"'/sendMessage?chat_id='"#CHATID#"'"#SILENT#"&text='"#MESSAGE#"'");

! ergibt
! wget --no-check-certificate -O - 'https://api.telegram.org/bot'1111'/sendMessage?chat_id='1111'&disable_notification=1&text='Test%20Test'


Mangels eigenen Bots kann es das wget aber nicht testen :-o

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“