Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

Fixel2012

@Torsten_MG

du musst entweder das Attribut "defautltPeer" setzen, oder im send command den Kontakt angeben.
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Torsten_MG


Nocard

Es kann natürlich an mir liegen und daran, dass ich es nicht finde: Gibt es eine Möglichkeit, die nicht nutzbaren eingehenden Nachrichten z.B. mit Notify zu erkennen? Nicht nutzbar meint keine Befehle,  Favoriten usw. Irgendwo muss der Rest doch übrig bleiben, wäre schön, wenn das ein Reading oder eine globale Variable oder so etwas wäre...

viegener

Zitat von: Nocard am 11 Januar 2018, 17:35:55
Es kann natürlich an mir liegen und daran, dass ich es nicht finde: Gibt es eine Möglichkeit, die nicht nutzbaren eingehenden Nachrichten z.B. mit Notify zu erkennen? Nicht nutzbar meint keine Befehle,  Favoriten usw. Irgendwo muss der Rest doch übrig bleiben, wäre schön, wenn das ein Reading oder eine globale Variable oder so etwas wäre...

Vielleicht missverstehe ich das, aber es gibt ja Readings in denen die Nachrichten auflaufen - msgText - findet sich auch dokumentiert in der commandref
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Nocard

Ja, aber ich kann nicht erkennen, ob der Text durch das Modul weiter verarbeitet wurde. Es geht also um nicht genutzte Nachrichten. Nachdem die verschiedenen Möglichkeiten im Skript erfolglos abgearbeitet wurden, müsste eine "normale Nachricht" irgendwo übrig bleiben, oder wenigstens der Hinweis zur Auswertung, dass der Telegrambot die Nachricht nicht verwenden könnte.

Zur Erklärung: der TBot_List benutzt das in der Funktion handleUnsolicited. Wenn ich allerdings längere Texte oder Texte mit Kommata verwerten will, taugt die Speicherung als Postit nicht wirklich, zumal postme nur in den Readings also im fhem.save soeichert. Nicht besonders performant und sicher, möchte ich meinen.

viegener

@Nocard: So wie Du Dir das wünscht, gibt es das bisher nicht. Habe mal nachgeschaut, so einfach wäre das auch nicht, weil es keine zentrale Stelle gibt, an der Nachrichten insbesondere (wenn TBot_List ins Spiel kommt) "abgearbeitet" werden. Insbesondere weil das update der Readings gemacht wird, bevor Kommandos interpretiert werden. Kannst Du etwas genauer sagen, wie für Dich der use case aussieht, dass Du das benötigst?

Die Bemerkung zu readings und performanz und Sicherheit verstehe ich nicht.

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

Nocard

Einfaches Szenario: Notizen zentral und einfach vom Handy aus ablegen. Ein Notizmodul, dass z.B. mit Notes-Funktionen diverser Anbieter (Evernote usw.) könnte das Szenario beliebig erweitern. Wenn ich nun einen Gedanken habe, möchte ich mich nicht mit Bedienungsschritten ablenken lassen.

Im Falle von kurzen Stichworten ist die Lösung über Postme super. Will ich aber Formulierungen über 200 Wörter und evtl. mit Markdown ablegen, denke ich, dass die Speicherung in der fhem.save das System auf Dauer etwas überfordern könnte, zumindest auf einem einfachen Gerät wie einer Null-Himbeere. Kann ich aber nicht wirklich einschätzen...

Und hier mal q&d eine Idee per DOIF Definition:

([ZeroPi_bot:msgText] and [ZeroPi_bot:sentMsgResult:sec] > 21)
(set Pushover1 msg [ZeroPi_bot:msgText])

viegener

@Nocard: Momentan wäre mein Vorschlag, dass Du selber aus den empfangenen Nachrichten die mit /... herauszufiltern, denn die Notizen sind doch vermutlich keine die mit / anfangen.

Also meine fhem.save ist fast 500k gross, da spielen 200 Worte mehr oder weniger eigentlich keine grosse Rolle...

Mmmh - das DOIF verstehe ich nicht, über telegram kommen die Nachrichten rein und dann per pushover weiter, was hat das mit Deiner Notizenverwaltung zu tun?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Phill

Hallo, ich hätte da mal ein Hinweis zu dem Modul.
Und zwar habe ich mit queryInline herumexperimentiert und da ist mir bei einem queryAnswer aufgefallen, dass wenn ich defaultPeer nicht gesetzt habe er folgende Fehlermeldung ausgibt.
Zitatn_telbot_query return value: TelegramBot_Set: Command queryAnswer, without explicit peer requires defaultPeer being set
set telbot queryAnswer @name ID text hat aber auch nicht funktioniert. Das bedeutet man muss auf jedenfall defaultPeer setzen? Macht irgendwie kein Sinn. Oder hab ich was übersehen.
Gruß
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

DarkT


viegener

Zitat von: Phill am 28 Januar 2018, 21:55:34
Hallo, ich hätte da mal ein Hinweis zu dem Modul.
Und zwar habe ich mit queryInline herumexperimentiert und da ist mir bei einem queryAnswer aufgefallen, dass wenn ich defaultPeer nicht gesetzt habe er folgende Fehlermeldung ausgibt.set telbot queryAnswer @name ID text hat aber auch nicht funktioniert. Das bedeutet man muss auf jedenfall defaultPeer setzen? Macht irgendwie kein Sinn. Oder hab ich was übersehen.
Gruß

Ja - Stimmt- ohne defaultPeer kommt diese Fehlermeldung - das muss ich anpassen

Wenn defaultPeer gesetzt ist sollte es aber gehen - Achtung eine queryAnswer ist mit der queryId nur wenige Sekunden (!) möglich
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

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

Phill

Bei der Gelegenheit vielleicht warst du ja noch nicht dran, hätte ich da noch einen Featurewunsch.  :)
Es gibt ja silentmsg, aber nicht silentqueryInline, wäre das möglich? Oder vielleicht könnte man es ja über ein Attribut komplett auf silent umschalten.

Gruß und Danke für die Arbeit.
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

dennis_n

Ich bekomme leider folgende Fehler, wenn ich über das Modul etwas verschicken will:

NonBlockingGet timed out on read from <hidden> after 365s

Im Log steht:
TelegramBot_readToken: Error: No API token in file

Kann mir einer sagen was ich machen muss?

hier noch ein list des Device. Bot und Kontakte habe ich durch xxx ersetzt:

Internals:
   FAILS      0
   NAME       FWStatus
   NR         21
   OLD_POLLING 82
   POLLING    82
   SNAME      FWStatus
   STATE      Polling
   TYPE       TelegramBot
   UPDATER    0
   WAIT       0
   me         xxxxx:Fxxxxxx_bot:@Fxxxxxxx_bot
   offset_id  xxxxx
   AliasCmds:
   Contacts:
     xxxxxxx  xxxxxxx:Dennis:
     xxxxxxxx  xxxxxxx:Stephie:
   HU_DO_PARAMS:
     header     agent: TelegramBot/1.0
User-Agent: TelegramBot/1.0
Accept: application/json
Accept-Charset: utf-8
     hideurl    1
     method     GET
     timeout    30
     url       
   HU_UPD_PARAMS:
     FD         10
     NAME       
     addr       https://api.telegram.org:443
     auth       0
     buf       
     code       200
     compress   1
     displayurl <hidden>
     header     agent: TelegramBot/1.0
User-Agent: TelegramBot/1.0
Accept: application/json
Accept-Charset: utf-8
     hideurl    1
     host       api.telegram.org
     hu_blocking 0
     hu_filecount 2
     hu_port    443
     hu_portSfx
     isPolling  update
     loglevel   4
     method     GET
     offset     xxxxx
     path       /botxxxxxxxxxxxx/getUpdates?offset=xxxxxxx&limit=5&timeout=180
     protocol   https
     redirects  0
     timeout    365
     url        https://api.telegram.org/botxxxxxxxxxxx/getUpdates?offset=xxxxxxxxx&limit=5&timeout=180
     hash:
     sslargs:
   READINGS:
     2018-01-28 23:17:27   Contacts        xxxxxxx:Stephie: xxxxxxxx:Dennis:
     2018-01-30 17:01:18   PollingErrCount 8
     2018-01-30 17:01:18   PollingLastError NonBlockingGet timed out on read from <hidden> after 365s
     2018-01-24 22:54:16   StoredCommands  FHEM set Broedel Anwesenheit 1
FHEM set Broedel Anwesenheit 0

     2018-01-30 16:07:34   msgChat         Dennis
     2018-01-30 16:07:34   msgChatId       xxxxxxx
     2018-01-30 16:07:34   msgFileId       
     2018-01-30 16:07:34   msgId           38
     2018-01-30 16:07:34   msgPeer         Dennis
     2018-01-30 16:07:34   msgPeerId       xxxxxxxx
     2018-01-30 16:07:34   msgReplyMsgId   
     2018-01-30 16:07:34   msgText         Test
     2018-01-30 16:07:34   prevMsgChat     Stephie
     2018-01-30 16:07:34   prevMsgFileId   
     2018-01-30 16:07:34   prevMsgId       37
     2018-01-30 16:07:34   prevMsgPeer     Stephie
     2018-01-30 16:07:34   prevMsgPeerId   xxxxxxxx
     2018-01-30 16:07:34   prevMsgReplyMsgId
     2018-01-30 16:07:34   prevMsgText     /start
     2018-01-24 23:14:46   sentMsgId       31
     2018-01-24 23:14:46   sentMsgPeerId   xxxxxxxx
     2018-01-24 23:14:46   sentMsgResult   SUCCESS
   inlinechats:
Attributes:
   allowUnknownContacts 0
   cmdKeyword FHEM
   defaultPeer xxxxxxx
   pollingTimeout 180
   room       Messenger



Nachrichten an den Bot kommen an.

Danke

Gruss
Dennis

viegener

Zitat von: Phill am 30 Januar 2018, 16:51:38
Bei der Gelegenheit vielleicht warst du ja noch nicht dran, hätte ich da noch einen Featurewunsch.  :)
Es gibt ja silentmsg, aber nicht silentqueryInline, wäre das möglich? Oder vielleicht könnte man es ja über ein Attribut komplett auf silent umschalten.

Gruß und Danke für die Arbeit.

Ja kommt mit der nächsten Version - sind gerade ein paar Umstellungen in Arbeit, die ich noch etwas testen möchte
(Befehl silentInline - das mit dem Attribut habe ich erstmal nicht gemacht, da es Problem geben könnte, wenn Nachrichten verspätet gesendet werden und versucht das Attribut dynamisch zu verändern)

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