ich möchte heute mein Modul für den Telegram Messenger vorstellen. Wer Telegram nicht kennt, es ist im Prinzip vergleichbar mit WhatsApp. Allerdings verschlüsselt Telegram schon sehr lange und es gibt nicht nur Mobile-Clients sondern auch welche für Desktop. Zudem bietet Telegram die Möglichkeit „Bots“ anzulegen, und um genau die geht es bei meinem Modul.
Was kann das Modul?
Über einen Telegram-Bot kann man mit dem Modul Nachrichten an seine Clients verschicken. Dies können sowohl Text- als auch Bild-Nachrichten sein. Quasi eine weitere Form der „Push Notification“.
Aber auch der umgekehrte Weg ist möglich: ein Client sendet einen Text an den IPS-Server. Dieser kann den Text auswerten und darauf reagieren (in der Config abschaltbar). Ich nutze das z.B. um mir über den Befehl „wetter“ von meinem IPS einen „Wetterbericht“ auf mein Mobile schicken zu lassen oder über „cam“ ein Foto der Überwachungskamera.
Eine genaue Beschreibung, auch der Einrichtung, findet Ihr im im Readme
Der Fehler ist in periodischen Abständen im Meldungsfenster.
Auch eingehende Nachrichten werden nicht verarbeitet. Ich bekomme aber im Meldungsfenster das Array welches Empfangen wurde angezeigt.
Super, hab letzte Woche noch nach einer Lösung gesucht um Fotos per Messenger zu versenden. Da kommt dein Modul gerade zum richtigen Zeitpunkt. Meine Wunschvorstellung wäre eigentlich iMessage, aber da gibts ja leider keine API. Werde ich die Tage mal ausgiebig testen
das stimmt. Das ist noch eine Debug-Ausgabe der zugrundeliegenden PHP-Klasse. Wird ausgegeben, wenn er Nachrichten abruft aber keine neuen vorliegen. Das werde ich noch mal rausnehmen, kannst Du aber ignorieren.
Hast Du in der Konfig ein Script definiert zum verarbeiten der eingehenden Nachrichten? Ist das Skript so aufgebaut wie in der Readme bei Bitbucket beschrieben?
die Antwort verstehe ich nicht.
Es kommt die von mir dargestellte Fehlermeldung mit „undefined Index…“ und, wenn er etwas empfängt eine Ausgabe des Array.
Aber das verarbeiten eingehender Nachrichten funktioniert nicht. Ich habe mal Dein Beispiel genommen, und sende eine Temperatur raus, oder einen Fehler. Das Script wird aber gar nicht aufgerufen.
ich ich korrigiere mich mal selbst, Ich hatte wohl eine falsche Nummer bei den Empfängern eingetragen, dadurch kam es zu einem Fehler, jetzt eingehend und ausgehende Nachrichten.
Der Fehler im Log mit"undefined index…" bleibt aber bestehen.
Kann man die bots von Telegram suchen, so dass jeder meinen Bot finden könnte?
Das ist (noch) eine Debug-Ausgabe, wenn keine neuen Nachrichten vorliegen. Bitte erstmal einfach ignorieren!
Ja. Deshalb auch die Notwendigkeit die eigenen Clients in der Config einzutragen. Es werden auch nur Nachrichten von diesen Absendern verarbeitet.
Trotzdem: Sicherheitsrelevante Funktionen würde ich darüber nicht öffentlich zugänglich machen! Es ist schliesslich ein externer Dienst mit im Spiel, von dem man nicht weiß wer sich da wie Zugriff verschaffen kann.
vielen Dank für die Rückmeldung.
Klar ist, dass man über so eine Schnittstelle keine wesentlichen Funktionen öffnet.
Und schon gar nicht gibt man eine Hilfeseite aus, welche Funktionen möglich sind.
bin gerade zu dämlich ein JPG zu verschicken. Hat jemand mal ein Beispiel wie die Pfadangabe aussehen muss wenn das Bild im Medien Ordner von IPS liegt?
PHP-Error-Warning: Missing argument 4 for Telegram_SendImage(), called in C:\IP-Symcon\scripts\36721.ips.php on line 4 and defined
Error in Script C:\IP-Symcon\scripts__generated.inc.php on Line 717
Warning: Missing argument 4 for Telegram_SendImage(), called in C:\IP-Symcon\scripts\36721.ips.php on line 4 and defined in C:\IP-Symcon\scripts__generated.inc.php on line 717
Notice: Undefined variable: userid in C:\IP-Symcon\scripts__generated.inc.php on line 721
------couldn’t open file „XXXXXX“------
ich möchte mich bei Dir für die großartige Leistung bedanken, den Telegram - Messenger als PHP-Modul anzubieten.:):)
Ich wurschtle schon seit Monaten (vielleicht auch Jahren) mit der WhatsAPI rum. Grundsätzlich hat das Ding ja funktioniert zumindest das Senden. Das Empfangen von Nachrichten habe ich nie hinbekommen. Zu guter letzt hat WhatsApp meine Festnetznummer, welche ich verwendete, gesperrt. Ich habe dann noch eine Menge anderer Festnetznummern probiert, die auch erst mal gingen, aber spätestens nach der ersten Message wurden auch die gesperrt. Eine Mail an den Support brachte nur die lapidare Antwort, dass sie mich verstehen können, aber eine Lösung habe ich bis jetzt nicht Nun habe ich mir gerade von V*ne eine kostenlose SIM bestellt als Christian den Hinweis gab, dass Du ein Modul für Telegram entwickelt hast.
Ich habe mich gleich ran gesetzt um dieses in meine Notifications zu integrieren. Und was soll ich sagen: Es funktioniert einfach super. Und durch die bots braucht man auch keine extra Telefonnummern.
Du hast meinen tiefsten Respekt. Wenn ich noch einen Wunsch äußern darf: Es wäre schön auch Videos hochladen zu können.
Das sollte theoretisch möglich sein, dieTelegram API bietet auch Funktionen um Videos, Audio und Dokumente zu senden. Allerdings darf eine über den Bot verschickte Datei max. 50 MB groß sein, das kann bei Videos ja ggf. eng werden. Zudem wird der Upload zum Telegram Server, je nach Geschwindigkeit der Internetverbindung, dann auch ganz schön lange dauern - und das PHP-Skript dann ggf. die Max_execution_time erreichen?! Oder gilt die nicht für Module?
Ich möchte Videos von meinen Überwachungskameras hochladen. Dazu erstelle ich Schnappschüsse im Abstand von einer Sekende, welche ich dann zu einem Video zusammenfüge. Das ist besser als nur ein oder zwei Bilder von der Kamera zu sehen. So hat man gleich mal 10-20 Sekunden im Timelaps. Ein gif würde es auch tun, wenn das mit Telegramm hochzuladen geht, In WhatsApp ging das nicht, ist aber geplant, wenn ich das richtig im Hinterkopf habe.
Gif ist die Idee, das teste ich mal…
Also, man kann gifs hochladen. Das funktioniert sogar mit Deinem Modul. Allerdings sieht man dann die Animation nicht.
Wenn ich ein Gif über den Desktop-Client sende funktioniert es.
Laut API werden aktuell nur MP4-Videos von der SendVideo-Funktion unterstützt.
GIF Support habe ich eben eingebaut. Ein testweise gesendetes animiertes GIF wird bei mir auf dem Telefon und im Web Client nur als statisches Bild dargestellt.
Ich komme leider zu dem selben Ergebnis. Die gifs werden nicht animiert dargestellt. :mad:
Den mime Typ hatte ich auch schon in Deinem Quelltext, ohne Erfolg, ausgetauscht.
Irgendwo muss da noch was fehlen. Denn wenn ich dieselbe Datei über den Telegram-Desktop-Client versende wird diese animiert. Vielleicht fällt Dir noch was ein.
PS: Im neuen Code hast Du einen kleinen Schreibfehler
if ($mime == "image/jpeg" or[i][b] [u]$mine [/u][/b][/i]== "image/jpg")