Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

Esjay

Hi zusammen..
Ich lasse mir über einen Doif den Status meiner Steckdosen zuschicken.
Das sieht folgendermaßen aus
([TelegramBot:msgText] eq "Status")(set TelegramBot message TV [TV:state])(set TelegramBot message Entertain [Entertain:state])(set TelegramBot message Garderobe [Garderobe:state])(set TelegramBot message Server [Server:state])(set TelegramBot message Spiegelschrank [Spiegelschrank:state])(set TelegramBot message Tablet_Laden [Tablet_Laden:state])

Durch das defaultpeer Attribut geht die Antwort immer an mich,wenn ich es weglasse passiert nichts.Soweit so klar.Wie bewerkstellige ich es,dass die Antwort an denjenigen geht,der den Status abfragt.

Gibt es da evtl. ein Attribut für,welches ich übersehen habe?
Gibt es evtl. eine Elegantere Lösung ?

Vielen Dank.


DeeSPe

Im Reading prevMsgPeerId steht doch die letzte Id.
Also kannst Du doch sowas machen:
(set TelegramBot message @[TelegramBot:prevMsgPeerId] bla bla)

Gruß
Dan

P.S. Evtl. muss das @ noch mit \ maskiert werden!?
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Ma_Bo

Hey viegener,
ich melde mich die tage nochmal zu meinem Problem,  im Moment habe ich nicht viel zeit für meine fhem Projekte.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Esjay

Zitat von: DeeSPe am 21 November 2016, 20:47:03
Im Reading prevMsgPeerId steht doch die letzte Id.
Also kannst Du doch sowas machen:
(set TelegramBot message @[TelegramBot:prevMsgPeerId] bla bla)

Gruß
Dan

P.S. Evtl. muss das @ noch mit \ maskiert werden!?

Dank dir! Hat funktioniert. :)

abc2006

Hey, habe das gerade auch interessiert ausprobiert, aber ich hab das gefühl, dass es msgPeerId sein müsste?
in der prevMsgPeerId steht immer der Absender der vorherigen Message, so dass ich die Informationen bekomme, wenn meine Frau fragt, und andersrum ... ?

Erst beim zweiten fragen klappt es dann wie gewünscht ... (klar, weil dann auch die richtige id in dem prev...-Feld steht ..

Ooooooder.. ich hab die Frage falsch verstanden.. :-)

Grüße
Stephan

edit: wie wärs mit einem Attribut "sendAnswerTo" und z.B. "defaultPeer" "askingPeer" ( natürlich beschränkt auf die restricted)..
nur als Idee:)
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

DeeSPe

Zitat von: abc2006 am 21 November 2016, 21:25:16
Hey, habe das gerade auch interessiert ausprobiert, aber ich hab das gefühl, dass es msgPeerId sein müsste?
in der prevMsgPeerId steht immer der Absender der vorherigen Message, so dass ich die Informationen bekomme, wenn meine Frau fragt, und andersrum ... ?

Erst beim zweiten fragen klappt es dann wie gewünscht ... (klar, weil dann auch die richtige id in dem prev...-Feld steht ..

Ooooooder.. ich hab die Frage falsch verstanden.. :-)

Grüße
Stephan

edit: wie wärs mit einem Attribut "sendAnswerTo" und z.B. "defaultPeer" "askingPeer" ( natürlich beschränkt auf die restricted)..
nur als Idee:)

Ja, Du hast Recht! Es muss natürlich msgPeerId sein.
Ist mir vorhin gar nicht aufgefallen weil in beiden bei mir das selbe stand.

ZitatmsgPeerId <text>
The sender id of the last received message

prevMsgPeerId <text>
The sender id of the SECOND last received message

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Spiff

Hi,

ich habe seit 17.11. (letzten Donnerstag) Probleme mit TelegramBot - es kommen keine Nachrichten mehr durch.
Es scheint ein SSL-Problem zu sein.

Hier mal ein kleiner Log-Ausschnitt:

2016.11.23 17:56:09.713 5: TelegramBot_Callback teleBot: called from Polling
2016.11.23 17:56:09.713 5: TelegramBot_Callback teleBot: polling returned result? <undef>
2016.11.23 17:56:09.713 5: Triggering teleBot (1 changes)
2016.11.23 17:56:09.713 5: Starting notify loop for teleBot, first event PollingLastError: NonBlockingGet: returned connect to https://api.telegram.org:443 timed out
2016.11.23 17:56:09.716 5: Triggering teleBot (1 changes)
2016.11.23 17:56:09.716 5: Starting notify loop for teleBot, first event PollingErrCount: 238
2016.11.23 17:56:09.718 5: TelegramBot_UpdatePoll teleBot: called
2016.11.23 17:56:09.718 5: TelegramBot_UpdatePoll teleBot: got fails :12: wait 14 seconds
2016.11.23 17:56:09.718 4: TelegramBot_Callback teleBot: resulted in :NonBlockingGet: returned connect to https://api.telegram.org:443 timed out: from Polling


Hat sich da auf Seiten von Telegram irgendwas verändert oder hat jemand das gleiche Problem?

System ist Windows mit ActivePerl.
Ich habe fhem zwischendurch mal geupdatet, aber auch mit einem Backup ist es das gleiche Problem.

Gruß
Spiff.

viegener

Wie kommst Du darauf, dass es ein SSL-Problem ist, aus dem Logausschnitt ist nur erkennbar, dass der Verbindungsaufbau zu api.telegram.org fehlschlägt (timeout)?

Also mir sind jetzt keine Probleme/Änderungen bekannt.

Vielleicht mal ein Standardansatz:
- Hast Du mal Dein System durchgestartet
- Kannst Du auf dem Windowssystem mal den URL (aus dem internals) mit angehängtem /getUpdates aufrufen?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Frank_Huber

#953
komisch,
hatte den Telegrambot schon aktiv und mir Shortcuts angelegt und alles.
Heute stelle ich fest dass der Bot weg ist. Das ganze "device" ist aus der cfg verschwunden.

Beim Neu anlegen finde ich das im Log:
Zitat2016.11.24 09:50:38 1: reload: Error:Modul 50_TelegramBot deactivated:
Can't locate JSON.pm in @INC (you may need to install the JSON module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl . ./FHEM ./FHEM/lib) at ./FHEM/50_TelegramBot.pm line 177, <GEN9> line 432.
BEGIN failed--compilation aborted at ./FHEM/50_TelegramBot.pm line 177, <GEN9> line 432.

Der Bot ist auf 4 von 5 RasPis weg.

jemand ne Idee wie es dazu auf einmal kommt?

Nachtrag 1:
scheinbar haben diese 4 RasPis kein FHEM Updat gemacht. die 50_Telegrambo.pm war alt.
Mach jetzt mal nen Update und melde mich wieder.


viegener

Zitat von: Frank_Huber am 24 November 2016, 09:57:55
komisch,
hatte den Telegrambot schon aktiv und mir Shortcuts angelegt und alles.
Heute stelle ich fest dass der Bot weg ist. Das ganze "device" ist aus der cfg verschwunden.

Beim Neu anlegen finde ich das im Log:
Der Bot ist auf 4 von 5 RasPis weg.

jemand ne Idee wie es dazu auf einmal kommt?

Die Fehlermeldung besagt, dass das JSON-Modul nicht gefunden wurde. Dieses wird aber eigentlich schon von Anfang an benötigt, um den TelegramBot zu betreiben. Der Device ist weg, weil das TelegromBot-Modul beim Neustart nicht mehr geladen werden kann.

Wie kommt es dazu, dass das JSON-Modul nicht mehr da ist?
Was wurde seit dem letzten restart an der Installation (perl ?) verändert?

Solange Du kein save ausführst ist die bot-definition noch im cfg vorhanden. Du müsstest aber erst das Problem mit dem json-Modul lösen.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Frank_Huber

Zitat von: viegener am 24 November 2016, 10:07:12
Die Fehlermeldung besagt, dass das JSON-Modul nicht gefunden wurde. Dieses wird aber eigentlich schon von Anfang an benötigt, um den TelegramBot zu betreiben. Der Device ist weg, weil das TelegromBot-Modul beim Neustart nicht mehr geladen werden kann.

Wie kommt es dazu, dass das JSON-Modul nicht mehr da ist?
Was wurde seit dem letzten restart an der Installation (perl ?) verändert?

Solange Du kein save ausführst ist die bot-definition noch im cfg vorhanden. Du müsstest aber erst das Problem mit dem json-Modul lösen.

Danke für deine Antwort,
Auf Perl-Ebene hab ich nichts geändert an den RasPis. dazu hab ich den 5ten. Das ist meine Testwiese. aber da geht noch alles.
Änderungen gab es schon viele, Ich weis ja nicht seit wann der Bot weg ist.

Das FHEM Update hat nichts gebracht. Ich mach mich dann mal jetzt auf die Suche wie ich JSON nachinstallieren kann.

Frank_Huber

die Lösung in diesem Post gefunden:
https://forum.fhem.de/index.php/topic,38328.msg337390.html#msg337390

auf der Konsole JSON neu installiert mit:
sudo apt-get update && sudo apt-get install libjson-perl -y

Ist mir ein Rätsel warum es weg war, aber seis drum. es geht wieder.
Danke für die Hilfe!

viegener

Zitat von: Frank_Huber am 24 November 2016, 10:23:17
die Lösung in diesem Post gefunden:
https://forum.fhem.de/index.php/topic,38328.msg337390.html#msg337390

auf der Konsole JSON neu installiert mit:
sudo apt-get update && sudo apt-get install libjson-perl -y

Ist mir ein Rätsel warum es weg war, aber seis drum. es geht wieder.
Danke für die Hilfe!

Schön, dass es wieder geht.
An dem Post sieht man, dass JSON bereits seit langem Vorbedingung war, wie beschrieben. Komisch, dass es bei Dir plötzlich weg war (perl update?)

Nur aus Neugier, warum soviele FHEM-Instanzen?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Frank_Huber

#958
Zitat von: viegener am 24 November 2016, 11:01:27
Nur aus Neugier, warum soviele FHEM-Instanzen?

Ich mache alles über IOs. möchte keinen unnötigen Funk haben. Also alle Rollos, alle Lampen, alle Schalter über Draht.
das macht dann pro Etage einen RPI mit 32GPIO Huckepack.
Befehle untereinander tausche ich mit RFHEM aus.
Am Handy / Tablet Habe ich mir mit der NetIO App was gebastelt.

Der 5te ist der zum testen und ausprobieren.

EDIT für deine Neugier:
Installation: http://www.Frank-Huber.net/TEMP/FHEM_Inst.jpg
NetIO: http://www.Frank-Huber.net/TEMP/Screen_EG.png
Bei der Installation fehlen noch die ganzen Tasterkabel auf den LSA+

Spiff

Hi,

Zitat von: viegener am 23 November 2016, 23:43:06
Wie kommst Du darauf, dass es ein SSL-Problem ist, aus dem Logausschnitt ist nur erkennbar, dass der Verbindungsaufbau zu api.telegram.org fehlschlägt (timeout)?

...weil ich anfangs immer SSL-Probleme hatte. Aber du hast Recht. Es war letztendlich meine Firewall / mein Virusscanner, der irgendwas erkannt haben will. Trotz Neustart ging es nicht. Ich habe ihn jetzt manuell deaktiviert und wieder aktiviert - geht wieder. Nichts weiteres verändert. Symantec... vielleicht hat er sich verschluckt.

Gruß
Spiff.