Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

viegener

Zitat von: PeterS am 20 Dezember 2015, 20:28:33
Hallo

Das log sagt hier standardmässig nichts.
Der  2. Empfänger wird als Text erkannt:
sentMsgText: @Tester2 Multi-Test
   
Gruss Peter

Aua mein Fehler, die Version ist bisher nur im github, ich bin noch nicht dazugekommen die freizugeben.
OK gebe ich heute ins SVN und ist dann morgen per update verfügbar...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

PeterS

Ok, danke !

Bei deinem Beispiel nutzt du 2@ ?! Featurelevel 5.6 oder 5.7 ?
set aTelegramBotDevice message @@someusername @1234567 a message to be sent to multiple receipients

Gruss Peter

viegener

Zitat von: PeterS am 20 Dezember 2015, 20:43:02
Ok, danke !

Bei deinem Beispiel nutzt du 2@ ?! Featurelevel 5.6 oder 5.7 ?
set aTelegramBotDevice message @@someusername @1234567 a message to be sent to multiple receipients

Gruss Peter

Ja, unabhängig vom Featurelevel: Wenn man telegramm-Kontakte für send angibt, existieren verschiedenen Möglichkeiten, alle beginnen mindestens mit einem @:

UserIDs -> nur ein @ danach nur Ziffern (plsu am Anfang ein -)
vollstädniger Name--> nur ein @ aber ohne Leerzeichen, dafür Vor- und Nachnamen mit _ getrennt
Benutzername (ich würde es alias nennen) --> Zwei @ (einen damit ein Kontakt erkannt wird, der zweite damit es als Benutzername erkennbar ist) - wird auch in telegram mit einem @ am Anfang gezeigt
Chat-ids --> @ und dann # vor der chat id (chats erkennt man in den Kontakten im device telegramBot auch an dem #)

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

viegener

OK, neue Version 1.2 ist jetzt auch im SVN verfügbar, mit dem update morgen frü überall

Erweiterungen wie im Thread hier beschrieben und seit einiger Zeit auch in github bereits verfügbar:

- Mehrere Kontakte beim senden von texten und Bildern
- allowUnknownContacts
- Verschiedene bugfixes

Wichtig: Die Befehle messageTo sendImageTo sendPhotoTo habe ich jetzt endgültig entfernt

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

PeterS

Hallo viegener

Ich habe die Rev. 10218 eingespielt.
Der Multiversand via set teleBot message @Tester1 @Tester2 Multi-Test funktioniert nun in der commandozeile.
Auch der Backend via notify und perl funktioniert nun.
define Notify_TestSchalter_On notify TestSchalter:on {fhem("set teleBot message ".'@@Tester1 @@Tester2'." Test Multiversand 21.12.");;Log 3,"set teleBot message ".InternalVal("teleBot","sentMsgPeer",0)." ".InternalVal("teleBot","sentMsgResult",0)." ".InternalVal("teleBot","sentMsgText",0)}

Logeintrag:
set teleBot message Tester1 WAITING Test Multiversand 21.12.

Ich nutze Feature 5.7, Warum benötige ich bei den Empfängern 2@ ? Mit nur einem @ wird der Empfänger nicht erkannt
Der Status (sentMsgResult) wird bei mehreren Empfängern nicht richtig gesetzt, da der Logbefehl schon während dem Versenden der Nachricht ausgeführt wird ?!

Gruss Peter

viegener

Warum Du 2 @@ brauchst habe ich 2 Postings vorher erklärt  ;)

Der Status für sentMsgResult wird für jeden einzelnen Empfänger getrennt gesetzt, da es auch getrennte Sendevorgänge sind, das erklärt auch den Waiting Eintrag im Log. Denn der Versand findet "im Hintergrund" und nacheinander statt, damit muss der 2. Versand warten (WAITING).






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

viegener

Ich denke Dein Problem hängt damit zusammen, dass es im Hintergrund stattfindet, also zu dem Zeitpunkt wenn Du den Status überprüfst läuft der Sendvorgang noch. Da die Hintergrundoperation wichtig ist (FHEM würde sonst stehen bleiben während des Versands) wäre es vermutlich sinnvoller wenn ich sentMsgResult und die anderen zu Readings umbaue, dann kannst Du ein getrenntes notify auf Fehler machen.

Ich nehme das mal auf die Todoliste
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

PeterS

Hallo viegener

Stimmt, hatte ich scheinbar überlesen  ::)

Zitat von: viegener am 21 Dezember 2015, 12:57:39
Warum Du 2 @@ brauchst habe ich 2 Postings vorher erklärt  ;)

Gruss Peter

mchilli

Hi viegener

Besteht denn die möglichkeit das custom keyboard bei den Favoriten zu verändern?
Also ich meinte damit, wieviele buttons pro reihe, wieviele reihen und vorallem die beschreibung der buttons.  :)

MfG
Mehr als 3, der eine macht das, der andere was ganz anderes und einer was ganz ähnliches, was ein anderer auch machen soll.

viegener

Zitat von: mchilli am 21 Dezember 2015, 21:11:53
Hi viegener

Besteht denn die möglichkeit das custom keyboard bei den Favoriten zu verändern?
Also ich meinte damit, wieviele buttons pro reihe, wieviele reihen und vorallem die beschreibung der buttons.  :)

MfG

Die Beschriftung der Buttons lässt sich nicht ohne weiteres ändern, da sie genau dem entspricht, was der client dann auch schickt. Also wenn man auf der Beschriftung lieber etwas hätte wie --> "Licht Wohnzimmer Einschalten", dann müsste der Bot auch auf diesen Text richtig reagieren. Dass würde nur gehen, wenn man eine Dialogfunktion hätte, die auf dem Server auch den Status des Chats mit einem einzelnen Benutzer verwaltet, über Konfiguration stelle ich mir das sehr aufwändig vor aber eine perlfunktion könnte man anbinden.

Ich weiss aber nicht ob jeder eine perl routine schreiben kann?

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

viegener

#355
Ich habe nach einiger Überlegung gerade eine Möglichkeit eingebaut in den Favoriten aus alias namen für die Favoriten zu hinterlegen.

Dazu kann man für einen einzelnen Favoriten den Alias vor dem Kommando in der Form "/alias=" angeben.
Beispiel: Wenn ich einen alias "/licht" haben will den ich für das Kommando "set lights on" definieren will dann gebe ich dies in dem Attribute favorites wie folgt an:

/licht=set lights on;

Jetzt kann ich nicht nur durch das favorites cmd sondern auch durch die Nachricht /licht den Befehl auslösen.

Aliasnamen sind optional und müssen nicht angegeben werden, die Favorites sind weiterhin eine Liste von einzlnen Kommandos (jetzt uUmit Alias) die jeweils durch ; getrennt werden.

Wichtig: Aliasnamen müssen durch / eingeleitet werden und der / muss in der message dann auch mitgesendet werden!

Es ist auch möglich weitere Teile mit der Nachricht mitzuschicken. Wenn ich also den Alias so definiere:
/licht=set lights;
Dann kann ich mit der Message /licht on das Kommando set lights on auslösen und entsprechend mit /licht off das Kommando set lights off

Die Version ist bisher nur in github
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

mchilli

Das klingt schonmal super!! Besten Dank für die Mühen so kurz vor Weihnachten  :).
Werd ich nachher gleich mal ausprobieren...

In diesem Sinne, Frohe Weihnachten allen.
Mehr als 3, der eine macht das, der andere was ganz anderes und einer was ganz ähnliches, was ein anderer auch machen soll.

viegener

Zitat von: mchilli am 23 Dezember 2015, 12:49:40
Das klingt schonmal super!! Besten Dank für die Mühen so kurz vor Weihnachten  :).
Werd ich nachher gleich mal ausprobieren...

In diesem Sinne, Frohe Weihnachten allen.

Danke ebenso! Dafür habe ich doch gerade Urlaub, um so etwas zu machen  ;)

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

viegener

Ich habe nochmals eine neue Version eingestellt dabei werden für gesendete Nachrichten jetzt auch Readings gesetzt. Damit ist es möglich auf auch das Ergebnis eines Nachrichtenversandes als event trigger zu verwenden.

Wg. des zeitversetzten Versandes (im Hintergrund) wird das Ergebnis nicht direkt nach Ausführen des Befehls gesetzt.

Es werden 2 Readings gesetzt:

- sentMsgId - Enthält die ID der versendeten Nachricht
- SentMsgResult - Enthält den Status nach Versand

version ist bisher nur in github
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

arthur_dent_2015

merry Xmas @all

Ich brauch mal ein wenig Hilfe...
Habe beide Module getestet, Ergebnis: mit dem Bot geht weder senden noch empfangen (bei mir)  :( mit der 70_Telegram geht beides : 8) aber Fhem reagiert nich auf die Befehle. Ich schicke den Befehl FHEM set schalter on. Die message wird im lastmessage reading angezeigt, es passiert aber nix. Den Trick mit dem cmdalias von Seite 3 habe ich auch getestet. Ergebnis war das Selbe. Kann mir mal einer auf die Sprünge helfen?

Thx
Arthur