Homematic 13: Automatisiert Push-Nachrichten über die Homematic CCU2 versenden
Wer Homematic beispielsweise als Alarmanlage verwendet, wird bestimmt schon auf die Idee gekommen sein, sich Nachrichten an das Handy schicken zu lassen. Ich werde in diesem Tutorial erklären, wie kostenlos und ohne Zusatzsoftware auf der CCU2 eine Push-Nachricht über den Anbieter Telegram an ein Smartphone verschickt werden kann.
Hinweis: Von diesem Artikel existiert eine neue Version. Die neue Version setzt CUxD und Pushover ein, was zu Stabilitätsverbesserungen und mehr Features führt. Ich empfehle daher, den neuen Artikel zu lesen. Wer lieber auf Telegram setzt, darf gerne weiterlesen, es funktioniert natürlich immer noch.
-> Zum überarbeiteten Artikel <-
Der Lösungsansatz
Der eigentliche Nachrichtenversand erfolgt über die Messaging App Telegram. Die App ist kostenlos und für alle gängigen Smartphones verfügbar. Telegram bietet eine API an, über die Nachrichten verschickt werden können. Nach dem Anmelden eines Sogenannten Bots an der API, können über den Aufruf einer „Webseite“ Nachrichten verschickt werden. Dabei wird eine verschlüsselte Seite aufgerufen und als Parameter der ein API Key (nächstes Kapitel), die Chat-ID und der Text selber als Variable übergeben.
Die CCU2 ist in der Lage mit Hilfe eines Scripts über System.Exec eine beliebige Webseite aufzurufen. Damit lässt sich also ein CCU2 Programm anlegen, welches beispielsweise beim Auslösen von Alarmtriggern eine Nachricht verschickt.
Einrichten des Telegram Bots
Um auf die Api zugreifen zu können, wird ein API Key benötigt. Dazu sind folgende Schritte notwendig:
- Installation von Telegram auf dem Smartphone
- Klickt oben rechts auf das Lupensymbol und sucht nach dem Kontakt BotFather – Ja, lustig ;)
- Startet eine Konversation mit BotFather, ihr solltet direkt eine Übersicht mit Befehlen bekommen
- mit /newbot wird ein neuer Bot angelegt
- Anschließend wird nach einem Namen für den Bot gefragt, einfach antworten.
- Nun wird noch nach einem Benutzernamen gefragt, wieder einfach antworten
- Nun antwortet der bot mit dem API Key, bzw. API token (weiterhin als <API_KEY> abgekürzt)
- Jetzt wird noch eine <CHAT_ID> benötigt, dazu vorzugsweise am Rechner über web.telegram.org einloggen und nach dem Bot suchen. Dafür wird der Benutzername des Bots aus Schritt 6 verwendet. Habt ihr ihn gefunden, startet ihr eine Konversation indem ihr dem Bot irgendetwas schreibt (ganz wichtig).
- Nun muss die Seite https://api.telegram.org/bot<API_KEY>/getUpdates aufgerufen werden. Dazu unbedingt das selbe Browserfenster bzw. -tab benutzen, in dem im vorherigen Schritt der Chat mit dem Bot gestartet wurde. Die URL bitte per Hand kopieren und <API_KEY> durch euren Key aus Schritt 7 ersetzen. Aus der Antwort lässt sich in der letzten Zeile eine „id“ entnehmen. Das ist unsere gesuchte <CHAT_ID>. Das Ergebnis müsste in etwa so aussehen:
- Jetzt lässt sich die fertige URL basteln. Bitte in der folgenden URL euren <API_KEY> und eure <CHAT_ID> ersetzen:
https://api.telegram.org/bot<API_KEY>/sendMessage?chat_id=<CHAT_ID>&text=<Eure_Nachricht> - Nach dem Aufruf der Seite solltet ihr eine Pushnachricht auf das Handy bekommen und die Nachricht <Eure_Nachricht> sollte angekommen sein. Im Browser sollte die Antwort so aussehen:
{"ok":true,"result"
[...]Bitte beachtet, dass SSL (=https://) zwingend ist. Dadurch wird der API Key und eure Nachricht beim Transport verschlüsselt.
Falls es probleme gibt, vergleicht eure URL noch einmal mit diesem Beispiel:
https://api.telegram.org/bot557138945:AAfdjdfuTDkQ9cirHCUQMNF/sendMessage?chat_id=5872168&text=HalloTechnikkram
Konfiguration des CCU2 Programms
Die Anwendungsmöglichkeiten sind sehr vielfältig. Ich werde ein einfaches Beispiel vorgeben, bei dem eine Nachricht gesendet wird, wenn eine Tür geöffnet wird. Ohne weitere Bedingungen wäre das natürlich ziemlich nervig, es könnte als Beispielsweise vorher abgefragt werden, ob die Alarmanlage scharf ist. Alternativ könnte auch morgens, wenn man das Haus verlässt, eine Nachricht geschickt werden wenn der Außentemperatursensoreine Glatteisgefahr feststellt.
Hier kommt eure Phantasie ins Spiel ;)
Zurück zum Beispiel:
- Anlegen eines neuen Programmes über Programme und Verknüpfungen -> Programmerstellung & Zentralenverknüpfungen -> Neu
- Triggerbedingung hinzufügen
- Als Aktivität wird Script gewählt und anschließend daneben auf Script erstellen geklickt
- Als Script wird folgendes eingegeben, natürlich wieder <API_KEY>, <CHAT_ID> und <EURE_NACHRICHT> ersetzen.
string stderr;
string stdout;
string url="\"https://api.telegram.org/bot/sendMessage?chat_id=&text=\"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);
- Das fertige Programm sollte dann in etwa so aussehen:
- Ein Klick auf Fehlerprüfung sollte „Kein Fehler“ zurückgeben
- Zwei Klicks auf OK Speichern das Programm und es kann getestet werden.
Ich hoffe, bei euch funktioniert es einwandfrei. Grundsätzlich gibt es auch andere Push Dienste die verwendet werden können. Telegram hat aber den Vorteil, dass nicht eine zusätzliche App zum Einsatz kommt, die sonst keinen Nutzen hat. Ich denke das macht am meisten Sinn. Wer bessere Ideen hat, darf natürlich einen Kommentar hinterlassen.
Nachtrag vom 4.7.2016:
Umlaute müssen nach folgenden Regeln codiert werden. Ansonsten funktioniert es leider nicht:
Ä wird ersetzt durch %C3%84
ä wird ersetzt durch %C3%A4
Ö wird ersetzt durch %C3%96
ö wird ersetzt durch %C3%B6
Ü wird ersetzt durch %C3%9C
ü wird ersetzt durch %C3%BC
Beispiel:
string url=“\“https://api.telegram.org/bot/sendMessage?chat_id=&text=T%C3%BCr ge%C3%B6ffnet\““;
Daraus ergibt sich dann „Tür geöffnet“
Vai meklējat uzticamu aizdevumu rēķinu apmaksai? Nemeklējiet vairāk, sazinieties ar WESLEND SERVICE vietnē (weslendservice@gmail.com) vai rakstiet mums whats-app pa tālruni +1 (702) 753-6974, lai saņemtu savus 24 stundu apstiprinātos aizdevumus, lai dzēstu parādu vai sāktu jaunu biznesu.
Hallo, benötigen Sie einen Kredit? Wir bieten verschiedene Arten von Darlehen mit einem Zinssatz von 2 % und einem Rückzahlungsplan von 1 bis 25 Jahren an. Wenn Sie interessiert sind, kontaktieren Sie uns bitte für weitere Informationen. Über: (zachm5335@gmail.com) oder WhatsApp über: +14482035018
Hallo,
ich bin blutiger Anfänger, was Scripte angeht, aber ich würde das auch gerne zum laufen bekommen. Wenn ich über den Browser gehe, dann funktioniert das auch. Allerdings in der CCU bekomme ich das nicht hin. Folgendes Script habe ich, ist dort ein Fehler drin?
string stderr;
string stdout;
string url=“\“api.telegram.org/bot187####_A/sendMessage?chat_id=126###&text=Funktioniert\““;
system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);
Über Hilfe würde ich mich sehr freuen.
Wenn die Zeichenketten
, und
exakt so im Script stehen würden , wüsste bestimmt jeder was genau an diesem url webblablageflicke genau zu ersetzen ist.
Leider hat ja niemand diese http//\?Steinzeit?=/webtechnologie mal geordnet sondern immer nur was hinzugeflickt , so das wir es leider alle so ertragen müssen wie es nun mal ist.
Ich probier jetzt blind herum wie es in der webtechnik zwischenzeitlich fast Standart (wollt ich schon immer mal selbst falsch schreiben) ist. Immerhin hat mich der Artikel auf die richtige Spur gebracht – Danke dafür.
Danke, Philipp, für die Anleitung.
Damit ging es bei mir einige Zeit gut, aber als ich gestern Telegram (auf dem iPhone) geöffnet habe, waren alle Einstellungen weg und ich musste den Bot neu aufsetzen. Leider ist mir es nicht mehr gelungen, eine Nachricht abzuschicken, weder von der Homematic nocht im Web. Im Webbrowser bekomme ich immer ein „not authorized“. Hat sich evtl. an Telegrams API was geändert? Oder läuft das bei dir/euch nach wie vor problemlos? Dann muss ich zum gefühlt zwölften Mal alles kontrollieren ;-)
Schnelles Update: im Browser ging das doch noch, ich musste (wie du schon geschrieben hast), denselben Tab benutzen, offensichtlich, damit die Authentifizierung funktioniert.
Auf der Homematic wird aber wohl genauso eine Authentifizierung nötig sein, oder?
Bitte lösche doch einfach meine Beiträge. Warum auch immer, vielleicht fehlte einfach die Geduld, es geht wieder alles.
Sorry – Robert
Hey ist es auch möglich diese nachrichten auf 2 Handys schicken zu lassen mit 2 unterschiedlichen Telegram accounts?
die Char-ID bezieht sich auf die Teilnehmer eines Chats. Man muss nur weitere Teilnehmer hinzufügen, damit die Nachricht entsprechend an alle Teilnehmer gesendet wird.
Moinsens Werner,
und wie würde das versenden an ein zweites Handy genau aussehen? Hast du dazu ein Beispiel-Code? Welches Trennzeichen nimmt man im Script für die Char-ID?
Schönen Gruß
Frank
Hallo Philipp,
tolle Anleitung, hat fast (ich hatte einen Kopierfehler) sofort auf meiner RaspberryMatic funktioniert !!!
Eine Frage / Bitte hätte ich noch:
Ich würde „system.Exec“ gern durch den entsprechenden CUxD Befehl ersetzen. Kannst das Tutorial dahin gehend ergänzen ?
Liebe Grüße, Siggi
Lies mal den roten Text am Anfang des Artikels ;)
Habe ich … aber das hilft mir als blutigen Anfänger der Skript-Schreibung nicht wirklich weiter … ;-(
Und ich wollte bei Telegram bleiben da ich es als WhatsApp Ersatz nutze. Bislang funktioniert alles nach deiner Anleitung … damit: „Never change a running system“
Hi Philipp,
Ich habe schon oft versucht, Pushnachrichten per Telegram zu verschicken.
Leider ist das aus irgendwelchen Gründen laufend gescheitert.
Irgentwann hatte ich die faxen dicke, habe den Messenger wieder deninstalliert.
Nun arbeite ich seit 2 jahren mit Pushover und bin voll zufrieden damit. Seit März 2018 versendet der auch Bilder meiner Überwachungskameras.
Der preisliche Aspekt. naja, ich denke, EUR 4,99 je angemeldetes Gerät kann man auch verschmerzen. 7500 Nachrichten pro API sind jedes Monat sind frei. (ich habe 4 API’s, macht 30000 Nachrichten im Monat for free).
Nun gibt es einen neuen Dienst. Der nennt sich Pushsaver.
Da aber keine Preise ersichtlich sind, scheint mir die Geschicte doch mehr als nur suspekt.
Gruß,
Mathias
Vielen Dank für die tollen Anleitungen……hab auch ein kleines Bier hinterlassen ;-)
Sehr geiler Artikel, danke für die Arbeit.
Hab dir ein Bier gesendet, Prost!
Viele Grüß
Marcel
Das Bier kam an :) Vielen Dank, wird gleich getrunken.
Hallo Phillipp,
bin begeistert von deinen Ausführungen. Allerdings habe ich folgendes Problem:
Auf diesen Befehl:
https://api.telegram.org/bot476561321:AAECQbVqLGKpL8hP41xKOVms_b7apLJLA3U/getUpdates
bekomme ich folgende Antwort: {„ok“:true,“result“:[]}
Hast du hierfür eine Erklärung?
Gruss Ulli
Hi,
GetUpdates wird verwendet um eingehende Updates zu Pollen. Das Ergebnis ist einfach eine leere Liste. Was hast du damit vor?
Falls das dein echter API Key war, solltest du ihn jetzt ändern, ansonsten kann jeder auf deinen Kram zugreifen ;)
Ich empfehle auch einfach Mal meinen neuen Artikel zu den Push Nachrichten via Pushover: https://technikkram.net/2017/07/homematic-meldungen-als-push-nachricht-via-pushover-an-das-smartphone-schicken
Lohnt sich ;)
Das Problem hatte ich ebenfalls.
Habe alles am PC gemacht und nicht am iPhone / Rechner gesplittet.
Dann ging es.
Hallo zusammen,
ich habe diese Lösung seit Februar verwendet und alles hat super funktioniert (danke nochmal für die tolle Anleitung :-)).
Ich habe damit eine kleine Alarmanlage im Keller ausgestattet um Nachrichten zu bekommen wenn sich die Tür öffnet.
Am 18. Juni habe ich die letzte Nachricht bekommen. Seither funktioniert es leider nicht mehr, ohne dass ich etwas geändert habe. Die CCU2 habe ich auch schon mehrfach vom Strom genommen. Ich greife auch über VPN auf die CCU2 zu. Am Internet scheint es also nicht zu liegen.
Wenn ich die URL in den Browser eingebe bekomme ich eine Fehlermeldung
{„ok“:false,“error_code“:404,“description“:“Not Found“}
Ich bin kein Technikass, deswegen bin ich leider etwas ratlos und hoffe hier Hilfe zu finden :-)
Danke schonmal im Voraus!
Gruß Tobi
Komisch, sieht für mich so aus, als würde dein API key nicht mehr existieren. Sicher dass du alles kopiert hast? Ich würde empfehlen einen neuen Key zu erstellen, den link musst du dann natürlich anpassen. Solange du von telegram im Browser diese Fehlermeldung bekommst, liegt es aber definitiv nicht an der CCU.
Wow, danke für die rasante Antwort. Scheinbar hat sich der alte Bot tatsächlich verabschiedet ohne Bescheid zu sagen :-)
Neue API erstellt, Link angepasst, geht wieder.
Vielen, vielen Dank!
Gruß Tobi
Gerne doch! Danke auch für das Feedback. Mit dem Problem warst du jetzt der erste. Vielleicht sollte man sich bei Alarmanwenfungen wöchentlich ein „Hallo, ich lebe noch“ schicken lassen. Ansonsten bekommt man das nicht mit, wenn der sich verabschiedet :(
Hallo,
habe auch das Problem, dass ich keine Nachricht aus der CCU bekomme. Alles wie hier Beschreibung angelegt. (Nachricht über Browser funktioniert)
Habe dann ein CUxD angelegt, und ein entsprechendes Script gefunden.
string message = „Test- Nachricht“;
string chatid = „XXX“;
string botAPI = „XXX“;
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);
Leider funktioniert es damit auch nicht..
Bin für jede Hilfestellung dankbar.
Hallo Gunnar,
hast du im CUxD auch einen Schalter vom Gerätetyp (28) System angelegt.
Dieser muss mit der Funktion Exec angelegt werden.
Den brauchst du auf jeden Fall.
Des Weiteren werden keine Nachrichte über diesen Script gesendet, wenn sich Umlaute in der Nachricht befinden.
Bei der Fehlersuche bin ich damals fast verzweifelt.
Hallo Marcel,
danke für die Hinweise.. hatte ich aber berücksichtigt..
Könnte jemand mal das Script auf seiner CCU testen, ob eine Nachricht abgesendet wird. Vielleicht liegt der Fehler an einer anderen Stelle in der CCU.
Hat diesbezüglich vielleicht jemand noch eine Idee?
Hallo,
habe den Fehler gefunden…
die CCU hatte keine Internetverbindung, obwohl die CCU- Oberfläche erreichbar war.
Habe zum überprüfen, ob die CCU mit dem Internet verbunden ist, folgendes Script unter ‚Script testen‘ eingegeben: (Als Ergebnis bekommt die Info, ob man verbunden ist, oder nicht.)
—————
string stderr;
string stdout;
integer Auslese;
system.Exec(„ping -c 1 http://www.google.de„,&stdout, &stderr);
Auslese = stdout.Find(„ms“);
if ( Auslese == -1 )
{
WriteLine(„CCU ist NICHT mit der Welt verbunden“);
}
if ( Auslese > 0)
{
WriteLine(‚CCU ist mit der Welt verbunden‘);
}
———————————-
Nachdem ich unter Netzwerkeinstellungen in der CCU den Haken bei ‚Folgende IP-Adresse verwenden‘ entfernt habe, wurde auch die Telegram- Nachricht versendet.
Vielleicht hilft diese Info auch anderen, die bis jetzt keine Telegram- Nachrichten aus ihrer CCU bekommen.
Hi Gunnar,
danke dass du deine Lösung geteilt hast! Auf die Idee bin ich echt nicht gekommen, aber deine Lösung bringt ein neues Problem mit sich. Daher noch ein paar Hintergrundinformationen:
Du hattest deiner CCU vorher eine feste IP Adresse zugeteilt, was gut war solange du in irgendeiner Form auf die IP Adresse zugreifen willst (per App, Port Forwarding, Reverse Proxy, ..). Wenn du das Häckchen entfernst, vergibt der Router (=DHCP Server) der CCU eine IP. Das passiert etwa alle 5 Minuten. Somit besteht alle 5 Minuten das Risiko, dass du die Verbindung zur CCU verlierst. Das könntest du verhindern, indem du den Router anweist, der CCU immer die gleiche IP Adresse zuzuteilen (so mache ich das).
Der Weg mit der festen IP in der CCU funktioniert auch, allerdings muss zusätzlich ein korrektes Gateway (der Router) und mindestens ein DNS Server (vom Provider oder anderen öffentlichen, z.B. 8.8.8.8 für den von Google) in der CCU eingetragen werden. Wenn diese Einstellungen nicht stimmen, kann sie zwar vollständig mit lokalen Netz kommunizieren, aber sie „findet“ das Internet nicht.
Diese Problematik trifft übrigens auf jedes (!) Netzwerkgerät zu. Da die Geräte aber standardmäßig DHCP aktiviert haben, bekommen sie alle nötigen Einstellungen vom DHCP Server (Router) mitgeteilt. Das funktioniert in der Regel Problemlos, da keiner eine Verbindung zu seinem z.b. Smartphone aufbaut.
Ich empfehle dir, die Einstellungen nochmal zu überarbeiten. Sonst funktioniert z.B. auch die Lightify Anbindung nicht zuverlässig.
Viele Grüße
Philipp
Hallo Philipp, hab dir vor geraumer zeit geschrieben…..
leider bis jetzt keine Rückmeldung bekommen.
Die Problematik ist nach wie vor dieselbe, wenn ich den Link zusammenbastle wie beschrieben mit meinem API Key und Chat id und das ganze im Broserfenster teste bekomme ich die nachricht auf handy.
Wenn ich deinen Script copy paste in meiner ccu2 eingebe und api key sowie chat id wie beschrieben auf meine Angaben anpasse skript testen klicke bekomme ich „keine Fehler“.
dann Starte ich die CCU2 neu, löse einen Brandmelder mittels rauch aus, und die Meldung kommt nicht.
Ich bin echt ratlos.
Kannst du mir bitte weiterhelfen?
Gruss Kevin
Hi, ich schaue mir das Am Wochenende mal an. Eventuell müssten wir doch auf den Aufruf per CUxD umstellen. Wenn du das schon mal versuchen willst, schau dir mal diesen Artikel an: https://technikkram.net/2017/04/philips-hue-per-homematic-steuern Dort beschreibe ich, wie man per CUxD einen BEfehl per HTTP sendet. Ich plane aber, das in den Push-Artikel aufzunehmen.
Gruß
Philipp
Hallo Philipp,
scheint super zu funktionieren, ich bekomme jedoch vom BotFather meine ID nicht.
Er antwortet immer brav mit {„ok“:true,“result“:[]}
Hat sich etwas bei Telegram geändert?
Gruß
Tom
Hallo,
ich bekomme leider nur folgendes zurück {„ok“:true,“result“:[]}
Den Browser habe ich schon neu gestartet und im gleichen Tab habe ich es auch getestet. Gibt es noch eine Idee
Hallo
ich habe auch das problem, dass ich die Nachrichten nicht von der CCU bekomme.
den link habe ich getestet der funkt. nur die CCU gibt ihn nicht aus.
Kann es am Provider liegen oder an einer Firewalleinstellung oder so, fernzugriff mit der homedroid app funkt.
wie kann man testen ob die CCU den Befehl ausgibt.
mit dank im voraus…..
Hallo
das selbe Problem habe ich auch weder über system.Exec noch über CuXD bekomme ich die Push-Nachricht raus!
Irgendeine Idee?
Kevin
24. März 2017
Hallo Philipp,
ich krieg den Skript bei meiner ccu2 leider nicht zum laufen :-(
hab copy paste deinen Skript bei mir in der ccu eingefügt, und dan bot id chat id und message durch meine angaben ersetzt.
Wenn ich jedoch bei einem Rauchmelder in der betreffenden Gruppe eine Auslösung provoziere krieg ich keine Meldung auf mein handy.
wenn ich den erstellten link wie du beschrieben hast im Browserfenster einfüge und enter drücke kommt die Meldung
Was passiert wenn du das Skript in dem Editor testest? Läuft das ohne Fehler durch? Falls ja, starte die ccu Mal neu. Hat gelegentlich schon geholfen.
Hallo Philipp,
Das hab ich alles bereits versucht, leider ohne sichtlichen Erfolg.
Beim Test des skript bekomme ich die Meldung keine Fehler
Hallo ich bekomme folgende Fehlermeldung wenn ich auf Script testen gehe.
Error 1 at row 3 col 171 near ^wget –no-check-certificate -q -O – „#url, &stdout, &stderr);
Parse following code failed:
string stderr;
string stdout;
string url=“\“https://api.telegram.org/bot3511661814:AAEKu51111BNN-u27-D9tCVv1orsAPSLB5Fts/sendMessage?chat_id=333737946&text=Andy ist zu haus““;
system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);
Was kann das sein.
Setz Mal einen Backslash hinter Andy ist zu Haus und vor die beiden Anführungszeichen.
Danke es war der Backslash. Aber nun bekomme ich immer noch keine Antwort mir geht es wie Kevin.
Wunderbar nun läuft es.Danke nochmal.
Sehr gut. Was hast du gemacht, damit es läuft?
Eigentlich nichts es funktionierte einfach. Nun habe ich schon mehrere Anwesenheit Scripte angelegt.Was mir aufgefallen ist:Ich habe bei einen Funkhansender bei langen Tastendruck ein Script angelegt der 2 mal funktionierte und dann nicht mehr. Jetzt habe ich noch ein Script bei Kurzen Tastendruck angelegt dieser funktioniert ohne Probleme.
hallo philipp, ganz tolle sache und super umsetzung und anleitung – nach „userfehler“ hat alles auf anhieb gekalppt – großes lob!!
falls ich dich auf paypal finde würd ich dir gerne ein bier (oder saft, oder was auchimmer;) ) spendieren – also gib mir bescheid.
Hey, vielen Dank!! Über ein Bier freue ich mich immer ;) Ich habe einen Spenden-Button unter den Text gepackt oder du benutzt einfach die mailadresse philipp@technikkram.net
bei mir kommt nur das:
{„ok“:true,“result“:[]}
kriege die ID nicht angezeigt
Du musst die Schritte im selben Tab durchführen. Am besten alle Browserfenster schließen und in einem neuen Fenster/Tab nochmal versuchen.
Hatte das Problem auch mit Firefox. Mit IE klappte es dann.
Interessant. Danke für den Hinweis, werde ich im Text aufnehmen.
Hallo Philipp,
ich krieg den Skript bei meiner ccu2 leider nicht zum laufen :-(
hab copy paste deinen Skript bei mir in der ccu eingefügt, und dan bot id chat id und message durch meine angaben ersetzt.
Wenn ich jedoch bei einem Rauchmelder in der betreffenden Gruppe eine Auslösung provoziere krieg ich keine Meldung auf mein handy.
wenn ich den erstellten link wie du beschrieben hast im Browserfenster einfüge und enter drücke kommt die Meldung
Hallo Philipp,
vielen Dank für die tolle Anleitung. Funktioniert super.
Kannst du mir vielleicht sagen, ob es möglich ist, ein Emoji, wie z.B. ein Warnsymbol über das Skript zusätzlich zum Text zu verschicken?
Ich bekomms einfach nicht hin.
Gruß
Michael
Hast du es Mal mit den Shortcodes probiert? Auf http://emojipedia.org/telegram/ findest du eine Übersicht. Einen roten Kreis würdest du z.b. mir :o: bekommen. Habe gerade keinen remotezugriff auf meine CCU, kann es also nicht ausprobieren.
Habs mit den Shortcodes schon versucht. Funktioniert leider nicht. Zeigt mir in der Nachricht dann auch den Shortcode 1:1 an, aber nicht das Emoji.
Und was passiert, wenn du die Zeichen als URL Code eingibst?
z.B.
: = %3A%0A
; = %3B%0A
usw.
Hi, hat es denn nun mit den Emoj irgendwie geklappt? Ich kann im Test-Scrip Fenster der CCU EMOJ in der Stringbeschreibung hineinpasten und es klappt. Aber wenn das Script abgespeichert wird, kommen nur „%xxxx“ und das wird genau so ausgegeben. Also wie kann man nun einen String definiren, der dann mit Telegram so incl. Emoj angezeigt wird?
string message = „??EMOJ?? der Probetext…“;
……
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);
Moinsens Philipp,
ich würde mich in die Diskussion auch nochmal einreihen und gerne wissen wollen, wie man emoji versenden kann, das bekomme ich irgenwie nicht hin.
Obwohl, ganz richtig ist das nicht, denn das versenden eines emoji habe ich schon hinbekommen. Dazu füge ich den entsprechenden UTF-8 Code des emoji (z. B. von einem Smilie -> %F0%9F%98%81) hinter „…&text=“ in meinem Versandscript ein:
….chat_id=XXXXX&parse_mode=Markdown&text= %F0%9F%98%81 „# TEXT DER NACHRICHT # „\““;
Da ich mir mehrere Meldungen per Telegram schicken lasse, möchte ich nun in Abhängigkeit der Nachricht (Bewegung erkannt, Batterie Leer, Servicemeldungen, …) auch unterschiedliche emoji´s senden. So wie ich das zur Zeit hin bekomme, wird immer nur das Smilie gesendet. Daher würde ich gerne den UTF-8 Code vom Smilie in eine Variable schreiben und die dann im Versandscript benutzen, so in dieser Art:
string emoji = „%F0%9F%98%81“;
….chat_id=XXXXX&parse_mode=Markdown&text= emoji „# TEXT DER NACHRICHT # „\““;
Das bekomme ich aber nicht hin. Es wird mir in Telegram statt das emoji nur der UTF-Text (%F0%9F%98%81) angezeigt.
Hast du eventuell hier einen Ansatz wie man das hinbekommen könnte?
Schönen Gruß
Frank
Hallo, danke für die super Anleitung – bei mir funktioniert alles soweit wie du es beschrieben hast – allerdings bekomme ich beim Programmtest (und auch sonst) auf der CCU keine Pushmitteilungen. Dein Script habe ich kopiert und einfügt, dabei meine API/ID eingefügt. Gehe ich auf der CCU auf „Script überprüfen“ kommt die Meldung: keine Fehler. Beim direkten Ausführen des Programms über die CCU kommt aber keine Nachricht über Telegram, wenn ich das Skript über „Skript testen“ einkopiere und starte, passiert gar nichts, so als wäre der OK Button wirkungslos.
Das Programm lautet: wenn Bewegungsmelder Eingang bei Bewegung erkannt auslösen auf Änderung dann Skript sofort.
Hast Du eine Idee was da nicht passen könnte?
LG Fabrice
Hallo zuammen, der Fehler stellt sich bei mir leider genauso dar. Habe es auch heute verucht einzurichten, gekoppelt an die Haustür zu Testzwecken (bei Änderung offen). Gruß, Markus
Hallo zuammen, der Fehler stellt sich bei mir leider genauso dar. Habe es auch heute verucht einzurichten, gekoppelt an die Haustür zu Testzwecken (bei Änderung offen). Gruß, Markus
Hallo Fabrice, bin leider noch nicht weiter. Werde das ganze Prozedere heute nochmal durchgehen. Da es bei vielen anderen funktioniert wird es ein individueller Fehler meinerseits sein.
Hallo Philipp,
kannst du dir erklären, warum diese Funktion erst einwandfrei funktioniert hat und plötzlich ausgefallen ist? Heißt ich habe es genau so wie beschrieben in meiner CCu2 angelegt und alles funktionierte und Push Nachrichten wurden versendet und plötzlich kam keine Nachricht mehr ohne das ich irgendetwas verändert habe. Habe nun alles überprüft und noch einmal neu gemacht . Alles stimmt, aber es kommen trotzdem keine Nachrichten mehr! Kann es eventuell damit zusammen hängen das meine CCU2 kein Internetlicht mehr anzeigt? Ich bin langsam echt am verzweifeln… :/ Lg, Steffi
Hi Steffi,
ja, wenn die CCU2 keine Verbindung zum Internet hat, funktioniert es natürlich nicht. Zieh einfach mal den Stecker, warte ein paar Sekunden und steck ihn wieder rein. Falls es dann immer noch nicht funktioniert, liegt es wohl irgendwo im Netzwerk (Stecker alle drin?).
Gruß
Philipp
Hat 1A funktioniert und ist einfach nur genial. Vielen Dank für die detaillierte Anleitung. Ohne diese hätte ich das nicht hinbekommen.
Hallo,
habe auch die Einstellung vorgenommen, das ich z.B. bei Fenster offen eine Push Nachricht via Telegram bekomme.
Wenn ich den link in einen Browser kopiere so wie er bei mir im Script steht, bekomme ich diese Nachricht. Ich benutze allerdings als CCU2 den Raspberry.
Hey Philipp,
danke für deine Anleitung.
Nachdem die Links für API Key und CHAT_ID nur sehr zögerlich funktioniert haben. Läuft die Geschichte jetzt wirklich rund.
Für alle die auch Probleme haben den API Key bzw. die CHAT_ID zu bekommen, nicht den Kopf in den Sand stecken. Ich habe es mehrfach versucht, ohne etwas zu ändern. Nach dem 6 – 7 Versuch hat es dann funktioniert.
Eine Frage habe ich dann aber doch noch. Wie kann ich in die zu verschickenden Nachrichten einen Zeilenumbruch einfügen? Gibt es dafür eine Möglichkeit?
Gruß
Hat sich erledigt.
Hin und wieder hilft es, wenn man sein Hirn mal einschaltet.
%0A erzeugt den Zeilenumbruch.
Hehe, ich wollte noch Antworten. Aber danke dass du die Lösung hier geteilt hast!
Hallo Philip, nun habe ich Telegramm instaliert und @BotFather gefunden. Soweit alles gut. Nur, wenn ich versuche eine Chat zu starten, dann heist es bei mir „Du darfst in diesem Kanal nichts schreiben.“
Ist der Dienst geschloßen oder was wäre sonnst die Ursache? Gibt es Alternativen?
Mit anderen kann ich Chatten.
Hi Viktor, der Dienst funktioniert funktioniert noch. Ich konnte dem BotFather gerade testweise schreiben. Öffne Mal diesen Link auf deinem Handy mit Telegram: https://telegram.me/BotFather und versuch dann nochmal, ihm zu schreiben.
Alternativ gäbe es z.b. noch Pushover. Da funktioniert die Einrichtung aber ganz anders und es kostet teilweise Geld. Darum habe ich für das Tutorial lieber Telegram verwendet.
Vielen Dank für die gute Anleitung ;)
Jetzt chattet mein Haus mit mir ;);) Das mit einer Gruppe würde mich auch interesieren.
Sehr schöne und nachvollziehbare Anleitung für diese doch recht kompliziert einzurichtende Funktion. Klasse! Danke!
Ich bin total begeistert. Danke für diese tolle Idee!!!
Hallo Philipp,
super Beschreibung klappt auf Anhieb! Ich habe den Bot noch mit in eine Gruppe aufgenommen und jetzt werden mehrere Personen gleichzeitig benachrichtigt!
Top!
Hallo Uwe,
wie hast Du das mit der gruppe realisiert? Bei mir kommen leider keine Nachrichten an, wenn ich den Bot in eine Gruppe stecke…
Klasse. Danke! Das ist eine echte Hilfe. Wenn du mehr solche Sachen hast, gern email.
LG F.
Hallo Philipp,
besten Dank !
Gut erklärt und es hat (fast) gleich funktioniert.
DANKE und bitte weiter so!
Freut mich :) Danke für das super Feedback!
Hi Philipp,
Das Rausfinden des API Keys und der CHAT ID war dank Deiner Anleitung kein Problem. Der Link funktioniert auch einwandfrei, wenn man Ihn im Browser eingibt. Das Skript löst leider nicht aus. Ich habe das Skript auf fehler prüfen lassen alles OK! Ich finde den Fehler einfach nicht. Gibt es noch eine andere Möglichkeit, woran es liegen könnte?
Hallo,
bei mir löst es auch nicht aus. Über die CCU2. Bei script Testen passiert nichts. Keine Reaktion! Vielleicht kannst du helfen Philipp?
Grüße
Hallo Philipp,
besten Dank, gut erklärt und es hat fast gleich funktioniert: Nun chattet mein Haus mit mir ;-)
Weiter so!
Grandios, es hat bei mir auf Anhieb funktioniert.
VIELEN Dank!
Ich würde gerne noch mal die Frage von PhllipG aufgreifen und sie erweitern.
Ich möchte gerne eine Nachricht, falls ich vergesse die Fenster nach dem Lüften in der kalten Jahreszeit wieder rechtzeitig zu schließen.
Ich kann zwar über WebUI als Skript die Nachricht um 10 min verzögert senden, aber wenn das Fenster wieder zu ist, diese Nachricht nicht „löschen“ / nicht auslösen lassen.
Hast Du da evtl ein Tip
Am besten noch mit Außentemperatur in Verbindung, dass es ab x Grad erst überhaupt meldet.
Vielen Dank
Wow, super Anleitung! Und was für tolle Möglichkeiten, das ist der Hammer! Bekomme die Nachrichten auch auf die AppleWatch und das macht das ganze noch komfortabler. Hab auch mal testweise eine URL eingegeben, Telegram wandelt die dann um in einen Hyperlink (geht bestimmt auch per Code). Damit kann man sich bspw. dann direkt zur Kamerasteuerung der IP Kamera navigieren und nachsehen, um was es sich bei einer gemeldeten Bewegung handelt.
Also super Anleitung, ganz tolle Seite!
Die Verwendung von system.exec() ist bekanntermaßen nicht sehr stabil und somit nicht empfehlenswert. Besser den Weg über den CUx-Daemon gehen.
Hallo Philipp,
danke für die Super-Anleitung.
Bis gestern hat es bei mir auch funktioniert. Seit heute – ich würde schwören, ich habe nichts geändert – kommen vom Bot keine Nachrichten mehr an. Ich vermute, dass es nicht an Telegram liegt, da ich die Nachricht bekomme, wenn ich den Link einfach im Browser aufrufe. Hast du eine Idee?
Gruß
Frank
Hi, das klingt tatsächlich sehr nach der CCU. Hast du sie einfach Mal neu gestartet? Werden denn andere scripte noch ausgeführt? Wenn du viele scripte im Einsatz hast oder viel rumprobiert hast, kann es sein, dass du mehr als 200 Variablen zugewiesen hast. Damit kommt die CCU nicht klar :(
OK, tatsächlich…ich musste nur die CCU neustarten, dann ging es wieder. Hatte sich wohl verschluckt.
Fantastische Anleitung, hat auf Anhieb geklappt. Ich bin ganz aus dem Häuschen dass mein Haus mir nun gratis Nachrichten schickt. Vielen Dank!
Hallo Philipp
Das Script habe ich direkt von dieser Seite in das Programm kopiert und der Script Editor meldet fröhlich „keine Fehler“.
Das Programm läuft auch durch, nur die Meldung geht nicht raus.
Putzige Sache, das.
Moin Philipp
Ich hätte da gerne mal ein Problem.
Ich kann mit der von mir erstellten URL über einen Browser Benachrichtigungen auf mein Handy schicken. Das kodieren der Umlaute hat auch geklappt.
Allerdings bekomme ich das Script auf der ccu2 nicht an den Start.
Müssen an der Zentrale noch Einstellungen vorgenommen werden?
Oder muss ich den Router besonders konfigurieren?
Besten Dank im Voraus………
Hi, wenn es über den Browser funktioniert, hast du dir größte Schwierigkeit überwunden. Ich würde sagen die fehlt irgendwo eine Klammer oder so was. Schau dir mein Beispiel nochmal genau an. Außerdem gibt es in dem Script Editor eine Fehlerüberprüfung. Erst wenn diese „keine Fehler“ meldet, hast du eine Chance ;)
Sorry, Hälfte vergessen: an der CCU2 kannst du diesbezüglich nichts konfigurieren. Am Router auch nicht. Es bleibt also nur ein Fehler im Script.
Hallo zusammen,
nach einigem hin und her kann ich nun über den Browser Telegramm an mein Handy verschicken. Aber ich bekomme es trotz des guten Tutoriums einfach nicht hin, diese in meine CCU2 einzubauen.
Default Script mit eigener Chat ID und API key. Ich nutze keine Umlaute und habe die URL schon mehrfach im Browser probiert und sie geht problemlos.
Danke schon mal vorab für etwaige Tipps
Hallo,
kann man auch in eine Gruppe chatten, worin der _bot auch Mitglied ist? Wenn ja, wie bekommt man die ChatID der Gruppe raus?
Besten Gruß
Das würde mich auch interessieren!
OK, war einfach herauszufinden. Dasselbe vorgehen wie beim Herausfinden der Chat-ID – halt nur zuvor etwas in die Gruppe posten. Die Gruppenchat-ID hat ein „-“ vorangestellt.
Hallo Philipp,
vielen Dank für die Anleitung. Nach einigem hin und her klappte es dann. ich bin auch an {„ok“:true,“result“:[]} ersteinmal sehr lange hängengeblieben. Ich habe es dann gefunden und schreibe es hier mal nieder um etwas Licht zu schaffen für Leute wie mich, die das erste mal mit einem bot arbeiten:
Zwischen Schritt 8 und 9 muss noch etwas erfolgen. Unter 8 steht zwar, dass man dem bot eine Nachricht schreiben soll. Ich dachte bislang, dass ich in dem normalen Fenster, wo ich mit botfather schreibe eine Nachricht schreiben muss. Was fehlt ist also der Hinweis, dass ich zunächst in den von mir erstellten bot gelangen muss. Da ich eine Nacht darüber geschlafen habe meldete ich mich heute früh wieder unter web.telegam.org an. Danach wechselte ich in den Chat mit botfather und habe nochmals /mybots eingegeben. Dann kommt Choose a bot from the list below. Die Knöpfe die da stehen sind erstmal egal. Dann habe ich in die Kommandozeile @xxxxx_bot (wobei xxx für meinen bot steht, der oberhalb der erwähnten Knöpfe steht) und Enter gedrückt. Dadurch ändert sich die Farbe des eben eingegeben und wird unterstrichen. UND JETZT auf diese Zeile drücken (also @xxxxx_bot um beim Beispiel zu bleiben, was wie gesagt unterstrichen und andersfarbig ist). Und siehe da: es öffnet sich ein Chat mit dem bot. UND HIER jetzt irgendwas reinschreiben…und weiter mit Punkt 9 aus der Liste. Ich hoffe, diese Schritt für Schritt Zwischenanleitung hilft den anderen etwas.
Beste Grüße, Alex
Vielen Dank für diese tolle Anleitung! Funktioniert super.
Für alle, bei denen anstelle der Chat ID nur {„ok“:true,“result“:[]} erscheint ein Tip:
Telegram unterstützt nur ein aktives Browserfenster. Wenn ihr also zwei Telegram Fenster offen habt (z.B. weil ihr den API Key aus dem einen Fenster in das andere kopiert habt), klappt es nicht. So war es zumindest bei mir.
Also nur ein Browserfenster gleichzeitig öffnen, dann sollte es klappen.
Cool, danke für den Hinweis. Mir ist es nie gelungen den Fehler nachzustellen, aber ein zweites Fenster hatte ich wahrscheinlich nie offen.
Danke!
Hi Zusammen,
gute Sache hier. Ich hätte das aber lieber gerne via E-Mail über einen SMTP Server. Sprich als Push-Email.
Geht das auch irgendwie? Falls ja, was genau muss ich hier tun, damit ich für gewisse Ereignisse E-Mails von der CCU geschickt bekomme. Dachte, dass geht von „Haus aus“ bei der CCU. Ist wohl aber nicht so.
Hi, es gibt ein Addon für die CCU, welches das ermöglicht. Ist aber nicht vom Hersteller. Hier der Link: https://www.homematic-inside.de/software/addons/item/email?category_id=17
Ich selber habe es noch nie verwendet, aber du wirst einen SMTP Server zum versenden angeben müssen. Die Tatsache, ob du es als Push-Email empfängst ist abhängig von deinem E-Mail Provider. Daher habe ich die echt push nachricht bevorzugt.
Gruß, Philipp
Ok – danke für die Antwort. Mache mir halt Gedanken wegen Sicherheit. Da sehe ich die SMTP Variante als sicherer an, als die Telegram Variante.
Von daher versuche ich es mit SMTP.
Wobei das mit den Skripten und so schon ne komplizierte Sache ist für einen HM Einsteiger.
Hallo Philipp,
schade, bekomme beim Versuch die Chat_ID zu erhalten als Antwort:
{„ok“:true,“result“:[]}
Habe jetzt schon zig Versuche gestartet.. Unterhaltung über das Smartphone und dem PC mit dem botfather?!
Woran kanns liegen?
Vielen Dank
Lothar
Hallo Lothar, du musst am PC dem bot eine Nachricht schicken und danach im gleichen (!) Browsertag die chatid abrufen. Bei mir funktioniert das ohne Probleme.
Hallo Phillip, danke für die schnelle Antwort!
Habe es genau so gemacht. Auch noch Google Chrome installiert uns dort alles wiederholt. Immer mit der gleichen Rückmeldung ohne Chat_Id.
Gibt es noch einen Tipp?
Nachtrag: arbeite mit Firefox, aber Chrome hat die gleiche Rückantwort geliefert…
Bei mir genauso bekommen nur:
{„ok“:true,“result“:[]}
Hi,
vielen Dank für die tolle Anleitung. Habe nach einer Möglichkeit gesucht kostenfrei Pushnachrichten von der CCU zu bekommen ohne vielen Daten preis geben zu müssen und das ganze soll natürlich sicher und verschlüsselt sein :) Quasi die eierlegendewollmilchsau.
Das ist sie. Danke
Hallo!
Ich versuche gerade mit der Anleitung die Chat id zu bekommen. Meinen Bot habe ich erstellt. Dann habe ich dem Bot eine Nachricht geschrieben.
Mit „https://api.telegram.org/bot/getUpdates“ (mit meinem Api Key) erhalte ich immer nur „{„ok“:false,“error_code“:401,“description“:“Unauthorized“}“
Was mache ich falsch?
Hi Phillip,
ich bekomme auf diesem Wege auch keine ChatID. Ich bekomme immerhin nur ein
{„ok“:true,“result“:[]}
Nimmst du einen neuen BrowserReiter – oder den gleichen? Welchen Browser hast Du verwendet?
Gruss,
Gal
Hi,
ich nehme den gleichen Tab/Fenster. Ganz wichtig ist, dass du dem Bot im Browser irgendwas schreibst, bevor du die andere URL reinkopierst.
Ich verwende Chrome in der Version 53.0.2785.143. Habe es gerade nochmal probiert und es hat sofort funktioniert. Natürlich erst, nachdem ich dem Bot was geschrieben habe, dass ich das in der Vergangenheit schon mal getan habe hat nicht gereicht. Es muss in dieser Session passiert sein.
Gruß
Philipp
Hallo Gal,
hast Du es denn mitlerweile hinbekommen?
Gruß
Lothar
Hallo, bist Du zu einer Lösung gekommen?
Gruß
Lothar
Das kommt wenn der API Key falsch ist (Unauthorized). Achte ganz penibel darauf, dass die Struktur dem folgenden Beispiel entspricht:
https://api.telegram.org/bot557138945:AAfdjdfuTDkQ9cirHCUQMNF/getUpdates
Das Wort „bot“ muss manuell eingegeben werden, dann der API Key (mit dem Doppelpunkt) und dann weiter mit „/sendMess…“. Es dürfen keine Leerzeichen enthalten sein! Am besten bastelt man sich den Link mit Notepad zusammen.
Viel Erfolg!
es kommt immer nur das zurück
{„ok“:true,“result“:[]}
Hallo Ralf,
schließe alle Browserfenster und -tabs und gehe danach die Schritte nochmal sauber durch. Wichtig ist dabei, dass du alles im gleichen Tab und Browserfenster machst. Dann sollte es funktionieren.
Gruß, Philipp
Nein ,es kommt nichts zurück auch nicht am anderen PC
Muss noch was installiert oder aktiviert sein?
Hi,
danke für die super Anleitung.
Die Push Nachrichten werden perfekt an das Handy weitergeleitet und heute Abend werde ich die Scripts in meine CCU2 einbinden.
Eine Frage hätte ich noch, die du mir sicher schnell beantworten kannst.
Gibt es eine Möglichkeit, dass ich einen Wert der CCU2 auslesen kann und dieser als übergeben wird ??
z.B. wenn die Außentemperatur 19 Grad beträgt, dass dieser Wert als Nachricht mit übermittelt wird =??
Danke
MFG Gerber
Hi, klar geht das. Du änderst das Script wie folgt ab:
string stderr;
string stdout;
var objTemp = dom.GetObject(„BidCos-RF.LEQ001234:1.TEMPERATURE“);
var aussentemperatur = objTemp.State();
string temp = aussentemperatur.ToString(1);
string messageText=“Es sind “ # temp # “ grad“;
string url=“\“https://api.telegram.org/bot111111115:AxxxxxxxxxxxxxxxxxxxxxA/sendMessage?chat_id=911143&text=“ # messageText #“\““;
system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);
In Zeile 3 musst du die Seriennummer von deinem Außentemperatursensor ersetzen, das „:1″ bleibt.
In Zeile 6 passt du den Nachrichtentext an. Die Raute verkettet zwei Zeichenketten (=texte) miteinander. In der Variable temp steht die Außentemperatur mit einer Nachkommastelle (mehr liefert der Sensor nicht).
In Zeile 7 ersetzt du den Nachrichtentext in der URL durch die Variable MessageText (das hier: text=“ # messageText #“\““;). Das habe ich gemacht, damit das ganze etwas übersichtlicher ist.
Am Ende unbedingt die Fehlerprüfung starten. falls sie fehlschlägt hast du vielleicht ein Anführungszeichen, eine Raute oder ein Semikolon vergessen. Da es bereits funktioniert hat, solltest du mit den kleinen Modifikationen hinkommen.
Ich habe das Script gerade genau so bei mir getestet. Es hat funktioniert.
Viel Erfolg!
Wow, vielen vielen Dank…
Werde ich mich doch heute Abend gleich mal an die Arbeit machen ;-).
Respekt für alles.
MFG Gerber Philipp
Hi Philipp,
super Anleitung…..Vielen Dank.
Genau was ich gesucht habe… :-)
Klappt wunderbar
Grüße
Hagi
Grandios, es hat bei mir auf Anhieb funktioniert.
VIELEN Dank!
Ich würde gerne noch mal die Frage von PhllipG aufgreifen und sie erweitern.
Ich möchte gerne eine Nachricht, falls ich vergesse die Fenster nach dem Lüften in der kalten Jahreszeit wieder rechtzeitig zu schließen.
Ich kann zwar über WebUI als Skript die Nachricht um 10 min verzögert senden, aber wenn das Fenster wieder zu ist, diese Nachricht nicht „löschen“ / nicht auslösen lassen.
Hast Du da evtl ein Tip
Am besten noch mit Außentemperatur in Verbindung, dass es ab x Grad erst überhaupt meldet.
Hallo,
habe versucht das ganze um zu schreiben, so das ich die
Raumtemperatur vom Thermostat bekomme.
Leider ohne erfolg. Wollte das die CCU mir alle 2 Stunden
die Aktuelle Raumtemperatur schickt. Hier das geänderte Skript:
string stderr;
string stdout;
var objTemp = dom.GetObject(„BidCos-RF.MEQ1882420:1.TEMPERATURSENSOR“);
var innentemperatur = objTemp.State();
string temp = innentemperatur.ToString(1);
string messageText=“Es sind “ # temp # “ grad“;
string url=“\“https://api.telegram.org/botxxxxxxxxxx/sendMessage?chat_id=xxxxxxxxx&text=“ # messageText #“\““;
system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);
und hier der ausgegebene Fehler:
Error 1 at row 3 col 30 near ^âBidCos-RF.MEQ1882420:1.TEMPERATURSENSORâ);
var innentemperatur = objTemp.St
Parse following code failed:
string stderr;
string stdout;
var objTemp = dom.GetObject(âBidCos-RF.MEQ1882420:1.TEMPERATURSENSORâ);
var innentemperatur = objTemp.State();
string temp = innentemperatur.ToString(1);
string messageText=âEs sind â # temp # â gradâ;
string url=â\âhttps://api.telegram.org/botxxxxxxx/sendMessage?chat_id=xxxxxxxx&text=â # messageText #â\ââ;
system.Exec(âwget âno-check-certificate -q -O â â#url, &stdout, &stderr);
Was hab ich falsch gemacht??
Danke schonmal – Markus
Hallo Markus,
du hast den falschen Kanal ausgewählt. Für einen Heizkörperthermostat musst du
var objTemp = dom.GetObject(„BidCos-RF.LEQ0108532:4.ACTUAL_TEMPERATURE“);
und für ein Wandthermostat
var objTemp = dom.GetObject(„BidCos-RF.LEQ0109552:2.ACTUAL_TEMPERATURE“);
verwenden. Du hast bei dir den Gerätenamen (Temperatursensor) verwendet. Das geht lieder nicht. Die Geräteauswahl erfolgt über die Seriennummer. Dann kommt gefolgt von einem Doppelpunkt die Kanalnummer und dann gefolgt von einem Punkt der entsprechende Wert. Im Falle der Heizkörper oder Wandthermostate ist der Kanal 4 oder 2 und die aktuelle Temperatur ist jeweils ACTUAL_TEMPERATURE.
Damit sollte das klappen. Ich wollte das gerade ausprobieren aber meine CCU2 stürzt gerade permanent ab (wegen Problemen mit dem wired Modul, nicht wegen push nachrichten) :(
Viel Erfolg!
Super Anleitung. Funktioniert Super. Danke und großes Lob.
Freut mich! Danke für das Feedback!
Moinsen,
ich bekomme bei dem Schritt mit dem Kopieren meines API-Keys immer nur die Antwort: „{„ok“:true,“result“:[]}“, das ist alles… Was mache ich falsch?
Bei mir das gleiche Problem ! Hab es sowohl an einem Mac (Safari), als auch an einem PC (Internet Explorer) ausprobiert. Vielleicht ist der Bot im Urlaub ? Spaß beiseite: schade, dass es nicht klappt, hat jmd. eine Lösung ?
Ich habe es mit Pushover realisiert… ;-)
Hallo Nico,
hört sich interessant an, was hast Du denn gebastelt?
Den Fehler habe ich auch gemacht. Du musst auf deinem Smartphone eine Konversation mit deinem erstellten Bot starten und einfach irgendetwas schreiben. Der Bot wird mit dem Namen den du ihm gegeben hast unter Chats angezeigt. Ist etwas missverständlich beschrieben.
Hallo Philipp! Mit deiner Anleitung habe sogar ich es geschafft! Und das will was heissen!
Für mich ist das der bisher einfachste Weg zur kostenfreien Weiterleitung von Meldungen der CCU2.
Vielen Dank!
Stefan
super anleitung!!!!!!
Hallo Philipp,
die URL funktioniert einwandfrei, aber das Script funktioniert bei mir nicht. Es wird partout keine Meldung ausgegeben wenn die Tür geöffnet wird. Woran kann das liegen?
Viele Grüße,
Andreas
Hi,
es gibt Probleme, wenn der Text Umlaute enthält. Ich gehe mal davon aus, dass du das Wort „Tür“ in der Nachricht verwendet hast.
Ich habe gerade einen Nachtrag im Artikel hinzugefügt. Dort beschreibe ich was genau zu tun ist. Ich hoffe, das löst dein Problem. Wenn nicht, nochmal melden!
Gruß
Philipp
Hallo, habe gerade erfolgreich Nachrichten mit der CCU versenden können, bin aber auf eine Falle gestoßen: Der Nachrichtentext darf keine umlaute enthalten, diese müssen entweder vermieden werden, oder speziell kodiert werden.
Hallo Henning,
vielen Dank für dein Feedback!! Interessanterweise hat ein Freund mir das auch schon berichtet, es ließ sich aber dann nicht mehr reproduzieren. Habe es gerade nochmal ausprobiert und bin auf das selbe Problem gestoßen. Ich habe den Artikel um einen Nachtrag ergänzt, der auch beschreibt, wie die Umlaute genau kodiert werden müssen.
Viele Grüße
Philipp
Vielen Dank, hat super funktioniert!
Sehr gut geschrieben!
Freut mich! Vielen Dank :)
Hallo Philipp, funktioniert das auch mit der CCU1 ? Im Browser klappt alles. Vielen Dank für die Anleitung.
Hi, ich muss leider zugeben, dass ich noch nie mit der CCU1 gearbeitet habe. Aber grundsätzlich sollte es funktionieren. Du rufst mit dem script einfach das Programm wget auf (welches eines DER Linux standard tools ist). Wenn es nicht zum Umfang der CCU1 gehört, kann auch nichts kaputt gehen, es würde einfach nicht funktionieren ;)
Hi,
danke erstmal für die Anleitung hat soweit auch gut geklappt. Eine Frage hätte ich dazu dann aber doch noch. Kann man in der App von mehreren Benutzern aus drauf zugreifen, oder muss ich für jeden Benutzer einen eigenen Bot anlegen?
Wenn zB ich und meine Frau eine Beachrichtigung bekommen sollen.
Hallo Uwe, da jeder Benutzer, also Du und deine Frau eine eigene Chat-ID haben, geht es leider nicht. Du kannst aber ganz einfach die gleichen Schritte auch für das Handy deiner Frau machen und fügst dann im Skript einfach 2 Nachrichten ein. Eine für Dein Handy und eine 2 Nachricht mit dem Bot und der Chat-ID Deiner Frau.
Hi Philip,
eure Tutorials sind wirklich super und leicht vferständlich. Leiuder habe ich immer wieder Probleme mit den Skripten :-( Was genau beudetet es , wenn du schreibst „4.Als Script wird folgendes eingegeben, natürlich wieder , und ersetzen“ Das mit der ANchricht verstehe ich ja noch, aber was soll ich bei API_KEY und CHAT_ID einsetzen?
Weiterhin würde mir ein Tutorial zur Einbindung eine IP Cam helfen. Bin bisher in den Foren nicht fündig geworden…zumindest nicht was MIR hilft :-( Habt ihr sowas parat?
Lieben gruß und frohe Ostern!
Stephan
Hallo Stephan,
freut mich, dass Dir unsere Tutorials gefallen. Scheinbar war es doch nicht verständlich genug ;)
Den API_KEY generierst du in den Schritten 1 bis 7 im Kapitel „Einrichten des Telegram Bots“. Die Schritte 8 und 9 Helfen bei der Ermittlung der CHAT_ID. Diese beiden Werte sind bei jedem Benutzer anders. Mit dem API_KEY identifizierst du dich gegenüber den Telegram Servern und weist deine Berechtigung nach. Ganz wichtig ist, dass Schritt 10 funktioniert! Wenn du keine Nachricht beim Aufruf der Webseite bekommst, brauchst du die CCU2 nicht anzufassen.
Zu dem Script: Du legst ein neues Zentralenprogramm an. Als Auslöser (1. Punkt) sagst du zum Bespiel „Wenn Haustür geöffnet“. Im zweiten Schritt, könntest du ein Gerät Wählen (z.B. Licht) oder du wählst „Script“ aus der Liste. Anschließend erscheint rechts neben dem Auswahlliste ein Link mit dem Wort „Script“. Diesen Link klickst du an, darauf hin öffnet sich ein neues Fenster. In den oberen Teil kopierst du das Script aus meinem Tutorial.
Zu der Kamera: Was genau willst du machen? Eine Kamera in die CCU2 direkt einzubinden macht wenig Sinn, da die CCU keine brauchbare Oberfläche hat. Wenn du auf erkannte Bewegungen der Kamera mit der CCU reagieren willst, ist das sehr aufwändig. Wenn es dir zum Beispiel um ein Tablet an der Wand geht, welches die Zugriff auf Homematic bietet, kann ich dir entsprechende Apps empfehlen. Es gibt Apps, die zeigen dir dein Homematic und unabhängig davon lässt sich das Bild einer Kamera einbauen. Ich wollte mir in nächster Zeit, genau für den Wand-Tablet Fall die Android App „HomeStatus Display“ anschauen. Die macht einen guten Eindruck und unterstützt auch IP Kameras. Vielleicht kommt auch bald ein Artikel dazu ;)
Ich hoffe, ich konnte helfen!
Viele Grüße
Philipp
Hallo Philipp,
ich habe einen HM Klingelsignalsensor, und dank deiner Hilfe funktioniert dieser mit der CCU2 über Telegram schon seit Wochen ganz einwandfrei! Danke!
Jedoch soll das Klingelsignal, falls man gerade außer Haus oder im Garten ist, an mehrere Endgeräte geschickt werden.
Als erstes holte ich den Bot in eine Gruppe, allerdings regt er sich dort nach Auslösen des Signals nicht.
Über das Skript oder ein zweites Skript (mit eigenem Tokken und ChatID) konnte ich das bis jetzt auch nicht realisieren.
Kannst du mir da helfen?
Gruß Stefan
Hallo
wenn ich nach deiner Anleitung vorgehe
bekomme ich keine Pushnachricht auf mein Handy
was mache ich falsch
Hast du mal versucht den link von der telegram API in einem Browser zu öffnen? Kommt dann die Push Nachricht? Wenn nicht, ist der Link nicht richtig zusammengesetzt. Andernfalls liegt der Fehler auf CCU Seite.