[Modul] TelegramBot

Hallo,

ich habe meine Docker Installation vorhin von 5.5 auf 6.0 angehoben und es funktioniert soweit auch alles… was ich bis dato testen konnte…
Ich habe dann mal das TelegramBot Modul aus dem Store installiert, welches auch beim Test im Modul, und im Ablaufplan funktioniert, allerdings in der Verwaltungsconsole als „Diese Instanz ist fehlerhaft“ markiert wird…

Im Modul selber bekomme ich die Meldung „Symcon Connect ist nicht aktiv“ was richtig ist, weil das nutze ich nicht…

Wieso wird mir die Instanz als fehlerhaft angezeigt?

Danke Gruss Marco

Weil der Connect-Dienst für dieses Modul unabdinglich ist. Telegram sendet an IP-Symcon Nachrichten und wir empfangen diesen über den Connect-Dienst welcher uns einen SSL Verschlüsselten Endpunkt anbietet.

paresy

hmm und wieso funktioniert dieses auch ohne dem Connect Dienst?
Weil ich nur sende?

Es funktioniert nur unvollständig. D.h. du kannst zwar Nachrichten senden, aber der Bot kann auf keine Nachrichten von dir reagieren. :slight_smile:

paresy

ok verstanden, Danke für die Aufklärung innerhalb von doch nur Minuten :slight_smile:

1 „Gefällt mir“

Hallo Paresy,

ich finde keinerlei Dokumentation wie diese Instanz zum Senden von Texten oder Bildern aus einem Script genutzt werden kann, nur die neuen Ablaufpläne.

Auch wundert es mich warum die anderen Module seit IPS 4 zum Empfangen auch ohne connect Dienst Funktionieren, was bei euch ja „unabdingbar“ ist!?

Ein Schelm wer hier böses denkt…

Schau mal hier rein. Alles mit TB_* interessiert dich genauer :slight_smile:

Hi Paul. Die Antwort habe ich zwei Beiträge weiter oben erklärt. :wink: Sofern du nur senden willst, brauchst du keinen Connect. Wenn du empfangen willst brauchst du einen HTTPS Endpoint mit gültigem Zertifikat. Das ist mit unserem Connect Dienst super easy. Ohne ist dies echt Arbeit und du kannst dir das Modul problemlos darauf umbauen, sofern du willst. Da dies aber für einen normalen User kaum machbar ist, ist dies für uns in diesem Modul nicht von Interesse und deshalb gibt es das Symcon Connect Requirement :wink:

paresy

Hallo Paresy,

vielen Dank für die Prompte Antwort!

Hab einiges versucht aber auf TB_ wäre ich selbst nie gekommen…

Wie gesagt ich finde es schade das nur die anderen Module es ohne den HTTPS Endpunkt schaffen Nachrichten vom bot zu Empfangen…

Soweit ich weiß pollen die anderen Modul in einem zyklischen Intervall. Unser Modul funktioniert in Realtime. Sofern du einen Weg ohne HTTPS Endpunkt findest → Bau gerne das Modul um und schick uns einen PR :slight_smile:

paresy

Sobald ein „.“ im Textstring vorkommt, bekomme ich ein:

Senden der Nachricht fehlgeschlagen

?

Hallo,

Voher die Meldung mittels nachfolgenden Code maskieren lassen:

$message_neu = addcslashes($message_alt, ‚!:.#-()<>‘);

Grüße Björn

Es scheint an dieser Erweiterung von @Attain zu liegen: allow sending of html or markdown formatted messages (#2) · symcon/TelegramBot@3c6fd15 · GitHub

@Attain: Hast du eine Idee, wie wir das Problem ggf. gelöst bekommen?

paresy

Ich schau es mir mal an.

Funktioniert, Danke!

TB_SendMessageEx($ID_Telegram_Bot, addcslashes($Text_Telegram, '‚!:.#-()[]{}<>'), 'Simon');

Und wenn es sich das Modul in Zukunft darum kümmert noch besser :slight_smile:

Ja, es hat mit der Änderung zu tun. Damit war der Standard Parse Mode „Markdown“.
Hier werden die Sonderzeichen zum formatieren des Textes benutzt.

grafik

Ich habe einen PR gestellt, damit der Standard Mode reiner Text ist und keine Sonderzeichen maskiert werden müssen.

Um Texte zu formatieren, können weiterhin HTML Tags genutzt werden.
Beispiel:

$Message = "Normaler Text <b>Fetter Text</b>";
TB_SendMessageEx(12345,$Message,'Ich');

Moin!

Erstens eine Bitte: den PullRequest von Attain bitte dringend mergen! Das nervt hier grad mit dem ParseMode :wink:

Zweitens eine Frage: ich würde in einer Action gerne nur dem Telegram-Recipient antworten, der die Action mit einem Befehl getriggert hat. Gibt es eine Variable, die ich für TB_SendMessageEx nutzen kann? Also sowas wie „[TB_Sender“]" ?

Hallo zusammen,

ich beabsichtige mir eine Nachricht (einen Snapshot der Überwachungskamera) via Telegram senden zu lassen, sobald die Türklingel aktiviert wird.

Den Bot habe ich gem. Anleitung (TelegramBot/TelegramBot at master · symcon/TelegramBot · GitHub) eingerichtet.
Ich trage die Bot API ein, den dazugehörigen Bot Benutzernahmen, trage dann in der Benutzerzeile Benutzer und ID ein, die eine Nachricht erhalten sollen.
Es wird mir angezeigt, dass die Web-Hook Registrierung erfolgreich war.
Dann teste ich, indem ich ganz unten eine Testnachricht erstelle und auf „senden“ drücke.

Fehlermeldung… „Senden der Nachricht fehlgeschlagen“.
Mehr leider nicht…

Was könnte da schiefgegangen sein?
Beste Grüße
Sebastian

Die Web-Hook Registrierung ist fürs Senden nicht wichtig - daran kann es nicht liegen. Da es nicht viele Parameter zum Einstellen gibt, vermute ich, dass bei der BotID oder bei der BenutzerID nur etwas falsch sein kann. Ist dort evtl. ein Leerzeichen beim Eintippen reingerutscht? Oder ein Zahlendreher drin?

paresy

Ist endlich gemerged und im Beta-Kanal verfügbar.

Aktuell nein. Du müsstest eine neue Aktion erstellen und diese aus der module.php sauber mit genau diesen Informationen befüllen. Stell uns dazu auch gerne einen PR :slight_smile:

paresy

ich komme mit TB_SendImageEx nicht klar… Muss es tatsächlich eine Mediendatei sein welche zuvor im Medienpool angelegt wird? Sprich von einer Webcam ein Bild welches ich via „http://IP/snapshot.jpg“ aufrufen kann muss ich erst downloaden, verbinden usw?

Danke Gruss Marco