Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

Begonnen von viegener, 20 Juni 2015, 18:59:41

Vorheriges Thema - Nächstes Thema

Marcel2209

Zitat von: viegener am 05 Dezember 2015, 22:58:03
Das Kommando muss eigentlich wohl
sudo apt-get install --reinstall libio-socket-ssl-perl
heissen.

Die Syntax der Kommandos lässt sich leicht über man apt-get nachschauen. Nur zur Info, es geht hier wohl eher nicht um ein Problem mit telegram, sondern eher mit der Umgebung in der FHEM läuft.

https-Verbindungen testen kannst Du auf der Kommandozeile mit wget

Nach sudo apt-get install --reinstall libio-socket-ssl-perl hat es geklappt, Danke dir.

dermaverick

Hallo Zusammen

Ich bin blutiger Anfänger, habe aber beide Module am "laufen", so dass ich Nachrichten senden und auch empfangen kann. Nun aber zu meinem Problem.
Ich hab schon die Seiten vor und zurück gelesen, aber finde einfach nicht den richtigen Ansatz um bei einem bestimmten empfangenen Text einen entsprechenden Befehl auszufüren.
Hab "cmdKeyword" definiert (/fhem) und auch "favorites" mit "wohnzimmer" definiert.
Wie aber kann ich aus diesem gesendeten Befehl/Nachricht daraus einen entsprechenden Befehl ausführen, wie als einfaches Beispiel dann eine Nachricht senden (als Bsp "set <telegrambot> message <irgendeine Nachricht>").
Wie müsste dies dann in der fhem.cfg geschrieben werden?

Wäre für jede Hilfe dankbar.

mfg

Ralli

Du musst ein entsprechendes Notify oder DOIF definieren, welches durch die empfangene Nachricht getriggert wird.
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

dermaverick

Zitat von: Ralli am 08 Dezember 2015, 14:50:36
Du musst ein entsprechendes Notify oder DOIF definieren, welches durch die empfangene Nachricht getriggert wird.

Jo sowas hatte ich schon gelesen, aber es geht sich halt um ein Beispiel wie so ein Programm Code aussehen würde.

Ralli

Du könntest es zunächst mal selbst recherchieren und probieren, wie man ein entsprechendes Notify oder DOIF definiert. Wenn Du dann nicht weiterkommst, kannst Du gerne hier Deine Versuche präsentieren. Ich bin mir sicher, dass dann jemand Deinen Code optimiert.
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

dermaverick

define teleBot TelegramBot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr teleBot cmdKeyword /fhem
attr teleBot defaultPeer xxxxxx
attr teleBot favorites wohnzimmer
attr teleBot pollingTimeout 10
attr teleBot room Wohnzimmer
attr teleBot verbose 5
define teleBot_DI DOIF ([teleBot:msgText] eq "hello") ({SendWeather()})

Also ich hab es jetzt mal so umgesetzt, funktioniert auch soweit (SendWeather hab ich mir hier im Forum abgeschaut und in 99_myUtils eingetragen).
Aber hier lese ich ja jetzt nur den ankommenden Text aus und reagiere entsprechend. Aber es gibt doch die Möglichkeit mit diesen definierten commands.
Also wenn ich zb "/fhem wohnzimmer" senden würde erkennt der Bot dass es ein Kommando ist und reagiert entsprechend.
Wie müsste ich das dann entsprechend umsetzen?
Danke für den Tip mit dem DOIF. Einen Schritt weiter bin ich nun schonmal :)

viegener

Zitat von: dermaverick am 08 Dezember 2015, 12:59:45
Hallo Zusammen

Ich bin blutiger Anfänger, habe aber beide Module am "laufen", so dass ich Nachrichten senden und auch empfangen kann. Nun aber zu meinem Problem.
Ich hab schon die Seiten vor und zurück gelesen, aber finde einfach nicht den richtigen Ansatz um bei einem bestimmten empfangenen Text einen entsprechenden Befehl auszufüren.
Hab "cmdKeyword" definiert (/fhem) und auch "favorites" mit "wohnzimmer" definiert.
Wie aber kann ich aus diesem gesendeten Befehl/Nachricht daraus einen entsprechenden Befehl ausführen, wie als einfaches Beispiel dann eine Nachricht senden (als Bsp "set <telegrambot> message <irgendeine Nachricht>").
Wie müsste dies dann in der fhem.cfg geschrieben werden?

Wäre für jede Hilfe dankbar.

mfg

Es hat ja schon einige Antworten und Hinweise gegeben, trotzdem hier noch eine kurze Zusammenstellung. Du hast heute generell 2 Möglichkeiten so etwas innerhalb von telegramBot anzugehen:

1) Favoriten --> Definieren eines Kommandos, dass eine Reihe von Favoriten-Kommandos auf FHEM ausführen kann. Also Attribute cmdFavorites und favorites. Dann kannst Du mit z.B. /favorite 2 ein entpsrechend definiertes Kommando auslösen

2) cmdKeyword -> Hier kannst Du generell jedes beliebige Kommando auslösen als z.B. /command list type=CUL und damit die Möglichkeiten von FHEM nutzen um Abkürzungen zu machen (also notify, DOIF oder ähnliches)

Die von Dir oben angewendete Möglichkeit geht zwar auch finde ich persönlich aber eher umständlicher.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

dermaverick

Vielen Dank für die Antworten.
So langsam hab ich glaub ich den Durchblick wie ich alles am Besten zusammenbau.

Danke Danke :)

viegener

Ich habe mal wieder eine neue Version in git hochgeladen:

Damit ist es möglich mehrere Empfänger beim senden von Text und Bildern anzugeben
(siehe Vorschlag hier: http://forum.fhem.de/index.php/topic,38328.msg364613.html#msg364613
Diese werden einfach durch Leerzeichen (!) getrennt hintereinander angegeben. z.B so:
set aTelegramBotDevice message @@someusername @1234567 a message to be sent to multiple receipients

Ausserdem habe ich die alten Kommandos messageTo sendImageTo sendPhotoTo jetzt endgültig entfernt

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Ralli

Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

masterpete23

Zitat von: viegener am 08 Dezember 2015, 23:56:19
Ich habe mal wieder eine neue Version in git hochgeladen:

Damit ist es möglich mehrere Empfänger beim senden von Text und Bildern anzugeben
(siehe Vorschlag hier: http://forum.fhem.de/index.php/topic,38328.msg364613.html#msg364613
Diese werden einfach durch Leerzeichen (!) getrennt hintereinander angegeben. z.B so:
set aTelegramBotDevice message @@someusername @1234567 a message to be sent to multiple receipients

Ausserdem habe ich die alten Kommandos messageTo sendImageTo sendPhotoTo jetzt endgültig entfernt
Danke - wie ist der einfachste Weg die aus dem git zu bekommen? geht das direkt per fhem commandline?

masterpete23

Und wenn ich ein cmdFavorites definiert habe und das in einer Gruppe schreibe kommt die Antwort per PM.
Geht das auch das es in die Gruppe geht?

viegener

Zitat von: masterpete23 am 09 Dezember 2015, 08:25:35
Danke - wie ist der einfachste Weg die aus dem git zu bekommen? geht das direkt per fhem commandline?

Es mag vielleicht einen Umweg über FHEM geben, aber der direkte Weg führt über das Betriebssystem, insbesondere, da nach Einfügen der neuen Version immer ein Neustart von FHEM angeraten ist (ähnluch wie beim offiziellen Update). Die neue Version wird aber auch bald als offizieller Update bereitgestellt, also kannst Du auch gerne um Risiken zu vermeiden.

Johannes

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: masterpete23 am 09 Dezember 2015, 08:29:43
Und wenn ich ein cmdFavorites definiert habe und das in einer Gruppe schreibe kommt die Antwort per PM.
Geht das auch das es in die Gruppe geht?

Das wäre vermutlich möglich, aber ich versuche das Szenario zu verstehen bevor ich da etwas einbaue.
Bei mir werden die Favoriten benutzt, um etwas zu steuern/schalten/abzufragen. Das Ergebnis davon möchte ich direkt haben, aber die anderen Mitglieder der Gruppe (bei mir die Familie) sind normalerweise nicht interessiert, wen ich gerade die Temperatur hochgestellt habe oder ein Licht ausschalte. Gerade wenn ich nur die Liste der Favoriten als Keyboard erhalte, so möchte ich das eigentlich nur eprsönlich als Sender der Anfrage haben, oder?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

masterpete23

ja ok das kann ich verstehen.
also bekommt der der die Anfrage schickt nen privchat mit dem bot und den befehlen. Finde es halt unübersichtlich, dass man dann das chat fenster tauschen möchte.
Aber gut ich verstehe deine gründe - dann lassen wir das erstmal und ich teste.
Good Job!