Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

Maista

Hallo Johannes,

hab gerade das neue PM vom GIT installiert.
Die Hilfe hatte ich in der Shell manuell erzeugt.
Dabei sah ich gerade eine Fehlermeldung in der Shell!?

root@RPi2:/opt/fhem# perl contrib/commandref_join.pl
EN FHEM/50_TelegramBot.pm: Unbalanced li (1, last line ok: 2129)

Bug oder feature?

Ich wollte nun probieren eine MP3-Datei zu übertragen , via "sendVoice".
Schneller als ich schauen konnte hatte sich FHEM beendet ;)

Hatte wohl auch keine Zeit mehr etwas ins Log zu schreiben.
Im Log sehe ich nun ein paar Einträge die aber vermutlich während der ersten Versuche als der Pfad noch nicht
gestimmt hatte, erzeugt wurden.

Zitat
2015.12.26 13:05:37 1: PERL WARNING: Use of uninitialized value $args[0] in pattern match (m//) at ./FHEM/50_TelegramBot.pm line 345.
2015.12.26 13:05:37 1: PERL WARNING: Use of uninitialized value $msg in pattern match (m//) at ./FHEM/50_TelegramBot.pm line 375.
2015.12.26 13:05:37 1: PERL WARNING: Use of uninitialized value $msg in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 1033.
2015.12.26 13:05:37 1: PERL WARNING: Use of uninitialized value $msg in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 1097.
2015.12.26 13:05:37 1: PERL WARNING: Use of uninitialized value $msg in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 1102.
2015.12.26 13:05:37 1: PERL WARNING: Use of uninitialized value $_[0] in substitution (s///) at /usr/share/perl/5.14/File/Basename.pm line 341.
fileparse(): need a valid pathname at ./FHEM/50_TelegramBot.pm line 1166

Kommt vermutlich durch den Fehlerhaften Link?!

Edit:
Hab nun per sendVoice und sendMedia jeweils die MP3 übertragen bekommen.
Diesmal keine Probleme oder abstürze wie hier noch vor dem Edit zu lesen war.

Beim übertragen via sendMedia wird im Windows-TG oben eine Anzeige geöffnet mit der man das MP3
abspielen kann.
Bei sendVoice öffnet sich das bekannte Feld im TG.

Gruss Gerd

viegener

OK Danke für die Rückmeldung und die Tests.

Die Doku habe ich korrigiert und auch die Fehlerbehandlung bei set Kommandos ist verbessert. Neue Version ist in github.

Das unterschiedliche Verhalten bei sendVoice und sendMedia ist so in Telegram vorgesehen. sendMedia ist grundsätzlich für beliebige Mediendateien und soll sich laut Telegram auch anders verhalten.

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

Maista

Hallo Johannes

kam keine Meldung mehr in der Bash.

Mehr konnte ich bisher nicht fest stellen.

Bin gerade am Versuchen per TG Frostmeldungen zu bekommen.
DOIF machts möglich. Ob es tatsächlich funktioniert wird sich noch zeigen.
Sind schon bei 0.5°C.

Edit:

Es klappt.

Zitat❄️Frostwarnung - Glättegefahr 0.9 °C & 0.125 °C❄️

Wers probieren will, unter http://forum.fhem.de/index.php/topic,41526.msg337669.html#msg337669
wurde darüber Diskutiert. Ich habe das letzte Beispiel versucht.

Die (Deutsche-)Commandref von DOIF enthält viele Beispiele dazu.

Ob das so perfekt ist, weis ich nicht. Kann man sicher verbessern. Es tut soweit, und das ist auch gut so  :)
Es gibt zwei Stufen, eine bei 4°C und die zweite bei 1°C. Irgend wie muss man das ja testen.

##Frostwarner <4 Grad
define Frost dummy
attr Frost event-on-change-reading state
define doif_Frostwarner DOIF ([OWX_26_A2D984000007:temperature] <4)(set Frost on) DOELSEIF ([OWX_26_A2D984000007:temperature] >4) (set Frost off)
define Frost_TG notify Frost:on set myTgBot msg ❄Frostwarnung - Glättegefahr [OWX_26_A2D984000007:temperature] °C / [OWX_28_FF313C4E0400:temperature] °C❄
attr Frost_TG room Ereignisse

##Frostwarner <1 Grad
define Frost_1 dummy
attr Frost_1 event-on-change-reading state
define Frostwarner_1 DOIF ([OWX_26_A2D984000007:temperature] <1)(set Frost_1 on) DOELSEIF ([OWX_26_A2D984000007:temperature] >4) (set Frost_1 off)
define Frost_TG_1 notify Frost_1:on set myTgBot msg ❄Frostwarnung - Glättegefahr [OWX_26_A2D984000007:temperature] °C / [OWX_28_FF313C4E0400:temperature] °C❄
attr Frost_TG_1 room Ereignisse



Gerd

speex

Hallöchen alle zusammen, hätte mal ne frage zum AllowUnknownContacts-Attribut wenn ich dieses auf 0 setze dann kann ich auch nicht mehr an das System schreiben, bei mir sind zB. bei cmdRestrictedPeer nur die ID eingetragen.

Im contacts reading jedoch ID:Vorname: hab das auch probiert mal bei cmdRestrictedPeer ähnlich einzutragen das hat aber nichts gebracht zumal ich nicht mal weiss ob es überhaupt damit zusammenhängt...

Jetzt meine Frage ist das verhalten des Attributs allowUnknownContacts genauso gewollt oder funktioniert hier in meinem Fall etwas nicht so richtig?

Bisher konnte ich noch nicht beobachten das ich von fremden nachrichten bekommen habe kann es allerdings auch nicht ausschliessen wobei in meinem Contacts reading nur ich auftauche was ja schonmal für sich spricht oder? Desweiteren wollte ich einfach nur eine weitere Sicherung für den fall der fälle ziehen, meint ihr unsinn oder grundsätzlich kein problem?

LG

viegener

@speex: Nein Du hattest völlig Recht, da gab es ein Problem. Ist im github gefixt. In der Version sollte allowunknowncontacts wieder korrekt funktionieren:
0 heisst es werden nur Meldungen von bekannten Kontakten angenommen
1 heisst unbekannte Kontakte werden hinzugefügt (zu Contacts) und die Messages werden angenommen (und in Readings gezeigt)

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

speex

Getestet, jetzt läuft es hier auch!

Vielen Dank für den schnellen fix. :)

ulli

Habe gerade das "allowunknowncontacts" nutzen wollen, musste aber feststellen das obwohl mein Kontakt schon im reading "Contacts" aufgelistet ist, trotzdem die  Nachrichten von diesem bei "allowunknowncontacts=0" ignoriert werden.
Gibt es da noch einen Bug?

viegener

Zitat von: ulli am 01 Januar 2016, 21:37:12
Habe gerade das "allowunknowncontacts" nutzen wollen, musste aber feststellen das obwohl mein Kontakt schon im reading "Contacts" aufgelistet ist, trotzdem die  Nachrichten von diesem bei "allowunknowncontacts=0" ignoriert werden.
Gibt es da noch einen Bug?

Hast Du das offizielle Modul über update oder das Modul aus github?
In github habe ich dazu einen Fix gemacht.

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

ulli

Dann kommt das Problem daher.
Ich habe es über update geholt, dann ist das noch nicht aktuell. Wann kommt es denn über FHEM rein?

viegener

Neue Version 1.3 - ist gerade ins SVN hochgeladen. Die neue Version kommt ab morgen über den update.

Änderungen
- Alias namen für Kommandos können vergeben werden
- Neue Readings auch für gesendete Nachrichten um Event-Regsitrierungen zu ermöglichen
- Medien (Audio, Video und auch Dokumente können verschickt werden) --> sendVoice, SendMedia
- Fix für allowunknowncontacts
- ...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

PeterS

Hallo viegener

Kann die contactlist eingefroren bzw. geschützt werden ?
Wenn das Attribut "allowUnknownContacts" auf 0 gesetzt wird, wird auch kein Feedback von den gelisteten Kontakten mehr akzeptiert ?!

Gruss Peter

viegener

Zitat von: PeterS am 02 Januar 2016, 10:37:44
Hallo viegener

Kann die contactlist eingefroren bzw. geschützt werden ?
Wenn das Attribut "allowUnknownContacts" auf 0 gesetzt wird, wird auch kein Feedback von den gelisteten Kontakten mehr akzeptiert ?!

Gruss Peter

Eigentlich soll allowunknowncontacts genau die kontaktlist "schützen". Das heisst wenn auf 0 gesetzt werden nur nachrichten von bekannten kontakten akzeptiert und die kontaktliste nicht mehr automatisch erweitert.

Es gab einen fehler darin, der im git schon vor einiger zeit behoben wurde, seit gestern ist er auch per update verfügbar. Bitte nochmals probieren mit der neuesten version, bei meinen tests ging es nach dem fix wieder korrekt.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

PeterS

Hi

Mit Rev 10324 funkioniert es auch bei mir  ;)

Danke und Gruss

Peter

viegener

Gut und Danke für die Bestätigung. Sorry für den Fehler,
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

UweH

Wenn ich die neue Version von 50_TelegramBot.pm installiere, bekomme ich nach dem reload folgende Meldung:
Too many arguments for main::TelegramBot_checkAllowedPeer at ./FHEM/50_TelegramBot.pm line 626, near "$mtext ) "
Too many arguments for main::TelegramBot_checkCmdKeyword at ./FHEM/50_TelegramBot.pm line 895, near "1 )"
Too many arguments for main::TelegramBot_ReadHandleCommand at ./FHEM/50_TelegramBot.pm line 897, near "$mtext )"
Too many arguments for main::TelegramBot_checkCmdKeyword at ./FHEM/50_TelegramBot.pm line 905, near "1 )"
Too many arguments for main::TelegramBot_checkCmdKeyword at ./FHEM/50_TelegramBot.pm line 915, near "0 )"
Too many arguments for main::TelegramBot_checkCmdKeyword at ./FHEM/50_TelegramBot.pm line 927, near "1 )"

und das DropDown-Feld ist wech...
Senden von Nachrichten und z.B. die Reaktion auf "/short" funktioniert aber.
Mache ich was falsch?

Danke und Gruß
Uwe