Push-Nachrichten per Telegram - was geht?

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Push-Nachrichten per Telegram - was geht?

Beitrag von dtp » 05.02.2016, 08:00

Hi,

in diesem Thread hatten Sillium und jmaus ja bereits auf die Möglichkeit hingewiesen, Push-Nachrichten recht komfortabel über so genannte Telegram-Bots zu versenden. Bots sind nichts anderes, als virtuelle User, von denen man Nachrichten erhalten und denen man auch Nachrichten senden kann. Mich würde jetzt mal interessieren, was man damit nun so alles machen kann und welche Einschränkungen es in Verbindung mit der CCU gibt. Daher soll das hier ein entsprechender Erfahrungs-Thread werden.

Aktuell nutze ich am häufigsten Pushover, um mir alle möglichen Infos von meiner CCU senden zu lassen. Zum Beispiel sämtliche Servicemeldungen über das Allinclusive-Skript von Alchy oder auch Meldungen darüber, dass die Waschmaschine oder der Trockner fertig sind, dass ein Einwurf in den Briefkasten erfolgte und dieser geleert wurde, wieviel Energie am zurückliegenden Tag verbraucht wurde, ob das Haus verlassen wurde, etc. pp. Im Moment sind es ca. 30 bis 40 verschiedene Skripte, die mir entsprechende Push-Nachrichten senden können. Pushover bietet viele Vorteile, wie z.B. die Möglichkeit, Texte per HTML-Tags formatieren zu können oder Push-Nachrichten gezielt mit dem Ereignis zuweisbaren Sounds an einzelne Geräte senden zu können. Was zum Beispiel nicht geht, ist das Senden von Bildern, Sounds und anderen Dateien. Und hier setzt Telegram mit seinen Bots an. Die können das nämlich alles und noch mehr.

Das Einrichten eines Bots gestaltet sich recht einfach.
  1. Sofern man noch keinen Telegram-Account hat, läd man sich die Telegram-App oder das Telegram-Programm für sein OS herunter (es werden eigentlich alle gängigen mobilen und Desktop-OS unterstützt), gibt eine Telefonnummer an, an die die SMS mit dem Freischaltcode geschickt werden soll und schaltet sich einen Account frei.
  2. In der InApp-Suche gibt man dann einfach BotFather ein und startet anschließend mit

    Code: Alles auswählen

    /start
    einen Chat mit ihm. Über

    Code: Alles auswählen

    /newbot
    richtet man dann den Bot ein. Dazu fragt der Botfather nach einem Namen für den Bot (z.B. "HomeMatic") und anschließend nach einem Usernamen, der immer auf "bot" oder "Bot" enden muss (z.B. "MeinHMBot"). Das war's. Nun ist der Bot eingerichtet und man erhält vom BotFather eine Nachricht mit dem API-Schlüssel des Bots und mit einem Link (z.B. "telegram.me/MeinHMBot").
  3. Damit der Bot Einem über die CCU eine Nachricht schicken kann, muss man noch die chat_id des Empfängers, also von sich selbst, herausfinden. Dazu geht man zunächst in der App auf den vom BotFather gesenden Link, gibt entweder "/start" ein oder drückt unten auf den Start-Button und sendet eine kleine Nachricht an ihn (z.B. "Hallo Bot"). Im Anschluss startet man einen Browser und gibt folgendes ein:

    Code: Alles auswählen

    https://api.telegram.org/bot<API-Schlüssel des Bots>/getUpdates
    Achtung, die "<>" dienen lediglich der optischen Abgrenzung und sind folglich wegzulassen. Unter Linux wäre die Eingabe übrigens

    Code: Alles auswählen

    curl -s -X POST https://api.telegram.org/bot<API-Schlüssel des Bots>/getUpdates
    Nun sucht man in dem angezeigten String nach der ID des Chats. Diese steht in der Regel hinter

    Code: Alles auswählen

    "chat"; {"id":
    Das war's.
Von der CCU kann man sich jetzt eine entsprechende Push-Nachricht des Bots zusenden lassen.

Code: Alles auswählen

string message = "Dies ist ein Test";
string chatid = " "; ! chat_id des Empfängers
string botAPI = " "; ! API des eingerichteten Bots 
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='"#message#"' -d chat_id="#chatid);
Ich musste wie gewohnt feststellen, dass über die CCU keine Umlaute verschickt werden können. Wenn man Umlaute verwendet, wird die Nachricht erst gar nicht abgesendet. Leerzeichen funktionieren aber. Man kann das Problem durch die Verwendung der entsprechenden UTF-8-Codes für die Umlaute und Sonderzeichen lösen. So mache ich das auch in meinem zentralen Push-Nachrichten-Skript.

So, und nun bin ich mal über Eure Erfahrungen mit den Telegram-Bots gespannt. Was geht, was geht nicht?

Bis dann,

Thorsten
Zuletzt geändert von Roland M. am 05.07.2018, 16:51, insgesamt 3-mal geändert.
Grund: Thema verschoben
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: Push-Nachrichten per Telegram - was geht?

Beitrag von grissli1 » 05.02.2016, 08:37

Danke für die super Anleitung. Werde ich heute Nachmittag gleich probieren.
Bot ist schon eingerichtet :wink: .

Viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Push-Nachrichten per Telegram - was geht?

Beitrag von dtp » 05.02.2016, 08:54

Hi Chris,

gern geschehen. Bin auf Deine Eindrücke gespannt.

Hier mal ein paar Dinge, die ich bei Telegram nach den ersten Eindrücken nicht so gut finde, wie bei Pushover:
  1. Keine gezielt einstellbaren Sounds für die Push-Nachrichten möglich. Stattdessen können Sounds nur für den Bot selbst oder eine Gruppe in der App definiert werden.
  2. Push-Nachrichten werden an alle installierten Apps und Programme gleichermaßen gesendet, da die chat_id nur den Empfänger, nicht aber die von ihm verwendeten Apps/Programme betrifft. Vorteil: Die Push-Nachrichten sind immer auf allen Geräten synchron.
  3. Telegram unterstützt zwar HTML-Tags für Fettdruck und dergleichen, allerdings nicht zur Definition unterschiedlicher Textfarben.
  4. Keine Möglichkeit zur Definition von Alarmmeldungen. Pushover bedingt bei Alarmmeldungen z.B. eine Bestätigung in der App, um ein wiederholtes Senden zu unterdrücken. Evtl. kann man dies aber auch für einen Bot so einrichten.
  5. Bisher habe ich noch keine Möglichkeit gefunden, Ruhezeiten in der App zu definieren, in denen die Hinweistöne für bestimmte Bots ausgeschaltet sind.
Man könnte ggf. für jedes von der CCU gesendete Ereignis einen eigenen Bot einrichten, dem man dann auch einen entsprechenden Benachrichtigungston zuweist. Bei mir wären das dann ca. 30 verschiedene Bots. Weiß nicht, ob das so im Sinne der Betreiber ist. Oder muss man das sogar, wenn man den Bot auffordern möchte, bestimmte Daten nochmals zu senden?

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

schmello
Beiträge: 212
Registriert: 04.06.2015, 20:26
Hat sich bedankt: 7 Mal
Danksagung erhalten: 4 Mal

Re: Push-Nachrichten per Telegram - was geht?

Beitrag von schmello » 05.02.2016, 10:23

Ich habe es direkt mal ausprobiert.. Bot erstellt.. hat alles wunderbar geklappt...

Doch bekomme ich keine Nachrichten auf meinem Iphone..

so steht es in meinem script
Chatid und botid natürlich geändert ;)

Code: Alles auswählen

string message = "Dies ist ein Test";
string chatid = " "; ! 5652221453
string botAPI = " "; ! 68sgwfksjrf8w3urjksf49rujsfg9ihnGtrHz(NH_2
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='"#message#"' -d chat_id="#chatid);
Über CUxd ist ein (28)Sytem Exec Gerät als taster erstellt worden.. (vorher) Einstellungen am Exec Gerät selber habe ich keine vorgenommen.

Edit:
Klappt :D ist wohl noch zu früh... die Ids müssen natürlich zwischen den " " und nicht dahinter.... Guten Morgen :D:D
Zuletzt geändert von schmello am 05.02.2016, 12:50, insgesamt 1-mal geändert.

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Push-Nachrichten per Telegram - was geht?

Beitrag von dtp » 05.02.2016, 12:28

schmello hat geschrieben: Klappt :D ist wohl noch zu früh... die Ids müssen natürlich zwischen den " " und nicht dahinter.... Guten Morgen :D:D
Und das um 10:23 Uhr? ;)

Übrigens, ich würde Deine persönliche Daten hier wieder heraus nehmen. Sonst macht Dein Bot evtl. mal Sachen, die Du gar nicht wolltest. ;)

Bis dann,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

schmello
Beiträge: 212
Registriert: 04.06.2015, 20:26
Hat sich bedankt: 7 Mal
Danksagung erhalten: 4 Mal

Re: Push-Nachrichten per Telegram - was geht?

Beitrag von schmello » 05.02.2016, 12:49

Sind erfundene Werte :)

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Push-Nachrichten per Telegram - was geht?

Beitrag von dtp » 05.02.2016, 12:55

schmello hat geschrieben:Sind erfundene Werte :)
Schlitzohr :twisted:
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: Push-Nachrichten per Telegram - was geht?

Beitrag von grissli1 » 05.02.2016, 15:20

So, gerade ein wenig damit herum gespielt. Der schwierigste Teil war in der API herauszufinden, was ein I und was ein l ist. Hier sieht man den Unterschied, aber am Handy nicht :lol: .

Super ist, das man gaaanz einfach in Telegram selbst Gruppen machen und Leute hinzufügen oder entfernen kann.
Man kann auch eine Alarmgruppe, eine Infogruppe usw machen. Finde ich schon mal super. So braucht man auch nur einen Bot für alle Meldungen und hat verschiedene Töne :wink: .
WICHTIG ist, dass man sich die Chat ID der Gruppe holt. Vorgehensweise wie bei der eigenen ID. Nachricht an Gruppe senden und mit Browser die ID abrufen. Und bei mir steht bei der Gruppe vor der ersten Ziffer noch ein -. Das unbedingt mit eingeben wenn so was da steht.

Der Vorteil von Pushover ist noch, dass ich per Mail Nachrichten pushen kann (verende ich mit dem Sicherheitssystem in der Arbeit) und dass man "unsichtbare" Push Nachrichten an Tasker senden kann.

Bilder muss ich noch schauen wie das geht.

Extrem interessant wird das Ganze, wenn man Befehle retour senden kann auf die dann die CCU reagiert. Sollte doch irgendwie gehen. Vielleicht schafft jmaus da was :wink: .

Viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Push-Nachrichten per Telegram - was geht?

Beitrag von dtp » 05.02.2016, 15:41

grissli1 hat geschrieben: Extrem interessant wird das Ganze, wenn man Befehle retour senden kann auf die dann die CCU reagiert. Sollte doch irgendwie gehen. Vielleicht schafft jmaus da was :wink: .
Wobei ich das dann aber auch wieder sehr riskant finde. Dazu sollte man dann entweder nur über die Chat- oder Gruppen-ID senden dürfen oder aber einen speziellen Sicherheitscode verwenden müssen, der im Bot hinterlegt ist.

Zudem frage ich mich, wo der Vorteil ist gegenüber eine Lösung wie z.B. pocket Control in Verbindung mit einem automatischen VPN-Aufbau? Aber gut, vielleicht übersehe ich hier ja auch was.

Bis dann,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

TSNr1
Beiträge: 89
Registriert: 22.12.2015, 19:53
Hat sich bedankt: 5 Mal

Re: Push-Nachrichten per Telegram - was geht?

Beitrag von TSNr1 » 06.02.2016, 11:32

Hab heut Nacht, nachdem ich ja sowieso bis in die späten, oder ehr schon frühen, Stunden meine CCU nach einer schrinbar fehlgeschlagenen Addoninstall neu aufsetzen musste, mal bissl mit dem Telegramskript und Bots rumhantiert.

Funzt eigentlich alles bisher einwandfrei!
An sich läuft es ja ähnlich wie bei pushover, ein User-Key und dann die zugehörigen API-Keys der einzelnen Bots.
Vll find ich heut abend oder nacht mal bissl Zeit dein Push-Center bissl auf meine Wünsche anzupassen.

So wie es in den anderen Beitrag beschrieben wurde, mehrere Einzelskripts für den jeweiligen Dienst wären glaube ich auch am ende für dich am Pflegeleichtesten, was spätere Updates und co angeht.

Vll. kann und darf ich dir ja dabei helfen.

Auch keine Crashes der CCU oder ähnliches.

Gruß Martin

Antworten

Zurück zu „Projektvorstellungen“