Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

Icebear

Hallo,

habe seit dem Update gestern folgene Fehlermeldung ..

fhem> list Icebearbot PollingLastError
Icebearbot           2017-01-22 16:54:14    Callback returned no valid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset.


Any Ideas ?
Raspberry PI mod B (Wheezy), Fhem 5.4, CUL868, CUL433 , RfxTrx, HM-USB-CFG2, Wlan, HomeEasy, IT, FS20, TFA, HomeMatic, Oregon Scientific, HMLand auf Fritzbox
Raspberry PI mod B (RaspBMC)

viegener

Zitat von: Icebear am 22 Januar 2017, 16:57:29
Hallo,

habe seit dem Update gestern folgene Fehlermeldung ..

fhem> list Icebearbot PollingLastError
Icebearbot           2017-01-22 16:54:14    Callback returned no valid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset.


Any Ideas ?

- Was meinst Du mit Update gestern (aus github oder über FHEM update)? - Die FHEM-Version hat sich seit Dezember nicht geändert
- Kommt die Meldung einmalig oder mehrfach (beim senden oder empfangen)?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

awex102

Hallo, super Modul.

Eine Einsteigerfrage:

- Wie frage ich per Telegram Client beim Bot am besten Readings und UserReadings von Devices ab? Über get komme ich an die Readings nicht ran und list ist zu ungenau, ich möchte ja den Wert eines einzelnen readings oder eines userradings.

Danke und Gruß


Icebear

Hi,
Fhem update ..
Lustigerweise antwortet er aber ....
Ka was da ls ist :-)


Gesendet von meinem E39 mit Tapatalk

Raspberry PI mod B (Wheezy), Fhem 5.4, CUL868, CUL433 , RfxTrx, HM-USB-CFG2, Wlan, HomeEasy, IT, FS20, TFA, HomeMatic, Oregon Scientific, HMLand auf Fritzbox
Raspberry PI mod B (RaspBMC)

Icebear

Zitat von: awex102 am 22 Januar 2017, 18:20:03
Hallo, super Modul.

Eine Einsteigerfrage:

- Wie frage ich per Telegram Client beim Bot am besten Readings und UserReadings von Devices ab? Über get komme ich an die Readings nicht ran und list ist zu ungenau, ich möchte ja den Wert eines einzelnen readings oder eines userradings.

Danke und Gruß
Hi.
Mit list device readingname kannst auch einzelreadings abfragen ..
Ansonsten ueber perl einen befehl bauen der dir das gewuenschte zusammenstellt ....
Hab das mit meinen FHTs so gemacht

Gesendet von meinem E39 mit Tapatalk

Raspberry PI mod B (Wheezy), Fhem 5.4, CUL868, CUL433 , RfxTrx, HM-USB-CFG2, Wlan, HomeEasy, IT, FS20, TFA, HomeMatic, Oregon Scientific, HMLand auf Fritzbox
Raspberry PI mod B (RaspBMC)

RomanticBoy83

Zitat... eine bewusste Entscheidung sein sollte einen Chat für TelegramBot-Kommandos freizugeben.
Das hast du doch auch genau so implementiert. Ohne das "attr cmdResponsChat 1" würde die Antwort nie im chat landen. Ist in meinem Empfinden doppelte Prüfung. Aber, ja es macht Sinn wenn es einen Chat geben soll in welchem keine Kommandos erlaubt wären in einem andern oder privat aber schon.

Nochmal Hutab vor dieser Implementierung hier.

viegener

Zitat von: RomanticBoy83 am 22 Januar 2017, 18:35:19
Das hast du doch auch genau so implementiert. Ohne das "attr cmdResponsChat 1" würde die Antwort nie im chat landen. Ist in meinem Empfinden doppelte Prüfung. Aber, ja es macht Sinn wenn es einen Chat geben soll in welchem keine Kommandos erlaubt wären in einem andern oder privat aber schon.

Nochmal Hutab vor dieser Implementierung hier.

Danke :)
Ja, genau das ist die Idee - es soll chats geben in denen Kommandos und deren Resultate erlaubt sind und "andere". Es ging aber auch darum, dass ich bei Öffnung nach aussen lieber eine doppelte Prüfung von Identifikationen machen will und bewusste Entscheidungen des Benutzers haben möchte.

Wenn ich früher daran gedacht hätte, so wäre das Setzen von cmdRestrictedPeer erzwungen, aber ich möchte ungern inkompatibel ändern
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: awex102 am 22 Januar 2017, 18:20:03
Hallo, super Modul.

Eine Einsteigerfrage:

- Wie frage ich per Telegram Client beim Bot am besten Readings und UserReadings von Devices ab? Über get komme ich an die Readings nicht ran und list ist zu ungenau, ich möchte ja den Wert eines einzelnen readings oder eines userradings.

Danke und Gruß

In set-Befehlen erlaubt FHEM (nicht spezifisch für telegram) das einfügen von Readings etc in den Argumenten. Also so etwas wie

set telegrambot msg Die Temperatur ist [temperaturdevice:temperaturreadingname] Grad

In der commandref zu FHEM findest du im set-Befehl mehr Informationen. In diesem Thread ist auch das eine oder andere Beispiel versteckt
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: Icebear am 22 Januar 2017, 18:25:57
Hi,
Fhem update ..
Lustigerweise antwortet er aber ....
Ka was da ls ist :-)


Wenn Du etwas mehr Infos (siehe Fragen oben) gibtst kann ich versuchen Dir zu helfen?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

sinus61

Zitat von: Icebear am 22 Januar 2017, 16:57:29

fhem> list Icebearbot PollingLastError
Icebearbot           2017-01-22 16:54:14    Callback returned no valid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset.


Bei mir auch. Das letzte FHEM update ist sicher 2 Wochen her, definierte Meldungen bekomme ich noch, aber Anfragen über den Telegram Client werden nicht beantwortet. Bin jetzt unterwegs und kann nicht viel mehr liefern, hab aber über andFhem die o.g. Fehlermeldung im Telegram Bot gesehen.

sinus61


PollingLastError

Callback returned no valid JSON: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "<html>\r\n<head><tit...") at ./FHEM/50_TelegramBot.pm line 1882.

sentMsgResult

Callback returned error:Bad Request: Can't parse message text: Can't find end of the entity starting at byte offset 492:


Die Fehler kommen wenn parseModeSend auf 1_Markdown steht.

micomat

Hallo zusammen,
ich habe ein DOIF, dass auf das Wort "Garage" hoert um mir dann zurueck zu geben ob diese offen oder zu ist:

(([telegrambot:"garage"]) or ([telegrambot:"Garage"]) and [?telegrambot:msgPeerId] =~ /*****/) (set telegrambot message Garagentor: [Garagentor:state])

Wenn ich jetzt aber ein telegram versende, wenn die Batterie im Garagentorsensor leer ist, nach dem Motto "Batterie Garagentor leer", dann bekomm eich eine Endlosschleife des telegrambot, da dieser auf das gesendete "Garage" genauso reagiert, wie auf das empfangene. Wie kann ich hier zwischen gesendet und empfangen unterscheiden?
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

viegener

Zitat von: sinus61 am 23 Januar 2017, 16:52:10

PollingLastError

Callback returned no valid JSON: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "<html>\r\n<head><tit...") at ./FHEM/50_TelegramBot.pm line 1882.

sentMsgResult

Callback returned error:Bad Request: Can't parse message text: Can't find end of the entity starting at byte offset 492:


Die Fehler kommen wenn parseModeSend auf 1_Markdown steht.

Das sind zwei ganz unterschiedliche Meldungen vielleicht kannst Du etwas mehr Informationen liefern?

1) Polling error
Normalerweise weist diese Fehler darauf hin, dass entweder die Server bei telegram überlastet sind oder ansonsten im Übertragungsweg ein Fehler auftritt. Denn hier kommt ja eine HTML-Seite zurück und nicht eine Antwort vom telegrambot API. Tritt das nur einmalig auf oder ständig?
Wie ist der Bot eingestellt?
- Hast Du einen Proxy im Netzwerk?

2) sentMsgResult
Hier ist die Frage was sendest Du - sind da Umlaute enthalten oder sonstige Steuerzeichen?
Wiederum passiert das nachvollziehbar bei einer bestimmten Message oder ohne Muster ...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Icebear

Hallo,
Ich habe seit heute nacht dblog laufen. Seit dem wird der telegrambot auch geloggt. Ich halts im auge da es im moment nicht vorkommt. Sollte es wieder vorkommen habe ich ja auch die meldungen davor/danach inklusiv empfangener/gesendeter sequenzen ....
Gruss aus Dinslaken

Gesendet von meinem E39 mit Tapatalk

Raspberry PI mod B (Wheezy), Fhem 5.4, CUL868, CUL433 , RfxTrx, HM-USB-CFG2, Wlan, HomeEasy, IT, FS20, TFA, HomeMatic, Oregon Scientific, HMLand auf Fritzbox
Raspberry PI mod B (RaspBMC)

viegener

Zitat von: micomat am 23 Januar 2017, 18:26:12
Hallo zusammen,
ich habe ein DOIF, dass auf das Wort "Garage" hoert um mir dann zurueck zu geben ob diese offen oder zu ist:

(([telegrambot:"garage"]) or ([telegrambot:"Garage"]) and [?telegrambot:msgPeerId] =~ /*****/) (set telegrambot message Garagentor: [Garagentor:state])

Wenn ich jetzt aber ein telegram versende, wenn die Batterie im Garagentorsensor leer ist, nach dem Motto "Batterie Garagentor leer", dann bekomm eich eine Endlosschleife des telegrambot, da dieser auf das gesendete "Garage" genauso reagiert, wie auf das empfangene. Wie kann ich hier zwischen gesendet und empfangen unterscheiden?

Ich bin jetzt nicht der DOIF-Experte, aber das telegramBot-Modul hat ja sehr verschiedene Readings, da kannst Du ja genauer in Deinem DOIF reagieren.

Generell die Frage, wären nicht die Favoriten geeignet um die Garagenabfrage direkt mit dem Modul zu machen?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können