FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: viegener am 20 Juni 2015, 18:59:41

Titel: Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 Juni 2015, 18:59:41
50_TelegramBot-Modu ist das "offizielle" Telegram-Modul, das direkt mit FHEM verteilt und aktualisiert wird. Es basiert auf dem Telegram-Bot API das über https angesprochen wird.

Historisch gibt es noch das 70_Telegram Modul basierend auf dem frei verfügbaren separaten telegram-cli. Dieses Modul wird nicht mehr weitergepfelgt und benötigt die separate Installation des telegram-cli systems (Linux)




TelegramBot - Benutzt das Telegram BOT API

telegramBot Modul für FHEM --> 50_TelegramBot.pm

Diese Modul erlaubt das Senden und Empfangen von Nachrichten über den telegram Messaging Dienst. --> https://telegram.org/ (https://telegram.org/).

Telegram clients (und auch deren Benutzung) sind frei und für sehr viele Plattformen erhältlich. Dazu gehören iOs, Android, Windows Phone, viele Desktop-Betriebssysteme und auch web browser. Hilfreich ist, dass auch mehrere parallel Verbindungen / Anmeldungen unterstützt werden. Ausserdem kann telegram auch Gruppenchats, Bilder, etc.

Dies umfasst Text und Bild-nachrichten sowie das Ausführen von Kommandos, die über telegram an fhem gesendet werden.
Ziel ist es über telegram mobil Benachrichtigungen, Alarmmeldung und Infos zu erhalten und auch Kommandos, und Aktionen zu senden.

Vergleich 50_TelegramBot vs. 70_Telegram
+ Es ist keine andere Software auf dem Server notwendig, das Modul sollte demnach auch auf anderer Hardware funktionieren können (insbesondere kein telegram-cli)
+ Es ist keine Rufnummer erforderlich für die Registrierung reicht die telegram BOT Registrierung wie hier beschrieben: https://core.telegram.org/bots (https://core.telegram.org/bots)
+ Es können Favoriten für Kommandos definiert werden
+ Gruppenchats werden unterstützt
- Es gibt keine secret chats (im BOT API nicht enthalten)

Hinweis:
o Das Attribut pollingTimeout muss auf einen Wert > 0 gesetzt sein, sonst wird nichts empfangen
o Ohne verändertes httputils-Modul (siehe Github) können Bilder nur bis zu einer Grösse von ca. 10-15kB übertragen werden (je nach Plattform)
o Bots können NICHT von sich beliebige telegram user kontaktieren, die erste Kommunikation muss immer von einem normalen Telegram-Benutzer gestartet werden




70_Telegram - Verwendet und erfordert ein installiertes telegram-cli (nur Linux)

Diese Modul wird nicht mehr weiterentwickelt

Erste Version eines moduls für das Empfangen und Senden von messages per Telegram:
https://telegram.org/ (https://telegram.org/)

Das 70_Telegram Modul basiert auf dem frei verfügbaren telegram-cli (inoffiziellen Linux command line client). Dieser ist hier verfügbar:
https://github.com/vysheng/tg (https://github.com/vysheng/tg). Bau und Betrieb des Clients hat bei mir sehr gut geklappt und der Client erscheint mir sehr stabil, denkbar wäre aber auch eine Umstellung auf das offizelle Telegram API.




Neueste Version für beide ist jetzt auch in Github zu finden:

https://github.com/viegener/Telegram-fhem (https://github.com/viegener/Telegram-fhem)
Beim Herunterladen aus github daraufachten, dass man die Datei "raw" (button "raw" in github) herunterlädt und nicht die HTML-Seite speichert.

Weitere Details zur Benutzung von Telegram sind in der jeweiligen Command-Doku enthalten.

Gruss,
Johannes

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 20 Juni 2015, 21:10:47
Hallo Johannes,

Klasse das Du das gemacht hast.  ;D
Ich suche schon die ganze Zeit eine Lösung welche auch beschrieben wird.

Ich habe auf meinem RPi aber noch die alte Version laufen.
Wollte ich erst nach dem kauf eines RPi2 alles neu aufsetzen.

Mal sehen wann ich das umgesetzt bekomme (viele Baustellen).

Danke !

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: igami am 20 Juni 2015, 21:15:07
Hallo Johannes,

interesse ist auf jeden Fall da.
Werde ich morgen mal testen.

Grüße
igami
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 Juni 2015, 21:38:13
Hallo Johannes,

Klasse das Du das gemacht hast.  ;D
Ich suche schon die ganze Zeit eine Lösung welche auch beschrieben wird.

Ich habe auf meinem RPi aber noch die alte Version laufen.
Wollte ich erst nach dem kauf eines RPi2 alles neu aufsetzen.

Mal sehen wann ich das umgesetzt bekomme (viele Baustellen).

Danke !

Gerd

Ich kenne die alte Version leider nicht, aber wenn diese per tcp erreichbar ist und auch Nachrichten empfängt sollte es gehen. Momentan wird quasi aus dem cli nur folgende Befehle verwendet:

- msg - sends a message to a peer
- main_session - sorgt dafür dass ankommende Nachrichten direkt ausgegeben werden (und damit vom Modul gelesen werden können)

Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 Juni 2015, 21:40:02
Hallo Johannes,

interesse ist auf jeden Fall da.
Werde ich morgen mal testen.

Grüße
igami

Ich bin schon auf Feedback gespannt. Bei Problemen einfach melden, die Tests waren bisher noch etwas rudimentär...

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 21 Juni 2015, 00:45:59
Hallo, melde auch Interesse an.

Werde so schnell wie möglich dein Modul mal testen. Berichte dann.

Kannst du vielleicht ein kurzes HowTo schreiben, was muss alles installiert werden und wie wird was definiert.

Grüße Marcel
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Juni 2015, 01:45:37
Kannst du vielleicht ein kurzes HowTo schreiben, was muss alles installiert werden und wie wird was definiert.


Also ein Teil des howtos ist natürlich in der Doku zum Modul enthalten, insbesondere was in fhem konfiguriert werden muss.

Wichtig ist aber die Vorbedingung, dass telegram-cli installiert sein muss (erfordert linux).

Also folgende Schritte aber nur Quick&Dirty, das kann dann noch weiter verfeinert werden.


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Juni 2015, 02:55:38
Habe eine leicht erweiterte Version 0.3 hochgeladen. Findet sich im ersten Post

Kurzer Changelog:
- Einige reimplementierung und Stabilisierung
- raw Command um direkt Befehle an telegram-cli zu sende
- GET msgById um einzelne messages abzurufen
- ReadFn um auch mehrere Mesages auf einmal sauber zu verarbeiten

Bitte diese Version verwenden.

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: igami am 21 Juni 2015, 10:01:32
Hallo Johannes,

habe nun alles soweit mit der Version 0.3 eingerichtet. Was ich bisher nur halb hinbekomme: Secret Chat
Habe im cli einen secret Chat erstellt, der dann da heißt !_Michael. Diesen kann ich auch unter defaultPeer eintragen und nachrichten verschicken, nur das empfangen klappt nicht.

Was mir nun noch fehlt, aber schon über raw geht

Sollte mir noch mehr auffallen werde ich mich melden. Erstmal vielen Dank für das Modul.

Grüße
igami
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Juni 2015, 16:01:58
Hallo Johannes,

habe nun alles soweit mit der Version 0.3 eingerichtet. Was ich bisher nur halb hinbekomme: Secret Chat
Habe im cli einen secret Chat erstellt, der dann da heißt !_Michael. Diesen kann ich auch unter defaultPeer eintragen und nachrichten verschicken, nur das empfangen klappt nicht.

Was mir nun noch fehlt, aber schon über raw geht
  • get contact_list
  • set add_contact
  • set create_secret_chat
  • set msg <contact> msg

Sollte mir noch mehr auffallen werde ich mich melden. Erstmal vielen Dank für das Modul.

Grüße
igami


Hi Igami,
das klingt schonmal sehr gut. Das man mit raw eigentlich alles machen kann, war mir gar nicht bewusst, denn eigentlich hatte ich es erstmal nur für Debugzwecke eingebaut.

ich habe bisher keine secret chats verwendet, für die Kommunikation mit fhem hat mir die Transportverschluesselung gereicht.
Ich werden selbst mal versuchen einen Secret chat aufzusetzen.

Kannst Du denn normale also nicht-End2End-verschluesselte Nachrichten empfangen?

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: igami am 21 Juni 2015, 16:37:39
Normale Chats klappen Problemlos, Verschlüsselt senden geht auch, nur empfangen wird nicht in den Readings, allerdings habe ich im internal
REMAINING NSWER 60 -5052882357861749739 [16:36] !_Michael »»» Test
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: gomezrr am 21 Juni 2015, 17:53:44
Telegram Modul. Sehr schön, werde ich auch testen
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 Juni 2015, 00:50:31
Normale Chats klappen Problemlos, Verschlüsselt senden geht auch, nur empfangen wird nicht in den Readings, allerdings habe ich im internal
REMAINING NSWER 60 -5052882357861749739 [16:36] !_Michael »»» Test

OK, das mit den secret chats ist nicht so super schön, da man leider nicht überprüfen kann, ob mit einem peer schon ein secret chat existiert (zumindest habe ich keinen weg gefunden bisher).

Ich habe trotzdem jetzmal Unterstützung für Secret chats eingebaut:
- Generell geht das Empfangen jetzt, denn die secret chats haben eine etwas andere Meldung, die ist jetzt auch unterstützt
- Statt einer msgId wird jetzt secret als id angezeigt (bei secret chats ist die id eine kryptische Zahl)
- über das attribut defaultSecret werden die Messages im message set sicher verschickt
- Dazu muss man einmal set secretChat ausführen (oder den secretChat vom Empfänger senden)

Die Version ist als 0.4 im ersten Post angehängt / Doku ist auch upgedated


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: tagedieb am 22 Juni 2015, 22:02:38
Hallo und Guten Abend
Ich wollte dieses vielversprechende Modul mal ausprobieren, doch es scheitert schon an der Erstellung das Devices Telegram  :'( - da ich mit meinem Anfängerwissen hier passen muss

ich habe etwas von einer DOKU gelesen, jedoch kann ich diese nicht finden   :'(
wo finde ich die Daten für den Hostnamen und den Port, welches  das  Modul erfordert?

Eine kleine Hilfestellung wäre nett

gruss tagedieb
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 Juni 2015, 22:36:44
Hallo und Guten Abend
Ich wollte dieses vielversprechende Modul mal ausprobieren, doch es scheitert schon an der Erstellung das Devices Telegram  :'( - da ich mit meinem Anfängerwissen hier passen muss

Hallo tagedieb,
Vorbedingung für den Betrieb des Moduls ist das Programm telegram-cli. Ich habe weiter oben im Thread ein sehr knappes howto zur Installation gemacht. Achtung diese erforder Unix/Linux als Betriebssystem.

ich habe etwas von einer DOKU gelesen, jedoch kann ich diese nicht finden   :'(

Die Doku ist wie bei anderen Modulen auch im Modul selbst enthalten. Und wird nach Installation des Moduls in FHEM in commandref abgelegt (Englisch) wenn man folgenden Befehl im Wurzelverzeichnis von fhem ausführt. Näheres dazu findet sich auch im wiki

perl contrib/commandref_join.pl
wo finde ich die Daten für den Hostnamen und den Port, welches  das  Modul erfordert?


Wie gesagt, es wird telegram-cli benötigt und hostname muss dann von dem Rechner angegeben werden auf dem telegram-cli laeuft. Den Portnamen gibt man beim Start von telegram-cli als Parameter an und diesen muss man dann hier angeben.

Wenn telegram-cli auf demselben Rechner wie fhem läuft reicht nur der Port.

Aber wie gesagt das ist auch in der Doku / commandref enthalten

Hoffe geholfen zu haben,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: tagedieb am 23 Juni 2015, 07:32:03
Guten morgen viegener

Vielen Dank für deine Zeilen  -der Hinweis
Zitat
Wenn telegram-cli auf demselben Rechner wie fhem läuft reicht nur der Port.
brachte den erwünschten Erfolg  :-)

- die Installation der notwendigen Programme hatte ich bereits nach deiner Beschreibung erfolgreich durchgeführt - das Programm funktionierte auch auf der Konsole vom Cubi, auf welchen auch mein FHEM läuft

....da ich das Modul nicht installiert bekam - habe ich auch die Doku nicht gefunden :-[

Ich wünsche einen schönen Tag

gruss Tagedieb
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 Juni 2015, 14:59:51
Vielen Dank für deine Zeilen  -der Hinweis brachte den erwünschten Erfolg  :-)


Schön! Lass mich wissen, wenn es Probleme oder Wünsche gibt!
Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Juni 2015, 16:55:10
Frage an diejenigen, die es bereits ausprobiert haben, benutzt ihr separate ids für das Modul oder schon vorhandene, die auch auf anderen Geräten eingesetzt werden?

Hintergrund:
- Für die Funktionalität auch Nachrichten zu verarbeiten, die ankamen während das Modul/telegram-cli offline war, müsste man den Status Read/unRead verwenden, dieser funktioniert aber wohl nur, wenn Nachrichten nicht auch noch woanders gelesen werden.
- Ähnliches gilt übrigens auch für Kontakte...

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: igami am 25 Juni 2015, 18:03:03
Frage an diejenigen, die es bereits ausprobiert haben, benutzt ihr separate ids für das Modul oder schon vorhandene, die auch auf anderen Geräten eingesetzt werden?
Ich benutze meine Festnetznummer.

Grüße
igami
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 26 Juni 2015, 01:27:11
Ich benutze meine Festnetznummer.


Gute Idee, das hatte ich schon wieder verdrängt, dass man den Aktivierungscode ja auch per Anruf erhalten kann...

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 Juni 2015, 01:17:30
Ich habe gerade nochmal eine neue Version im ersten Post hinterlegt.
Dort habe ich eine neue Funktion sendPhoto zu den set commands hinzugefügt.

Das kann auch verwendet werden, um Status-Informationen oder auch Sicherheitskamera oder webCam-Bilder zu senden.
Telegram erlaubt auch eine Bildunterschrift, um zum Beispiel einen Kameranamen oder/und Zeitangabe mitzusenden.

Ich habe selbst nur mit png-Dateien getestet, es sind aber wohl auch andere Grafikformate unterstützt.

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 02 Juli 2015, 19:56:29
Hallo Johannes

der RPi 2 läuft nun. Nach dem gestern der erste Versuch TG zu installieren nicht funktionieren wollte,
habe ich die Installation nach http://www.emmeshop.eu/blog/?q=node/44 (http://www.emmeshop.eu/blog/?q=node/44) durchgeführt.

Musste wie von Dir beschrieben dann mit
Zitat
./configure --disable-python
ausführen.

Dann hieß es warten....

Nun ist TG erst einmal installiert.

Je nach Zeit folgt dann FHEM.

Danke nochmals für das Modul.

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 Juli 2015, 00:44:18
Gern geschehen.

Ich habe jetzt einige Zeit das telegram-cli verfolgt und der Autor pflegt das Repository aktiv, so dass heir auch mit Korrekturen und Verbesserungen zu rechnen ist. Momentan erscheint mir die Funktionalität aber sehr gut abgedeckt und lässt sich ja über den raw Befehl auch von fhem benutzen. Wenn es bestimmte Operationen gibt, die Sinn machen füge ich die auch noch hinzu.

Gruss,
Johannes

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 08 Juli 2015, 00:38:11
Ich habe heute mal eine fhemwiki-Seite für Telegram erstellt:

http://www.fhemwiki.de/wiki/Telegram (http://www.fhemwiki.de/wiki/Telegram)

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 09 Juli 2015, 22:14:36
Hallo Johannes,

so nach ein paar Schwierigkeiten und etwas Zeit heute Abend, habe ich FHEM auf dem neuen RPi2 installiert.

Telegram-Cli lies sich wie beschrieben starten.
Ich kann nun an User Nachrichten schicken.

Aber zu mehr hat es bisher nicht gereicht.

Schön wäre es hier zu lesen was den die einzelnen Nutzer damit anstellen?!
Beispiele würden das ganze abrunden so das man als DAU weiter kommt  :'(

Kann ich/wie kann ich z.B. Sensordaten abfragen?

Gruss Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 12 Juli 2015, 16:47:51
Ich habe gerade eine neue Version abgeschlossen, die das direkte Reagieren auf Kommandos erlaubt.

Idee: Man definiert einen Präfix (z.b. "ok fhem") über das Attribute cmdKeyword und wenn man eine Message mit diesem Anfang an fhem schickt, wird der Rest der Nachricht also Kommando in fhem ausgeführt. Dazu kann man noch als Einschränkungen einen contact / peer definieren über das Attribut cmdRestrictedPeer. Dann kann nur dieser Befehle senden.
Desweiteren kann man Kommandos auf trigger einschränken, über das Attribut cmdTriggerOnly, so dass nur trigger und keine generellen Befehle möglich sind.

@Gerd: Ich habe in der Doku ein Beispiel für die Verwendung der neuen Kommandofunktionalität bei den Attributen beschrieben.

Die neue Version ist im ersten Post angehängt und findet sich auch in github

Ach so: Ich habe auch noch etwas an der Stabilität der Bearbeitung von eingehenden Nachrichten gearbeitet, es werden nun alle eingehenden Meldungen direkt verarbeitet und es wird auch nichts mehr verschluckt.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 12 Juli 2015, 16:59:39
Aber zu mehr hat es bisher nicht gereicht.

Schön wäre es hier zu lesen was den die einzelnen Nutzer damit anstellen?!
Beispiele würden das ganze abrunden so das man als DAU weiter kommt  :'(

Kann ich/wie kann ich z.B. Sensordaten abfragen?


Hier mal ein einfaches Beispiel für Benachrichtigungen bei offenem Fenster

define alarm_window DOIF ( ([somekeymatic:state] =~ /^locked/) and ([somewindow:state] =~ "/^open$/" ) ) ( set tele message "ACHTUNG: somewindow ist noch offen"  )
Ich verwende so etwas, um direkt beim Abschliessen benachrichtigt zu werden, wenn noch ein Fenster im Erdgeschoss geöffnet ist.
Analog kann man natürlich auch über angeschaltete Lampen oder ähnliches benachrichtigen.

Da die DOIF-Ausdrücke schnell relativ unhandlich werden, verwende ich bei solchen Dingen lieber eigene Perl-Routinen in 99-myUtils. Für so etwas wäre es eigentlich schön, wenn es ein graphisces DOIF-Tool geben würde, aber das ist sicher ein ganz anderes Thema.

@All: Was machen denn andere damit?

Johannes

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: hexenmeister am 12 Juli 2015, 21:52:41
Da die DOIF-Ausdrücke schnell relativ unhandlich werden, verwende ich bei solchen Dingen lieber eigene Perl-Routinen in 99-myUtils.
Sehe ich auch so, die komplexere DOIF-Ausdrücke sind schwer zu schreiben und nach einer Weile kaum möglich zu überblicken. Daher verwende ich auch überall eher Perl. Für kleinere Sache sind DOIF dagegen recht praktisch.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: juergen012 am 13 Juli 2015, 18:39:17
Hallo, erstmal vielen Dank für das tolle Modul. Ich kämpfe jetzt schon eine ganze Weile damit. Vom Terminal kann ich Nachrichten versenden. Klappt einwandfrei. Nur wenn ich die telegram-cli im Hintergrund ausführen möchte, um mit 70_Telegram darauf zuzugreifen, erhalte ich folgende Nachricht:
change_user_group: can't find the user telegramd to switch to. Ich habe die telegram_cli auf einem 2. Raspberry laufen. Bisher habe ich noch keine Verbindung aus fhem bekommen..Was mache ich falsch???
Beste Grüße Jürgen

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 14 Juli 2015, 00:05:35
Hallo, erstmal vielen Dank für das tolle Modul. Ich kämpfe jetzt schon eine ganze Weile damit. Vom Terminal kann ich Nachrichten versenden. Klappt einwandfrei. Nur wenn ich die telegram-cli im Hintergrund ausführen möchte, um mit 70_Telegram darauf zuzugreifen, erhalte ich folgende Nachricht:
change_user_group: can't find the user telegramd to switch to. Ich habe die telegram_cli auf einem 2. Raspberry laufen. Bisher habe ich noch keine Verbindung aus fhem bekommen..Was mache ich falsch???
Beste Grüße Jürgen

Hallo Juergen,
ich vermute Du startest telegram-cli mit der Option -U telegramdDurch diese Option soll telegram-cli unter dem Benutzer telegramd laufen, die Meldung deutet darauf hin, dass dieser Benutzer nicht existiert. Testweise kannst Du diese Option ja mal weglassen (oder entsprechend im Startscript entfernen). Alternativ kannst Du auch per

sudo adduser telegramdden Benutzer hinzufügen, allerdings sind dann natürlich auch die Pfade (insbesondere wenn Sie von home ausgehen unterschiedlich).

Ich lasse mein telegram-cli unter dem Benutzer von fhem laufen, allerdings ist das bei mir auf demselben raspberry wie fhem selbst.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: juergen012 am 14 Juli 2015, 09:16:28
Hallo Johannes, danke für die Antwort.
Mein Startscript sieht so aus:

 /root/tg/bin/telegram-cli -k /root/tg/tg-server.pub -W -C -d -P 12345 --accept-any-tcp -L telegram.log -l 20 -N -R -vvv &

Dort habe ich die Option -U nicht angegeben. Wenn ich mit  /root/tg/bin/telegram-cli -k /root/tg/tg-server.pub starte, kann ich auf der Konsole Nachrichten versenden. Den user telegramd hatte ich auch schon angelegt..ohne Erfolg. Der Fehler besteht.
Beste Grüße Jürgen

Edit: Jetzt läuft es..Habe als root installiert. Jetzt erneut ais user pi..und jetzt funzt es!! Vielen DanK!!

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 14 Juli 2015, 13:35:05
Hallo Juergen,
schön das es geht.
Ich habe inzwischen nachgeschaut, telegram-cli verwendet standardmässig den Benutzer telegramd wenn es als root läuft (uid 0), das muss ich wohl noch in die Doku und Hinweise mitaufnehmen.
Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: juergen012 am 14 Juli 2015, 17:24:37
Hallo nochmal, Telegram läuft super mit Fhem. Werde jetzt die anderen Pushdienste durch Telegram ersetzen. Auch der Empfang von Nachrichten klappt super. Mit der Einrichtung des prevMsgPeer hatte ich noch leichte Probleme, aber das läuft jetzt auch. Ich hatte ihn zuerst mit underscore (Vorname_Nachname) eingetragen. Er muss aber ohne _ (Vorname Nachname) eingetragen werden. Dann klappt es.
Beste Grüße und nochmals vielen Dank!! Jürgen
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 16 Juli 2015, 18:53:12
Hallo Johannes,

ich habe die letzte Zeit kaum Zeit gefunden um mich weiter mit FHEM zu beschäftigen  :-[

Am 20.7 gehts nun erst mal in den Urlaub für 2 Wochen.

Danach hoffe ich, das ich weiter machen kann.

Danke und bis dahin..

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 Juli 2015, 23:15:24
Ich habe heute nochmal die Read-Funktion überarbeitet.

Alle eingehenden Meldungen werden nun bearbeitet auch wenn sie eingehen während gerade neue Nachrichten eintreffen.
Im wesentlich also ein Bugfix-Release.

Es findet sich wieder im ersten Post.

Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: HolyMoly am 23 Juli 2015, 09:08:23
Danke dir für dein tolles Modul Johannes,
das ist der Sargnagel für Pushover, Pushbullet und WhatsApp.
Wäre toll wenn das Modul bald in den offiziellen Repo aufgenommen würde  8)

Noch ein tipp für die Leute die telegram-cli bisher manuell starten, hier ist ein einfacheres script um es als service zu starten:

https://github.com/vysheng/tg/issues/373#issuecomment-75162998
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 Juli 2015, 00:57:21
Danke dir für dein tolles Modul Johannes,
das ist der Sargnagel für Pushover, Pushbullet und WhatsApp.
Wäre toll wenn das Modul bald in den offiziellen Repo aufgenommen würde  8)


Danke für die Blumen! Gern geschehen.

Ja mit den Modalitäten für das offizielle Repo muss ich micher erst noch befassen. Wenn es genügend Interesse gibt, kann ich das aber angehen.


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: berlineraxel am 27 Juli 2015, 17:25:26
Auch ich bin begeistert. Telegram ist eigentlich die optimale Verbindung von Fhem zur Außenwelt !!!
Obwohl die Installation nicht ganz einfach ist (Raspberry).
Ich habe eine Festnetznummer mit telegram Account und ein Account fürs Handy.
Mit secretChat bekomme ich nun verschiedene Meldungen (Anrufe, Schalungen...) und auch steuern kann ich eigentlich auch alles.
Notify zum Schalten:
define tSCHALTEN notify Telegram:msgText.* $EVTPART1 $EVTPART2 $EVTPART3
Beispiel: set Lampe on

Zumindest ging es schon mal;)
Im Moment habe ich ein Problem:
   STATE opened
   defaultSecret 1
...

set Telegram message Hallo

FAIL: 38: can not parse arg #1

Mir ist nicht ganz klar in welcher Reihenfolge die Clients gestartet werden müssen.
Muss z.B. nach einem Raspberry reboot auf dem Handy ein neuer Geheimer Chat gestartet werden ?

Kann in Fhem ein "neuer" Chat erzwungen werden ?
(set Telegram connect???)


Vielen Dank schon mal für Infos

Axel
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 Juli 2015, 23:05:45
Auch ich bin begeistert. Telegram ist eigentlich die optimale Verbindung von Fhem zur Außenwelt !!!
Obwohl die Installation nicht ganz einfach ist (Raspberry).
Ich habe eine Festnetznummer mit telegram Account und ein Account fürs Handy.
Mit secretChat bekomme ich nun verschiedene Meldungen (Anrufe, Schalungen...) und auch steuern kann ich eigentlich auch alles.
Notify zum Schalten:
define tSCHALTEN notify Telegram:msgText.* $EVTPART1 $EVTPART2 $EVTPART3
Beispiel: set Lampe on

Zumindest ging es schon mal;)
Im Moment habe ich ein Problem:
   STATE opened
   defaultSecret 1
...

set Telegram message Hallo

FAIL: 38: can not parse arg #1

Mir ist nicht ganz klar in welcher Reihenfolge die Clients gestartet werden müssen.
Muss z.B. nach einem Raspberry reboot auf dem Handy ein neuer Geheimer Chat gestartet werden ?

Kann in Fhem ein "neuer" Chat erzwungen werden ?
(set Telegram connect???)


Vielen Dank schon mal für Infos

Axel

Hallo Axel,
Danke erstmal und Ja ich sehe auch, dass telegram aus meiner Sicht eine sehr gute Möglichkeit um Benachrichtigungen oder Kommandos nach/von aussen zu erlauben ohne gleich einen direkten Zugang von aussen zu ermöglichen oder seine Daten freizugeben.

Die Kommandosteuerung ist mit der aktuellen Version viel einfacher, denn man kann nun einfach ein Schlüsselwort (Attribut: cmdKeyword) zu definieren, mit dem eine Message anfangen soll. Dann wird automatisch das entsprechende Kommando ausgelöst. Siehe dazu auch weitere einschränkende Attribute.

Ich verwende die secret chat Funktion selber nicht im Produktivbetrieb, da ich meine Chats auf mehreren Devices nutze und das ja mit secret chats nicht geht. Ich versuche mal Deine Fragen zu beantworten:

Bezueglich Reihenfolge: Eigentlich gibt es keine feste Reihenfolge sowohl wenn telegram-cli zuerst gestartet wird oder auch FHEM zuerste versucht den Kontakt aufzubauen sollte es funktionieren. Der STATE "opened" zeigt üblicherweise an, dass eine korrekte Verbindung zwischen FHEM und telegram-cli besteht.

Bezueglich neuen Chat anlegen: Grundsätzlich sind secret chats in telegram nicht auf dem server gespeichert, damit muss der secret chat nach einem Restart neu angelegt werden. Dazu gibt es ja den set-Befehl:
set <devicename> secretChat
Der secret chat kann aber erst benutzt werden, wenn die Gegenstelle diesen bestätigt hat.

Problem ist, dass telegram-cli wenn man mehrfach dieses Kommando absendet neue Chats anlegt, die z.B: so heissen und entsprechend ausgegeben werden:

ANSWER 54
Secret chat !_Peter_Mustermann#2 updated access_hash

ANSWER 59
 Encrypted chat !_Peter_Mustermann#2 is now in wait state

In diesem Fall müsste für secret chats in FHEM der defaultPeer als
Peter_Mustermann#2eingetragen werden. Der nächste Secret Chat heisst dann
Peter_Mustermann#3und so weiter.

Jetzt nochmal zu Deinem Problem:

Die Fehlermeldung lässt darauf schliessen, dass das Attribute defaultPeer für telegram-cli nicht behandelt werden kann. Vielleicht kannst Du mal schauen, ob Dein Eintrag Leerzeichen enthält und diese durch _ (Unterstrich) ersetzen. Ich nehme aber an, es hängt mit den anderen Punkten zu sammen, dass zuerst ein neuer secret chat angelegt werden muss und deshalb der defaultPeer (arg #1) nicht passt.

Ich habe bisher leider keine Möglichkeit gefunden abzufragen, ob es einen aktiven secret chat gibt und diesen dann bei Bedarf zu eröffnen. Auch der Status des chats (waiting / ok) ist leider nicht überprüfbar im client.

Gruss,
Johannes











Ich habe heute abend mal weiter mit secret chats experimentiert und dabei festgestellt, dass es ein paar Ungereimtheiten im telegram-cli gibt.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: HolyMoly am 29 Juli 2015, 12:50:12
Hallo Johannes,

kann irgendwie nicht an non-defaultPeers versenden.

set telegram messageTo xxx_xxx Hallo Welt
FAIL: 38: can not parse arg #1

aber in der cli ist der Kontakt angelegt und versenden geht mit
msg xxx_xxx Hallo Welt
geht wunderbar. Woran könnte das liegen?
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 29 Juli 2015, 15:28:12
Hallo Johannes,

kann irgendwie nicht an non-defaultPeers versenden.

set telegram messageTo xxx_xxx Hallo Welt
FAIL: 38: can not parse arg #1

aber in der cli ist der Kontakt angelegt und versenden geht mit
msg xxx_xxx Hallo Welt
geht wunderbar. Woran könnte das liegen?

Ich weiss das telegram-cli manchmal etwas kritisch ist beim Parsen von Kontaktnamen.

Kannst Du sagen ob der Kontaktname Sonderzeichen oder Umlaute enthält? Wenn ich recht weiss ist auch Gross- und Kleinschreibung signifikant.
Kannst Du mal die Ausgabe von folgendem Befehl überprüfen, ob der von dir verwendete Kontakt korrekt gelistet ist (allerdings ohne den Unetrstrich zwischen Vor- und Nachnamen)
set telegram raw contact_list

Ansonsten werde ich gerne heute abend nochmal übrprüfen, ob ich das Probelm nachstellen kann.
Gruss,
Johannes


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: co010 am 01 August 2015, 11:45:24
Hallo,

da ich erst anfange mit FHEM hätte ich folgende Frage zur Einbindung von Telegram in meinen FHEM Server auf meinen Pi mit FHEM,

-Ich habe bereits das Programm zum Senden und Empfangen von Nachrichten mit Telegram erfolgreich auf meinen Pi nach Anleitung hinbekommen,also ich kann Nachrichten Senden und Empfangen auf Putty.

Frage:
einloggen auf Putty mache ich mit
/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub     (Pfad für die tg-server.pub)
dann klappt der Nachrichtenversand ohne Probleme.
meinen Kontakt R._Muster hab ich angelegt,

wie muss ich jetzt das Modul-Telegram in FHEM integrieren ? ,und welche Attribute müssen noch gesetzt werden um mit FHEM zu kommunizieren.
In welchen Ordner muss die Datei 70_Telegram.pm hochgeladen werden.

Danke
mfg Co010
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 August 2015, 18:27:13
Hallo,

da ich erst anfange mit FHEM hätte ich folgende Frage zur Einbindung von Telegram in meinen FHEM Server auf meinen Pi mit FHEM,

-Ich habe bereits das Programm zum Senden und Empfangen von Nachrichten mit Telegram erfolgreich auf meinen Pi nach Anleitung hinbekommen,also ich kann Nachrichten Senden und Empfangen auf Putty.

Frage:
einloggen auf Putty mache ich mit
/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub     (Pfad für die tg-server.pub)
dann klappt der Nachrichtenversand ohne Probleme.
meinen Kontakt R._Muster hab ich angelegt,

wie muss ich jetzt das Modul-Telegram in FHEM integrieren ? ,und welche Attribute müssen noch gesetzt werden um mit FHEM zu kommunizieren.
In welchen Ordner muss die Datei 70_Telegram.pm hochgeladen werden.

Danke
mfg Co010

Wenn Du telegram-cli bei Dir starten kannst müsstest Du das Kommando als "daemon", also im Hintergrund starten, so dass es läuft auch wenn Du nicht über putty verbunden bist und fhem sich damit verknüpfen kann.

Ich nehme an, Dein fhem läuft auf demselben pi wenn ich Deine Beschreibung richtig verstehe:

Analog zum Komando in der Doku müsstest Du etwa folgendes Kommando eingeben:

/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -C -d -P <portnumber> -L <logfile> -l 20 -N -R &
Bei portnumber solltest Du eine Zahl z.B. zwischen 10000 und 30000 verwenden (z.B. 11111). Diese muss natürlich ohne < > eingefügt werden.

Bei logfile z.B. den Namen einer Datei in /home/pi in der Du die logs von telegram-cli ablegen willst. Also z.B. /home/pi/telegram.log
Wenn diese Datei zu gross wird, kannst Du statt -l 20 auch einen kleinen Wert verwenden z.B. -l 2
Damit kannst Du dann in fhem einen telegram device anlegen (hierbei den oben gewählten port verwenden).

Dieses Kommando muss bei jedem Neustart des pi (nicht von fhem) wieder ausgeführt werden, damit telegram funktioniert.

Ich hoffe das hilft und passt jetzt auch zu Deiner Umgebung,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: co010 am 01 August 2015, 20:51:52
Hallo,

ich habe jetzt diese Zeile in der Putty Konsole eingetragen...
/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -C -d -P 11111 -L /home/pi/telegram.log -l 10 -N -R &

den Port habe ich auf 11111 gesetzt
dann habe ich den Pi neu gestartet
als Device hab ich dieses eingetragen
define Telegram Telegram raspberrypi:11111      -das Device wurde angelegt aber es meldet   -STATE   disconnected.

was mache da falsch ?    Sorry-Anfänger halt.

mfg co010
 





Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: DanielK am 01 August 2015, 20:57:22
Hallo co010,

wie Johannes im Post über Dir geschrieben hat, muß der Befehl nach einem Neustart wieder eingegeben werden. Sonst läuft Telegram nicht...
Gruß Daniel
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: co010 am 01 August 2015, 21:43:51
ja Ok,

eingefügt in Putty:           /home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -C -d -P 12350 -L /home/pi/telegram.log -l 10 -N -R &

das ist der Inhalt der Telegram.log

Telegram-cli version 1.3.3, Copyright (C) 2013-2015 Vitaly Valtman
Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show_license' for details.
Telegram-cli uses libtgl version 2.0.3
Telegram-cli includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit. (http://www.openssl.org/)
Telegram-cli uses libpython version 2.7.3
I: config dir=[/home/pi/.telegram-cli]
[warn] Epoll ADD(1) on fd 0 failed.  Old events were 0; read change was 1 (add); write change was 0 (none): Operation not permitted

eingefügt in FHEM:       define Telegram Telegram raspberrypi:12350

aber immer noch STATE disconnected

co010
 
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 August 2015, 22:49:09
ja Ok,

eingefügt in Putty:           /home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -C -d -P 12350 -L /home/pi/telegram.log -l 10 -N -R &

das ist der Inhalt der Telegram.log

Telegram-cli version 1.3.3, Copyright (C) 2013-2015 Vitaly Valtman
Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show_license' for details.
Telegram-cli uses libtgl version 2.0.3
Telegram-cli includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit. (http://www.openssl.org/)
Telegram-cli uses libpython version 2.7.3
I: config dir=[/home/pi/.telegram-cli]
[warn] Epoll ADD(1) on fd 0 failed.  Old events were 0; read change was 1 (add); write change was 0 (none): Operation not permitted

eingefügt in FHEM:       define Telegram Telegram raspberrypi:12350

aber immer noch STATE disconnected

co010

Der logfile sieht an sich ok aus, die Warnung habe ich auch in meinem logfile gefunden. Vielleicht hat es einfach etwas gedauert bis sich fhem verbindet, mach doch im Browser nochmals einen Refresh der Seite?

Ansonsten:

Wenn telegram-cli und fhem auf demselben Rechner laufen, dann versuche mal
define Telegram Telegram localhost:12350
Wenn das nicht geht versuche mal zu überprüfen, ob telegram läuf. in Putty:
ps aux | grep teleAlles in einer Zeile!
Dann müssten 2 Prozesse auf gelistet werden, einer ist das obige Kommando und einer telegram-cli. Wenn nur ein Prozess kommt, läuft telegram-cli nicht.

Sollte es laufen, kannst Du versuchen Dich über putty statt mit port 12350 auf dem raspberrypi zu verbinden (also in putty host raspberrypi port 12350 type telnet). Dann müsstest Du in der Lage sein z.B. mit help oder anderen Kommandos Antowrten von dem laufenden telegram-cli zu erhalten.

Ausserdem kannst Du natürlich Deinem telegram account auf dem pi mal eine Nachricht schicken und sehen ob der Logfile wächst...



Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: co010 am 02 August 2015, 11:26:25
Hallo,

ich habe es hinbekommen es geht ,eingetragen hab ich jetzt   -localhost:1230  (port nur 4 Stellen) nicht 5stellig wie in der Doku.

Ich habe mal noch die Telegram Redame.md Übersetzt im Anhang

Danke Johannes für deine Hilfe.

mfg co010

Telegram Redame.md

Telegramm

Das Telegramm-Modul ermöglicht die Nutzung des Instant Messaging-Dienst Telegramm von FHEM in beide Richtungen (Senden und Empfangen). So können FHEM Telegramm für Mitteilungen von Staaten oder Warnungen verwenden, können allgemeine Informationen und Aktionen ausgelöst werden.

Voraussetzung ist die Installation des Telegramm-cli (für UNIX) finden Sie hier https://github.com/vysheng/tg Telegramm-cli Bedürfnisse konfiguriert und für die Verwendung mit Telegramm registriert werden. Am besten ist die Verwendung eines dedizierten Telefonnummer für Telegramm, so dass Nachrichten an und von einem Account verschickt und lesen Status der Nachrichten verwaltet werden wird. Telegramm-cli muss als Daemon auf einen TCP-Port für die Kommunikation mit FHEM aktivieren ausführen.

    Telegramm-cli -k <Pfad zur Schlüsseldatei z.B. tg-server.pub> -W -C -d -P <Portnummer> [--accept-any-tcp] -L <logfile> -l 20 -N -R &

    -C
        ERFORDERLICH: Farbausgabe zu deaktivieren, um Terminal Farbe Escape-Sequenzen in Reaktionen zu vermeiden. Ansonsten Parser auf diese versagt
    -d
        ERFORDERLICH: Laufen Telegramm-CLI als Daemon (von Klemme Hintergrundprozess entkoppelt)
    -k <Pfad zur Schlüsseldatei z.B. tg-server.pub>
        Pfad zur Schlüsseldatei für Telegramm-cli, in der Regel etwas wie tg-server.pub
    -L <Logfile>
        Geben Sie den Pfad zu der Protokolldatei für die Telegramm-cli. Dies ist besonders hilfreich für Debugging-Zwecken und in Verbindung mit dem specifed Protokollebene zB verwendet (L 20)
    -l <Protokollstufe>
        numerischen Protokollebene für die Ausgabe in Protokolldatei
    -N
        ERFORDERLICH: in der Lage sein mit msgids umzugehen
    -P <Portnummer>
        ERFORDERLICH: Portnummer auf dem der Dämon sein sollte hören zB 12345
    -R
        Readline deaktivieren, um zu vermeiden Logfile mit Bearbeitungssequenzen gefüllt
    -v
        Ausführlichere Nachrichten Nachrichten
    -W
        REQUIRED ?: erscheint notwendig, um sicherzustellen, die Kommunikation mit Telegramm-Server korrekt eingerichtet
    --accept-any-tcp
        Ermöglicht den Zugriff auf den Daemon auch von entfernten Maschinen. Dies ist nur der Telegramm-cli nicht auf demselben Host als FHEM laufenden Bedarf.
        ACHTUNG: Es gibt in der Regel keine zusätzlichen Sicherheitsanforderung zu Telegramm-CLI-Zugriff, also benutzen Sie dies mit Vorsicht!



Mehr Details zu den Befehlszeilenparameter von Telegramm-cli finden Sie hier: Laufen Telegramm CLI als Daemon, sondern starten Sie es noch manuell als Hintergrund-Daemon-Prozess. Telegramm-cli -k tg-server.pub -W -C -d -P 12345 --accept-any-tcp -L telegram.log -l 20 -N -R -vvv &

Das Telegramm Modul ermöglicht Empfang von (Text-) Nachrichten an jeden Peer (Telegramm user) und sendet Textnachrichten an die als Attribut festgelegten Standard Peer.



Einschränkungen und mögliche Erweiterungen
        Message-ID Handhabung ist derzeit noch nicht implementiert
        Dies bedeutet insbesondere, dass Nachrichten während der Ausfallzeit von Telegramm-cli und / oder FHEM empfangen werden nicht behandelt, wenn FHEM   und Telegramm-cli sind wieder online bekommen.
        Laufende Telegramm-cli als Daemon mit Unix-Sockets wird derzeit nicht unterstützt


    Definieren
        definieren <name> Telegramm [<Hostname>:] <port>

Definiert ein Telegramm Gerät entweder über die Angabe nur eine Portnummer oder remote auf einem anderen Host durch Angabe von Host und Portnummer durch Doppelpunkt getrennt lokal auf dem Server-Host ausgeführt FHEM. Beispiele:
            definieren user1 Telegramm 12345
            definieren Admin Telegramm myserver: 22222



    Einstellen
        set <name> <, was> [<value>]

        wobei <, was> ist eine der

        Nachricht <text>
        Sendet die angegebene Nachricht an den aktuell definierten Standard Peer-Benutzer
        messageTo <Peer> <text>
        Sendet die angegebene Nachricht zum gegebenen Peer. Peer muss ohne Leerzeichen oder andere Trennzeichen angegeben werden, sollte also Räume, die durch Unterstrich ersetzt werden (zB First_Last)
        raw <raw command>
        Sendet die angegebenen rohen Befehl an den Client
        sendPhoto <file> [<caption>]
        Sendet ein Foto auf den Standard Peer. Datei ist die Angabe eines Dateiname und Pfad, die lokal auf dem Verzeichnis, in dem Telegramm-cli Prozess gestartet ist. So könnte dies ein Weg auf dem Remote-Host, auf dem Telegramm-cli läuft und daher nicht lokal auf FHEM sein.


    Erhalten
        erhalten <name> <, was> [<value>]

        wobei <, was> ist eine der

        msgById <Nachrichten-ID>
        Ruft die Nachricht von der entsprechenden Meldung id identifed


    Attribute

        defaultPeer <name>
        Geben Sie Vorname Name des Standard-Peer für das Senden von Nachrichten verwendet werden. Der Peer sollte in Form eines firstname_lastname gegeben. Für scret Kommunikation wird das! _ Automatisch als Präfix setzen.
        defaultSecret
        Verwenden Sie geheime Chat für die Kommunikation mit defaultPeer. Einschränkung: Wenn kein Geheimnis, Chat mit dem entsprechenden Peer gestartet wurde, könnte Nachrichtens scheitern. (Siehe Satz secretChat)
        cmdKeyword <keyword>
        Geben Sie einen bestimmten Text, der gesendet werden soll, damit der Rest der Nachricht als ein Befehl ausgeführt braucht. Wenn also beispielsweise zu cmdKeyword ok FHEM Sie dann wird eine Nachricht mit dieser Zeichenfolge wird als FHEM Befehl ausgeführt werden (siehe auch cmdTriggerOnly).
        Beispielsweise eine Nachricht von ok FHEM attr Telegramm Raum IM würde den Befehl attr Telegramm Raum IM ausführen und stellen ein Gerät namens Telegramm in das Zimmer IM. Das Ergebnis der cmd wird immer als Nachricht an das defaultPeer geschickt
        cmdRestrictedPeer <Peername>
        Die Ausführung von Befehlen zu beschränken nur auf Nachrichten von der der angegebenen Peername (in Form von firstname_lastname angegeben) gesendet. Eine Meldung mit der cmd und Absender wird auf die Standard Peer bei einem anderen Benutzer gesendet versuchen, gesendeten Nachrichten
        cmdTriggerOnly <0 oder 1>
        Die Ausführung von Befehlen zu beschränken nur Auslösebefehl. Wenn dies attr ist (Wert 1) gesetzt, wird nur der Name des Auslösers hat sogar angegeben werden (dh ohne vorhergehenden Statement Trigger). Wenn also beispielsweise zu cmdKeyword ok FHEM gesetzt und cmdTriggerOnly gesetzt ist, wird eine Meldung von ok FHEM someMacro würde die FHEM Befehl Trigger someMacro auszuführen.
        lastMsgId <Nummer>
        Geben Sie die letzte Meldung von Telegramm bearbeitet.
        HINWEIS: Noch nicht behandelt
        wortreich


    Messwerte

        MsgID <text>
        Die ID der zuletzt empfangenen Nachricht wird in dieser Lese gespeichert. Für geheime Chats ein Wert von -1 wird gegeben werden, da die msgids von geheimen Botschaften sind nicht Teil der fortlaufenden Nummerierung
        msgPeer <text>
        Der Absender der zuletzt empfangenen Nachricht.
        msgText <text>
        Der zuletzt empfangene Nachrichtentext wird in diesem Lese gespeichert.
        prevMsgId <text>
        Die ID der vorletzte empfangene Nachricht wird in dieser Lese gespeichert.
        prevMsgPeer <text>
        Der Absender der vorletzten empfangenen Nachricht.
        prevMsgText <text>
        Der vorletzte empfangene Nachrichtentext wird in diesem Lese gespeichert.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 August 2015, 15:46:31
Hallo,

ich habe es hinbekommen es geht ,eingetragen hab ich jetzt   -localhost:1230  (port nur 4 Stellen) nicht 5stellig wie in der Doku.

Ich habe mal noch die Telegram Redame.md Übersetzt im Anhang

Danke Johannes für deine Hilfe.


Gern geschehen.

Ja, grundsätzlich muss der Port nicht 5-stellig sein, Port 1230 sollte auch kein Problem ergeben.
Wenn es bei Dir mit port 1230 läuft heisst das, dass auch in dem Kommando zum Start von telegram-cli -P 1230 als Parameter steht. Diese beiden Werte müssen identisch sein (Also Kommandozeile für Start von telegram-cli und define in fhem).

Gruss,
Johannes
 
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: co010 am 02 August 2015, 19:27:42
Hallo ,

ich hätte da mal noch 2 Fragen da jetzt das Modul-Telegram so gut läuft kann man ja so einiges damit machen,
1. wie müsste man in FHEM definieren wenn man eine Nachricht zum Pi schickt z.B. "Hoflicht an " das der entsprechende Aktor in FHEM eingeschaltet wird ?
2. gibt es auch eine Möglichkeit die Telegramm-CLI als Daemon automatisch zu Starten nach einen Stromausfall am Pi,also beim Neustart ?

mfg  co010
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: hexenmeister am 02 August 2015, 20:50:51
2. gibt es auch eine Möglichkeit die Telegramm-CLI als Daemon automatisch zu Starten nach einen Stromausfall am Pi,also beim Neustart ?
Sicher ;)

Zitat aus https://wiki.ubuntuusers.de/Dienste

Zitat
Eigenes Start-/Stop-Skript erstellen

Man kann natürlich eigene Start/Stop-Skripte erstellen. Dazu sollte man sich die bereits in /etc/init.d/ liegenden Skripte als Vorbild nehmen oder die offizielle Vorlage /etc/init.d/skeleton als Ausgangsbasis nutzen.

Wem die Start-/Stop-Skripte und die offizielle Vorlage zu komplex sind, der kann sich ein relativ einfaches Start-/Stop-Skript für fast jeden Zweck selbst schreiben. Man benötigt lediglich eine Datei, die auf folgendem Beispiel basiert:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          Was macht das Skript?
# Required-Start:   
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Kurze Beschreibung
# Description:       Längere Bechreibung
### END INIT INFO
# Author: Name <email@domain.tld>

# Aktionen
case "$1" in
    start)
        /opt/beispiel start
        ;;
    stop)
        /opt/beispiel stop
        ;;
    restart)
        /opt/beispiel restart
        ;;
esac

exit 0

Der Kommentar-Text im Kopfteil der Datei ist sehr wichtig und wird vom Befehl update-rc.d ausgewertet. Dieser Kommentar sollte angepasst, aber nicht gelöscht werden! Mehr zu korrekten LSB-InitSkripten findet man im Debian Wiki. Die Datei speichert man z. B. in /etc/init.d/beispiel und macht sie danach per

sudo chmod 755 /etc/init.d/beispiel

ausführbar. Anschließend fügt man das Skript mit dem Befehl update-rc.d in die entsprechenden Runlevel ein.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Sunless am 02 August 2015, 21:34:05
Hallihallo ...

(co010) zu 1:
Ich habe das über cmdalias (http://fhem.de/commandref.html#cmdalias (http://fhem.de/commandref.html#cmdalias)) gelöst.
define Alias_Hoflicht cmdalias Hoflicht .* AS {fhem("set Hoflicht $EVENT")}
Bei der Telegram-Config im FHEM musst Du dann noch cmdKeyword (das Kommando, woraus FHEM schließt, dass es einen eingetroffenen Text als Befehl ausführen soll) und defaultPeer (i.d.R. Dein Telegram-Name im Format Vorname_Nachname) setzen.

Wenn cmdKeyword = "FHEM", würde der Text zum Senden dann lauten: "FHEM Hoflicht an".


Ergänzung zum vorherigen Post - zu 2:
Beispiele für case "$1" usw ...
# Aktionen
case "$1" in
    start)
        echo "Telegram daemon start ..."
        su telegramd -c '/opt/tg/bin/telegram-cli -k /opt/tg/server.pub -W -C -d -P 2391 --accept-any-tcp -L /var/log/telegram.log -l 20 -N -R -vvv &'
        echo "... done"
        ;;
    stop)
        echo "Telegram daemon stop ..."
        sudo pkill telegram-cli
        echo "... done"
        ;;
    restart)
        echo "stopping telegram daemon..."
        sudo pkill telegram-cli
        echo "... done --- restarting ..."
        su telegramd -c '/opt/tg/bin/telegram-cli -k /opt/tg/server.pub -W -C -d -P 2391 --accept-any-tcp -L /var/log/telegram.log -l 20 -N -R -vvv &'
        echo "... done"
        ;;
esac

exit 0

Pfade und Port (Parameter -P) natürlich an Deine Konfiguration anpassen ;)

hth ...
Gruß
Sebastian
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Sunless am 02 August 2015, 22:00:11
Was mir gerade noch so zum Thema generell einfällt:

Erstmal Dank dem Autor - Telegram läuft bisher sehr stabil. Hatte vorher mit yowsup experimentiert, was allerdings leider zu sehr vielen Abstürzen und somit zum Ausfall der kompletten Steuerung führte.

Hätte noch einen kleinen Verbesserungsvorschlag:
Wäre es möglich, ein Reading mit korrekt formatiertem msgPeer (mit Unterstrich) einzufügen? Ist praktisch, wenn man in einem externen Script "messageTo" benutzen möchte. Bisher behelfe ich mir mit einem Userreading
msgPeerUR {my $mpur=ReadingsVal("Telegram","msgPeer","defaultPeer"); $mpur =~ s/ /_/g ; return $mpur;}um den Unterstrich hinzuzufügen.
Hintergrund: bei Mehrbenutzerbetrieb soll derjenige, der einen Befehl per Telegram absetzt auch die Antwort des Scriptes (z.B. den Wetterbericht) erhalten.

Gruß
Sebastian
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 August 2015, 22:06:26
Von mir noch ein Ergönzung zur Antwort von Sebastian zu 1)

Das Attribut cmdKeyword <keyword> erlaubt es fhem mit telegram so einzurichten, dass beliebige Kommandos geschickt werden können. Der Weg über cmdalias erlaubt es elegant auch komplexe oder lange Kommandos über relativ kurze telegram messages zu senden.


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 August 2015, 22:49:42
Was mir gerade noch so zum Thema generell einfällt:

Erstmal Dank dem Autor - Telegram läuft bisher sehr stabil. Hatte vorher mit yowsup experimentiert, was allerdings leider zu sehr vielen Abstürzen und somit zum Ausfall der kompletten Steuerung führte.

Hätte noch einen kleinen Verbesserungsvorschlag:
Wäre es möglich, ein Reading mit korrekt formatiertem msgPeer (mit Unterstrich) einzufügen? Ist praktisch, wenn man in einem externen Script "messageTo" benutzen möchte. Bisher behelfe ich mir mit einem Userreading
msgPeerUR {my $mpur=ReadingsVal("Telegram","msgPeer","defaultPeer"); $mpur =~ s/ /_/g ; return $mpur;}um den Unterstrich hinzuzufügen.
Hintergrund: bei Mehrbenutzerbetrieb soll derjenige, der einen Befehl per Telegram absetzt auch die Antwort des Scriptes (z.B. den Wetterbericht) erhalten.

Gruß
Sebastian

Hallo Sebastian,

ja gerne, das macht absolut Sinn, denn dann sind die peer-Namen entsprechend normalisiert.
Ist schon eingebaut und bereit zum Testen, siehe angehängte neue Version.

Gruss,
Johannes

Anmerkung: Ich untersuche gerade eine Möglichkeit mit numerischen user ids und chat ids umzugehen, dadurch wäre es möglich sicherzustellen, dass peer namen eindeutig sind, unabhängig von Vorname und Nachname.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Sunless am 03 August 2015, 00:07:53
Supi, ging ja schnell ;)

Im Reading ist der Unterstrich nun drin und MessageTo an $msgPeer klappt .
Testen werd ich den aktiven Multiuserbetrieb allerdings erst können, wenn meine Frau mal ihr Handy für solch Spielereien herausrückt  :o

Zum Teil reagiert das Modul nach einem Restart des PI nicht auf eingehende Befehle.
Dies habe ich per DOIF gelöst, indem nach erfolgreichem FHEM-Start eine Nachricht ans Handy geschickt wird
define FHEM.init.doif DOIF ([global:?INITIALIZED])(set FHEM.init online,set Telegram message FHEM INITIALIZED)Hilft u. U. bei berlineraxel's Problem mit der Initialisierung eines Chats? (http://forum.fhem.de/index.php/topic,38328.msg316748.html#msg316748 (http://forum.fhem.de/index.php/topic,38328.msg316748.html#msg316748)) -> wait auf 60 gesetzt, damit FHEM genug Zeit hat, richtig durchzustarten ...

Wie und ob das auch beim Multiuserbetrieb so klappt, werde ich dann bei Gelegenheit testen.

Gruß
Sebastian
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 August 2015, 01:32:32
Zum Teil reagiert das Modul nach einem Restart des PI nicht auf eingehende Befehle.

Hallo Sebastian,
tritt das Problem nur nach Neustart des PI auf oder lässt es sich auch nach Neustart von telegram-cli und/oder fhem beobachten?

Wenn ich  das richtig verstehe sendest eine Message über telegram nach fhem restart (initialized). Kommt diese Message dann auch an, oder musst Du die erwähnten 60s warten?

Ich kann das leider nur schwer nachstellen, da ich mein Produktivsystem ungerne neustarte.

Gruss,
Johannes

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 August 2015, 22:15:55
Hallo Johannes,

kann irgendwie nicht an non-defaultPeers versenden.

set telegram messageTo xxx_xxx Hallo Welt
FAIL: 38: can not parse arg #1

aber in der cli ist der Kontakt angelegt und versenden geht mit
msg xxx_xxx Hallo Welt
geht wunderbar. Woran könnte das liegen?

Hallo HolyMoly,
ich habe bei mir jetzt nochmals weitere Versuche gemacht und kann Dein Problem leider bei mir nicht nachstellen.

Bei mir funktioniert messageTo z.B. in folgenden Szenarien:

Vorname_Nachname ABER telegram erfordert exakte Wiedergabe auch der klein und Grossschreibung [/li]
[li]An gruppen chats einfach durch Angabe des chat namens[/li]
[li]User und chat in form von ids also z.B. in der Form [/li][/list]user#12345678
Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Sunless am 04 August 2015, 07:52:09
Guten Morgen,
...
tritt das Problem nur nach Neustart des PI auf oder lässt es sich auch nach Neustart von telegram-cli und/oder fhem beobachten?
Wenn ich  das richtig verstehe sendest eine Message über telegram nach fhem restart (initialized). Kommt diese Message dann auch an, oder musst Du die erwähnten 60s warten?
...

CLI und FHEM starten automatisch bei Reboot des PI. Die CLI habe ich bisher noch nicht separat neu gestartet.
Der Funktionsablauf ist genau wie Du beschrieben hast. Restart PI -> Start FHEM OK (initialized) @06:37:39 Uhr -> Nachricht auf Handy @06:38:39 Uhr
Nach Eintritt des Ereignisses (global:?INITIALIZED) wartet das DOIF 60 Sekunden und schickt dann die Nachricht/initialisiert gleichzeitig den Chat. Ohne den Waittimer kam es vor, dass Telegram noch nicht korrekt initialisiert war, die Info unterging und der Chat nicht eingerichtet wurde (CLI im FHEM offline, bis ich manuell eine Nachricht absetzte). Die 60 Sekunden sind imho ein guter Wert - sollte auch mit weniger gehen, aber hatte keine Lust ständig herumzurechnen, wann ein Restart erfolgte; mit 1 Minute Differenz lässt sich einfacher umgehen ;)
Das DOIF-INITIALIZED (ohne message via Telegram) war ursprünglich dazu gedacht festzuhalten, wann ein Reboot aufgrund eines Absturzes/Fehlers erfolgte um die entsprechende Stelle im Log leichter aufzufinden. 

Für mich eine gute Lösung :)

Möglicherweise könnte man das fest einbauen und per Attribut wählbar gestalten (message to <(default?)peer> after FHEMRestart <0-60sek> - 0 = aus)

Grüße ...
Sebastian
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: co010 am 04 August 2015, 11:28:38
Hallo Experten,

ich habe nun mal ein Start Skript nach Anleitung von Sebastian erstellt,und auf etc/init.d hochgeladen
mein Skript:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          Was macht das Skript?
# Required-Start:   
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Kurze Beschreibung
# Description:       Längere Bechreibung
### END INIT INFO
# Author: Name <email@domain.tld>

# Aktionen
case "$1" in
    start)
        echo "Telegram daemon start ..."
        su telegramd -c '/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -d -P 1230 --accept-any-tcp -L /home/pi/telegram.log -l 20 -N -R -vvv &'
        echo "... done"
        ;;
    stop)
        echo "Telegram daemon stop ..."
        sudo pkill telegram-cli
        echo "... done"
        ;;
    restart)
        echo "stopping telegram daemon..."
        sudo pkill telegram-cli
        echo "... done --- restarting ..."
        su telegramd -c '/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -d -P 1230 --accept-any-tcp -L /home/pi/telegram.log -l 20 -N -R -vvv &'
        echo "... done"
        ;;
esac

exit 0
-------------------------------
dann mit  sudo chmod 755 /etc/init.d/telegramstart      -damit noch die Rechte meiner erstellten Datei "telegramstart" erteilt und noch
sudo update-rc.d telegramstart enable                         -die Datei ausführbar gemacht,wie in der Anleitung.
Den Pi neu gestartet und es funktioniert nicht so... warum ???
wenn ich die Zeile in Putty einfüge,
su telegramd -c '/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -d -P 1230 --accept-any-tcp -L /home/pi/telegram.log -l 20 -N -R -vvv &'
schreibt Putty: No passwd entry for user 'telegramd'.
also ist ein Fehler in der bez."su telegramd"
wenn ich in Putty die Zeile "/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -d -P 1230 --accept-any-tcp -L /home/pi/telegram.log -l 20 -N -R -vvv &"
einfüge funktioniert alles Perfekt.

mfg co010






Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: HolyMoly am 04 August 2015, 12:08:27
@co010
probiers mal mit
su deinusername -c '~/tg/bin/telegram-cli -vvvvRC -k tg-server.pub -W -dL tg.log -P 2391 &'
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 August 2015, 13:02:44
Den Pi neu gestartet und es funktioniert nicht so... warum ???
wenn ich die Zeile in Putty einfüge,
su telegramd -c '/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -d -P 1230 --accept-any-tcp -L /home/pi/telegram.log -l 20 -N -R -vvv &'
schreibt Putty: No passwd entry for user 'telegramd'.

2 Dinge fallen mir direkt auf:

In Deinem skript steht hinter provides kein Name, dort sollte eigentlich der Namen Deines Skriptes stehen
Die Fehlermeldung deutet daraufhin, dass kein Benutzer telegramd existiert. Vermutlich möchtest Du es aber doch unter Deinem/dem Benutzer von fhem laufen lassen (denn damit hast Du vermutlich auch die Konfiguration für Telegram angelegt)

Weitere Anmerkungen:
- Auch die anderen Einträge im Skript sollten sinnvollerweise angegeben werden, damit man später nicht verwirrt werden kann, sondern noch weiss was gemacht wurde
- --accept-any-tcp würde ich nur angeben, wenn wirklich telegram auf einem anderen Rechner als fhem läuft, oder Du anderweitig remote zugreifen willst (wg. Sicherheit)
- Ich würde normalerweise mal mit den Fehlermeldungen "googlen", denn dann findest Du vermutlich massenhaft Erklärungen zu No passwd entry for user - Achso: Ich hoffe Dir ist schon klar, dass putty nur den Zugang zum eigentlichen Rechner macht (terminal) und dass was Du lokal tippst versendet und alle Meldungen vom entfernten Rechner empfängt. In diesem Sinne ist anzunehmen, dass Dein putty mit einer Shell auf dem fhem-Server verbunden ist, es könnte aber auch direkt mit telegram-cli (oder einem anderen Programm oder einem anderen Rechner) reden...


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: co010 am 04 August 2015, 14:19:58
Hallo,
ich habe den Namen in # Provides:Start telegram-cli# angegeben und --accept-any-tcp auch entfernt,es klappt auch damit nicht.
/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -d -P 1230 -L /home/pi/telegram.log -l 20 -N -R -vvv &  (das funktioniert auch)
Hat jemand von euch so ein Skript auf den pi mit FHEM laufen ?

Danke co010

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 August 2015, 14:44:13
Wie von HolyMoly und mir beschrieben, wenn der Benutzer, den Du bei "su" angibst, nicht existiert kann es nicht funktionieren.

Ironie: Wenn 2 Fehler vorhanden sind und einer davon beseitigt ist, bleibt nachwievor ein Fehler vorhanden  :D

Ansonsten nehme ich an, dass zumindest das Kommando sudo update-rc.d telegramstart enable Fehlermeldungen/Warnungen produziert hat und möglicherweise nochmals ausgeführt werden sollte nach Änderungen am Skript.

Es wäre vermutlich hilfreich zu erfahren, WAS nicht funktioniert, da mir nicht klar ist, ob telegram-cli nicht startet, fhem nicht verbinden kann, fhem nicht mehr startet oder etwas anderes hier nicht funktioniert?

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: HolyMoly am 04 August 2015, 15:12:18
@co010 sch dir mal diesen gist als Beispiel an
https://gist.github.com/jmtatsch/b7a52d17c7b0128601a1#file-telegram-daemon
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: co010 am 04 August 2015, 15:43:59
Hallo,
Anmelden am Pi:      user: pi;    Password: raspberry
habe jetzt nochmal ein neues Skript erstellt nach link,so (Datei:starttelegram)

#! /bin/sh
### BEGIN INIT INFO
# Provides:          telegram-daemon
# Required-Start:   
# Required-Stop:     
# Default-Start:     S 2 3 4 5
# Default-Stop:      0 6
# Short-Description: telegram daemon
# Description:       telegram daemon
### END INIT INFO
# Author: fizzzel

# actions
case "$1" in
    start)
        echo "Telegram daemon is starting..."
        su pi -c '~/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -d -P 1230 -L /home/pi/telegram.log -l 20 -N -R -vvv &'
        echo "...done"
        ;;
    stop)
        echo "stopping telegram daemon..."
        sudo pkill telegram
        echo "..done"
        ;;
    restart)
        echo "stopping telegram daemon..."
        sudo pkill telegram
        echo "..done -- restarting..."
        su pi -c '~/home/pi/tg/bin/telegram-cli -k /home/pi/tg/tg-server.pub -W -d -P 1230 -L /home/pi/telegram.log -l 20 -N -R -vvv &'
        echo "...done"
        ;;
esac

exit 0
----------------------------------------
Datei starttelegram kopiert in etc/init.d und rechte vergeben
und bei sudo update-rc.d starttelegram enable  wird ausgegeben

update-rc.d: using dependency based boot sequencing
update-rc.d: error: starttelegram Default-Start contains no runlevels, aborting.

-der Pi mit FHEM wird korrekt gestartet.
also ein Fehler bei sudo update-rc.d starttelegram enable .

m
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: HolyMoly am 04 August 2015, 15:55:56
Probiers mal mit dem filename telegram-daemon ...
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Sunless am 05 August 2015, 00:08:40
Aloha ...

Hatte ganz vergessen zu erwähnen, dass der CLI bei mir unter dem User "telegramd" läuft - in irgendeiner der zig Anleitungen betreffend Autostart war das zu lesen (wenn ich nur noch wüsste, in welcher?). Logisch, dass dies so bei Dir (co010) nicht funktionieren kann.
Wegen der Runlevel hat update-rc bei mir auch gemault, aber trotzdem läuft es ... (update-rc.d telegram-daemon defaults)

Evtl. legst Du einen User "telegramd" (adduser telegramd) an, änderst die Pfade im Script "telegram-daemon" auf Deine Bedürfnisse und versuchst es nochmal ...
#! /bin/sh
### BEGIN INIT INFO
# Provides:          telegram-daemon
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: telegram daemon
# Description:       telegram daemon
### END INIT INFO
# Author: anonymous

# actions
case "$1" in
    start)
        echo "Telegram daemon is starting..."
        su telegramd -c '/opt/tg/bin/telegram-cli -k /opt/tg/server.pub -W -C -d -P 2391 --accept-any-tcp -L /var/log/telegram.log -l 20 -N -R -vvv &'
        echo "...done"
        ;;
    stop)
        echo "stopping telegram daemon..."
        sudo pkill telegram-cli
        echo "...done"
        ;;
    restart)
        echo "stopping telegram daemon..."
        sudo pkill telegram-cli
        echo "..done -- restarting..."
        su telegramd -c '/opt/tg/bin/telegram-cli -k /opt/tg/server.pub -W -C -d -P 2391 --accept-any-tcp -L /var/log/telegram.log -l 20 -N -R -vvv &'
        echo "...done"
        ;;
esac

exit 0
Port bei mir: 2391
telegram-cli liegt bei mir unter /opt/tg/bin/
server.pub unter /opt/tg/
log geht nach /var/log/telegram.log
Rechte auf alle Verzeichnisse unterhalb "tg" -> 755 root:root - ebenso alle dateien außer server.pub (644 root:root)

Grüße ...

PS:

Habe auch noch ein paar Perl-Warnings im Log (bei FHEM-Restart) entdeckt:
* Use of uninitialized value $ret in concatenation (.) or string at ./FHEM/70_Telegram.pm line 662.
* Use of uninitialized value $ret in numeric eq (==) at ./FHEM/70_Telegram.pm line 664.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 08 August 2015, 01:00:10
Ich habe heute nochmal eine aufgefrischte Version (0,6) im ersten Post hochgeladen. Es sind noch keine grossen Änderungen erfolgt, insbesondere habe ich noch nichts am Startverhalten verändert.

Im wesentlichen sind darin Stabilisierungen enthalten und es werden mehrere peers bei cmdRestrictedPeer unterstützt.
Natürlich ist die Version auch in github verfügbar.

Fehlermeldungen, Anmerkungen und Wünsche Wie immer hier im Thread

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Sunless am 10 August 2015, 15:45:07
Hallo in die Runde ...
Eine kurze Rückmeldung betreffend Multiuser (bin endlich mal zum testen gekommen):

Eine Abfrage von "msgPeer" ist nicht nötig, da Ausgaben von eingehende Kommandos automatisch an den Sender zurückgesandt werden - Super Sache, erspart das Auslesen des Readings und Definieren des Absenders als Empfänger  :D
Allerdings bekommt immer der "defaultPeer" die Rückmeldung "cmd: result OK", auch wenn ein anderer User ein Kommando sendet.

Weiter getestet -> Attribut Defaultpeer gelöscht -> Rückmeldung wird nicht mehr gesendet.
Problem an der Geschichte: Bildversand (IP-Cam vor der Tür, welche beim Klingeln ein Photo sendet) geht ins Leere, da kein Befehl "sendPhotoTo" oder ähnliches verfügbar ist und Bilder nur an den Defaultpeer gesendet werden können.
Eventuell könnte man diese Option noch im­ple­men­tie­ren?

Wäre es auch noch möglich, alternativ oder zusätzlich zur "result OK"-Meldung ein "mark_read" auszuführen, damit das 2. Häkchen im Messenger gesetzt und der Befehl quasi als "empfangen" markiert wird?

Grüße ... Sebastian
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 August 2015, 16:56:13
Hallo in die Runde ...
Eine kurze Rückmeldung betreffend Multiuser (bin endlich mal zum testen gekommen):

Eine Abfrage von "msgPeer" ist nicht nötig, da Ausgaben von eingehende Kommandos automatisch an den Sender zurückgesandt werden - Super Sache, erspart das Auslesen des Readings und Definieren des Absenders als Empfänger  :D
Allerdings bekommt immer der "defaultPeer" die Rückmeldung "cmd: result OK", auch wenn ein anderer User ein Kommando sendet.

Weiter getestet -> Attribut Defaultpeer gelöscht -> Rückmeldung wird nicht mehr gesendet.
Problem an der Geschichte: Bildversand (IP-Cam vor der Tür, welche beim Klingeln ein Photo sendet) geht ins Leere, da kein Befehl "sendPhotoTo" oder ähnliches verfügbar ist und Bilder nur an den Defaultpeer gesendet werden können.
Eventuell könnte man diese Option noch im­ple­men­tie­ren?

Wäre es auch noch möglich, alternativ oder zusätzlich zur "result OK"-Meldung ein "mark_read" auszuführen, damit das 2. Häkchen im Messenger gesetzt und der Befehl quasi als "empfangen" markiert wird?

Grüße ... Sebastian

Klasse, das passt gut zu einigen meiner Erfahrungen und Überlegungen:

- Ich habe die Antwort auf Kommandos so umgebaut, dass der defaultPeer UND der absendende die Meldung bekommen, wenn nicht identisch (unauthorized nur an Defaultpeer)
=> Diese Version findet sich bisher nur im github, weil ich sie bei mir nur kurz getestet habe und erst seit Samstag im System am laufen
- SendPhotoTo hatte ich auch schon angedacht, kann man vermutlich mit wenig Aufwand machen
- mark_read setzen hatte ich bisher bewusst gelassen, da es ein weiteres Kommando an telegram-cli erfordert und damit fhem noch länger blockiert. Eigentlich müsste ich das in einen eigenen subprozess auslagern, das ist aber wiederum nicht machbar, wenn wiederum Kommandos direkt ausgeführt werden...

Weitere Gedanken:
- telegram-cli liefert etwas kryptische peernamen aus den Gruppen chats, denn da werden Gruppenname und peer hintereinandergehängt. Benutzt jemand Gruppenchats mit telegram und fhem?
- Gibt es Interesse daran, dass telegram auch Nachrichten, die während einer eventuellen Downtime angefallen sind nachher verarbeitet? Ich hatte das bisher geplant, es ist aber wohl sehr aufwändig...


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Sunless am 10 August 2015, 18:12:50
Noch ein Nachtrag zu meinem vorherigen Posting nach Brainstorming:

Abfrage von "msgPeer" ist in einigen Fällen doch sinnvoll - wenn Nachrichten von FHEM initiiert gesendet werden sollen (Beispiel Klingel oder die DOIF-global:?INITIALIZED-Funktion, da hierbei ja kein aktueller Absender existiert ...

mark_read: kenne mich mit der Funktionsweise noch nicht so genau aus (2 Kommandos), ist aber verständlich, dass nicht unnötig lange geblockt werden sollte ... wäre auch nur für die Optik im Messenger gewesen ;)

SendPhotoTo: wäre Klasse, eilt aber nicht  ;)

Werde dann gleich mal die neue Version einspielen und testen ...

Danke für Deine Arbeit ...
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 August 2015, 22:59:37
Wenn Du schon ausprobieren willst, sendPhotoTo ist in github, funktioniert genauso wie sendPhoto (aber zusätzliche Angabe des peers natürlich).
Ich habe dazu auch angepasst, dass jetzt auch msgPeer/msgText etc bei sendPhoto und sendPhotoTo gesetzt werden.

Interessanterweise werden bei mir seit heute sogar emoticons in fhemweb angezeigt...
Ich habe dazu aber keine Änderung vorgenommen, sondern nur telegram-cli neu gestartet und das .telegram-cli neu aufgebaut (Also neu den client registriert)

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: co010 am 19 August 2015, 10:43:56
Hallo,
da ja nun das versenden von Nachrichten richtig gut funktioniert,möchte ich Fotos von meiner IpCam aus dem Ordner "/opt/fem/www" ein Bild IPCam_Hof_snapshot.jpg mit Telegram auf mein Handy senden,was muß ich da eingeben ?

mfg co010
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: fh168 am 13 September 2015, 16:40:20
Ich wollte nur ein kurzes Feedback geben, Telegram klappt seit einigen Wochen tadellos.

Genial finde ich, das man das auch zum Informationsaustausch mit einem Tablet (Stichwort InfoPanel) nutzen kann.
Ich habe da mal ein paar Zeilen darüber verbloggt.

http://blog.moneybag.de/fhem-fernsteuern-von-fhem-mit-telegram/

LG
/robin
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 14 September 2015, 21:21:43
Hallo,
da ja nun das versenden von Nachrichten richtig gut funktioniert,möchte ich Fotos von meiner IpCam aus dem Ordner "/opt/fem/www" ein Bild IPCam_Hof_snapshot.jpg mit Telegram auf mein Handy senden,was muß ich da eingeben ?

mfg co010
Eigentlich sollte das ganz einfach sein (angenommen Dein telegram device heisst mytelegram:

set mytelegram sendPhoto /opt/fhem/www/IPCam_Hof_snapshot.jpg
Alternativ noch bei sendPhotoTo einen telegram-User (mit Unterstrich statt Leerzeichen !) vor dem Pfad angeben.

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 14 September 2015, 21:27:59
Ich wollte nur ein kurzes Feedback geben, Telegram klappt seit einigen Wochen tadellos.

Genial finde ich, das man das auch zum Informationsaustausch mit einem Tablet (Stichwort InfoPanel) nutzen kann.

Hi Robin,
Danke für das Feedback und den blog-Eintrag.
Die Idee mit der Nachricht auf dem Info-Display ist richtig gut, auch wenn ich bei uns noch der einzige bin der mein schönes Info-Display auf dem Tablet-UI nutzt...

Das mit dem Autostart steht auf meiner Todo-Liste, es wäre auch eine Option ganz auf telegram-cli zu verzichten, in dem man das neue bot-api von telegram verwendet: https://core.telegram.org/bots/api (https://core.telegram.org/bots/api). (Danke an igami für den Hinweis). Das erfordert allerdings quasi eine Neuentwicklung und jeder Benutzer müsste sich dann für den Bot bei telegram registrieren um einen Schlüssel zu bekommen.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: fh168 am 15 September 2015, 20:59:49
Hallo Johannes,

ja, leider ist die Installation immer noch zu schwierig. Mein Blog-Beitrag hat zumindest etwas beigetragen, Telegram mit Fhem etwas näher zu bringen. 190 User haben meinen Beitrag diesen Monat gelesen, und ich vermute, das einige es bald im Einsatz haben.

LG
/robin
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: BioS am 17 September 2015, 12:02:32
Ahoi Johannes,

das is ja ein cooles Modul, an telegram wollte ich mich nach meinem Jabber Modul ranmachen.. hehe ist jetzt wohl sinnlos ;)
Hast du dir mal überlegt das Modul vielleicht an die jetzt vorhandene Bot-API/Telegram-API anzulehnen?

Ich hab das bei mir mit C# rudimentär gemacht um Statusnachrichten und Fotos einer Webcam über Telegram an mich zu schicken.
Dabei ist mir aufgefallen dass ich aussschließlich den Web-Client brauche um das meiste (Connection handling etc.) damit abzufackeln und das die Bot-API ziemlich stabil und schnell ist.

Damit würdest du dir das Linux-Only Thema sparen und du könntest die End-to-End Encryption benutzen.

Nur so eine Überlegung.. :)

EDIT: ich hab jetzt erst alle Foren-Beiträge gelesen und gesehen dass du dir das eh schon überlegst.. Um die Bot-API registrierung wird man nicht drumrum kommen, mit der Telegram-API bräuchte jeder Nutzer eine extra Telefonnummer nur für FHEM..
Wenn du willst - ich kann dir auch bei der Entwicklung gerne behilflich sein - wenn ich auch im Moment zeitlich eher einegspannt bin..

Grüße,
BioS
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 17 September 2015, 17:22:26
Hi BioS,
Danke für das Lob und das Angebot zur Hilfe!

Ja das BOTApi habe ich jetzt nach dem Urlaub angedacht, in der Hoffnung auf mehr Regentage  :D
Ich sehe allerdings nicht, dass es damit noch secret chats bzw. Ende-Zu-Ende-Verschlüsselung gibt, denn der Austausch mit dem Bot ist ja für die telegram-Server lesbar. Oder habe ich Deinen Kommentar missverstanden?

Sobald etwas läuft, bräuchte ich Interessenten, die das bei sich ausprobieren wollen. Ich kann jetzt schon sagen, dass die Installation sehr einfach ist  und das API token gibt es über den telegram client :)

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: co010 am 17 September 2015, 20:18:25
Hallo Johannes,

klingt interessant was Ihr da vor habt mit den BOTApi,ich bin gerne beim Testen dabei.


mfg Co010

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 18 September 2015, 01:34:58
OK, die Machbarkeitsstudie läuft!

Ich habe jetzt mal ein erstes Modul, dass grundsätzlich texte senden und texte sowie Kommandos empfangen kann.
Neben vielen Kleinigkeiten fehlt noch eine Kontaktverwaltung, Doku und das Versenden von Photos. Ausserdem natürlich noch die ganze Abrundung, um robust zu sein.

Apropos Kontakte: Alle Kontakte müssen (noch) als contact_ids angegeben werden.

ACHTUNG; Das ist ein testmodul und NICHT für Produktivbetrieb gedacht und befindet sich in einem sehr frühen Alphastatus!



Wg. Reparaturcafe am Wochenende komme ich vermutlich erst nächste Woche wieder dazu eine erweiterter Version zu machen.


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: igami am 18 September 2015, 05:41:11
Ja das BOTApi habe ich jetzt nach dem Urlaub angedacht, in der Hoffnung auf mehr Regentage  :D
Ich sehe allerdings nicht, dass es damit noch secret chats bzw. Ende-Zu-Ende-Verschlüsselung gibt, denn der Austausch mit dem Bot ist ja für die telegram-Server lesbar.
Schön, dass zu lesen :)
Es gibt weiterhin secret chats, der Bot läuft ja auf deinem eigenen Server, bzw, auf dem fhem Server bei jedem zu hause.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 18 September 2015, 11:52:27
Es gibt weiterhin secret chats, der Bot läuft ja auf deinem eigenen Server, bzw, auf dem fhem Server bei jedem zu hause.
Leider stimmt das nicht.

Das mit den Secret chats habe ich nochmal überprüft: Sie sind wohl (noch) nicht möglich.

Bezugnehmend auf diese Quelle: http://stackoverflow.com/questions/32093188/telegram-bots-secret-chats-possible (http://stackoverflow.com/questions/32093188/telegram-bots-secret-chats-possible)

Aber auch grundsätzlich. Die Kommunikation wird auf dem telegram-Server bereitgehalten bis der Bot diese über getUpdates abholt. GetUpdates liefert die Nachrichten im Klartext, damit ist es nicht ende-zu-ende verschlüsselt.

Testweise habe ich gerade einen secret chat erstellt mit meinem Bot. Der Bot bekommt aber leider keine Info über den chat und kann auch nicht antworten. Meiner Ansicht nach ist das einfach im telgram Client nicht abgeklemmt, aber secret chats würden eine erhebliche Errweiterung des BOTAPIs erfordern (z.B. für Schlüsselaustausch und Versenden/Empfangen verschlüsselter Nachrichten).

Das hat nichts mit eigenem Server zu tun.

gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Will am 20 September 2015, 22:01:38
Hallo, habe auch dieses Modul installiert. Wenn ich telegram-cli starte kann ich Nachrichten empfangen und senden. Ich starte den daemon und in fhem sehe ich die Verbindung als "opened". In fhem kann ich dann allerdings nichts machen. "cannot parse arg $1" kann mir da einer auf die Sprünge helfen? Kann ich irgendwie testen ob der davon korrekt läuft? Raw befehle gehen auch nicht....

Danke
W

Sent from my SGP611 using Tapatalk

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 September 2015, 14:31:37
Hallo Will,
die Verbindung zu telegram-cli scheint zu funktionieren, denn die Meldung cannot parse arg $1 stammt bereits aus dem telegram-cli.
Ich nehme an, Du verwendest set <device> messageTo ... und bekommst diese Meldung. In diesem Fall ist die Vermutung, dass telegram-cli mit dem von Dir angebenen Kontakt nicht klar kommt. Kontakte müssen immer exakt wie in telegrm definiert (Gross- und Kleinschreibung beachten) angegeben werden und statt einem Leerzeichen zwischen dem Vor- und Nachnamen einen Unterstrich verwenden.

Kannst Du mal folgende Eingabe versuchen:
set <DeinTelegramDevice> raw contact_list (Sollte eine Liste der Kontakte Vorname Nachname liefern.

oder noch rudimentärer

set <DeinTelegramDevice> raw help Liefert eine Beschriebung für alle Befehle in telegram-cli

Was kommt als Ergebnis für diese Befehle?

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 September 2015, 16:58:26
So jetzt gibt es eine erste relativ stabile Version von einem telegramBot Modul für FHEM --> 50_TelegramBot.pm

Anbei findet sich der aktuelle Stand, im wesentlichen kann dieses Modul das meiste, was auch 70_Telegram (das aufh telegram-cli) aufsetzt macht. Also insbesonderen Senden und Empfangen von Textnachrichten, mit Auslösen von Kommandos und auch entsprechende Einschränkungen, wer kommunizieren darf. Ich habe im wesentlichen auch die Benennungen gleich gehalten. Folgende wesentliche Abweichungen sind mir bekannt:

+ Es ist keine andere Software notwendig, das Modul sollte demnach auch auf anderer Hardware funktionieren können (insbesondere kein telegram-cli
+ Es ist keine Rufnummer erforderlich für die Registrierung reicht die telegram BOT Registrierung wie hier beschrieben: https://core.telegram.org/bots (https://core.telegram.org/bots)
- Es können noch keine Bilder gesendet werden (Muss ich noch implementieren)
- Es gibt keine secret chats (im BOT API nicht enthalten)
- Bots können nicht von sich beliebige telgram user kontaktieren, die erste Kommunikation muss immer von einem normalen Telegram-Benutzer gestartet werden
o Das Attribut pollingTimeout muss auf einen Wert > 0 gesetzt sein, sonst wird nichts empfangen

Jetzt hoffe ich auf eifrige Fehlermeldungen...

Johannes
 
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Will am 21 September 2015, 18:52:55
Set raw help funktioniert. Set raw contact_list bringt FAIL: 71: RPC_CALL_FAIL 401: AUTH_KEY_UNREGISTERED.

Ideen?

Sent from my SGP611 using Tapatalk

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 September 2015, 20:14:14
Ok, wie vermutet liegt das Problem auf der telegram-cli seite.

Kannst Du telegram-cli auf der kommandozeile benutzen?
Also wenn Du es aus einer shell herausaufrufst und contact_list eingibst kommt derselbe fehler?

Wenn ja, ist bei der installation bzw. beim einrichten von cli etwas schief gegangen

Wenn nein, vermute ich,dass es an berechtigungen für den fhem-benutzer liegen könnte.

Alternativ könntest Du direkt das oben gepostete 50_telegramBot versuchen einzusetzen. Es benötigt keine zusätzliche software und hat demnach weniger fehlerquellen.

Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Will am 21 September 2015, 20:19:22
als telegram-cli nicht als daaemon lief, konnte ich alles aus der kommandozeile machen....

telegramd habe ich per adduser hinzugefügt....

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Will am 21 September 2015, 21:00:34
habe 50_TelegramBot installiert:

wenn der token ein _ hat, wird er nicht akzeptiert, musste mir mehrere Male einen geben lassen, bis ich was ohne _ (underscore) bekommen habe

Jetzt siehts erst mal gutaus, leider erkennt er keinen "Peer" ich dacht Vorname_Nachname...
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 September 2015, 23:58:02
habe 50_TelegramBot installiert:

wenn der token ein _ hat, wird er nicht akzeptiert, musste mir mehrere Male einen geben lassen, bis ich was ohne _ (underscore) bekommen habe

Jetzt siehts erst mal gutaus, leider erkennt er keinen "Peer" ich dacht Vorname_Nachname...

OK, guter Tip, da war ich nicht gründlich genug. Ich prüfe das Token auf Plausibilität (und ich hatte in meinen Token kein Underscore), das werde ich anpassen.

Du kannst einem peer nur etwas senden, wenn dieser peer zuerst an den Bot etwas sendet. Das ist eine Einschränkung des bot-apis, wie oben beschrieben. Telegram möchte keine Spam-Schleudern ermöglichen, die jedermann einfach etwas senden ohne identifizierbar zu sein...
Danach solltest Du Vorname_Nachname oder @<usernamer> oder die telegram user id verwenden können


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 September 2015, 01:26:24
Habe ein upgedatetes Modul angehängt.
Die aktuelle Version findet sich auch immer in github:

https://github.com/viegener/Telegram-fhem/blob/master/50_TelegramBot.pm (https://github.com/viegener/Telegram-fhem/blob/master/50_TelegramBot.pm)

u.a.
- token werden auch mit Unterstrich akzeptiert
- Bestätigungen für ausgeführte Kommands enthalten auch Namen von contacts
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Will am 22 September 2015, 02:42:33
Bei mir funktioniert es jetzt nachdem ich an meinen bot eine Nachricht gesendet habe. Allerdings muss ich die peer Id als Adresse angeben. Vorname_Nachname geht nicht...


Sent from my SGP611 using Tapatalk

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: igami am 22 September 2015, 20:05:28
Habe mir nun einen TelegramBot eingerichtet und funktioniert bisher ganz gut.

Weißt du zufällig wie ich einen Zeilenumbruch bewerkstelligen kann? In dem cli ging es indem man die msg in " setzt und dann \n verwendet.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 September 2015, 22:42:22
Habe mir nun einen TelegramBot eingerichtet und funktioniert bisher ganz gut.

Weißt du zufällig wie ich einen Zeilenumbruch bewerkstelligen kann? In dem cli ging es indem man die msg in " setzt und dann \n verwendet.

Ohje, das war noch gar nicht auf meiner Liste für weitere Tests. Habe eine Erweiterung gemacht, damit die \n's korrekt umgesetzt werden für das bot-api.

Neue Version ist in github.


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 September 2015, 22:48:03
Bei mir funktioniert es jetzt nachdem ich an meinen bot eine Nachricht gesendet habe. Allerdings muss ich die peer Id als Adresse angeben. Vorname_Nachname geht nicht...

Kannst Du mal schauen, ob der entsprechende account in dem Reading Contacts auftaucht. Da sollte es einen Teil geben, der ungefähr so aussieht   
12345678:Beate_Mustermann:@mustermannaccount
Dann müsste Beate_Mustermann bei messageTo funktionieren (bei exakt gleicher Gross- und Kleinschreibung).

Wenn es nicht funktioniert, oder der account nicht auftaucht, sage mir bitte nochmal Bescheid.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: igami am 23 September 2015, 05:45:47
Ohje, das war noch gar nicht auf meiner Liste für weitere Tests. Habe eine Erweiterung gemacht, damit die \n's korrekt umgesetzt werden für das bot-api.

Werde ich nachher mal testen. Hatte gestern noch ein bisschen probiert und mittels
{my $msg = "Überschrift\n\nZeile1\nZeile2";;fhem("set myTelegramBot message $msg")}
einen Zeilenumbruch bewerkstelligt. Was jedoch umständlicher ist, da ich ja erst in perl wechseln muss.

Hast du dir schon Gedanken gemacht wo die Funktionen des Bots abgespeichert werden? Z.B.:
Zitat
igami:
  /Licht
TelegramBot:
  Welches Licht soll geschaltet werden?
  - /Flur
  - /Wohnzimmer
  - /Arbeitszimmer
igami:
  /Wohnzimmer
TelegramBot:
  - /Deckenlampe
  - /Spots
igami:
  /Deckenlampe
TelegramBot:
  - /ein
  - /aus
igami:
  - /aus

Dieser ganze Dialog muss ja für jeden Chat separat funktionieren, wenn also meine Freundin zeitgleich eine andere Funktion auf dem Bot benutzt darf das nicht zu Fehlern führen.
Werde mir dazu nachher auch noch Gedanken machen.

Grüße
igami
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 September 2015, 18:52:45
Hallo Igami,
absolut richtige Frage! Ich hatte genau darüber nachgedacht und bisher habe ich nur 2 Anfangsideen, was man realisieren könnte:
a) Angabe einer externen Dialogfunktion (z.B. in myUtils), die jeweils mitdem Dialog-Kommando aufgerufen würde und eine Antwort präsentiert
Vorteil: Einfach zu integrieren    / Nachteil: Für Nichtprogrammierer nicht benutzerfreundlich

b) Schablone in Attributen, um Kommandos und Antworten zu definieren
z.B. commandDef Tuer:{ set  door toggle;; } erlaubt das absenden von /Tuer als message und das Kommando wird ausgeführt
oder commandDef Lampe1[(on|off)]:{ set  Lampe1 $1;; } erlaubt das Definieren etwas komplexerer Kommandos mit regexps
Natürlich können mehrere als Liste definiert werden
Vorteil: Einfacher ohne grosse Programmierung / Nachteil: Wird schnell unübersichtlich und ermöglicht keine Dialoge

Grundsätzlich offen ist noch die Frage der Keyboards...
und natürlich gibt es auch noch andere Möglichkeiten...





Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Will am 23 September 2015, 19:40:16
Bei mir funktioniert der Bot jetzt ganz gut. Habe Erinnerungen damit realisiert. Dann noch ein notify das auf bestimmte Messages reagiert. Wen man da vorher Verzweigungen drin hast wird der Quelltext recht lang:-). Funktionieren eigentlich Grotten?
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Will am 23 September 2015, 19:40:30
Gruppen
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Will am 23 September 2015, 19:41:56
Habe ihr weitere anwendungsbeispiele?
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: igami am 23 September 2015, 20:20:24
absolut richtige Frage! Ich hatte genau darüber nachgedacht und bisher habe ich nur 2 Anfangsideen, was man realisieren könnte:
a) Angabe einer externen Dialogfunktion (z.B. in myUtils), die jeweils mitdem Dialog-Kommando aufgerufen würde und eine Antwort präsentiert
Vorteil: Einfach zu integrieren    / Nachteil: Für Nichtprogrammierer nicht benutzerfreundlich
Wie wäre es mit einem weiteren Modul? Ich bleibe mal bei meinem Beispiel:
define TBD_Licht TelegramBotDialog [Licht]
case [Wohnzimmer] (
  case [Deckenlampe] (
    case [on] (set wz_Deckenlampe on)
    case [off] (set wz_Deckenlampe off)
  )
  case [Spots, romantisch] (
    case [on] (set wz_Spots on)
    case [50] (set wz_Spots 50)
    case [off] (set wz_Spots off)
  )
)
case [Arbeitszimmer] (
  case [on] (set az_light on)
  case [off] (set az_light off)
)
Orientieren würde ich mich dabei an einer switch case Umgebung, dann kann man auch noch super ein else einbauen falls der Benutzter Unsinn schreibt :D
Alles was in [eckigen Klammern] steht ist dann der Befehlname, sollte noch ein Komma drin vor kommen ist das was danach steht eine Erklärung. Denkbar wäre auch ein modifier z.B. [TV-Programm:keyboard] um dann statt den /ARD, /ZDF, etc. ein Keyboard mit größeren Tasten anzuzeigen. Die Befehle auf der ersten Stufe können dann jeweils schon im Bot als Befehl angewählt werden.

Habe ihr weitere anwendungsbeispiele?
Waschmaschine:
Zitat
igami:
  /Waschmaschine
TelegramBot:
  Status: aus
  Modus: manuell

  /einschalten
  /programmieren
igami:
  /programmieren
TelegramBot:
  Welches Wasch Programm wird verwendet?
  - /normal (Programm 4 bei 30 °C)
  - /Handtücher (Programm 4 bei 60 °C)
  - /anderes
igami:
  /normal
TelegramBot:
  Die voraussichtliche Waschdauer beträgt ca. 1:47 Stunden.
  Wann soll die Wäsche fertig sein?
igami:
  15:30
TelegramBot:
  Status: aus
  modus: auto
 
  Es wird normale Wäsche bei 30 °C auf Programm Nummer 4 gewaschen. Voraussichtlich ist sie um 15:30 Uhr fertig. Bitte die Waschmaschine vorbereiten.

...

TelegramBot:
  Die Waschmaschine wird in 15 Minuten eingeschaltet und ist dann voraussichtlich um 15:30 Uhr fertig.
  /ok
  /ändern
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 September 2015, 21:53:58
Wie wäre es mit einem weiteren Modul? Ich bleibe mal bei meinem Beispiel:
define TBD_Licht TelegramBotDialog [Licht]
case [Wohnzimmer] (
  case [Deckenlampe] (
    case [on] (set wz_Deckenlampe on)
    case [off] (set wz_Deckenlampe off)
  )
  case [Spots, romantisch] (
    case [on] (set wz_Spots on)
    case [50] (set wz_Spots 50)
    case [off] (set wz_Spots off)
  )
)
case [Arbeitszimmer] (
  case [on] (set az_light on)
  case [off] (set az_light off)
)
Orientieren würde ich mich dabei an einer switch case Umgebung, dann kann man auch noch super ein else einbauen falls der Benutzter Unsinn schreibt :D

Hallo Igami,
das mit dem separaten Modul könnte Sinn machen, wenn man mehrere Dialoge jeweils mit einem spezifischen Schlüsselwort definieren will.

Mir ist allerdings nicht ganz klar, wie Du Dir vorstellst das switch/case als Device umzusetzen? Ein Attribut oder mehrere, steht das ganze Switch in einem Attribute, dann wäre sicher ein myutils-Modul eher einfacher, denn sonst muss man quasi die halbe Perl-Umgebung (stichwort syntaxprüfung und Auswertung von Ausdrücken) nachimplementieren.
Gruss,
Johannes

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 September 2015, 22:44:47
Bei mir funktioniert der Bot jetzt ganz gut. Habe Erinnerungen damit realisiert. Dann noch ein notify das auf bestimmte Messages reagiert. Wen man da vorher Verzweigungen drin hast wird der Quelltext recht lang:-). Funktionieren eigentlich Grotten?

Grotten sind schön  ;D Ein Hoch auf die automatische Wortvervollständigung?

Grundsätzlich werden Gruppen auch gehen, lt. API (Stichwort chat-id) sind sie bereits vorhanden, aber ich habe bisher in meinen Daten noch keine chat-ids erhalten. Da muss ich noch etwas experimentieren. Es ist aber möglich einen bot zu einer Gruppe hinzuzufügen. Damit aber alle Einträge in der Gruppe auch an den Bot gehen, müssen die privacy einstellungen des Bots geändert werden --> botfather


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 September 2015, 22:52:39
Habe ihr weitere anwendungsbeispiele?

Meine 3 Hauptanwendungsfälle sind
- Kommandos von aussen an fhem schicken, ohne mein Firewall zu öffnen
- Benachrichtigungen über Ereignisse (z.B Fenster sind noch offen, wenn ich die Haustüre abschliesse)
- Neu hinzugekommen ist bei mir jetzt zustände und Infos aus dem System abzufragen (Luftfeuchtigkeit oder Temperatur an bestimmten Stellen, wg. Schimmel / Wer hat angerufen), also Dinge für die ich keine Benachrichtigung habe, die mich aber gerade brennend interessieren ;D
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: igami am 24 September 2015, 05:48:41
Mir ist allerdings nicht ganz klar, wie Du Dir vorstellst das switch/case als Device umzusetzen? Ein Attribut oder mehrere, steht das ganze Switch in einem Attribute, dann wäre sicher ein myutils-Modul eher einfacher, denn sonst muss man quasi die halbe Perl-Umgebung (stichwort syntaxprüfung und Auswertung von Ausdrücken) nachimplementieren.
Hatte es so angedacht, dass alles in der DEF steht, ähnlich wie bei DOIF, hatte nur Zeilenumbrüche eingefügt, damit es besser lesbar ist. Dann wäre es wieder benutzerfreundlicher, da man nicht in den myUtils editieren muss. Zudem könnte man pro Kommando verschiedene Attribute setzten wie z.B. cmdRestrictedPeer oder was einem in Zukunft noch so einfällt.
Syntaxprüfung habe ich dabei natürlich nicht bedacht...
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Will am 24 September 2015, 08:20:04
Meine 3 Hauptanwendungsfälle sind
- Kommandos von aussen an fhem schicken, ohne mein Firewall zu öffnen
- Benachrichtigungen über Ereignisse (z.B Fenster sind noch offen, wenn ich die Haustüre abschliesse)
- Neu hinzugekommen ist bei mir jetzt zustände und Infos aus dem System abzufragen (Luftfeuchtigkeit oder Temperatur an bestimmten Stellen, wg. Schimmel / Wer hat angerufen), also Dinge für die ich keine Benachrichtigung habe, die mich aber gerade brennend interessieren ;D
Abfragen machst du über ein notify mit einem if auf ReadingsVal msgtext, oder?


Sent from my SGP611 using Tapatalk

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 September 2015, 15:29:16
Abfragen machst du über ein notify mit einem if auf ReadingsVal msgtext, oder?

Nein, ich habe über die Definition eines cmdKeyword Zugriff auf alle fhem Befehle, die fhem erlaubt. Also
attr myTelegrambot cmdKeyword heyfhem
Dann kann ich per Telegram zum Beispiel senden
heyfhem list myTelegrambot Damit bekomme ich die Detailinfos aller internals/readigns/attr von myTelegrambot
Ist mangels Formatierung manchmal etwas schwerer zu beantworten

oder
heyfhem set myTelegrambot message echo Fraglich ob das Sinn macht  ;D

Also eigentlich jede Art von Kommando um etwas anzusteuern oder abzufragen ohne etwas spezifisches pro Kommando zu konfigurieren.
 

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: kud am 24 September 2015, 18:30:24
Kann man mit diesem Attribut eigentlich auch Systembefehle absetzen. zB. Reboot oder einfach Shelldateien aufzurufen?
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 September 2015, 20:57:49
Im Prinzip sollte alles möglich sein, was auch in FHEMWEB als command im Eingabefeld angegeben werden kann, da die gleichen Mechanismen verwendet werden (AnalyzeCommand).

Hinweis: Generell ist das also sehr mächtig, aber auch natürlich gefährlich wenn nicht abgesichert!

Ich verwende deshalb grundsätzlich cmdRestrictedPeer mit telegram user ids, damit man hier keine offenen Zugang schafft, ausserdem wird dann auch eine Benachrichtigung bei unzulässigem Zugriff versendet. Ich hoffe id eids sind nicht so einfach zu fälschen, wie eine MAC-Adresse.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 24 September 2015, 21:02:37
Moin,

Frage an die Experten: Installation von telegram-cli ist gelaufen, beim Aufruf von bin/telegram-cli -k /root/tg/tg-server.pub bekomme ich als Antwort auf der Konsole "Getötet".
Was soll mir das sagen?

Danke und Gruß
Uwe
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 September 2015, 00:24:37
Moin,

Frage an die Experten: Installation von telegram-cli ist gelaufen, beim Aufruf von bin/telegram-cli -k /root/tg/tg-server.pub bekomme ich als Antwort auf der Konsole "Getötet".
Was soll mir das sagen?

Danke und Gruß
Uwe

Die kurze Antwort ist, dass das Programm direkt wieder abstürzt.

Die längere Antwort: Es ist also zu befürchten, dass die Installation von telegram-cli nicht erfolgreich war. Das kann jetzt ziemlich viele Ursachen haben. Ich würde das Programm mal mit soviel logging wie möglich starten, also sowas wie -l 20 -vvvv und sehen ob mehr Infos im Terminal oder im log file oder im syslog auftauchen.

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: kud am 25 September 2015, 19:03:09
Ähmm ? Und was ist jetzt der Unterschied zwischen CLI und BOT ? Habe gerade CLI am laufen , was auch läuft (bis auf sendPhoto da wird die Verbindung zu Telegam nach jedem 2. od. 3 Bild gecancelt)
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 September 2015, 23:23:05
Ähmm ? Und was ist jetzt der Unterschied zwischen CLI und BOT ? Habe gerade CLI am laufen , was auch läuft (bis auf sendPhoto da wird die Verbindung zu Telegam nach jedem 2. od. 3 Bild gecancelt)

Ich erkläre es gerne nochmal, auch wenn nur wenige Posts zuvor ein paar erhellended Links enthalten sind  :D

telegram-cli verhält sich im wesentlichen wie ein normaler persönlicher telegram-client und erlaubt es auch auf Linux Nachrichten zu verschicken.

Also das bot-API ist eine neue Methode, die telegram zur Verfügung gestellt um Clients zu koppeln.

Inzwischen habe ich für beide ein Modul entwickelt, die Senden und Empfangen mit fhem erlauben. Es gibt aber ein paar Unterschiede:

+ Das Modul mit bot-api erfordert keine zusätzliche Software (wie cli) und funktioniert direkt aus fhem per https-Zugriff auf telegram. Ausserdem wird keine Telefonnummer benötigt, die Registrierung erfolgt direkt bei telegram.
- Allerdings habe ich noch keine Übertragung von Fotos implementiert und secret chats sind mit dem bisherigen API von telegram nicht möglich und dazu ist auch keine Änderung abzusehen.

Gruss,
Johannes

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: kud am 26 September 2015, 10:16:31
Dankeschön für die Erklärung und Deine gute Umsetzung.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 26 September 2015, 23:28:15
Hallo zusammen, hallo Johannes,

danke für den Bot.

Seit langen habe ich nun etwas Zeit gefunden (Urlaub, Steuer) um mich mit Telegram weiter zu beschäftigen.

Mein Bot habe ich beim BotFather aktiviert.
Ich habe das Modul unter 
Zitat
/opt/fhem/FHEM/
kopiert.

Den Hilfe-Eintrag in FHEM habe ich mit
Zitat
cd /opt/fhem/
perl contrib/commandref_join.pl
erzeugt bekommen.

Nach dem ich nun in die fhem.cfg ein eigenen Eintrag gemacht hatte und nach rereadcfg kam eine Meldung von Fhem
Zitat
Cannot load module TelegramBot
Daraufhin habe ich dein Beispiel aus der Hilfe verwendet.
Zitat
define teleBot TelegramBot 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
Aber auch hier kam die Fehlermeldung.
Zitat
shutdown restart
half auch nicht.

Unter http://www.fhemwiki.de/wiki/Pushbullet#Cannot_load_module_Pushbullet (http://www.fhemwiki.de/wiki/Pushbullet#Cannot_load_module_Pushbullet) steht das man JSON installieren soll.


Wollte dann wie dort beschrieben JSON installieren, aber meine Installation findet die angegeben Pfade nicht um dies zu tun.
Die URLs scheint es bei Debian nicht mehr zu geben....

NACHTRAG: Im Log steht es ja
Zitat
2015.09.26 23:51:05 0: Can't locate JSON.pm in......usw
Also fehlt das Modul tatsächlich :'(

Jemand eine Idee? Oder muss ich doch den neuen RPi2 aktivieren? Dachte ich komme da erst ein mal drum rum  :-\

NACHTRAG2: Schön wenn man sich die Fragen selbst beantworten kann ;)
Im Forum nach JSON.pm gesucht und
Zitat
sudo apt-get update && sudo apt-get install libjson-perl -y
probiert.

Juhu...Der BOT läuft. Mal sehen ob ich den Rest auch noch hin bekomme..Danke fürs zuhören ;)

Wo bekomme ich die ID er User her?
Bekomme bisher keine Verbindung zustande.

Telegram-Ini:
define myfhemBot TelegramBot 121735045:AAGyBLABLABLABLABLABLABLABM14
attr myfhemBot cmdKeyword heyfhem
attr myfhemBot defaultPeer @Blabla
attr myfhemBot room System

Fhem reagiert nicht auf @Blabla ?
Muss man warten?

Gruss Gerd

Edit: cd zum neu erzeugen des Hilfe-Eintrags ergänzt
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 September 2015, 02:50:53
Schön, dass Du es selber lösen konntest.
Ich habe einen Hinweis auf die Abhänigkeit zur JSON-lib in die Doku für das Modul aufgenommen.

Um eine Nachricht zu senden, muss Du zuerst von dem Benutzer an den Bot eine Nachricht senden. Wenn die Kommunikation in der Richtung funktioniert sollte die userId (und Fullname und username) automatisch in dem Reding Contacts auftauchen.

Konntest Du erfolgreich eine Nachricht an Deinen Bot senden?

Johannes

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 27 September 2015, 11:21:39
Hallo Johannes,

wenn ich den BotFather korrekt verstanden habe muss ich erst ein mal Befehle definieren?

Aber vielleicht habe ich meinen Bot ja bei Telegram falsch definiert?

Der Name ist fhem
und Alias @myfhemBot
Wenn ich diverse Zeilen an mein Bot schicke werden auch zwei Hacken gesetzt.
Demnach sollte die Nachricht irgend wo angekommen sein?!

 Kann man die Befehle an den BOT frei definieren?
 Ist es egal ob mit Schrägstrich oder ohne?


Gruss, Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 September 2015, 13:09:51
Hallo Johannes,

wenn ich den BotFather korrekt verstanden habe muss ich erst ein mal Befehle definieren?

Aber vielleicht habe ich meinen Bot ja bei Telegram falsch definiert?

Der Name ist fhem
und Alias @myfhemBot
Wenn ich diverse Zeilen an mein Bot schicke werden auch zwei Hacken gesetzt.
Demnach sollte die Nachricht irgend wo angekommen sein?!

 Kann man die Befehle an den BOT frei definieren?
 Ist es egal ob mit Schrägstrich oder ohne?


Gruss, Gerd

Hallo Gerd,
Nein, Du musst keine Befehle definieren. Das ist nur eine Möglichkeit, es ist aber nicht notwendig um mit dem Bot zu koomunizieren.

Es klingt so, als ob Du vielleicht das pollingtimeout nicht gesetzt hast. Dieses ist erforderlich, damit das Modul überhaupt neue Nachrichten abholt?

Siehe Kurzbeschreibung:
o Das Attribut pollingTimeout muss auf einen Wert > 0 gesetzt sein, sonst wird nichts empfangen
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 September 2015, 13:18:19
Die aktuellen Version von 70_Telegram (0.7) und 50_TelegramBot (0.6) sind jetzt in Git verfügbar.
Ich habe diese auch an das erste Posting im Thread angehängt und dort jetzt auch beide Module erwähnt.

Ich plane in Zukunft eher TelegramBot weiterzuentwickeln, wenn ich nichts anderes höre. Aus meiner Sicht sind folgende Funktionen als nächste zu ergänzen:
- sendPhoto / sendPhotoTo
- erlaube Kommandos als Kurzzugriffe
- reply (erforderlich für Dialogfunktion)
- Dialogfunktion
- Emoticons (diese funktionieren momentan nicht, wobei das Problem auch auf telegram Seite zu liegen scheint Vermischung versch. Unicodes)

Natürlich könnt Ihr gerne weitere/andere Vorschläge machen

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 27 September 2015, 14:46:42
Hallo Johannes,

Zitat
o Das Attribut pollingTimeout muss auf einen Wert > 0 gesetzt sein, sonst wird nichts empfangen
Ah jetzt ja.....

Na so was aber auch  :o. Kaum macht man es Richtig.
Habe nun beim Polling etwas eingetragen (5) kam auch prompt auf alles was ich geschrieben hatte, eine Antwort  ;D

Danke erst einmal!  ::)

Thema BOT oder CLI, ich denke mal wenn die Funktion gleich ist, dürfte der BOT einfacher sein.
Es entfällt das installieren der CLI mit allen Problemen die man damit haben kann.

Danke noch mal für deine Arbeit.

Gruss, Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 28 September 2015, 18:08:16
Moin Moin,

nachdem ich mit der telegram-cli nicht klargekommen bin (Senden will trotz korrekter Rechte usw. nicht funktionieren, empfangen ging...), hab ich mich nun am Bot versucht. Nach diversen Hürden klappt's nun aber...schwitz. Daher plädiere ich für die Weiterentwicklung vom Bot.  ;)

Danke für die Mühe

Gruß
Uwe
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 28 September 2015, 20:03:49
Hallo Uwe

Gratulation  ;)

Ich hatte gestern versucht Johannes sein Bot anzusprechen.
Das wurde mir verweigert (zu Recht).
Mir war dann klar das ich auch schauen muss das nur eingetragene Nutzer den eigenen Bot nutzen dürfen.
Hierzu gibt es, dachte ich, cmdRestrictedPeer?!
Hier habe ich dann zwei Nutzer mit @ vorangestellt , eingetragen.
Diese Nutzer werden aber nun abgewiesen?
Habe ich die Funktion falsch verstanden?

Wer kann hier ein paar Beispiele für die Daus wie mich posten?

Wenn ich zusammen hängende Beispiele habe tu ich mich leichter die Funktionen zu verstehen und für meine Zwecke anzupassen.
Eventuell dann auch mit zu dokumentieren.

Mich würde z.B interessieren wie ich die Temperatur oder Feuchte eines DS2438 /DS18b20 per TelegramBot abfrage.

Gruss

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 29 September 2015, 01:18:59
Hallo Uwe

Gratulation  ;)

Ich hatte gestern versucht Johannes sein Bot anzusprechen.
Das wurde mir verweigert (zu Recht).
Mir war dann klar das ich auch schauen muss das nur eingetragene Nutzer den eigenen Bot nutzen dürfen.
Hierzu gibt es, dachte ich, cmdRestrictedPeer?!
Hier habe ich dann zwei Nutzer mit @ vorangestellt , eingetragen.
Diese Nutzer werden aber nun abgewiesen?
Habe ich die Funktion falsch verstanden?

Wer kann hier ein paar Beispiele für die Daus wie mich posten?

Wenn ich zusammen hängende Beispiele habe tu ich mich leichter die Funktionen zu verstehen und für meine Zwecke anzupassen.
Eventuell dann auch mit zu dokumentieren.

Mich würde z.B interessieren wie ich die Temperatur oder Feuchte eines DS2438 /DS18b20 per TelegramBot abfrage.

Gruss

Gerd

Hallo Gerd,
Sorry das ist noch ein Problem im Modul. Momentan werden bei cmdRestrictedpeer nur contact ids und keine Benutzernamen unterstützt. Sorry das greift die Doku der Implementierung wohl noch etwas vor  ;D.

Die contact ids lassen sich aber leicht aus dem contacts reading herauslesen.

Das wird auch bald gefixt, allerdings kämpfe ich noch mit dem Versenden von Fotos, denn das ist doch sehr viel aufwändiger als gedacht, momentan lassen sich nur kleine Bilder übertragen...
Doku kommt dann auch und und und und...
Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 29 September 2015, 19:54:44
Hallo Johannes

Nachdem ich dein Post gelesen hatte, habe ich heute morgen noch vorm Arbeit fahren die User Nummer eingetragen.
Damit hat es dann funktioniert :P
Im Geschäft angekommen, funktionierte dann nur heyfhem help. List wurde ignoriert? !

Nach der Arbeit probierte ich wieder. Um18:01 kam noch eine Antwort.
Um 19:33  nicht mehr.

Habe dann rereadcfg eingegeben und es wurden danach die anfragen alle an den Client geschickt.

Habe ich das pollingTimeout mit "5" falsch gewählt?

Im logfile häufen sich die Meldungen wegen Telegram. Timeouts und anderes.

Soll ich dies hier posten?

Gruß Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 29 September 2015, 22:01:00
Hallo Gerd,
das timeout mit 5 ist relativ kurz (allerdings ist wohl 20 das Maximum beim telegram bot api).

Das Zusammenspiel von fhem und telegram bot läuft noch nicht sehr rund, ich sehe bei mir auch regelmässig Verbindungsabbrüche und timeouts. Ein grosser Teil ist sicher unkritisch, denn dann repariert sich die Verbindung normalerweise wieder.

Es gibt auch eine Möglichkeit mit
set <telegrambotdevice> resetdas Modul wieder zurückzusetzen, dass das polling neu startet (und auch die Internals zurücksetzt). Das ist allerdings nur eine temporäre Lösung.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 30 September 2015, 18:45:09
Hallo Johannes,

hier auf Seite 8 schreibst Du das man mit

heyfhem list myTelegrambot
die Daten bekommt.

Das habe ich gerade probiert.

Als Antwort kommt auf

/heyfhem list myfhemBot
allerdings nichts. Nur zwei Haken.

Im Event-Monitor habe ich gesehen das die Daten erzeugt werden.
Aber scheinbar ist die Ausgabe zu gross/lang für irgend einen Server auf den Weg zu mir  :o

Zitat
Auszug aus der letzten Zeile. Darüber steht die Ausgabe von List myfhemBot
....
NAME addr https://api.telegram.org:443 buf HTTP/1.1 414 Request-URI Too Large Server: nginx/1.9.1 Date: Wed, 30 Sep 2015 16:11:07 GMT Content-Type: text/html Content-Length: 192 Connection: close
....
Und viele weitere Meldungen.

Wenn gewünscht, kann ich Dir das komplette Log schicken.
Hab die Monitorausgabe in ein Editor kopiert.
Die Log-Zeilen sind 127kb gross!

Eine frage,
auf Git gibt es ein neueres Bot-Modul von Dir.
Und ein zweites (HttpUtils.pm) ist dazu gekommen.
Muss das mit installiert werden?
Da dies bei mir schon vorhanden ist, habe ich es nicht drüber kopiert.

Gruss,
Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 30 September 2015, 22:47:09
hier auf Seite 8 schreibst Du das man mit

heyfhem list myTelegrambot
die Daten bekommt.

Das habe ich gerade probiert.

Als Antwort kommt auf

/heyfhem list myfhemBot
allerdings nichts. Nur zwei Haken.

Im Event-Monitor habe ich gesehen das die Daten erzeugt werden.
Aber scheinbar ist die Ausgabe zu gross/lang für irgend einen Server auf den Weg zu mir  :o

Wenn gewünscht, kann ich Dir das komplette Log schicken.
Hab die Monitorausgabe in ein Editor kopiert.
Die Log-Zeilen sind 127kb gross!

Eine frage,
auf Git gibt es ein neueres Bot-Modul von Dir.
Und ein zweites (HttpUtils.pm) ist dazu gekommen.
Muss das mit installiert werden?
Da dies bei mir schon vorhanden ist, habe ich es nicht drüber kopiert.

Gruss,
Gerd

Genau, diese Art von Abfragen funktioniert nur bis zu bestimmter Länge (bei messages wohl < 2kB)
Ein ähnliches Problem hindert mich momentan an der Übertragung von Photos, denn auch hier funktionieren Photos mit bis 10k problemlos (auf meinem raspberry) aber Dateien mit 30KB gehen ncht.

Genau deshalb hast Du ein httputils gesehen, da habe ich gestern Nacht meinen Zwischenstand eingechecked, den werde ich aber Rudi sobald es stabil ist zur Verfügung stellen.

Also zu Deinen Fragen. Ja Grössenbeschränkungen sind bekannt und werden mit einem neuen HTTPUtils demnächst auch lösbar sein. Die aktuelle httputils-Version ist definitiv noch experimentell. Also brauche ich dazu den logfile wohl nicht.

Ich werde mal versuchen heute abend eine Version zu erstellen, die zumindest bei messages auch mehr als die ca. 2kB erlaubt.




Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 Oktober 2015, 00:40:32
So anbei nun eine erweiterte Version fon 50_TelegramBot   V0.7, die neben einer ganzen Reihe von Stabilisierung folgende Neuigkeiten enthält.

1) sendPhoto / sendPhotoTo
Versenden von Bildern durch Angabe des Dateinamens.
Achtung: Dateien sind in der Grösse (raspberry ca 30k) beschränkt, nur wenn man das neue HTTPUtils Modul aus meinem github Projekt verwendet, lassen sich auch grössere Dateien verschicken (Ich habe bis 1MB getestet)

2) Grössere Messages und Kommando-Antworten bis ca. 30k unterstützt.
Bisherige Beschänkung von weniger als 2kB entfällt

3) Mehrere Kommandos zum Senden von Nachrichten oder Fotos gleichzeitig werden jetzt über eine Warteschlangen nacheinanderabgearbeitet

4) Es sollte jetzt durchgägngig möglich sein neben user ids auch usernames (@username) zu verwenden. Empfehlung ist bei wichtigen Einstellungen (cmdRestrictedPeer) aber user ids zu verwenden, da dies vermutlich fälschungssicherer ist.

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 01 Oktober 2015, 19:47:47
Hallo Johannes,

habe probiert ein Bild (~35kB)zu verschicken.

HTTPUtils habe ich dein neues eingespielt.

Im Hilfe-Text steht noch die Info zum Telegram-CLI.
Dort heisst es
Zitat
sendPhoto <file> [<caption>]
Sends a photo to the default peer. File is specifying a filename and path that is local to the directory in which telegram-cli process is started. So this might be a path on the remote host where telegram-cli is running and therefore not local to fhem

Was ist "caption" ? Und wo muss das Bild stehen?

Hatte es nach
/opt/fhem/FHEM/kopiert aber passiert nichts.

Im Log steht nur dies hier:
Zitat
2015-10-01 19:31:30 TelegramBot myfhemBot sendPhoto /opt/fhem/FHEM/Freut_sich.jpg

Internals zeigt das hier an
Zitat
sentMsgText Photo: /opt/fhem/FHEM/Freut_sich.jpg

Wenn ich den Pfad nicht mit übergebe kommt eine Fehlermeldung.
Zitat
FAILED file :Freut_sich.jpg: not found or empty

Soweit erst mal.

Danke und schönen Abend

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 Oktober 2015, 22:01:26
Hallo Johannes,

habe probiert ein Bild (~35kB)zu verschicken.

HTTPUtils habe ich dein neues eingespielt.

Im Hilfe-Text steht noch die Info zum Telegram-CLI.
Dort heisst es
Was ist "caption" ? Und wo muss das Bild stehen?

Hatte es nach
/opt/fhem/FHEM/kopiert aber passiert nichts.

Im Log steht nur dies hier:
Internals zeigt das hier an
Wenn ich den Pfad nicht mit übergebe kommt eine Fehlermeldung.
Soweit erst mal.

Danke und schönen Abend

Gerd

Hallo Gerd,
OK, das mit dem Hilfetext muss ich noch anpassen, Danke für den Hinweis!
(Caption, wäre eine Bildbeschreibung/-unterschrift). Diese wird noch nicht unterstützt.

Hast Du mal versucht ein kleineres Bild zu versenden? -- > Klappt das?

Wenn auch da keine Rückmeldung kommt, kannst Du beim Modul mal das Attribut "verbose" auf den Wert 4 setzen und dann nochmals probieren? Ich würde mir dann gerne den log anschauen.

Achso, nur zur Sicherheit:
- Du hast natürlich nach Einspielen von beiden Modulen entweder den Server neu gestartet oder ein reload für die beiden Module ausgelöst?
- Versenden von Text funktioniert noch?

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 01 Oktober 2015, 22:49:06
Hallo Johannes
Ich habe rereadcfg gemacht.
Hiffe das ist das gleiche?
Scheinbar nicht. Hab nun das Modul mit reload geladen.
Nun stehen im log Fehler. Die Android copy&paste Funktion ist nervig
Bekomme nicht alles markiert.
Hier der Anfang
Zitat
m line 29.
2015.10.01 22:37:32 3: TelegramBot_Set myfhemBot: called
2015.10.01 22:37:32 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.01 22:37:38 3: TelegramBot_Set myfhemBot: called
2015.10.01 22:37:38 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_Initialize redefined at ./FHEM/50_TelegramBot.pm line 200.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_Define redefined at ./FHEM/50_TelegramBot.pm line 222.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_Undef redefined at ./FHEM/50_TelegramBot.pm line 270.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_State redefined at ./FHEM/50_TelegramBot.pm line 295.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_Set redefined at ./FHEM/50_TelegramBot.pm line 311.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_Get redefined at ./FHEM/50_TelegramBot.pm line 435.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_Attr redefined at ./FHEM/50_TelegramBot.pm line 485.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_ReadHandleCommand redefined at ./FHEM/50_TelegramBot.pm line 548.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_SendIt redefined at ./FHEM/50_TelegramBot.pm line 641.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_UpdatePoll redefined at ./FHEM/50_TelegramBot.pm line 786.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_Callback redefined at ./FHEM/50_TelegramBot.pm line 846.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_ParseMsg redefined at ./FHEM/50_TelegramBot.pm line 972.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_DoUrlCommand redefined at ./FHEM/50_TelegramBot.pm line 1047.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_GetIdForPeer redefined at ./FHEM/50_TelegramBot.pm line 1106.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_GetContactInfoForContact redefined at ./FHEM/50_TelegramBot.pm line 1146.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_GetFullnameForContact redefined at ./FHEM/50_TelegramBot.pm line 1158.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_IsKnownContact redefined at ./FHEM/50_TelegramBot.pm line 1181.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_CalcContactsHash redefined at ./FHEM/50_TelegramBot.pm line 1198.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_InternalContactsFromReading redefined at ./FHEM/50_TelegramBot.pm line 1243.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_ContactUpdate redefined at ./FHEM/50_TelegramBot.pm line 1251.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_userObjectToString redefined at ./FHEM/50_TelegramBot.pm line 1280.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_BinaryFileRead redefined at ./FHEM/50_TelegramBot.pm line 1311.
2015.10.01 22:38:31 1: PERL WARNING: Subroutine TelegramBot_BinaryFileWrite redefined at ./FHEM/50_TelegramBot.pm line 1333.
2015.10.01 22:38:32 1: PERL WARNING: Subroutine TelegramBot_Setup redefin.....



Text versenden geht noch. Bild kommt keins an.

Freitag abend wollten wir ins Kino. Eventuell dann erst am Samstag meh /opt/fhem/FHEM/Freut_sich.jpgr zeit.
Lieg schon im Bett.
Gute Nacht

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 Oktober 2015, 00:02:24
Hallo Gerd,
Nein, rereadcfg ist nicht dasselbe, denn dabei wird nur die Konfiguration neu egelesen (also Deine Devices/States), aber normalerweise werden veränderte Perl-module nicht nachgelesen. Es gibt meines Wissens nur die Möglichkeit reload <modulname> um das im laufenden Betrieb zu tun. Aber Achtung: Die sauberere Lösung ist den Server per shutdown restart neu zu starten.

Also der Logteil ist leider nur der Teil, der automatisch beim reload entsteht, da ja die ganzen Methoden neu geladen und damit neu definiert werden. Ausserdem ist das auch nur der reload teil für telegrambot und nicht httputils.

Interessant wäre zu sehen, was beim senden eines Bildes passiert.
Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 Oktober 2015, 12:26:15
Habe soeben nochmals eine aktualisierte Version in github hochgeladen, da es u.U. vorkommen konnte, dass fhem beim start des telegram bots abstürzt. (Danke an HolyMoly für den github issue).

Neueste Version ist auch im ersten Post angehängt (ohne httputils).
Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 02 Oktober 2015, 18:54:32
Hallo Johannes

Alles klar.  Irgendwann werd ich auch durch steigen  :-[

Am Samstag komme ich wieder zum testen.
Geht gleich in "Fuck ju Göte".

Gruss

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 03 Oktober 2015, 16:43:39
Hallo Johannes,

am PC ist das doch einfacher als am Smartphone.


Sieht so aus als hätte HttpUtils hier ein Problem ?
Datei zu gross?
Fehlten noch 350kB.
Offset outside string at FHEM/HttpUtils.pm line 372
Zitat
2015.10.03 16:13:43 3: syswrite written data so far: 1720320:  current chunk :400265:
2015.10.03 16:13:43 3: syswrite returned ::  check
2015.10.03 16:13:43 3: directWriteFn phase 2 err? ::
2015.10.03 16:13:43 3: directWriteFn phase 2 Continues:
2015.10.03 16:13:43 3: directWriteFn entering with : 2:
2015.10.03 16:13:43 3: syswrite written data so far: 1736704:  current chunk :383881:
2015.10.03 16:13:43 3: syswrite returned ::  check
2015.10.03 16:13:43 3: directWriteFn phase 2 err? ::
2015.10.03 16:13:43 3: directWriteFn phase 2 Continues:
2015.10.03 16:13:43 3: directWriteFn entering with : 2:
2015.10.03 16:13:43 3: syswrite written data so far: 1753088:  current chunk :367497:
2015.10.03 16:13:43 3: syswrite returned ::  check
2015.10.03 16:13:43 3: directWriteFn phase 2 err? ::
2015.10.03 16:13:43 3: directWriteFn phase 2 Continues:
2015.10.03 16:13:43 3: directWriteFn entering with : 2:
2015.10.03 16:13:43 3: syswrite written data so far: 1769472:  current chunk :351113:
2015.10.03 16:13:43 3: syswrite returned ::  check
2015.10.03 16:13:43 3: directWriteFn phase 2 err? ::
2015.10.03 16:13:43 3: directWriteFn phase 2 Continues:
2015.10.03 16:13:54 3: HttpUtils url=https://api.telegram.org/bot122452545:Ajkhsdglhsgkhslkghslkghlskhg14/sendMessage
2015.10.03 16:13:54 3: directWriteFn entering with : 2:
Offset outside string at FHEM/HttpUtils.pm line 372.
2015.10.03 16:19:14 1: Including fhem.cfg

Die frage ist ob es Sinn macht so große Bilder zu verschicken.
Eventl. kannst Du ja auch zu große Dateien ablehnen?!
Am Smartphone werden die Bilder auch nicht 1:1 verschickt und verkleinert.

Das Bild kann überall auf der Platte stehen um es zu verschicken. Ist das beabsichtigt?

Funktioniert soweit also bestens!

Danke für die Arbeit. Werde dann mal weiter probieren.

Schönes Wochenende.

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 Oktober 2015, 18:09:07
Hallo Gerd,
Danke für den Test. Das mit den grossen Dateien ist sicher fragwürdig, allerdings ist die maximale Grösse offensichtlich abhängig von der PLattform und möglicherweise anderen Einflüssen. Ich habe gerade nochmals erfolgreich bis zu 8 MB übertragen. Bei 10MB und darüber macht wohl telegram schlapp, allerdings konnte ich bei mir 28MB ohne Absturz transferieren, dann kam von telegram eine Invalid-Meldung (vermutlich wg. Grösse).

Ich kann vielleicht einen Parameter vorsehen, der die Grösse beschränkt, ich habe das mal auf meine Liste gepackt.

Allerdings scheint mir die Meldung auch irgendwie komisch zu sein, denn offensichtlich läuft bei fhem die Übertragung zu Ende obwohl noch keine 2,1MB geschrieben wurden...

Auf welcher Plattform betreibst Du fhem, oder hattest Du das schon irgendwo erwähnt?

Johannes

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 03 Oktober 2015, 18:37:56
Hallo Johannes,

Plattform ist ein RPi B.
Fhem V5.6

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 Oktober 2015, 23:02:32
Das klingt erstmal ähnlich (wobei ich einen PI 2 verwendet). Kannst Du mir Bescheid sagen, wenn das wieder passiert?

Ja das Bild kann überall stehen, ich wollte dazu keine Einschränkungen definieren. Ich hatte dabei keine Sicherheitsbedenken.


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 Oktober 2015, 02:34:40
ich habe (in github) nochmals eine neue Version hochgeladen, die ein paar Neuerungen enthält

Die gesendeten Kommandos werden in einem Reading gespeichert (max 10) - reading StoredCommands

Über ein zusätzliches CommandKey word --> attribute cmdSentCommands
lassen sich diese direkt von einem CLient abrufen --> also man sendet das entsprechende commando und erhält eine Liste der letzten Kommandos zurück

Ausserdem habe ich ein paar Änderungen an der Doku gemacht und ein paar Fixes.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 04 Oktober 2015, 13:25:14
Hallo Johannes

wann schläfst Du eigentlich? :P

Okay, die Meldung des Neustarts wird nun auch ausgegeben.
Soweit also Funktioniert das nun ebenso bei mir.

Das große Bild werde ich dann bei Gelegenheit noch mal los schicken.

Der Pi2 liegt noch in der Schublade.

Bis dahin , einen schönen Sonntag

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 04 Oktober 2015, 13:57:02
Hallo Johannes,

nach dem
Zitat
shutdown restart

steht im Log
Zitat
2015.10.04 13:35:44 3: TelegramBot_Define myfhemBot: called
2015.10.04 13:35:45 2: TelegramBot_DoUrlCommand myfhemBot: FAILED http access returned error :https://api.telegram.org/bot12000045:AAHnxUb_Bo1Wwxxxxxxxxxs9Dk/getMe: Can't connect(2) to https://api.telegram.org:443:  SSL wants a read first:

Verbose stand auf 1.

Habe nun noch einmal das 2.1MB Bild übertragen.
Diesmal gab es keine Probleme. Ging auch recht flott.

Verbose hatte ich zuvor auf 4 gesetzt.

Zitat
2015.10.04 13:52:42 3: syswrite written data so far: 2104201:  current chunk :7049:
2015.10.04 13:52:42 3: syswrite written data finally: 2104201:  length :2104201:
2015.10.04 13:52:42 3: directWriteFn phase 2 err? :<none>:
2015.10.04 13:52:42 3: directWriteFn phase 2 finished moving to 3:
2015.10.04 13:52:42 3: directWriteFn entering with : 3:
2015.10.04 13:52:42 3: directWriteFn cleanup :
2015.10.04 13:52:43 3: <hidden>: HTTP response code 200
2015.10.04 13:52:43 3: HttpUtils <hidden>: Got data, length: 765
2015.10.04 13:52:46 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from https://api.telegram.org/bot12000045:AAHnxUb_Bo1Wwxxxxxxxxxxxx9Dk/getUpdates?offset=0&limit=5&timeout=10: from Polling

Ist das Log soweit ok?

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 Oktober 2015, 14:33:59
Hallo Gerd,
2015.10.04 13:35:45 2: TelegramBot_DoUrlCommand myfhemBot: FAILED http access returned error :https://api.telegram.org/bot12000045:AAHnxUb_Bo1Wwxxxxxxxxxs9Dk/getMe: Can't connect(2) to https://api.telegram.org:443:  SSL wants a read first:
die Meldung ist unkritisch beim Start, ich werde aber trotzdem hier noch etwas mehr Fehlertoleranz einbauen, denn bei der SSL-Aushandlung zwischen telegram und fhem scheint das gelegentlich aufzutreten.

Ja der Transfer sieht gut aus.

2015.10.04 13:52:46 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from https://api.telegram.org/bot12000045:AAHnxUb_Bo1Wwxxxxxxxxxxxx9Dk/getUpdates?offset=0&limit=5&timeout=10: from Polling
Die Meldung hat mit dem Transfer nichts mehr zu tun und kommt gelegentlich, wenn der telegram-Server nicht in der vorgesehenen Zeit antwortet. Ich habe die timeouts hier bereits erhöht und normalerweise ist es nur unschön wg. des log-Eintrags.

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 04 Oktober 2015, 22:02:06
Hallo zusammen,

hier ein mal meine Anpassung der Mülleimer-Benachrichtigung aus http://www.fhemwiki.de/wiki/Pushover (http://www.fhemwiki.de/wiki/Pushover).

Was muss gemacht werden:

In der fhem.cfg wird die Konfiguration Telegram_Ereignisse.cfg definiert.
# Ereignisse laden und via Telegram ausgeben
include /opt/fhem/FHEM/Telegram_Ereignisse.cfg

In dieser wird der Kalender und das Ausgabe-Device (Telegram-Bot) vorgegeben.

Es muss in der Telegram_Ereignisse.cfg noch der Name des eigenen Telegram-Bots angepasst werden!
In meinem Beispiel ist das myfhemBot.

Die gewünschten Termine werden in der Datei /opt/fhem/FHEM/events.holiday abgelegt.
Das Format wird unter http://fhem.de/commandref.html#holiday (http://fhem.de/commandref.html#holiday) oder http://fhem.de/commandref_DE.html#holiday (http://fhem.de/commandref_DE.html#holiday) erklärt.

Beide Dateien sind als Beispiel angehängt.

Gruss

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 Oktober 2015, 22:39:45
Hallo Gerd,
Danke für die Einstellung Deines Szenarios.

Mich bringt das auf die Idee, dass es Sinn machen könnte eine generische Schnittstelle für Messaging-Dienste zu haben.
Also dafür zu sorgen dass, telegram, yowsup(WhatsApp) und ähnliche die gleiche Syntax / Befehle Attirbute verwenden, dann sind solche Umstellungen in Zukunft gar nicht mehr nötig...

gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 04 Oktober 2015, 23:00:23
Hallo Johannes,

ja das wäre am einfachsten. Aber dazu müssten alle Dienste die gleichen Möglichkeiten/Optionen haben!?
Das Pushover usw. können auch Überschriften oder Tabellen erzeugen.
Man hat auch die Möglichkeit per RegEx bestimmte Gruppen ansprechen zu können.

Dazu müssten sich alle auf einen Nenner einigen  8)

Gute Nacht
Gerd

 
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 Oktober 2015, 23:06:13
Dazu müssten sich alle auf einen Nenner einigen  8)

Ja genau --> siehe hier: http://forum.fhem.de/index.php/topic,41803.msg340470.html#msg340470 (http://forum.fhem.de/index.php/topic,41803.msg340470.html#msg340470)
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 06 Oktober 2015, 20:05:36
Hallo Johannes,

das Aktuelle PM bringt Fehler Meldungen.
Ich habe nochmals ein "shutdown restart" gemacht.
Aber es klappt nicht mehr.
Im Log stehen diverse Meldungen das zwei Variablen Probleme machen.
Zitat
2015.10.06 17:28:28 1: Including /opt/fhem/FHEM/TelegramBot.cfg
Scalar value @clist[$cmdId] better written as $clist[$cmdId] at ./FHEM/50_TelegramBot.pm line 654.
2015.10.06 17:28:28 3: TelegramBot_Define myfhemBot: called

2015.10.06 07:30:25 0: Server started with 67 defined entities (version $Id: fhem.pl 9307 2015-09-25 18:44:20Z rudolfkoenig $, os linux, user fhem, pid 8237)
2015.10.06 07:30:27 3: get events today : Test Gruener Sack rausstellen
Test Gruener Sack rausstellen2015.10.06 07:30:27 1: PERL WARNING: Use of uninitialized value $addPar in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 828.


1 Minute, wie gewünscht,  habe ich gewartet mit etwas schreiben. Da aber das Event nach dem Restart ansteht geht/ging das nicht.

Habe den Event nach dem restart deaktiviert.
Nun ist der Bot wieder ansprechbar. Die Fehlermeldung  mit Zeile 828 kam diesmal nicht.
Nur die Zeile 654  ;)

Ich werde also erst ein mal das Event nach dem Starten draußen lassen.

Gerd

Edit1: Zeile 654 im PM wie von Perl vorgeschlagen, angepasst > Keine Meldung mehr
Edit2: cmdFavorites & Favoriten funktioniert Klasse! ;D
Edit3: Wenn man bei z.B. als cmdKeyword "/hey"  gesetzt hat und cmdFavorites mit "/" definiert, wird immer nur die Favoriten-Liste ausgegeben.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 Oktober 2015, 00:18:26

das Aktuelle PM bringt Fehler Meldungen.
Ich habe nochmals ein "shutdown restart" gemacht.
Aber es klappt nicht mehr.
Im Log stehen diverse Meldungen das zwei Variablen Probleme machen.
Nun ist der Bot wieder ansprechbar. Die Fehlermeldung  mit Zeile 828 kam diesmal nicht.
Nur die Zeile 654  ;)

Edit1: Zeile 654 im PM wie von Perl vorgeschlagen, angepasst > Keine Meldung mehr
Edit2: cmdFavorites & Favoriten funktioniert Klasse! ;D
Edit3: Wenn man bei z.B. als cmdKeyword "/hey"  gesetzt hat und cmdFavorites mit "/" definiert, wird immer nur die Favoriten-Liste ausgegeben.

Hallo Gerd,
die aktuelle version in Github sollte die Perlwarnungen nicht mehr bringen.
Allerdings konnte ich Dein Verhalten bei mir nicht nachvollziehen, auch mit einem notify beim Start.

Wichtig: Das Polling zum Empfang startet bereits seit der letzten Version verzögert, damit erst alle Attributwerte und auch der Server vollständig gestartet ist. Kannst Du das mit der neuesten Version nochmals prüfen?

Zu Deinem Edit 3: Die verschiedenen Komandokeywords dürfen nicht als Teil eines anderen Keywords vorkommen, da ja nach dem Keyword noch weitere Texte folgen können.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 Oktober 2015, 00:44:02
Ich habe soeben nochmals eine neue Fassung (Version 0.8 ) des 50_TelegramBot hochgeladen (in github und im ersten Post).

Die grössten Änderungen betreffen erweiterte Kommands und Favoriten und letzte Komandos, ausserdem habe ich verschiedene set-Kommandos mit weiteren Namen versehen, um kompatibler mit anderen Messaging-Modulen zu sein. Zusätzlich sind einige Fehler behoben.

Gruss,
Johannes



 
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 10 Oktober 2015, 15:49:21
Hallo Johannes,

TelegramBot macht bei mir nun nichts mehr :(
Nach dem ich das PM kopiert hatte, habe ich ein "shutdown restart" gemacht.
Ich sehe zwar das die Befehle von Telegram-Client eingehen, aber sie lösen nichts mehr aus.

Den Restart-Event habe ich wieder aktiviert. Erfolgt aber keine Ausgabe.
Zitat
sentMsgResult WAITING
sentMsgText    Fhem wurde neu gestartet!

Verbose habe ich auf 5 gesetzt und neu gestartet
Zitat
2015.10.10 15:34:41 1: Including /opt/fhem/FHEM/TelegramBot.cfg
2015.10.10 15:34:41 3: TelegramBot_Define myfhemBot: called
.
.
2015.10.10 15:36:18 4: TelegramBot_State Contacts hash has now :2:
.
2015.10.10 15:36:26 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:36:26 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( message )
2015.10.10 15:36:26 4: TelegramBot_Set myfhemBot: start message send
2015.10.10 15:36:26 5: TelegramBot_SendIt myfhemBot: called
2015.10.10 15:36:26 5: TelegramBot_Set myfhemBot: message done succesful:
.
.
2015.10.10 15:36:26 4: TelegramBot_ResetPolling myfhemBot: called
2015.10.10 15:36:26 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:36:26 4: TelegramBot_ResetPolling myfhemBot: finished
.
.
2015.10.10 15:36:54 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:36:54 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:36:54 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:36:54 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:36:54 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:37:04 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:37:04 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:37:04 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:37:04 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:37:04 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
.
.
2015.10.10 15:37:14 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:37:14 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:37:14 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:37:14 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:37:14 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:37:25 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:37:25 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:37:25 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:37:25 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:37:25 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:37:34 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:37:34 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[{"update_id":816793229,
"message":{"message_id":762,"from":{"id":13363079,"first_name":"Banane","username":"Banane"},"chat":{"id":13363079,"first_name":"Banane","username":"Banane","type":"private"},"date":1444484254,"text":"\/hey"}}]}:
2015.10.10 15:37:34 5: UpdatePoll myfhemBot: number of results 1
2015.10.10 15:37:34 5: UpdatePoll myfhemBot: parse result
2015.10.10 15:37:34 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:37:34 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:37:34 4: TelegramBot_ContactUpdate # Contacts in hash before :2:
2015.10.10 15:37:34 4: TelegramBot_ContactUpdate # Contacts in hash after :2:
2015.10.10 15:37:34 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:37:34 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.10 15:37:34 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:37:34 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:37:34 5: TelegramBot_checkAllowedPeer myfhemBot: called with 13363079
2015.10.10 15:37:34 3: TelegramBot_ReadHandleCommand myfhemBot: cmd found ::
2015.10.10 15:37:34 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:37:34 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:37:34 5: TelegramBot_ReadHandleCommand cmd correct peer
2015.10.10 15:37:34 5: TelegramBot_ReadHandleCommand final cmd for analyze ::
2015.10.10 15:37:34 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:37:34 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.10 15:37:34 4: TelegramBot_AddStoredCommands :/hey
:
2015.10.10 15:37:34 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:37:34 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:37:34 5: TelegramBot_ExecuteCommand final cmd for analyze ::
2015.10.10 15:37:34 5: TelegramBot_ExecuteCommand result for analyze :<undef>:
2015.10.10 15:37:34 5: TelegramBot_ExecuteCommand myfhemBot: TelegramBot fhem cmd :: result OK:
2015.10.10 15:37:34 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:37:34 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( messageTo )
2015.10.10 15:37:34 4: TelegramBot_Set myfhemBot: start message send
2015.10.10 15:37:34 5: TelegramBot_SendIt myfhemBot: called
2015.10.10 15:37:34 3: TelegramBot_SendIt myfhemBot: add send to queue :13363079: -:TelegramBot fhem cmd :: result OK: - :<undef>:
2015.10.10 15:37:34 5: TelegramBot_Set myfhemBot: messageTo done succesful:
2015.10.10 15:37:34 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:37:34 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.10 15:37:34 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:37:34 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:37:45 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:37:45 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:37:45 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:37:45 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:37:45 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:37:46 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:37:46 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[{"update_id":816793230,
"message":{"message_id":763,"from":{"id":13363079,"first_name":"Banane","username":"Banane"},"chat":{"id":13363079,"first_name":"Banane","username":"Banane","type":"private"},"date":1444484266,"text":"#"}}]}:
2015.10.10 15:37:46 5: UpdatePoll myfhemBot: number of results 1
2015.10.10 15:37:46 5: UpdatePoll myfhemBot: parse result
2015.10.10 15:37:46 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:37:46 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:37:46 4: TelegramBot_ContactUpdate # Contacts in hash before :2:
2015.10.10 15:37:46 4: TelegramBot_ContactUpdate # Contacts in hash after :2:
2015.10.10 15:37:46 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:37:46 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.10 15:37:46 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:37:46 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:37:46 5: TelegramBot_checkAllowedPeer myfhemBot: called with 13363079
2015.10.10 15:37:46 5: TelegramBot_SentFavorites cmd correct peer
2015.10.10 15:37:46 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:37:46 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( messageTo )
2015.10.10 15:37:46 4: TelegramBot_Set myfhemBot: start message send
2015.10.10 15:37:46 5: TelegramBot_SendIt myfhemBot: called
2015.10.10 15:37:46 3: TelegramBot_SendIt myfhemBot: add send to queue :13363079: -:TelegramBot fhem : (13363079)
 Favorites

1
 /hey aussen
2
 /hey aussen1
3
 /hey buero
4
 /hey buero1
5
 /hey get OWX_26_ECC2A1010000 reading
6
 /hey get OWX_28_736020050000 temperature
7
 /hey get OWX_28_60BFC3040000 temperature
8
 /hey get FIRMATA firmware
9
 /hey get OWio2 devices
10
 /hey get OWio3 devices
11
 /hey get OWio5 devices
12
 /hey get OWio6 devices
13
 /hey get OWio7 devices
14
 /hey get OWX_1D_A2D984000002 counters
: - :<undef>:
2015.10.10 15:37:46 5: TelegramBot_Set myfhemBot: messageTo done succesful:
2015.10.10 15:37:46 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:37:46 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.10 15:37:46 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:37:46 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:37:56 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:37:56 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:37:56 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:37:56 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:37:56 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:38:06 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:38:06 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:38:06 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:38:06 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:38:06 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:38:06 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:38:06 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[{"update_id":816793231,
"message":{"message_id":764,"from":{"id":13363079,"first_name":"Banane","username":"Banane"},"chat":{"id":13363079,"first_name":"Banane","username":"Banane","type":"private"},"date":1444484286,"text":"#2"}}]}:
2015.10.10 15:38:06 5: UpdatePoll myfhemBot: number of results 1
2015.10.10 15:38:06 5: UpdatePoll myfhemBot: parse result
2015.10.10 15:38:06 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:38:06 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:38:06 4: TelegramBot_ContactUpdate # Contacts in hash before :2:
2015.10.10 15:38:06 4: TelegramBot_ContactUpdate # Contacts in hash after :2:
2015.10.10 15:38:06 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:38:06 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.10 15:38:06 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:38:06 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:38:06 5: TelegramBot_checkAllowedPeer myfhemBot: called with 13363079
2015.10.10 15:38:06 5: TelegramBot_SentFavorites cmd correct peer
2015.10.10 15:38:06 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:38:06 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:38:06 5: TelegramBot_ExecuteCommand final cmd for analyze :aussen1:
2015.10.10 15:38:07 5: TelegramBot_ExecuteCommand result for analyze :OWMULTI: OWX_26_A2D984000007.reading => humidity:  90.6 % (T:   8.8 °C):
2015.10.10 15:38:07 5: TelegramBot_ExecuteCommand myfhemBot: TelegramBot fhem cmd :aussen1: result :OWMULTI: OWX_26_A2D984000007.reading => humidity:  90.6 % (T:   8.8 °C)::
2015.10.10 15:38:07 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:38:07 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( messageTo )
2015.10.10 15:38:07 4: TelegramBot_Set myfhemBot: start message send
2015.10.10 15:38:07 5: TelegramBot_SendIt myfhemBot: called
2015.10.10 15:38:07 3: TelegramBot_SendIt myfhemBot: add send to queue :13363079: -:TelegramBot fhem cmd :aussen1: result :OWMULTI: OWX_26_A2D984000007.reading => humidity: 90.6 % (T: 8.8 °C):: - :<undef>:
2015.10.10 15:38:07 5: TelegramBot_Set myfhemBot: messageTo done succesful:
2015.10.10 15:38:07 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:38:07 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.10 15:38:07 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:38:07 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:38:17 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:38:17 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:38:17 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:38:17 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:38:17 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:38:26 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:38:26 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.10 15:38:26 5: TelegramBot_Get myfhemBot: called
2015.10.10 15:38:26 5: TelegramBot_Get myfhemBot: Processing TelegramBot_Get( ? )
2015.10.10 15:38:28 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:38:28 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:38:28 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:38:28 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:38:28 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:38:39 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:38:39 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:38:39 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:38:39 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:38:39 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:38:49 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:38:49 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:38:49 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:38:49 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:38:49 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:38:59 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:38:59 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:38:59 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:38:59 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:38:59 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:39:09 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:39:09 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:39:09 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:39:09 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:39:09 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:39:19 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:39:19 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:39:19 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:39:19 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:39:19 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:39:30 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:39:30 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:39:30 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:39:30 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:39:30 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:39:40 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:39:40 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:39:40 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:39:40 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:39:40 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:39:50 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:39:50 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:39:50 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:39:50 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:39:50 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:40:00 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:40:00 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:40:00 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:40:00 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:40:00 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:40:10 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:40:10 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:40:10 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:40:10 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:40:10 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:40:20 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:40:20 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:40:20 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:40:20 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:40:20 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:40:31 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:40:31 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:40:31 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:40:31 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:40:31 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:40:41 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:40:41 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:40:41 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:40:41 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:40:41 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:40:51 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:40:51 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:40:51 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:40:51 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:40:51 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:41:01 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:41:01 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:41:01 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:41:01 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:41:01 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:41:11 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:41:11 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:41:11 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:41:11 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:41:11 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:41:22 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:41:22 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:41:22 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:41:22 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:41:22 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:41:32 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:41:32 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:41:32 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:41:32 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:41:32 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:41:43 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:41:43 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[]}:
2015.10.10 15:41:43 5: UpdatePoll myfhemBot: number of results 0
2015.10.10 15:41:43 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:41:43 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling
2015.10.10 15:41:44 5: TelegramBot_Callback myfhemBot: called from Polling
2015.10.10 15:41:44 5: TelegramBot_ParseUpdate myfhemBot: data returned :{"ok":true,"result":[{"update_id":816793232,
"message":{"message_id":765,"from":{"id":13363079,"first_name":"Banane","username":"Banane"},"chat":{"id":13363079,"first_name":"Banane","username":"Banane","type":"private"},"date":1444484504,"text":"\/hey"}}]}:
2015.10.10 15:41:44 5: UpdatePoll myfhemBot: number of results 1
2015.10.10 15:41:44 5: UpdatePoll myfhemBot: parse result
2015.10.10 15:41:44 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:41:44 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:41:44 4: TelegramBot_ContactUpdate # Contacts in hash before :2:
2015.10.10 15:41:44 4: TelegramBot_ContactUpdate # Contacts in hash after :2:
2015.10.10 15:41:44 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:41:44 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.10 15:41:44 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:41:44 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:41:44 5: TelegramBot_checkAllowedPeer myfhemBot: called with 13363079
2015.10.10 15:41:44 3: TelegramBot_ReadHandleCommand myfhemBot: cmd found ::
2015.10.10 15:41:44 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:41:44 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:41:44 5: TelegramBot_ReadHandleCommand cmd correct peer
2015.10.10 15:41:44 5: TelegramBot_ReadHandleCommand final cmd for analyze ::
2015.10.10 15:41:44 4: TelegramBot_GetFullnameForContact # Contacts is 1xxxxxxx9:Banane:@Banane:
2015.10.10 15:41:44 4: TelegramBot_GetFullnameForContact # name is Banane
2015.10.10 15:41:44 5: TelegramBot_ExecuteCommand final cmd for analyze ::
2015.10.10 15:41:44 5: TelegramBot_ExecuteCommand result for analyze :<undef>:
2015.10.10 15:41:44 5: TelegramBot_ExecuteCommand myfhemBot: TelegramBot fhem cmd :: result OK:
2015.10.10 15:41:44 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:41:44 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( messageTo )
2015.10.10 15:41:44 4: TelegramBot_Set myfhemBot: start message send
2015.10.10 15:41:44 5: TelegramBot_SendIt myfhemBot: called
2015.10.10 15:41:44 3: TelegramBot_SendIt myfhemBot: add send to queue :13363079: -:TelegramBot fhem cmd :: result OK: - :<undef>:
2015.10.10 15:41:44 5: TelegramBot_Set myfhemBot: messageTo done succesful:
2015.10.10 15:41:44 3: TelegramBot_Set myfhemBot: called
2015.10.10 15:41:44 3: TelegramBot_Set myfhemBot: Processing TelegramBot_Set( ? )
2015.10.10 15:41:44 5: TelegramBot_UpdatePoll myfhemBot: called
2015.10.10 15:41:44 5: TelegramBot_Callback myfhemBot: resulted in :SUCCESS: from Polling

CFG von TelegramBot schaut so aus
define myBot TelegramBot 1xxxxxxxxx5:Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxk # :)
attr myBot cmdFavorites #
attr myBot cmdKeyword /hey
attr myBot cmdRestrictedPeer 1xxxxxxxxx9 3xxxxxxxx6
attr myBot cmdSentCommands /last cmd
attr myBot defaultPeer @Banane
attr myBot favorites aussen;;aussen1;;buero;;buero1;;get OWX_26_ECC2A1010000 reading;;get OWX_28_736020050000 temperature;;get OWX_28_60BFC3040000 temperature;;get FIRMATA firmware;;get OWio2 devices;;get OWio3 devices;;get OWio5 devices;;get OWio6 devices;;get OWio7 devices;;get OWX_1D_A2D984000002 counters
attr myBot pollingTimeout 10
attr myBot room Ereignisse,System
attr myBot verbose 5

Antwort kommt keine an !?
Irgend welche Einträge zusätzlich erforderlich?

Von FHEM aus kann ich nichts verschicken.

Den Verbingungsaufbau zur API sieht man nicht mehr im Log?!

Gruss Gerd

Edit1: Habe beide Notifys entfernt. Danach funktioniert der Bot wieder?!
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 Oktober 2015, 21:21:59
Hallo Gerd,
aus dem Logfile ist ersichtlich, dass Deine Kommandos eingehen und die Antworten in die Queue gestellt werden. Insofern ist an der Konfiguration soweit alles in Ordnung. Ich vermute, dass nochmal wie schon vorher irgendetwas in der Kommunikation schiefgelaufen ist. Wie vorher schonmal beschrieben gibt es für den Fall gibt es das set-Kommando "reset".

Mach doch bitte mal

set <telegrambotdevice> reset
Danach sollte es wiedergehen.

Nochmals: Das Verhalten hat wohl nichts mit den Notifys oder den Log-Meldungen zu tun.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 10 Oktober 2015, 21:54:52
Hallo Johannes,

okay, bin hier grad an 1Wire testen.
Werde es dann bald noch mal probieren.
Hab die Notifys deaktiviert und dann läuft das neue PM aber.

Ich melde mich wieder.

Gruss Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: speex am 11 Oktober 2015, 14:52:12
Hallöchen zusammen,

ich wollte mich auch mal mit telegram beschäftigen.

Ich würde gerne den Telegrambot einsetzen allerdings gelingt mir die Inbetriebnahme nicht. Ich habe die Dateien aus Github geladen und 50_TelegramBot sowie HTTPutil und testHTTPutil nach opt/fhem/FHEM/ kpoiert rechte gesetzt und fhem neugestartet allerdings erscheint bei mir kein Eintrag in der Commandref, liegt hier schon der fehler wo finde ich den die entsprechende Dokumentation?

Dann habe ich zusätzlich noch das 70_telegram modul dazu kopiert und entsprechend die rechte gesetzt allerdings tut sich auch da nichts.

Der tipp von Maista zum erzeugen des Hilfe eintrags von Seite 8, funktioniert bei mir leider nicht.
perl contrib/commandref_join.plDer Befehl wirft immer folgende Fehlermeldung:
Unknown command perl, try help.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 11 Oktober 2015, 16:12:41
Hallo Johannes,

okay, bin hier grad an 1Wire testen.
Werde es dann bald noch mal probieren.
Hab die Notifys deaktiviert und dann läuft das neue PM aber.

Ich melde mich wieder.

Gruss Gerd

Hallo Gerd,
ich habe die Fehlerbehandlung überarbeitet, damit sollte das Verhalten bei Dir stabiler werden. Es gibt jetzt auch weniger Laufzeitabhängigkeiten. Bitte damit nochmal probieren.
Version ist in github und auch im ersten Post angehängt.
Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 11 Oktober 2015, 16:30:49
Hallöchen zusammen,

ich wollte mich auch mal mit telegram beschäftigen.

Ich würde gerne den Telegrambot einsetzen allerdings gelingt mir die Inbetriebnahme nicht. Ich habe die Dateien aus Github geladen und 50_TelegramBot sowie HTTPutil und testHTTPutil nach opt/fhem/FHEM/ kpoiert rechte gesetzt und fhem neugestartet allerdings erscheint bei mir kein Eintrag in der Commandref, liegt hier schon der fehler wo finde ich den die entsprechende Dokumentation?

Dann habe ich zusätzlich noch das 70_telegram modul dazu kopiert und entsprechend die rechte gesetzt allerdings tut sich auch da nichts.

Der tipp von Maista zum erzeugen des Hilfe eintrags von Seite 8, funktioniert bei mir leider nicht.
perl contrib/commandref_join.plDer Befehl wirft immer folgende Fehlermeldung:
Unknown command perl, try help.

Hallo speex,
Die Doku wird nur dann ins Commandref aufgenommen, wenn man den obigen Befehl eingibt, allerdings ist das kein FHEM-Befehl sondern ein Kommandozeilenbefehl (Shell-Befehl). Also entweder auf der shell als fhem-Benutzer anmelden oder das Kommand in " einschliessen. Am besten dazu mal in der commandref unter: "FHEM Befehlstypen" nachschauen.

Ansonsten musst Du zuerst einen Device erzeugen, das geht bei telegrambot relativ einfach durch Angabe des authtokens, dass Du vom Botfather bekommst --> siehe telegram webseite

Also z.B. so:

define teleBot TelegramBot 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
Allerdings musst Du natürlich in der Definition DEIN authtoken verwenden.

Sobald Du das Device hast, kannst Du in fhemweb über Devce pecific help auch direkt auf die Doku zugreifen.

Achso: 70_Telegram ist nicht erforderlich wenn Du den Bot verwenden willst.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 11 Oktober 2015, 18:58:56
Moin Moin,

ich benutze weiterhin den TelegramBot und bisher funktioniert alles - zumindest das, was ich verstanden habe - bis auf...
1. ich hab's wahrscheinlich irgendwo überlesen...wie schicke ich eine Nachricht an mehrere Empfänger?
2. cmdFavorites und favorites <list of commands> verstehe ich nicht. Könnte ich da vielleicht ein verständliches Beispiel bekommen?

Danke und Gruß
Uwe
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 11 Oktober 2015, 20:28:43
ich benutze weiterhin den TelegramBot und bisher funktioniert alles - zumindest das, was ich verstanden habe - bis auf...
1. ich hab's wahrscheinlich irgendwo überlesen...wie schicke ich eine Nachricht an mehrere Empfänger?
2. cmdFavorites und favorites <list of commands> verstehe ich nicht. Könnte ich da vielleicht ein verständliches Beispiel bekommen?
zu 1) Momentan kann man den bot zwar in eine Gruppe packen und damit auch eine Nachricht an einen Gruppe mit dem Bot senden, aber eine Gruppe kann man bisher in meinem Modul noch nicht angeben. Da muss ich erst noch ein paar Experimente mit dem API machen, denn die Gruppen-ID kommt nicht da an, wo sie meiner Meinung nach sollte.

Also heutiger Workaround, mehrere Befehle hintereinander abschicken, ich nehme mal die Liste von IDs auf meine Todo-Liste. Allerdings gibt das Bot-API dass nicht her, so dass ich das dann in meinem Modul als mehrere getrennte Operationen realisieren.

zu 2) Für die Favoriten schreibe ich mal noch ein Beispiel auf

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 11 Oktober 2015, 21:19:33
Hallo Johannes,

beim Kurztest hat sich am Verhalten nichts geändert.
Das Notify zum shutdown restart wurde nicht gesendet.
Ich habe dann, wie von Dir vorgeschlagen, ein Reset gemacht.
Danach konnte ich dann auch wieder ein Befehl an den Bot schicken.

Aber probiere ich noch mal genauer.
Mal schauen wann ich dazu komme.

Bis dahin , schönen Sonntag

Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 11 Oktober 2015, 22:10:20
@viegener: Danke
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 11 Oktober 2015, 22:54:38
2. cmdFavorites und favorites <list of commands> verstehe ich nicht. Könnte ich da vielleicht ein verständliches Beispiel bekommen?

Ich habe endlich mal die Seite im fhemwiki für den TelegramBot erzeugt. Dabei habe ich auch ein paar Beispiele hinzugefügt:

http://www.fhemwiki.de/wiki/TelegramBot (http://www.fhemwiki.de/wiki/TelegramBot)

Ein Beispiel befasst sich relativ ausführlich (für meine Verhältnisse) mit den Favoriten. Vielleicht hilft das weiter.

Feedback zum wiki und Vorschläge für weiterer Beispiele (oder selber schreiben?) ist erwünscht.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 12 Oktober 2015, 17:28:22
Ah...verstanden, umgesetzt, funktioniert  :)
Danke
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: speex am 12 Oktober 2015, 17:46:32
Hallo vielen Dank für den Wiki Eintrag, dennoch ist mir die einrichtung noch nicht korrekt gelungen.

EDIT. wer lesen kann ist klar im vorteil habe mich irgendwie bei dem pollingtimeout attribut verlesen bishierhin hat es jetzt geklappt werde weiter rum basteln, und berichten :)
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 12 Oktober 2015, 18:57:29
Ha, wollte Dir gerade antworten...an der Stelle hab ich auch zuerst das >0 überlesen...  ;D

Gruß
Uwe
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 12 Oktober 2015, 22:23:39
Ha, wollte Dir gerade antworten...an der Stelle hab ich auch zuerst das >0 überlesen...  ;D

Gruß
Uwe

OK, das werde ich noch deutlicher machen!
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Loredo am 13 Oktober 2015, 13:26:04

Da ja an anderer Stelle nach Verbesserungen zur Syntax gefragt wurde:

Könnte man die Befehle "message" und "messageTo" kombinieren? Ob ein Empfänger angegeben ist lässt sich ja ganz einfach per Reqex auf das @ Zeichen am Anfang feststellen. Würde der Definition in der msg-Schema-Datenbank sehr entgegen kommen ;-)


Gruß
Julian
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 13 Oktober 2015, 14:28:57
Könnte man die Befehle "message" und "messageTo" kombinieren? Ob ein Empfänger angegeben ist lässt sich ja ganz einfach per Reqex auf das @ Zeichen am Anfang feststellen. Würde der Definition in der msg-Schema-Datenbank sehr entgegen kommen ;-)


Gruß
Julian

Leider nicht, da das @-Zeichen nur bei usernames verwendet wird ansonsten sind beim messageTo auch Vor- und Nachnamen sowie userids erlaubt. Im prinzip sind die userids sogar am ehesten empfehlenswert, da nur so eine Eindeutigkeit gewährleistet ist.

Man könnte aber darüber nachdenken, ob ich aus "messageTo" ein "message" mache und das bisherige "message" in "messageDef" umbenenne. Da das eine inkompatible Änderung wäre würde ich das gerne hier zur Diskussion stellen. Damit wäre Dein Vorschlag auch erreicht, oder?

@all: Aufschrei oder "Wenns sein muss" bitte, sonst würde ich das in die nächste Version packen. Insbesondere damit es noch reinkommt, bevor ich es ins SVN packe und es damit allgemein verfügbar wird!

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Loredo am 13 Oktober 2015, 14:45:15
Wieso stellst du nicht dem Empfänger generell ein @ voran und entfernst es je nach Notwendigkeit bei der Übergabe an die Telegram API?
Du könntest den Befehl "message" so belassen und eben erkennen, ob dort am Anfang ein Empfänger beginnend mit @ ist oder nicht (so funktioniert es beim msg-Befehl auch, falls du Inspiration brauchst). Das wäre rückwärtskompatibel und messageTo kannst du einfach auf die gleiche Funktion mappen, um auch dort kompatibel zu bleiben.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 13 Oktober 2015, 15:01:22
Generell natürlich eine gute Idee, aber am @ erkenne ich bereits ob telegram usernamen (und nicht user ids / bzw. volle Namen) übergeben werden. Es gibt bei mir 3 Arten von Userangaben, die ich alle erkennen muss. Natürlich könnte ich jetzt ein neues Zeichen voranstellen, denn das @ verwendet Telegram bereits intern und es wäre so schon intuitiv.

Also gäbe es 3 Möglichkeiten
1) Mein Vorschlag von oben
2) Dein Vorschlag mit dem @ (wobei ich das für entstehende @@ für telegram usernames noch eine Lösung brauche)
3) Ein anderes Zeichen voranstellen für Kontakte


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Loredo am 13 Oktober 2015, 15:03:06
Zu 2) Generell per Regex-Replace entfernen oder eben nur dann, wenn es nicht gebraucht wird (je nach Programmlogik eben).
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 13 Oktober 2015, 15:18:30
Ja das ist mir schon klar   ;)   Sonst wären meine alten Professoren (soweit sie noch leben) auch sicher böse mit mir   ;D
Es ist mehr das Problem existierender usernames, die alle schon ein @ vorangestellt haben.

Ok ich folge Deinem Vorschlag.
Bisherige @usernames müssen dann demnächst mit @@username angegeben werden, damit sie unterscheidbar bleiben.
Bei messageTo/sendPhotoTo etcwird die alte Syntax bleiben (allerdings werde ich das deprecaten und demnächst entfernen.

Ist nicht optimal aber zumindest sicherer als zu hoffen, dass username und vollständiger Name nicht überlappen.

Es sein denn es gibt grossen Protest...

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Loredo am 13 Oktober 2015, 15:25:15
Hm, ich nahm an die vollständigen Usernamen könnte man anhand der Doppelpunkte erkennen, aber ich kenne die API nicht.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 13 Oktober 2015, 15:46:24
Hm, ich nahm an die vollständigen Usernamen könnte man anhand der Doppelpunkte erkennen, aber ich kenne die API nicht.

Nein das ist nur in der internen Kontaktverwaltung so, wenn man senden will muss nur einer der 3 Teile angegeben werden und die Erkennung was kommt mache ich intern (wenn reine Zahl ist  es eine Id / mit @ vorangestellt ein username ansonsten eben ein Vor-und-Zuname). In der Kontaktverwaltung sind dann alle enthalten, damit ich jede möglich Angabe in eine Id / den richtigen Kontakt wandeln kann bevor ich sende.

letzte Woche haben sich die Telegram-Leute im BotAPI noch was neues ausgedacht, jetzt gibt es auch noch channels, die allerdings in den Clients noch nicht unterstützt sind, nur im API. Zitat: no Telegram clients support this at the moment, please wait for updates  ;D

Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Loredo am 13 Oktober 2015, 15:51:24
Ok, ich warte mal ab.
Hab eine einfache Schema Definition für TelegramBot mit in die msg Schema-Datenbank aufgenommen:



        'TelegramBot' => {
          'Normal'  => 'set %DEVICE% message %TGRECIPIENT% %TITLE%: %MSG%',
          'High'    => 'set %DEVICE% message %TGRECIPIENT% %TITLE%: %MSG%',
          'Low'     => 'set %DEVICE% message %TGRECIPIENT% %TITLE%: %MSG%',
          'defaultValues' => {
            'Normal' => {
              'TGRECIPIENT' => '',
            },
            'High' => {
              'TGRECIPIENT' => '',
            },
            'Low' => {
              'TGRECIPIENT' => '',
            },
          },
        },


Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 13 Oktober 2015, 16:17:56
Ja dann muss ich die Umstellung wohl bald angehen :D
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Loredo am 13 Oktober 2015, 16:23:37
Funktioniert im Grundsatz ja auch so, wenn man über defaultPeer einen Standardempfänger angibt. Nur muss man dann den Bot eben mehrfach definieren (was er vermutlich dann nicht mag).
So ganz glücklich bin ich damit aber auch noch nicht. Die meisten Module adressieren pro Device-Instanz genau einen Empfänger (oder optional ein bestimmtes Empfangsgerät wie im Falle von Pushover). Das Handling eines "Unterempfängers" funktioniert aktuell nur, wenn man dafür ein Dummy-Gateway-Device anlegt und dort über msgCmdPush den Empfängernamen fest im Schema hinterlegt, statt direkt über das TelegramBot Device zu versenden. Wenn du die Option mit @@ eingebaut hast, entfällt das zwar, wenn man per Optionserweiterung den Empfänger übergibt. Ist aber auch nicht so elegant. Vielleicht fällt mir da noch was ein, aber aktuell hab ich keine Idee...


ich dachte ich schreib das jetzt hier mal, weil wir ja beide noch nix fest veröffentlicht haben und das somit noch hier und da anpassbar wäre. Vielleicht hast du ja noch ne Idee für meine oder deine Seite ;)


Gruß
Julian
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 13 Oktober 2015, 17:12:47
Hallo zusammen,

ich hab auch nix dagegen  ::)
Wenns der Logik dient.

Habe bisher nur zwei IDs eingetragen.

Gruss Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Buwe am 14 Oktober 2015, 13:46:21
Prinzipiell funktioniert der Bot bei mir. Allerdings bekomme ich mehr oder weniger regelmäßig Meldungen im Log-file:

2015.10.12 19:26:12 3: TelegramBot_Set msg.***********bot: called
2015.10.12 19:26:12 3: TelegramBot_Set msg.***********bot: Processing TelegramBot_Set( ? )

Seit gestern auch schon ein paar mal:
2015.10.13 18:28:14 3: TelegramBot_Callback msg.***********bot: resulted in :Callback returned no valid JSON !: from Polling

Diese Einträge kommen ohne das zu diesem Zeitpunkt eine Nachricht gesendet oder empfangen wird.

Ich hatte die Version vom Github genommen (0.8 2015-10-10 extended cmd handling )
Die httputils hatte ich nicht ersetzt da nur wegen Bilder benötigt(?)
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 14 Oktober 2015, 15:27:59
Prinzipiell funktioniert der Bot bei mir. Allerdings bekomme ich mehr oder weniger regelmäßig Meldungen im Log-file:

2015.10.12 19:26:12 3: TelegramBot_Set msg.***********bot: called
2015.10.12 19:26:12 3: TelegramBot_Set msg.***********bot: Processing TelegramBot_Set( ? )

Seit gestern auch schon ein paar mal:
2015.10.13 18:28:14 3: TelegramBot_Callback msg.***********bot: resulted in :Callback returned no valid JSON !: from Polling

Diese Einträge kommen ohne das zu diesem Zeitpunkt eine Nachricht gesendet oder empfangen wird.

Ich hatte die Version vom Github genommen (0.8 2015-10-10 extended cmd handling )
Die httputils hatte ich nicht ersetzt da nur wegen Bilder benötigt(?)

Hallo Buwe,
die ersten Einträge sind nur Infos und rühren daher, dass ich momentan noch relativ grosszügige Log-Meldungen ausgebe, die es mir vereinfachen sollen Fehler einzugrenzen. Hier kann ich vermutlich das Loglevel runterschrauben.

die anderen Einträge (Callback returned no valid JSON) sind zwar auch nicht kritisch, kommen aber daher wenn aus unbekannten Gründen die Kommunikation mit telegram.org abbricht. Das passiert offensichtlich nur relativ selten. Allerdings würde selbst wenn das nur in 0,1% der Fälle auftritt wäre das etwa 4 mal am Tag, da der Bot aber ca. alle 20s, also über 4000 mal am Tag bei telegram.org nachfragt.

Wenn die Meldungen stören, kann ich auch mal eine Option einführen, dass die versteckt werden. Allerdings sind dies durchaus "logwürdige" Meldungen...

Ja die Github-Version ist ok und Ja httputils wird nur benötigt, wenn man grössere Datenübertragungen aus dem Bot vornehmen will (insbesondere Bilder).

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 15 Oktober 2015, 19:12:27
Es gibt eine neue Version 0.9!

Hinweise (Bitte lesen):

Wie oben angesprochen habe ich ein alignment der Kommandos von telegramBot mit dem msg-Befehl (siehe http://forum.fhem.de/index.php/topic,39983.0.html (http://forum.fhem.de/index.php/topic,39983.0.html)). Das hat zu einer Aufräumaktion geführt, die ein paar Inkompatibilitäten mit sich bringt:
- Die msg/message/sendImage Befehle erlauben jetzt die optionale Angabe eines peers vor dem Text/Bild. Damit kann man entweder eine id, einen vollständigen Namen oder auch einen user-bzw Gruppennamen angeben.
Beispiele:
set <telegrambotdevice> msg @Lieschen_Mueller Halloset <telegrambotdevice> image @@lieschensusername /opt/fhem/image.jpg- Achtung: messageTo/sendImageTo/sendPhotoTo sind zwar noch vorhanden, werden aber demnächst entfernt (deprecated). / sendPhoto / sendPhotoTo sind entfallen
- Es werden jetzt auch Umlaute und Emojis unterstützt
- Gruppen (Chats) können jetzt ebenfalls als Ziel einer Nachricht verwendet werden (eingeleitet mit # oder durch angabe der id).
- Doku überarbeitet etc etc

Wie immer ist die Version auch im ersten Post verfügbar und in Github.

Wenn diese Version keine Probleme bereitet würde ich sie auch ins SVN einchecken.
Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 15 Oktober 2015, 20:06:21
Hallo Johannes
Habe am Freitag frei.
Wenn nichts dazwischen kommt, werde ich testen.

Gruß
Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: speex am 16 Oktober 2015, 13:18:10
Bisher läuft auch die neue Version prima bei mir...

Vielen Dank!
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 16 Oktober 2015, 14:00:24
- Gruppen (Chats) können jetzt ebenfalls als Ziel einer Nachricht verwendet werden (eingeleitet mit # oder durch angabe der id).

Soweit funktioniert alles, nur das Senden an Gruppen habe ich nicht nachvollziehen können. Ich habe in Telegram eine Gruppe angelegt und will mit set <blabla> msg #<Gruppe> Test eine Nachricht senden. Funktioniert nicht, demzufolge mach ich was falsch...
Die Nachricht kommt mit dem Inhalt "#<Gruppe> Test" auf meinem Bot an.

Ich glaube, ich brauch wieder ein Beispiel für Dummies  ;)

Gruß
Uwe
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: speex am 16 Oktober 2015, 14:58:43
Hast du mal wie in der Doku beschrieben, dass hier getestet:

set aTelegramBotDevice message @#justchatting Helloto send the message "Hello" to a chat with the name "justchatting"

Hab bisher noch keinen Gruppenchat eingerichtet daher kann ich auch nicht mehr dazu sagen.

Allerdings habe ich festgestellt das wenn ich aus einem Notify heraus einem Bestimmten msgPeer schreiben möchte das mit dem @ nicht klappt ab dem '@' wird dann immer die id mit in der nachricht geschickt sowie steht am anfang noch der notify name in der nachricht...
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 16 Oktober 2015, 15:00:39
Soweit funktioniert alles, nur das Senden an Gruppen habe ich nicht nachvollziehen können. Ich habe in Telegram eine Gruppe angelegt und will mit set <blabla> msg #<Gruppe> Test eine Nachricht senden. Funktioniert nicht, demzufolge mach ich was falsch...
Die Nachricht kommt mit dem Inhalt "#<Gruppe> Test" auf meinem Bot an.


speex hat recht: Wenn im neuen msg Befehl ein Empfänger stehen soll, muss immer ein @ vorher stehen (also für Gruppennamen sogar @# und für usernames sogar @@ vorher).

Versuche mal
set <blabla> msg @#<Gruppenname> Testoder
set <blabla> msg @<Gruppenid> TestGruppenids sind soweit ich das sehe negativ also müsste da für Gruppenid soetwas stehen wie -1234567

gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 16 Oktober 2015, 15:24:07
Allerdings habe ich festgestellt das wenn ich aus einem Notify heraus einem Bestimmten msgPeer schreiben möchte das mit dem @ nicht klappt ab dem '@' wird dann immer die id mit in der nachricht geschickt sowie steht am anfang noch der notify name in der nachricht...

Ich kann das jetzt gerade nicht ausprobieren, aber meine erste Vermutung ist, dass der perl-Interpreter hier irgendeine Ersetzung macht, weil @ ja verwendet wird um Arrays zu verwenden. Laut notify-Doku
Zitat
To use % or @ in the text itself, use the double mode (%% or @@).

Kannst Du mal @@ probieren oder alternativ gar  \@ oder \@\@ oder \\\@ ausprobieren?

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: speex am 16 Oktober 2015, 15:35:41
Hi also was mir auch nicht  klar war ist das man @@ nehmen muss meine nachricht die durch das notify ausgelöst wurde sah so aus:
set teleBot message @<peerid> text
Ich hab das jetzt nochmal mit @@ im notify getestet, funktioniert wunderbar:
set teleBot message @@<peerid> text
Vielen Dank!
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 16 Oktober 2015, 19:42:39
So, nun hab ich es. Der eigene Bot muss erst mal gruppenfähig gemacht werden, dann kann man damit auch eine Gruppe erstellen. Danach läuft's dann recht problemlos  :)

Danke und Gruß
Uwe
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 16 Oktober 2015, 19:52:25
Gerade festgestellt: Auf /short bekomme ich keine Antwort mehr, ein /short 1 z.B. löst den entsprechenden Befehl aber aus. Die Rückmeldung auf den Befehl wird ebenfalls nicht mehr gesendet.

Gruß
Uwe
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 16 Oktober 2015, 20:34:22
Hallo zusammen,

also entweder stell ich mich an, oder es geht nichts mehr  :(

Weder
Zitat
cmdFavorites #
cmdKeyword /hey
cmdSentCommands /last
Funktionieren?!

Ein
set mybot resethalf auch nichts.

Das senden an den Client funktioniert mit
set mybot message @eumel Bla
und
set mybot msg Blabla

Ein Bild habe ich auch nicht mehr verschickt bekommen.
set sendImage @eumel /opt/fhem/35kb.jpgwird als versendet angezeigt.

Hier das Log

Zitat
2015.10.16 19:59:41 3: HttpUtils url=<hidden>
2015.10.16 19:59:41 3: <hidden>: HTTP response code 200
2015.10.16 19:59:41 3: HttpUtils <hidden>: Got data, length: 244
2015.10.16 20:00:09 3: HttpUtils url=<hidden>
2015.10.16 20:00:39 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.16 20:01:28 3: HttpUtils url=<hidden>
2015.10.16 20:01:58 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.16 20:02:35 3: TelegramBot_ReadHandleCommand myfhemBot: cmd found ::
2015.10.16 20:02:43 3: TelegramBot_ReadHandleCommand myfhemBot: cmd found :list:
2015.10.16 20:07:54 3: TelegramBot_ReadHandleCommand myfhemBot: cmd found ::
2015.10.16 20:10:11 3: TelegramBot_ReadHandleCommand myfhemBot: cmd found :1:
2015.10.16 20:10:21 3: TelegramBot_ReadHandleCommand myfhemBot: cmd found :list:
2015.10.16 20:15:18 3: HttpUtils url=<hidden>
2015.10.16 20:15:36 3: TelegramBot_SendIt myfhemBot: add send to queue :Maista: -:/opt/fhem/35kb.jpg: - :<undef>:
2015.10.16 20:15:44 3: TelegramBot_SendIt myfhemBot: add send to queue :Maista: -:Test: - :<undef>:
2015.10.16 20:15:49 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.16 20:15:49 3: HttpUtils url=<hidden>
2015.10.16 20:15:57 3: TelegramBot_SendIt myfhemBot: add send to queue :@Maista: -:Test: - :<undef>:
2015.10.16 20:16:11 3: TelegramBot_SendIt myfhemBot: add send to queue :@Maista: -:test: - :<undef>:
2015.10.16 20:16:19 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.16 20:16:19 3: HttpUtils url=<hidden>
2015.10.16 20:16:19 3: <hidden>: HTTP response code 200
2015.10.16 20:16:19 3: HttpUtils <hidden>: Got data, length: 220
2015.10.16 20:16:19 3: HttpUtils url=<hidden>
2015.10.16 20:16:19 3: <hidden>: HTTP response code 200
2015.10.16 20:16:19 3: HttpUtils <hidden>: Got data, length: 220
2015.10.16 20:16:19 3: HttpUtils url=<hidden>
2015.10.16 20:16:20 3: <hidden>: HTTP response code 200
2015.10.16 20:16:20 3: HttpUtils <hidden>: Got data, length: 220
2015.10.16 20:16:36 3: HttpUtils url=<hidden>
2015.10.16 20:16:36 3: <hidden>: HTTP response code 200
2015.10.16 20:16:36 3: HttpUtils <hidden>: Got data, length: 223
2015.10.16 20:16:44 3: TelegramBot_ReadHandleCommand myfhemBot: cmd found ::
2015.10.16 20:17:34 3: HttpUtils url=<hidden>
2015.10.16 20:17:34 3: <hidden>: HTTP response code 200
2015.10.16 20:17:34 3: HttpUtils <hidden>: Got data, length: 224
2015.10.16 20:21:14 3: HttpUtils url=<hidden>
2015.10.16 20:21:45 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.16 20:26:10 3: TelegramBot_ReadHandleCommand myfhemBot: cmd found ::
2015.10.16 20:26:24 3: HttpUtils url=<hidden>
2015.10.16 20:26:40 3: TelegramBot_SendIt myfhemBot: add send to queue :Maista: -:/opt/fhem/35kb.jpg: - :Test:
2015.10.16 20:26:54 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.16 20:26:54 3: HttpUtils url=<hidden>
2015.10.16 20:30:13 3: HttpUtils url=<hidden>
2015.10.16 20:30:33 3: TelegramBot_SendIt myfhemBot: add send to queue :@Maista: -:/opt/fhem/35kb.jpg: - :<undef>:
2015.10.16 20:30:43 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.16 20:30:43 3: HttpUtils url=<hidden>

Irgend eine Idee?

Gruss Gerd

Edit1: Hat sich erledigt. Fehler sass vorm PC  ::)
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 16 Oktober 2015, 22:16:51
Bild versenden funktioniert bei mir...
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 16 Oktober 2015, 23:42:56
Kannst Du hier das Kommando schicken welches bei dir klappt?
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 17 Oktober 2015, 00:08:34
Ich musste gerade nochmals einen Fix nachschieben...    ???

Leider waren die Befehle messageTo und sendImageTo komplett abgeklemmt und nicht nur aus dem Web, dabei ist auch gleich die Kommandoantwort ausgeblieben. Das ist auch mir bei weiteren Tests heute abend aufgefallen.

Neue Version ist hochgeladen und Sorry für das Problem,
Johannes




Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 17 Oktober 2015, 00:18:15
Moin Johannes,

wer nix macht , macht nix falsch  ;D
Dann doch was falsch machen  8)

Gerade probiert. Texte können an Clients verschickt werden.
Der Client kann nun auch wieder Anfragen stellen.
Das klappt alles soweit.

Bekam jetzt zum ersten mal die Meldung vom Notify das Fhem neu gestartet wurde!

Nur Bild bekomme ich nicht verschickt.
Das Bild ist noch vom ersten Versuch und steht unter /opt/fhem/ oder /opt/fhem/FHEM/

Zitat
2015.10.17 00:25:00 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/Blocking.pm line 105.
2015.10.17 00:25:00 1: CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: Bad hostname 'localhost:'
2015.10.17 00:25:06 3: HttpUtils url=<hidden>
2015.10.17 00:25:23 3: TelegramBot_SendIt myfhemBot: add send to queue :Maista: -:/opt/fhem/35kb.jpg: - :<undef>:
2015.10.17 00:25:37 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.17 00:25:37 3: HttpUtils url=<hidden>
2015.10.17 00:26:00 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/Blocking.pm line 105.
2015.10.17 00:26:00 1: CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: Bad hostname 'localhost:'
2015.10.17 00:26:02 3: TelegramBot_SendIt myfhemBot: add send to queue :@Maista: -:/opt/fhem/35kb.jpg: - :<undef>:
2015.10.17 00:26:07 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.17 00:26:07 3: HttpUtils url=<hidden>
2015.10.17 00:26:15 3: TelegramBot_SendIt myfhemBot: add send to queue :@Maista: -:f: - :<undef>:
2015.10.17 00:26:37 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.17 00:26:37 3: HttpUtils url=<hidden>
2015.10.17 00:26:37 3: <hidden>: HTTP response code 200
2015.10.17 00:26:37 3: HttpUtils <hidden>: Got data, length: 217
2015.10.17 00:27:01 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/Blocking.pm line 105.
2015.10.17 00:27:01 1: CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: Bad hostname 'localhost:'
2015.10.17 00:27:21 3: HttpUtils url=<hidden>
2015.10.17 00:27:21 3: <hidden>: HTTP response code 200
2015.10.17 00:27:21 3: HttpUtils <hidden>: Got data, length: 220
2015.10.17 00:27:23 3: HttpUtils url=<hidden>
2015.10.17 00:27:24 3: TelegramBot_SendIt myfhemBot: add send to queue :13363079: -:TelegramBot fhem cmd :aussen: result :OWTHERM: OWX_28_FF313C4E0400.temperature => 1.75:: - :<undef>:
2015.10.17 00:27:24 3: TelegramBot_ReadHandleCommand myfhemBot: cmd found :list:
2015.10.17 00:27:24 3: TelegramBot_SendIt myfhemBot: add send to queue :13363079: -:TelegramBot fhem cmd :list: result :
.
.
2015.10.17 00:27:25 3: <hidden>: HTTP response code 200
2015.10.17 00:27:25 3: HttpUtils <hidden>: Got data, length: 695
2015.10.17 00:27:25 3: HttpUtils url=<hidden>
2015.10.17 00:27:25 3: <hidden>: HTTP response code 200
2015.10.17 00:27:25 3: HttpUtils <hidden>: Got data, length: 303
2015.10.17 00:27:25 3: HttpUtils url=<hidden>
2015.10.17 00:27:25 3: <hidden>: HTTP response code 200
2015.10.17 00:27:25 3: HttpUtils <hidden>: Got data, length: 3848
2015.10.17 00:27:35 3: HttpUtils url=<hidden>
2015.10.17 00:27:36 3: <hidden>: HTTP response code 200
2015.10.17 00:27:36 3: HttpUtils <hidden>: Got data, length: 279
2015.10.17 00:27:46 3: HttpUtils url=<hidden>
2015.10.17 00:27:47 3: <hidden>: HTTP response code 200
2015.10.17 00:27:47 3: HttpUtils <hidden>: Got data, length: 695
2015.10.17 00:27:51 3: HttpUtils url=<hidden>
2015.10.17 00:27:51 3: <hidden>: HTTP response code 200
2015.10.17 00:27:51 3: HttpUtils <hidden>: Got data, length: 305
2015.10.17 00:27:57 3: HttpUtils url=<hidden>
2015.10.17 00:27:57 3: <hidden>: HTTP response code 200
2015.10.17 00:27:57 3: HttpUtils <hidden>: Got data, length: 329
2015.10.17 00:28:02 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/Blocking.pm line 105.
2015.10.17 00:28:02 1: CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: Bad hostname 'localhost:'
2015.10.17 00:28:21 3: HttpUtils url=<hidden>
2015.10.17 00:28:51 3: TelegramBot_Callback myfhemBot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2015.10.17 00:29:03 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/Blocking.pm line 105.
2015.10.17 00:29:03 1: CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: Bad hostname 'localhost:'


Gute Nacht erst ein mal....

Gerd

Edit1: Hat sich erledigt. Fehler sass vorm PC  ::)
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 17 Oktober 2015, 00:32:00
Ein Bild habe ich auch nicht mehr verschickt bekommen.
set sendImage @eumel /opt/fhem/35kb.jpgwird als versendet angezeigt.


Bilder versenden hätte eigentlich aber auch schon vorher funktionieren sollen, kannst Du das nach einem reset nochmal testen. Ich hatte das gestern abend getestet und eben mit der gefixten Version nochmals.

Das Log gibt an, dass der Zugriff auf den telegram-Server nicht erfolgreich ist (bzw. Keine Antwort erhält).

Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: UweH am 17 Oktober 2015, 09:48:51
Moin Moin,

short funktioniert auch bei mir wieder, Danke  :)

Gruß
Uwe
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 17 Oktober 2015, 17:29:33
Hallo Johannes,

bin gerade noch mal in mich gegangen und habe dann bemerkt das ich wohl letztens
ein Update vom Fhem gemacht hatte .

Dabei hats dann die HttpUtils.pm mit der 14kb Original überschrieben  :-X

Nach dem ich nun die HttpUtils.pm von Dir wieder am laufen habe konnte ich das Bild übertragen.
Vielleicht machst Du noch ein Check rein ob die korrekte HttpUtils.pm am laufen ist ;)

Gruss Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 17 Oktober 2015, 18:16:29
Hallo Johannes,

hast Du schon mal bei
define notify_fhem_reload notify global:INITIALIZED set <telegrambot> message fhem newly started - just now !
anstatt dem
Zitat
INITIALIZED
ein
Zitat
SHUTDOWN
probiert?

Das funktioniert nicht. FHEM müsste dabei erst mal die Meldung absetzen.

Zitat
REREADCFG
hingegen funktioniert  ;)

Gruss Gerd
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 17 Oktober 2015, 18:51:07
Hallo Johannes,

bin gerade noch mal in mich gegangen und habe dann bemerkt das ich wohl letztens
ein Update vom Fhem gemacht hatte .

Dabei hats dann die HttpUtils.pm mit der 14kb Original überschrieben  :-X

Nach dem ich nun die HttpUtils.pm von Dir wieder am laufen habe konnte ich das Bild übertragen.
Vielleicht machst Du noch ein Check rein ob die korrekte HttpUtils.pm am laufen ist ;)

Gruss Gerd

Hallo Gerd,
schön, dass es wieder geht!

ich habe gestern mit Rudi gesprochen und er hat die Änderung der HTTPUtil auf seiner TODO-Liste. Da das also nur ein temporärer Zustand (abhängig von der Länge seines TODO-Staples  :D) ist, würde ich da erst noch etwas abwarten bevor ich da eine Prüfung einbaue.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 17 Oktober 2015, 18:57:00
Hallo Johannes,

define notify_fhem_reload notify global:INITIALIZED set <telegrambot> message fhem newly started - just now !
SHUTDOWN probiert?

Gruss Gerd

Das kann nicht funktionieren, da während der Übertragung der Server runtergefahren wird und damit die Übertragung abgebrochen wird. TelegramBot ist ja NonBlocking aufgebaut, also findet die Übertragung quasi im Hintergrund statt. Allerdings wird diese während des shutdowns nicht mehr ausgeführt.

Johannes
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: Maista am 17 Oktober 2015, 21:36:03
Hay Johannes,

ja dann ist klar das dazu keine Meldung mehr kommen kann :-)

Wegen HttpUtil muss man dann warten, so lange man(n)s nicht wieder vergisst.

Gruss

Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 17 Oktober 2015, 22:54:00
OK, ich habe es gewagt: Die jetzige Version habe ich als 1.0 im SVN eingechecked. Ab morgen wird TelegramBot über das update verteilt.

Dank an alle, die mitgeholfen haben und  Danke für die Gelassenheit mit der Ihr die Fehler im Modul hingenommen habt  ;)

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 17 Oktober 2015, 23:16:04
Immer wieder gerne, Johannes.

Du musstest mit mir auch durchhalten.
Schönen Sonntag und danke für Deine Arbeit!

Gerd

PS: Wie soll das mit den Emojis funktionieren?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 17 Oktober 2015, 23:41:06
PS: Wie soll das mit den Emojis funktionieren?

Einfach verschicken. Getestet habe ich bisher mit dem Browserclient (Firefox/IE auf Windows) und iOS telegram client.
Bei mir werden Emojis die an den Bot gesendet werden auch im entsprechenden Reading angezeigt:

<Leider kann ich die Unicode-Zeichen hier nicht posten...  ???n>
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Freibeuter am 19 Oktober 2015, 16:09:43
Hallo,
das Modul klingt sehr vielversprechend, jedoch läuft es bei meiner AVM 7490 noch nicht,
JSON 2.90 ist installiert (http://www.fhemwiki.de/wiki/Hue#HUE_auf_der_Fritzbox)

dennoch kommt:

2015.10.19 16:03:59 0: Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 354, near "})"
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1384, near "} ) "
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1394, near "} ) "
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1494, near "} )
        "
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1554, near "})"
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1566, near "})"
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1570, near "} )


Woran könnte es liegen ?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 19 Oktober 2015, 16:30:55
Hallo,
das Modul klingt sehr vielversprechend, jedoch läuft es bei meiner AVM 7490 noch nicht,
JSON 2.90 ist installiert, dennoch kommt:

2015.10.19 16:03:59 0: Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 354, near "})"
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1384, near "} ) "
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1394, near "} ) "
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1494, near "} )
        "
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1554, near "})"
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1566, near "})"
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/50_TelegramBot.pm line 1570, near "} )


Woran könnte es liegen ?

Kann es sein, dass der device angelegt wurde, bevor JSON installiert war? Es sieht jedenfalls so aus, als ob die interne Kontaktverwaltung inkonsistent ist.

Vorschlag: Wenn Du noch nicht zuviel eingestellt hast, versuche den Device nochmals neu anzulegen (also delete und dann define)
Sollte das das Problem nicht beheben würde ich Dich bitten mal das Ergebnis des Kommandos:
list TYPE=TelegramBot zu posten.

Achtung: das AuthToken (sprich passwort) Deines TelegramBots ist darin enthalten, also zur Sicherheit bitte maskieren (durch xxxxx oder so ersetzen).

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Oktober 2015, 21:11:43
Rudi hat gerade einen Patch für HTTPUtils eingechecked, so dass demnächst auch ohne patchen von HTTPUtils der Transfer von grossen Bildern mit dem TelegramBot funktionieren sollte.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 21 Oktober 2015, 21:16:49
Traumhaft. Hab mir grad meine cfg erstellt um ein wenig rumgespielt.tiptop sag ich und ein dickes dankeschön. Jetzt mit großen Bildern perfekt
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Oktober 2015, 21:35:21
Traumhaft. Hab mir grad meine cfg erstellt um ein wenig rumgespielt.tiptop sag ich und ein dickes dankeschön. Jetzt mit großen Bildern perfekt

Klingt gut! Gern geschehen.
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Buwe am 22 Oktober 2015, 11:15:52
Auch von mir ein dickes Dankeschön für dieses Modul.

Ich will es für die Meldungen der Alarmanlage einsetzen und hatte es exzessiv mit einem Account (Iphone) getestet. Grob vom Konzept her: Ich benutze das Modul Residents/Roommate und Modul Alarmanlage. Bei Scharfschaltung bekommt der letze "Gehende" per Telegram die Meldung das scharfgeschaltet.

Gestern Abend wollten wir ein zweites Gerät hinzufügen. Ein Windows Phone 8.1. Dabei ist folgendes Verhalten aufgefallen:
Die Telegram-Version für Windows Phone kann anscheinend nur verschlüsselte Chats starten. Nach meiner Erinnerung kann der Bot das im Moment nicht? Und die erste Kommunikation muss ja vom (neuen) Benutzer zum Bot gehen bevor dieser senden darf.

In der Telegram-App auf dem WP stand dann, dass die App darauf wartet, dass der Bot Online geht.
Nach zwei Versuchen habe ich mir dann so beholfen, den ersten Kontakt auf dem PC über die Web-Version von Telegram aufzunehmen. Danach klappt senden und empfangen einwandfrei.

Die andere Besonderheit:
Beim ersten Versuch hat sich der RasPi komplett weggehängt. Es war nicht mal mehr anpingbar. Die OS-/fhem-logs geben nichts her. Kann zwar Zufall sein, aber eigentlich läuft der RasPi ansonsten ohne Probleme durch.
Beim 2. Versuch ist zwar nichts abgestürzt. Allerdings hatte ich mehrere Minuten Meldungen:
2015.10.21 20:22:53 3: TelegramBot_Callback msg.maXXX: resulted in :NonBlockingGet timed out on read from <hidden> after 65s: from Polling
2015.10.21 20:23:53 3: TelegramBot_Callback msg.maXXX: resulted in :NonBlockingGet timed out on read from <hidden> after 65s: from Polling
2015.10.21 20:24:29 3: TelegramBot_Callback msg.maXXX: resulted in :NonBlockingGet timed out on read from <hidden> after 65s: from Polling
2015.10.21 20:25:29 3: TelegramBot_Callback msg.maXXX: resulted in :NonBlockingGet timed out on read from <hidden> after 65s: from Polling
2015.10.21 20:26:04 3: TelegramBot_Callback msg.maXXX: resulted in :NonBlockingGet timed out on read from <hidden> after 65s: from Polling
2015.10.21 20:27:04 3: TelegramBot_Callback msg.maXXX: resulted in :NonBlockingGet timed out on read from <hidden> after 65s: from Polling
2015.10.21 20:27:39 3: TelegramBot_Callback msg.maXXX: resulted in :NonBlockingGet timed out on read from <hidden> after 65s: from Polling

fhem war aktuell (mit Ausnahme der neuen httputils)

set <device> reset hat nicht geholfen, erst ein shutdown restart.

Vielleicht hilft das dem einen oder anderen der "exotische" Geräte einsetzt.  ;)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 Oktober 2015, 12:01:36
Auch von mir ein dickes Dankeschön für dieses Modul.

Ich will es für die Meldungen der Alarmanlage einsetzen und hatte es exzessiv mit einem Account (Iphone) getestet. Grob vom Konzept her: Ich benutze das Modul Residents/Roommate und Modul Alarmanlage. Bei Scharfschaltung bekommt der letze "Gehende" per Telegram die Meldung das scharfgeschaltet.

Gestern Abend wollten wir ein zweites Gerät hinzufügen. Ein Windows Phone 8.1. Dabei ist folgendes Verhalten aufgefallen:
Die Telegram-Version für Windows Phone kann anscheinend nur verschlüsselte Chats starten. Nach meiner Erinnerung kann der Bot das im Moment nicht? Und die erste Kommunikation muss ja vom (neuen) Benutzer zum Bot gehen bevor dieser senden darf.

In der Telegram-App auf dem WP stand dann, dass die App darauf wartet, dass der Bot Online geht.
Nach zwei Versuchen habe ich mir dann so beholfen, den ersten Kontakt auf dem PC über die Web-Version von Telegram aufzunehmen. Danach klappt senden und empfangen einwandfrei.

Die andere Besonderheit:
Beim ersten Versuch hat sich der RasPi komplett weggehängt. Es war nicht mal mehr anpingbar. Die OS-/fhem-logs geben nichts her. Kann zwar Zufall sein, aber eigentlich läuft der RasPi ansonsten ohne Probleme durch.
Beim 2. Versuch ist zwar nichts abgestürzt. Allerdings hatte ich mehrere Minuten Meldungen:
2015.10.21 20:22:53 3: TelegramBot_Callback msg.maXXX: resulted in :NonBlockingGet timed out on read from <hidden> after 65s: from Polling


fhem war aktuell (mit Ausnahme der neuen httputils)

set <device> reset hat nicht geholfen, erst ein shutdown restart.

Vielleicht hilft das dem einen oder anderen der "exotische" Geräte einsetzt.  ;)

- Das Windows Phone nur verschlüsselte Chats starten kann finde ich so nicht in den Beschreibungen, habe aber auch kein Windows Phone um das zu verifizieren. Vielleicht gibt es da eine Option in den Einstellungen?
- Das Telegram API für Bots gibt leider keine secret chats her und bisher ist das auch nicht auf der Roadmap bei telegram, da eher aufwändig (
- Die timeout-Meldungen im lock bedeuten normalerweise, dass die Verbindung zum telegram server (oder der telegram server selber) nicht antwortet. Da diese Bedingung wohl immer mal wieder eintritt, werde ich da die log-Einträge reduzieren und nochmals nach möglichen Ursachen forschen.
- Bezüglich des ersten Versuchs kann ich leider nicht mit einer Erklärung dienen, denn das Verhalten habe ich bisher noch nicht beobachtet und auch nicht geschildert bekommen. Wenn Du ersten versuch sagst , nehme ich an, dass das aufgetreten ist, als Du den Device per "define" angelegt hast, oder als Du versucht hast die erste Message zu senden/empfangen?
Es wäre toll, wenn Du bei ähnlichem Verhalten mal "verbose" auf 4 (oder gar 5) setzen könntest und dann den log zur Verfügung zu stellen.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: det. am 22 Oktober 2015, 12:22:52
Hallo Johannes,
auch von mir vielen Dank für das nützliche Modul. Bekomme jetzt zuverlässig eine Nachricht, wenn einer der beiden Server neu startet. Um die Mailbenachrichtigung über zu warmen Kühlschrank und solchess Zeug abzulösen - wie bekomme ich in den zu übermittelnden Text "Temperatur, Uhrzeit" als Variable rein? Sorry für die dumme Frage.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Buwe am 22 Oktober 2015, 12:54:40
Zitat
- Das Windows Phone nur verschlüsselte Chats starten kann finde ich so nicht in den Beschreibungen, habe aber auch kein Windows Phone um das zu verifizieren. Vielleicht gibt es da eine Option in den Einstellungen?

Ich bin zwar jetzt nicht der Windows Phone Spezialist, aber in den Einstellungen habe ich nichts gefunden. Google hatte auf die Schnelle auch nicht weiter geholfen.

Zitat
- Bezüglich des ersten Versuchs kann ich leider nicht mit einer Erklärung dienen, denn das Verhalten habe ich bisher noch nicht beobachtet und auch nicht geschildert bekommen. Wenn Du ersten versuch sagst , nehme ich an, dass das aufgetreten ist, als Du den Device per "define" angelegt hast, oder als Du versucht hast die erste Message zu senden/empfangen?

Zu diesem Zeitpunkt habe ich nichts definiert oder konfiguriert. Der (fhem)-Bot läuft auch schon ein paar Tage. Das der RasPi hing, ist mir nur aufgefallen weil ich in den Readings nachschauen wollte ob er vlt. doch was empfangen hat.
Ich hab das Log auch noch mal durchforstet. Diese Fehler-Meldungen gab es auch zwischendurch schon mal. Aber nicht über so einen langen Zeitraum. Häufiger sind JSON Fehler, heute morgen einmalig die o.g. Meldung und danach mehrere JSONS (11x bis 5:10 Uhr):

2015.10.22 05:06:38 3: TelegramBot_Callback msg.maXXX: resulted in :NonBlockingGet timed out on read from <hidden> after 65s: from Polling
2015.10.22 05:06:56 3: TelegramBot_Callback msg.maXXX: resulted in :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 1122.
 : from Polling

Vielleicht der Hinweis: Ich hatte erst die Version aus Github. Nachdem das Bestandteil von fhem wurde, habe ich das einfach per fhem Update aktualisiert. Ich hoffe, das war unkritisch.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 22 Oktober 2015, 13:30:58
Hi auch von mir riesen Dank!!

Ich hatte auch das Problem das ich von ausserhalb nicht ohne viel aufwand ans system konnte wegen unitymedia-dual-stack-problematik.
Dein Modul ist echt Super und die Telegram funktionalitäten haben mich auch voll überzeugt die custom-tastatur-layouts finde ich auch super vielversprechend.

Hat jemand von euch schon eine art Dialog funktionalität gebaut sowas wie eine sicherheitsfrage für eine Keymatic wenn ich die tür auf machen will das mich das system fragt willst du wirklich die tür aufmachen oder so? wobei das ja warscheinlich mit so custom tastaur layouts dann hinfällig sein wird?


Die Nachrichten noch mit variablen zu füllen ist mir bisher auch noch nicht gelungen, das fände ich auch interessant.


Greets speex
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 Oktober 2015, 17:13:18
Hallo Johannes,
auch von mir vielen Dank für das nützliche Modul. Bekomme jetzt zuverlässig eine Nachricht, wenn einer der beiden Server neu startet. Um die Mailbenachrichtigung über zu warmen Kühlschrank und solchess Zeug abzulösen - wie bekomme ich in den zu übermittelnden Text "Temperatur, Uhrzeit" als Variable rein? Sorry für die dumme Frage.

Als Beispiel nehme ich mal an, dass Du die Benachrichtigung über den zu warmen Kühlschrank als DOIF realisieren willst, in Abwandlung eines Beispiels aus der commandref müsste das etwa so gehen:

define kuehl_alarm DOIF ([kuehl:temperature]>10) (set telegrambot message Kuehlschrank ist zu warm, aktuell [kuehl:temperature] Grad)

Müsste man aber noch am System überprüfen, das war jetzt eine Trockenübung
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 Oktober 2015, 17:21:52
Zu diesem Zeitpunkt habe ich nichts definiert oder konfiguriert. Der (fhem)-Bot läuft auch schon ein paar Tage. Das der RasPi hing, ist mir nur aufgefallen weil ich in den Readings nachschauen wollte ob er vlt. doch was empfangen hat.
Ich hab das Log auch noch mal durchforstet. Diese Fehler-Meldungen gab es auch zwischendurch schon mal. Aber nicht über so einen langen Zeitraum. Häufiger sind JSON Fehler, heute morgen einmalig die o.g. Meldung und danach mehrere JSONS (11x bis 5:10 Uhr):

Vielleicht der Hinweis: Ich hatte erst die Version aus Github. Nachdem das Bestandteil von fhem wurde, habe ich das einfach per fhem Update aktualisiert. Ich hoffe, das war unkritisch.

Das mit der Version sollte eigentlich keinen Unterschied machen.
Wie gesagt ich würde die Fehlermeldungen aus dem Log reduzieren, aber keins davon ist ein Hinweis auf einen Fehler bei fhem, sondern genau das Gegenteil, nämlich, dass unerwartetetes Verhalten des Netzwerks oder externen Servers erkannt wurde und der nächste Versuch gestartet wird. Nachts sehe ich diese Meldungen bei mir auch regelmässig, ohne dass ich einen Einfluss von meinem Netzwerk oder Fhem vermute. Vielleicht Maintenance bei telegram.org?

Ich sehe jetzt erstmal keinen Hinweis darauf, dass der Hänger zwingend von telegramBot kommen muss, aber wie gesagt es wäre wichtig zu erfahren, wenn so etwas wieder auftritt.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 Oktober 2015, 17:43:06
Hi auch von mir riesen Dank!!

Ich hatte auch das Problem das ich von ausserhalb nicht ohne viel aufwand ans system konnte wegen unitymedia-dual-stack-problematik.
Dein Modul ist echt Super und die Telegram funktionalitäten haben mich auch voll überzeugt die custom-tastatur-layouts finde ich auch super vielversprechend.

Hat jemand von euch schon eine art Dialog funktionalität gebaut sowas wie eine sicherheitsfrage für eine Keymatic wenn ich die tür auf machen will das mich das system fragt willst du wirklich die tür aufmachen oder so? wobei das ja warscheinlich mit so custom tastaur layouts dann hinfällig sein wird?


Die Nachrichten noch mit variablen zu füllen ist mir bisher auch noch nicht gelungen, das fände ich auch interessant.

Greets speex

Danke  :)

Zu Dialogen gibt es bisher nur unfertige Überlegungen, zum Teil auch in diesem Thread. Als ersten Schritt plane ich immer noch es zu erlauben eine eigene perl subroutine zu hinterlegen, die dann für die richtige Antwort aufgerufen wird. Tastaturen habe ich bisher nicht ausprobiert und auch noch nicht ins Modul eingebaut.

Vorschläge um so etwas deklarativ zu machen sind erwünscht, denn bisher ist mir nur eingefallen so etwas wie einen endlichen automaten https://de.wikipedia.org/wiki/Endlicher_Automat (https://de.wikipedia.org/wiki/Endlicher_Automat)hinzuzufügen, allerdings ist das ein grösseres Ding und nur eine externe Funktion zu rufen ist doch viel einfacher ;)

Wie gesagt Variablen lässt sich am einfachsten über die Möglichkeiten von  DOIF oder notify erledigen, ansonsten in einer myUtils-Routine. Gibt es ein Szenario, wo messages mit Variablen nucht über notify oder DOIF oder ähnliches verschickt werden sollen?



Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: det. am 22 Oktober 2015, 17:59:34
Wie gesagt Variablen lässt sich am einfachsten über die Möglichkeiten von  DOIF oder notify erledigen, ansonsten in einer myUtils-Routine. Gibt es ein Szenario, wo messages mit Variablen nucht über notify oder DOIF oder ähnliches verschickt werden sollen?
mMn reicht es wenn es mit DOIF oder THRESHOLD gehen würde, Dein Beispiel in Antwort 216 liefert aber als Message leider ohne Variablenwert nur den Text bis zum Komma:  Kuehlschrank ist zu warm
und die Meldung im LOG: kuehl_alarm:  aktuell 5.5 Grad: Unknown command aktuell, try help
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 22 Oktober 2015, 18:43:42
mMn reicht es wenn es mit DOIF oder THRESHOLD gehen würde, Dein Beispiel in Antwort 216 liefert aber als Message leider ohne Variablenwert nur den Text bis zum Komma

Das sollte auch möglich sein, aber hier ist es vermutlich wirklich das Komma (ich konnte es ja nicht ausprobieren), versuch es doch einfach mal ohne Komma. Wie gesagt die Ersetzung wird dann in DOIF gemacht, TelegramBot bekommt schon einen fertigen String.

Sobald ich kann werde ich auch testen.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 22 Oktober 2015, 18:48:21
Bei DOIF ist das Komma ein Trenner für FHEM Befehle, wird es innerhalb eines Befehls benutzt muss dieser zusätlich geklammert werden. Steht auch irgendwo in der Commandref.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: UweH am 22 Oktober 2015, 18:53:11
Nur das Komma wech, dann klappt's.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: det. am 22 Oktober 2015, 20:35:34
Danke, das war es! Funktioniert!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 22 Oktober 2015, 22:35:40
Vorschläge um so etwas deklarativ zu machen sind erwünscht
Habe heute mal wieder ein bisschen programmiert, herausgekommen ist dabei folgendes:
myTelegramBot_dialog_notify
myTelegramBot.msgText.* {
  my @command = split(" ", $EVENT);
    splice(@command, 0, 1);
  my $msgPeerId = ReadingsVal($NAME, "msgPeerId", 0);

  telegramBot_dialog(@command, $msgPeerId);
}
sub telegramBot_dialog(@_){
  my @command = shift;
  my $msgPeerId = shift;
  my $msg;

  my @cmdRestrictedPeer = split(" ", AttrVal("myTelegramBot", "cmdRestrictedPeer", 0));
 
  my $dialog = ReadingsVal("myTelegramBot_dialog_notify", $msgPeerId."_dialog", $command[0]);
  my $level = ReadingsVal("myTelegramBot_dialog_notify", $msgPeerId."_level", 0);

  if($msgPeerId ~~ @cmdRestrictedPeer){
    switch ($dialog) {
      case /heimdall/i {
        $msg = "Ich kann folgendes für dich tun:";
        $msg .= "\n";
        $msg .= "\n/Waschmaschine";
      }
      case /Waschmaschine/i {
        my $actor = "HM_2C10D8_Sw";
        my $controlUnit = "d_Waschmaschine";

        my $mode = ReadingsVal($controlUnit, "controlMode", "manual");
        my $state = ReadingsVal($actor, "state", "off");
        my $stop = ReadingsVal($controlUnit, "stopTime", undef);

        switch ($level) {
          case 0 {
            $msg = "Modus: $mode";
            $msg .= "\nStatus: $state";
            $msg .= "\nWäsche voraussichtlich um $stop Uhr fertig."if($mode eq "auto");
            $msg .= "\n";
            $msg .= "\n/manual"if($mode eq "auto");
            $msg .= "\n/programmieren";
            $msg .= "\n/abbrechen";

            fhem(
              "
                setreading myTelegramBot_dialog_notify ".$msgPeerId."_dialog $dialog;
                setreading myTelegramBot_dialog_notify ".$msgPeerId."_level 1;
              "
            );
          }
          case 1 {
            switch ($command[0]) {
              case /manual/i {
                if($mode eq "auto"){
                  $msg = "Das Zeitprogramm wurde gestoppt.";
                  fhem("set $controlUnit controlMode manual");
                  $command[0] = "abbrechen";
                }
              }
              case /programmieren/i {
                $msg = "Wann soll die Wäsche fertig sein?";
                $msg .= "\nBitte Uhrzeit in HH:MM angeben";
                if(defined($stop)){
                  $msg .= "\n,aktuell ist $stop Uhr eingestellt.";
                  $msg .= "\n";
                  $msg .= "\n/bestätigen";
                }
                else{
                  $msg .= ".";
                }
                fhem("setreading myTelegramBot_dialog_notify ".$msgPeerId."_level 2");
              }
            }
          }
          case 2 {
            switch ($command[0]) {
              case /bestätigen/i {
                if(defined($stop)){
                  $msg = "Das Zeitprogramm wurde eingestllt.";
                  $msg .= "\nDie Wäsche wird voraussichtlich um $stop Uhr ferig sein.";
                  $msg .= "\nBitte die Waschmaschine vorbereiten.";
                  fhem("set $controlUnit controlMode auto");
                  $command[0] = "abbrechen";
                }
              }
              else {
                my ($HH, $MM) = split(":", $command[0]);
                if(
                  defined($HH) and
                  $HH =~ /\d\d/ and
                  $HH >= 0 and
                  $HH <= 24 and
                  defined($MM) and
                  $MM =~ /\d\d/ and
                  $MM >= 0 and
                  $MM <= 59
                ){
                  $msg = "Das Zeitprogramm wurde eingestllt.";
                  $msg .= "\nDie Wäsche wird voraussichtlich um $command[0] Uhr ferig sein.";
                  $msg .= "\nBitte die Waschmaschine vorbereiten.";
                  fhem(
                    "
                      set $controlUnit stopTime $command[0];
                      set $controlUnit controlMode auto;
                    "
                  );
                  $command[0] = "abbrechen";
                }
              }
            }
          }
        }
      }
    }
   
    if($msg ne ""){
      fhem("set myTelegramBot message \@$msgPeerId $msg");
    }

    if($command[0] =~ /abbrechen/i){
      $msg = "Dialog beendet.";
      $msg .= "\n";
      $msg .= "\n/heimdall";
      fhem("set myTelegramBot message \@$msgPeerId $msg");
      fhem(
        "
          deletereading myTelegramBot_dialog_notify ".$msgPeerId."_dialog;
          deletereading myTelegramBot_dialog_notify ".$msgPeerId."_level;
        "
      );
    }
  }else{
    $msg = "Du bist nich würdig!";
    fhem("set myTelegramBot message \@$msgPeerId $msg");
  }
}
alles noch etwas klobig. Werde aber sehen, dass ich da schnell weiter komme. Bisher funktioniert es mit der einen Funktion ganz gut.

Grüße
igami

Edit: 23.10.15 fertige sub eingefügt
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 25 Oktober 2015, 06:18:54
Hallo ihr lieben, also ein riesen Problem telegramBot mach bei mir nur noch Probleme.

Der Server wird praktisch jede minute neu gestartet weil sich das telegrammodul nicht mehr fängt.

Angefangen hat das ganze bei mir seitdem ich mir den TeleGramBot + HTTPUtils über den update command geholt habe, seitdem wird nicht mehr gepollt und er kackt immer beim letzten an telegrambot verschicken command ab. Das geht inzwischen soweit das ich das system praktisch nicht mehr anrühren kann alles sielt verrückt.#

2015.10.25 06:09:20 1: HMLAN_Parse: HMLAN1 new condition ok
2015.10.25 06:09:20 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.25 06:09:20 3: ipc RPiFronthem:127.0.0.1:41942 (ws): ws alive with pid 18599
2015.10.25 06:09:58 3: TelegramBot_ReadHandleCommand teleBot: cmd found :list global:
2015.10.25 06:09:58 3: TelegramBot_SendIt teleBot: add send to queue :xxxxxxxxx: -:TelegramBot fhem cmd :list global: result :Internals:
 DEF <no definition>
 NAME global
 NR 1
 STATE <no definition>
 TYPE Global
 currentlogfile ./log/fhem-2015-10.log
 logfile ./log/fhem-%Y-%m.log
Attributes:
 autoload_undefined_devices 1
 configfile fhem.cfg
 latitude 51.229455
 logfile ./log/fhem-%Y-%m.log
 longitude 6.760991
 modpath .
 motd SecurityCheck:

WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.

Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 statefile ./log/fhem.save
 updateInBackground 1
 userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
 verbose 3
 version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $
:: - :<undef>:
2015.10.25 06:09:58 3: TelegramBot_ReadHandleCommand teleBot: cmd found :shutdown restart:
2015.10.25 06:09:58 1: in SHUTDOWN
2015.10.25 06:09:58 1: in SHUTDOWN
2015.10.25 06:09:58 1: in SHUTDOWN
2015.10.25 06:09:58 1: in SHUTDOWN
2015.10.25 06:09:58 1: in SHUTDOWN
2015.10.25 06:09:58 0: Server shutdown
2015.10.25 06:10:01 1: Including fhem.cfg
2015.10.25 06:10:01 3: telnetPort: port 7072 opened
2015.10.25 06:10:01 3: WEB: port 8083 opened
2015.10.25 06:10:01 3: WEBphone: port 8084 opened
2015.10.25 06:10:01 3: WEBtablet: port 8085 opened
2015.10.25 06:10:01 2: eventTypes: loaded 1350 events from ./log/eventTypes.txt
2015.10.25 06:10:02 3: fl_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:02 3: wz_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:02 3: wz_SchreibtischLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:02 3: master_LED_Define: I/O device is MilightBridge
2015.10.25 06:10:02 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.25 06:10:02 3: Opening HMLAN1 device 192.168.1.111:1000
2015.10.25 06:10:02 3: HMLAN1 device opened
2015.10.25 06:10:02 1: HMLAN_Parse: HMLAN1 new condition init
2015.10.25 06:10:03 2: RPiFronthem: ipc listener opened at port 16384
2015.10.25 06:10:04 3: TelegramBot_Define teleBot: called
2015.10.25 06:10:04 1: Including ./log/fhem.save
2015.10.25 06:10:05 3: Device fl_Dor_Sensor added to ActionDetector with 028:00 time
2015.10.25 06:10:05 3: Device fl_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:10:05 3: Device wz_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:10:05 3: Device wz_HK2 added to ActionDetector with 000:10 time
2015.10.25 06:10:05 1: in INITIALIZED
2015.10.25 06:10:05 1: in INITIALIZED
2015.10.25 06:10:05 1: in INITIALIZED
2015.10.25 06:10:05 1: in INITIALIZED
2015.10.25 06:10:05 1: in INITIALIZED
2015.10.25 06:10:05 1: usb create starting
2015.10.25 06:10:05 3: Probing CUL device /dev/ttyAMA0
2015.10.25 06:10:05 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.10.25 06:10:06 3: Probing FRM device /dev/ttyAMA0
2015.10.25 06:10:11 1: usb create end
2015.10.25 06:10:11 1: PERL WARNING: Use of uninitialized value $devname in hash element at ./FHEM/31_MilightDevice.pm line 2097.
2015.10.25 06:10:11 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.10.25 06:10:11 0: Featurelevel: 5.6
2015.10.25 06:10:11 0: Server started with 80 defined entities (version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $, os linux, user fhem, pid 18609)
2015.10.25 06:10:11 1: HMLAN_Parse: HMLAN1 new condition ok
2015.10.25 06:10:11 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.25 06:10:11 3: ipc RPiFronthem:127.0.0.1:41951 (ws): ws alive with pid 18611
2015.10.25 06:10:49 3: TelegramBot_ReadHandleCommand teleBot: cmd found :list global:
2015.10.25 06:10:50 3: TelegramBot_SendIt teleBot: add send to queue :xxxxxxxxx: -:TelegramBot fhem cmd :list global: result :Internals:
 DEF <no definition>
 NAME global
 NR 1
 STATE <no definition>
 TYPE Global
 currentlogfile ./log/fhem-2015-10.log
 logfile ./log/fhem-%Y-%m.log
Attributes:
 autoload_undefined_devices 1
 configfile fhem.cfg
 latitude 51.229455
 logfile ./log/fhem-%Y-%m.log
 longitude 6.760991
 modpath .
 motd SecurityCheck:

WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.

Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 statefile ./log/fhem.save
 updateInBackground 1
 userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
 verbose 3
 version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $
:: - :<undef>:
2015.10.25 06:10:50 3: TelegramBot_ReadHandleCommand teleBot: cmd found :shutdown restart:
2015.10.25 06:10:50 1: in SHUTDOWN
2015.10.25 06:10:50 1: in SHUTDOWN
2015.10.25 06:10:50 1: in SHUTDOWN
2015.10.25 06:10:50 1: in SHUTDOWN
2015.10.25 06:10:50 1: in SHUTDOWN
2015.10.25 06:10:50 0: Server shutdown
2015.10.25 06:10:52 1: Including fhem.cfg
2015.10.25 06:10:52 3: telnetPort: port 7072 opened
2015.10.25 06:10:53 3: WEB: port 8083 opened
2015.10.25 06:10:53 3: WEBphone: port 8084 opened
2015.10.25 06:10:53 3: WEBtablet: port 8085 opened
2015.10.25 06:10:53 2: eventTypes: loaded 1350 events from ./log/eventTypes.txt
2015.10.25 06:10:53 3: fl_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:53 3: wz_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:53 3: wz_SchreibtischLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:53 3: master_LED_Define: I/O device is MilightBridge
2015.10.25 06:10:53 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.25 06:10:53 3: Opening HMLAN1 device 192.168.1.111:1000
2015.10.25 06:10:53 3: HMLAN1 device opened
2015.10.25 06:10:53 1: HMLAN_Parse: HMLAN1 new condition init
2015.10.25 06:10:55 2: RPiFronthem: ipc listener opened at port 16384
2015.10.25 06:10:55 3: TelegramBot_Define teleBot: called
2015.10.25 06:10:56 1: Including ./log/fhem.save
2015.10.25 06:10:56 3: Device fl_Dor_Sensor added to ActionDetector with 028:00 time
2015.10.25 06:10:56 3: Device fl_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:10:56 3: Device wz_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:10:56 3: Device wz_HK2 added to ActionDetector with 000:10 time
2015.10.25 06:10:56 1: in INITIALIZED
2015.10.25 06:10:56 1: in INITIALIZED
2015.10.25 06:10:56 1: in INITIALIZED
2015.10.25 06:10:56 1: in INITIALIZED
2015.10.25 06:10:56 1: in INITIALIZED
2015.10.25 06:10:56 1: usb create starting
2015.10.25 06:10:57 3: Probing CUL device /dev/ttyAMA0
2015.10.25 06:10:57 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.10.25 06:10:57 3: Probing FRM device /dev/ttyAMA0
2015.10.25 06:11:02 1: usb create end
2015.10.25 06:11:02 1: PERL WARNING: Use of uninitialized value $devname in hash element at ./FHEM/31_MilightDevice.pm line 2097.
2015.10.25 06:11:02 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.10.25 06:11:02 0: Featurelevel: 5.6
2015.10.25 06:11:02 0: Server started with 80 defined entities (version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $, os linux, user fhem, pid 18621)
2015.10.25 06:11:03 1: HMLAN_Parse: HMLAN1 new condition ok
2015.10.25 06:11:03 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.25 06:11:03 3: ipc RPiFronthem:127.0.0.1:41960 (ws): ws alive with pid 18622
2015.10.25 06:11:41 3: TelegramBot_ReadHandleCommand teleBot: cmd found :list global:
2015.10.25 06:11:41 3: TelegramBot_SendIt teleBot: add send to queue :xxxxxxxxx: -:TelegramBot fhem cmd :list global: result :Internals:
 DEF <no definition>
 NAME global
 NR 1
 STATE <no definition>
 TYPE Global
 currentlogfile ./log/fhem-2015-10.log
 logfile ./log/fhem-%Y-%m.log
Attributes:
 autoload_undefined_devices 1
 configfile fhem.cfg
 latitude 51.229455
 logfile ./log/fhem-%Y-%m.log
 longitude 6.760991
 modpath .
 motd SecurityCheck:

WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.

Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 statefile ./log/fhem.save
 updateInBackground 1
 userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
 verbose 3
 version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $
:: - :<undef>:
2015.10.25 06:11:41 3: TelegramBot_ReadHandleCommand teleBot: cmd found :shutdown restart:
2015.10.25 06:11:41 1: in SHUTDOWN
2015.10.25 06:11:41 1: in SHUTDOWN
2015.10.25 06:11:41 1: in SHUTDOWN
2015.10.25 06:11:41 1: in SHUTDOWN
2015.10.25 06:11:41 1: in SHUTDOWN
2015.10.25 06:11:41 0: Server shutdown
2015.10.25 06:11:44 1: Including fhem.cfg
2015.10.25 06:11:44 3: telnetPort: port 7072 opened
2015.10.25 06:11:44 3: WEB: port 8083 opened
2015.10.25 06:11:44 3: WEBphone: port 8084 opened
2015.10.25 06:11:44 3: WEBtablet: port 8085 opened
2015.10.25 06:11:44 2: eventTypes: loaded 1350 events from ./log/eventTypes.txt
2015.10.25 06:11:45 3: fl_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:11:45 3: wz_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:11:45 3: wz_SchreibtischLampe_Define: I/O device is MilightBridge
2015.10.25 06:11:45 3: master_LED_Define: I/O device is MilightBridge
2015.10.25 06:11:45 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.25 06:11:45 3: Opening HMLAN1 device 192.168.1.111:1000
2015.10.25 06:11:45 3: HMLAN1 device opened
2015.10.25 06:11:45 1: HMLAN_Parse: HMLAN1 new condition init
2015.10.25 06:11:46 2: RPiFronthem: ipc listener opened at port 16384
2015.10.25 06:11:47 3: TelegramBot_Define teleBot: called
2015.10.25 06:11:47 1: Including ./log/fhem.save
2015.10.25 06:11:48 3: Device fl_Dor_Sensor added to ActionDetector with 028:00 time
2015.10.25 06:11:48 3: Device fl_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:11:48 3: Device wz_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:11:48 3: Device wz_HK2 added to ActionDetector with 000:10 time
2015.10.25 06:11:48 1: in INITIALIZED
2015.10.25 06:11:48 1: in INITIALIZED
2015.10.25 06:11:48 1: in INITIALIZED
2015.10.25 06:11:48 1: in INITIALIZED
2015.10.25 06:11:48 1: in INITIALIZED
2015.10.25 06:11:48 1: usb create starting
2015.10.25 06:11:48 3: Probing CUL device /dev/ttyAMA0
2015.10.25 06:11:48 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.10.25 06:11:49 3: Probing FRM device /dev/ttyAMA0
2015.10.25 06:11:54 1: usb create end
2015.10.25 06:11:54 1: PERL WARNING: Use of uninitialized value $devname in hash element at ./FHEM/31_MilightDevice.pm line 2097.
2015.10.25 06:11:54 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.10.25 06:11:54 0: Featurelevel: 5.6
2015.10.25 06:11:54 0: Server started with 80 defined entities (version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $, os linux, user fhem, pid 18632)
2015.10.25 06:11:54 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.25 06:11:54 3: ipc RPiFronthem:127.0.0.1:41969 (ws): ws alive with pid 18633
2015.10.25 06:12:12 1: 192.168.1.111:1000 disconnected, waiting to reappear (HMLAN1)
2015.10.25 06:12:12 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.25 06:12:12 1: 192.168.1.111:1000 reappeared (HMLAN1)
2015.10.25 06:12:12 1: HMLAN_Parse: HMLAN1 new condition init
2015.10.25 06:12:12 1: HMLAN_Parse: HMLAN1 new condition ok
2015.10.25 06:12:33 3: TelegramBot_ReadHandleCommand teleBot: cmd found :list global:
2015.10.25 06:12:33 3: TelegramBot_SendIt teleBot: add send to queue :xxxxxxxxx: -:TelegramBot fhem cmd :list global: result :Internals:
 DEF <no definition>
 NAME global
 NR 1
 STATE <no definition>
 TYPE Global
 currentlogfile ./log/fhem-2015-10.log
 logfile ./log/fhem-%Y-%m.log
Attributes:
 autoload_undefined_devices 1
 configfile fhem.cfg
 latitude 51.229455
 logfile ./log/fhem-%Y-%m.log
 longitude 6.760991
 modpath .
 motd SecurityCheck:

WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.

Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 statefile ./log/fhem.save
 updateInBackground 1
 userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
 verbose 3
 version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $
:: - :<undef>:
2015.10.25 06:12:33 3: TelegramBot_ReadHandleCommand teleBot: cmd found :shutdown restart:
2015.10.25 06:12:33 1: in SHUTDOWN
2015.10.25 06:12:33 1: in SHUTDOWN
2015.10.25 06:12:33 1: in SHUTDOWN
2015.10.25 06:12:33 1: in SHUTDOWN
2015.10.25 06:12:33 1: in SHUTDOWN
2015.10.25 06:12:33 0: Server shutdown
2015.10.25 06:12:35 1: Including fhem.cfg
2015.10.25 06:12:35 3: telnetPort: port 7072 opened
2015.10.25 06:12:36 3: WEB: port 8083 opened
2015.10.25 06:12:36 3: WEBphone: port 8084 opened
2015.10.25 06:12:36 3: WEBtablet: port 8085 opened
2015.10.25 06:12:36 2: eventTypes: loaded 1350 events from ./log/eventTypes.txt
2015.10.25 06:12:36 3: fl_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:12:36 3: wz_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:12:36 3: wz_SchreibtischLampe_Define: I/O device is MilightBridge
2015.10.25 06:12:36 3: master_LED_Define: I/O device is MilightBridge
2015.10.25 06:12:36 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.25 06:12:36 3: Opening HMLAN1 device 192.168.1.111:1000
2015.10.25 06:12:36 3: HMLAN1 device opened
2015.10.25 06:12:36 1: HMLAN_Parse: HMLAN1 new condition init
2015.10.25 06:12:38 2: RPiFronthem: ipc listener opened at port 16384
2015.10.25 06:12:38 3: TelegramBot_Define teleBot: called
2015.10.25 06:12:39 1: Including ./log/fhem.save
2015.10.25 06:12:39 3: Device fl_Dor_Sensor added to ActionDetector with 028:00 time
2015.10.25 06:12:39 3: Device fl_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:12:39 3: Device wz_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:12:39 3: Device wz_HK2 added to ActionDetector with 000:10 time
2015.10.25 06:12:39 1: in INITIALIZED
2015.10.25 06:12:39 1: in INITIALIZED
2015.10.25 06:12:39 1: in INITIALIZED
2015.10.25 06:12:39 1: in INITIALIZED
2015.10.25 06:12:39 1: in INITIALIZED
2015.10.25 06:12:39 1: usb create starting
2015.10.25 06:12:40 3: Probing CUL device /dev/ttyAMA0
2015.10.25 06:12:40 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.10.25 06:12:40 3: Probing FRM device /dev/ttyAMA0
2015.10.25 06:12:45 1: usb create end
2015.10.25 06:12:46 1: PERL WARNING: Use of uninitialized value $devname in hash element at ./FHEM/31_MilightDevice.pm line 2097.
2015.10.25 06:12:46 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.10.25 06:12:46 0: Featurelevel: 5.6
2015.10.25 06:12:46 0: Server started with 80 defined entities (version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $, os linux, user fhem, pid 18643)
2015.10.25 06:12:46 1: HMLAN_Parse: HMLAN1 new condition ok
2015.10.25 06:12:46 1: 192.168.1.102:9090 reappeared (wz_Kodi)

Alo hier geht gerade nichts mehr... ein set teleBot reset zeigt keine wirknug neustart nichts und der server wird jede minute neugestartet....


Ausser mir das offizielle update zu holen habe ich nichts verändert.

Das polling steht dauerhaft auf -1 und egal was ich an Polling werten vergebe und auch ein telegramBot reset hat auch keinerlei änderung erbracht.

Ich habe die ganze Hardware vom Strom getrennt und lebe jetzt momentan wieder oldschool - manuell , da merkt man dann leider wie sehr man sich daran schon gewöhnt hat.
DIe gewonnen log eriegnisse hab ich hier mal reingepackt

Desweiteren habe ich das ganze auch noch bei einem Bekannten in Betrieb genommen auch in diesem Fall ist das system nicht mehr ansprechbar.


Was mach ich denn jetzt? Hat jemand rat?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: UweH am 25 Oktober 2015, 11:13:35
Diese ganzen Probleme habe ich zwar nicht, dafür aber sind die anderen Kontakte verschwunden...ebenso meine mühselig eingerichtete Gruppe.

Gruß
Uwe
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 25 Oktober 2015, 12:44:26
Hallo zusammen,

ich habe gestern per Update den bot aktualisiert.
Bei mir funktioniert noch alles.
Allerdings habe ich nicht wirklich viel eingerichtet. Bisher nur drei Kontakte und ein paar Favoriten.
Nach dem Update stehen nun zwar viele Fehlermeldungen im Log, diese haben aber scheinbar nichts mit dem TelegramBot zu tun.

Zitat
2015.10.21 19:42:15 1: Error: 1 has no TYPE

Diese Meldung taucht alle paar Sekunden auf, aber nicht erkennbar wer das erzeugt.

Schönen Sonntag

Gerd

Edit1: Gerade neu gestartet, kommen keine Meldungen (mehr)
Edit2: In der CFG war beim Zähler DS2423 folgendes gesetzt:
Zitat
attr OWX_1D_A2D984000002 LogM 1
attr OWX_1D_A2D984000002 LogY 1
Das entfernt und keine Massen-Meldungen mehr im Log
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Oktober 2015, 14:25:10
Hallo ihr lieben, also ein riesen Problem telegramBot mach bei mir nur noch Probleme.

Der Server wird praktisch jede minute neu gestartet weil sich das telegrammodul nicht mehr fängt.

Angefangen hat das ganze bei mir seitdem ich mir den TeleGramBot + HTTPUtils über den update command geholt habe, seitdem wird nicht mehr gepollt und er kackt immer beim letzten an telegrambot verschicken command ab. Das geht inzwischen soweit das ich das system praktisch nicht mehr anrühren kann alles sielt verrückt.#

2015.10.25 06:09:20 1: HMLAN_Parse: HMLAN1 new condition ok
2015.10.25 06:09:20 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.25 06:09:20 3: ipc RPiFronthem:127.0.0.1:41942 (ws): ws alive with pid 18599
2015.10.25 06:09:58 3: TelegramBot_ReadHandleCommand teleBot: cmd found :list global:
2015.10.25 06:09:58 3: TelegramBot_SendIt teleBot: add send to queue :xxxxxxxxx: -:TelegramBot fhem cmd :list global: result :Internals:
 DEF <no definition>
 NAME global
 NR 1
 STATE <no definition>
 TYPE Global
 currentlogfile ./log/fhem-2015-10.log
 logfile ./log/fhem-%Y-%m.log
Attributes:
 autoload_undefined_devices 1
 configfile fhem.cfg
 latitude 51.229455
 logfile ./log/fhem-%Y-%m.log
 longitude 6.760991
 modpath .
 motd SecurityCheck:

WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.

Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 statefile ./log/fhem.save
 updateInBackground 1
 userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
 verbose 3
 version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $
:: - :<undef>:
2015.10.25 06:09:58 3: TelegramBot_ReadHandleCommand teleBot: cmd found :shutdown restart:
2015.10.25 06:09:58 1: in SHUTDOWN
2015.10.25 06:09:58 1: in SHUTDOWN
2015.10.25 06:09:58 1: in SHUTDOWN
2015.10.25 06:09:58 1: in SHUTDOWN
2015.10.25 06:09:58 1: in SHUTDOWN
2015.10.25 06:09:58 0: Server shutdown
2015.10.25 06:10:01 1: Including fhem.cfg
2015.10.25 06:10:01 3: telnetPort: port 7072 opened
2015.10.25 06:10:01 3: WEB: port 8083 opened
2015.10.25 06:10:01 3: WEBphone: port 8084 opened
2015.10.25 06:10:01 3: WEBtablet: port 8085 opened
2015.10.25 06:10:01 2: eventTypes: loaded 1350 events from ./log/eventTypes.txt
2015.10.25 06:10:02 3: fl_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:02 3: wz_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:02 3: wz_SchreibtischLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:02 3: master_LED_Define: I/O device is MilightBridge
2015.10.25 06:10:02 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.25 06:10:02 3: Opening HMLAN1 device 192.168.1.111:1000
2015.10.25 06:10:02 3: HMLAN1 device opened
2015.10.25 06:10:02 1: HMLAN_Parse: HMLAN1 new condition init
2015.10.25 06:10:03 2: RPiFronthem: ipc listener opened at port 16384
2015.10.25 06:10:04 3: TelegramBot_Define teleBot: called
2015.10.25 06:10:04 1: Including ./log/fhem.save
2015.10.25 06:10:05 3: Device fl_Dor_Sensor added to ActionDetector with 028:00 time
2015.10.25 06:10:05 3: Device fl_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:10:05 3: Device wz_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:10:05 3: Device wz_HK2 added to ActionDetector with 000:10 time
2015.10.25 06:10:05 1: in INITIALIZED
2015.10.25 06:10:05 1: in INITIALIZED
2015.10.25 06:10:05 1: in INITIALIZED
2015.10.25 06:10:05 1: in INITIALIZED
2015.10.25 06:10:05 1: in INITIALIZED
2015.10.25 06:10:05 1: usb create starting
2015.10.25 06:10:05 3: Probing CUL device /dev/ttyAMA0
2015.10.25 06:10:05 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.10.25 06:10:06 3: Probing FRM device /dev/ttyAMA0
2015.10.25 06:10:11 1: usb create end
2015.10.25 06:10:11 1: PERL WARNING: Use of uninitialized value $devname in hash element at ./FHEM/31_MilightDevice.pm line 2097.
2015.10.25 06:10:11 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.10.25 06:10:11 0: Featurelevel: 5.6
2015.10.25 06:10:11 0: Server started with 80 defined entities (version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $, os linux, user fhem, pid 18609)
2015.10.25 06:10:11 1: HMLAN_Parse: HMLAN1 new condition ok
2015.10.25 06:10:11 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.25 06:10:11 3: ipc RPiFronthem:127.0.0.1:41951 (ws): ws alive with pid 18611
2015.10.25 06:10:49 3: TelegramBot_ReadHandleCommand teleBot: cmd found :list global:
2015.10.25 06:10:50 3: TelegramBot_SendIt teleBot: add send to queue :xxxxxxxxx: -:TelegramBot fhem cmd :list global: result :Internals:
 DEF <no definition>
 NAME global
 NR 1
 STATE <no definition>
 TYPE Global
 currentlogfile ./log/fhem-2015-10.log
 logfile ./log/fhem-%Y-%m.log
Attributes:
 autoload_undefined_devices 1
 configfile fhem.cfg
 latitude 51.229455
 logfile ./log/fhem-%Y-%m.log
 longitude 6.760991
 modpath .
 motd SecurityCheck:

WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.

Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 statefile ./log/fhem.save
 updateInBackground 1
 userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
 verbose 3
 version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $
:: - :<undef>:
2015.10.25 06:10:50 3: TelegramBot_ReadHandleCommand teleBot: cmd found :shutdown restart:
2015.10.25 06:10:50 1: in SHUTDOWN
2015.10.25 06:10:50 1: in SHUTDOWN
2015.10.25 06:10:50 1: in SHUTDOWN
2015.10.25 06:10:50 1: in SHUTDOWN
2015.10.25 06:10:50 1: in SHUTDOWN
2015.10.25 06:10:50 0: Server shutdown
2015.10.25 06:10:52 1: Including fhem.cfg
2015.10.25 06:10:52 3: telnetPort: port 7072 opened
2015.10.25 06:10:53 3: WEB: port 8083 opened
2015.10.25 06:10:53 3: WEBphone: port 8084 opened
2015.10.25 06:10:53 3: WEBtablet: port 8085 opened
2015.10.25 06:10:53 2: eventTypes: loaded 1350 events from ./log/eventTypes.txt
2015.10.25 06:10:53 3: fl_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:53 3: wz_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:53 3: wz_SchreibtischLampe_Define: I/O device is MilightBridge
2015.10.25 06:10:53 3: master_LED_Define: I/O device is MilightBridge
2015.10.25 06:10:53 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.25 06:10:53 3: Opening HMLAN1 device 192.168.1.111:1000
2015.10.25 06:10:53 3: HMLAN1 device opened
2015.10.25 06:10:53 1: HMLAN_Parse: HMLAN1 new condition init
2015.10.25 06:10:55 2: RPiFronthem: ipc listener opened at port 16384
2015.10.25 06:10:55 3: TelegramBot_Define teleBot: called
2015.10.25 06:10:56 1: Including ./log/fhem.save
2015.10.25 06:10:56 3: Device fl_Dor_Sensor added to ActionDetector with 028:00 time
2015.10.25 06:10:56 3: Device fl_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:10:56 3: Device wz_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:10:56 3: Device wz_HK2 added to ActionDetector with 000:10 time
2015.10.25 06:10:56 1: in INITIALIZED
2015.10.25 06:10:56 1: in INITIALIZED
2015.10.25 06:10:56 1: in INITIALIZED
2015.10.25 06:10:56 1: in INITIALIZED
2015.10.25 06:10:56 1: in INITIALIZED
2015.10.25 06:10:56 1: usb create starting
2015.10.25 06:10:57 3: Probing CUL device /dev/ttyAMA0
2015.10.25 06:10:57 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.10.25 06:10:57 3: Probing FRM device /dev/ttyAMA0
2015.10.25 06:11:02 1: usb create end
2015.10.25 06:11:02 1: PERL WARNING: Use of uninitialized value $devname in hash element at ./FHEM/31_MilightDevice.pm line 2097.
2015.10.25 06:11:02 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.10.25 06:11:02 0: Featurelevel: 5.6
2015.10.25 06:11:02 0: Server started with 80 defined entities (version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $, os linux, user fhem, pid 18621)
2015.10.25 06:11:03 1: HMLAN_Parse: HMLAN1 new condition ok
2015.10.25 06:11:03 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.25 06:11:03 3: ipc RPiFronthem:127.0.0.1:41960 (ws): ws alive with pid 18622
2015.10.25 06:11:41 3: TelegramBot_ReadHandleCommand teleBot: cmd found :list global:
2015.10.25 06:11:41 3: TelegramBot_SendIt teleBot: add send to queue :xxxxxxxxx: -:TelegramBot fhem cmd :list global: result :Internals:
 DEF <no definition>
 NAME global
 NR 1
 STATE <no definition>
 TYPE Global
 currentlogfile ./log/fhem-2015-10.log
 logfile ./log/fhem-%Y-%m.log
Attributes:
 autoload_undefined_devices 1
 configfile fhem.cfg
 latitude 51.229455
 logfile ./log/fhem-%Y-%m.log
 longitude 6.760991
 modpath .
 motd SecurityCheck:

WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.

Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 statefile ./log/fhem.save
 updateInBackground 1
 userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
 verbose 3
 version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $
:: - :<undef>:
2015.10.25 06:11:41 3: TelegramBot_ReadHandleCommand teleBot: cmd found :shutdown restart:
2015.10.25 06:11:41 1: in SHUTDOWN
2015.10.25 06:11:41 1: in SHUTDOWN
2015.10.25 06:11:41 1: in SHUTDOWN
2015.10.25 06:11:41 1: in SHUTDOWN
2015.10.25 06:11:41 1: in SHUTDOWN
2015.10.25 06:11:41 0: Server shutdown
2015.10.25 06:11:44 1: Including fhem.cfg
2015.10.25 06:11:44 3: telnetPort: port 7072 opened
2015.10.25 06:11:44 3: WEB: port 8083 opened
2015.10.25 06:11:44 3: WEBphone: port 8084 opened
2015.10.25 06:11:44 3: WEBtablet: port 8085 opened
2015.10.25 06:11:44 2: eventTypes: loaded 1350 events from ./log/eventTypes.txt
2015.10.25 06:11:45 3: fl_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:11:45 3: wz_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:11:45 3: wz_SchreibtischLampe_Define: I/O device is MilightBridge
2015.10.25 06:11:45 3: master_LED_Define: I/O device is MilightBridge
2015.10.25 06:11:45 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.25 06:11:45 3: Opening HMLAN1 device 192.168.1.111:1000
2015.10.25 06:11:45 3: HMLAN1 device opened
2015.10.25 06:11:45 1: HMLAN_Parse: HMLAN1 new condition init
2015.10.25 06:11:46 2: RPiFronthem: ipc listener opened at port 16384
2015.10.25 06:11:47 3: TelegramBot_Define teleBot: called
2015.10.25 06:11:47 1: Including ./log/fhem.save
2015.10.25 06:11:48 3: Device fl_Dor_Sensor added to ActionDetector with 028:00 time
2015.10.25 06:11:48 3: Device fl_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:11:48 3: Device wz_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:11:48 3: Device wz_HK2 added to ActionDetector with 000:10 time
2015.10.25 06:11:48 1: in INITIALIZED
2015.10.25 06:11:48 1: in INITIALIZED
2015.10.25 06:11:48 1: in INITIALIZED
2015.10.25 06:11:48 1: in INITIALIZED
2015.10.25 06:11:48 1: in INITIALIZED
2015.10.25 06:11:48 1: usb create starting
2015.10.25 06:11:48 3: Probing CUL device /dev/ttyAMA0
2015.10.25 06:11:48 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.10.25 06:11:49 3: Probing FRM device /dev/ttyAMA0
2015.10.25 06:11:54 1: usb create end
2015.10.25 06:11:54 1: PERL WARNING: Use of uninitialized value $devname in hash element at ./FHEM/31_MilightDevice.pm line 2097.
2015.10.25 06:11:54 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.10.25 06:11:54 0: Featurelevel: 5.6
2015.10.25 06:11:54 0: Server started with 80 defined entities (version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $, os linux, user fhem, pid 18632)
2015.10.25 06:11:54 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.25 06:11:54 3: ipc RPiFronthem:127.0.0.1:41969 (ws): ws alive with pid 18633
2015.10.25 06:12:12 1: 192.168.1.111:1000 disconnected, waiting to reappear (HMLAN1)
2015.10.25 06:12:12 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.25 06:12:12 1: 192.168.1.111:1000 reappeared (HMLAN1)
2015.10.25 06:12:12 1: HMLAN_Parse: HMLAN1 new condition init
2015.10.25 06:12:12 1: HMLAN_Parse: HMLAN1 new condition ok
2015.10.25 06:12:33 3: TelegramBot_ReadHandleCommand teleBot: cmd found :list global:
2015.10.25 06:12:33 3: TelegramBot_SendIt teleBot: add send to queue :xxxxxxxxx: -:TelegramBot fhem cmd :list global: result :Internals:
 DEF <no definition>
 NAME global
 NR 1
 STATE <no definition>
 TYPE Global
 currentlogfile ./log/fhem-2015-10.log
 logfile ./log/fhem-%Y-%m.log
Attributes:
 autoload_undefined_devices 1
 configfile fhem.cfg
 latitude 51.229455
 logfile ./log/fhem-%Y-%m.log
 longitude 6.760991
 modpath .
 motd SecurityCheck:

WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.

Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 statefile ./log/fhem.save
 updateInBackground 1
 userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
 verbose 3
 version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $
:: - :<undef>:
2015.10.25 06:12:33 3: TelegramBot_ReadHandleCommand teleBot: cmd found :shutdown restart:
2015.10.25 06:12:33 1: in SHUTDOWN
2015.10.25 06:12:33 1: in SHUTDOWN
2015.10.25 06:12:33 1: in SHUTDOWN
2015.10.25 06:12:33 1: in SHUTDOWN
2015.10.25 06:12:33 1: in SHUTDOWN
2015.10.25 06:12:33 0: Server shutdown
2015.10.25 06:12:35 1: Including fhem.cfg
2015.10.25 06:12:35 3: telnetPort: port 7072 opened
2015.10.25 06:12:36 3: WEB: port 8083 opened
2015.10.25 06:12:36 3: WEBphone: port 8084 opened
2015.10.25 06:12:36 3: WEBtablet: port 8085 opened
2015.10.25 06:12:36 2: eventTypes: loaded 1350 events from ./log/eventTypes.txt
2015.10.25 06:12:36 3: fl_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:12:36 3: wz_DeckenLampe_Define: I/O device is MilightBridge
2015.10.25 06:12:36 3: wz_SchreibtischLampe_Define: I/O device is MilightBridge
2015.10.25 06:12:36 3: master_LED_Define: I/O device is MilightBridge
2015.10.25 06:12:36 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.25 06:12:36 3: Opening HMLAN1 device 192.168.1.111:1000
2015.10.25 06:12:36 3: HMLAN1 device opened
2015.10.25 06:12:36 1: HMLAN_Parse: HMLAN1 new condition init
2015.10.25 06:12:38 2: RPiFronthem: ipc listener opened at port 16384
2015.10.25 06:12:38 3: TelegramBot_Define teleBot: called
2015.10.25 06:12:39 1: Including ./log/fhem.save
2015.10.25 06:12:39 3: Device fl_Dor_Sensor added to ActionDetector with 028:00 time
2015.10.25 06:12:39 3: Device fl_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:12:39 3: Device wz_HK1 added to ActionDetector with 000:10 time
2015.10.25 06:12:39 3: Device wz_HK2 added to ActionDetector with 000:10 time
2015.10.25 06:12:39 1: in INITIALIZED
2015.10.25 06:12:39 1: in INITIALIZED
2015.10.25 06:12:39 1: in INITIALIZED
2015.10.25 06:12:39 1: in INITIALIZED
2015.10.25 06:12:39 1: in INITIALIZED
2015.10.25 06:12:39 1: usb create starting
2015.10.25 06:12:40 3: Probing CUL device /dev/ttyAMA0
2015.10.25 06:12:40 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.10.25 06:12:40 3: Probing FRM device /dev/ttyAMA0
2015.10.25 06:12:45 1: usb create end
2015.10.25 06:12:46 1: PERL WARNING: Use of uninitialized value $devname in hash element at ./FHEM/31_MilightDevice.pm line 2097.
2015.10.25 06:12:46 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.10.25 06:12:46 0: Featurelevel: 5.6
2015.10.25 06:12:46 0: Server started with 80 defined entities (version $Id: fhem.pl 9581 2015-10-21 19:06:58Z rudolfkoenig $, os linux, user fhem, pid 18643)
2015.10.25 06:12:46 1: HMLAN_Parse: HMLAN1 new condition ok
2015.10.25 06:12:46 1: 192.168.1.102:9090 reappeared (wz_Kodi)

Alo hier geht gerade nichts mehr... ein set teleBot reset zeigt keine wirknug neustart nichts und der server wird jede minute neugestartet....


Ausser mir das offizielle update zu holen habe ich nichts verändert.

Das polling steht dauerhaft auf -1 und egal was ich an Polling werten vergebe und auch ein telegramBot reset hat auch keinerlei änderung erbracht.

Ich habe die ganze Hardware vom Strom getrennt und lebe jetzt momentan wieder oldschool - manuell , da merkt man dann leider wie sehr man sich daran schon gewöhnt hat.
DIe gewonnen log eriegnisse hab ich hier mal reingepackt

Desweiteren habe ich das ganze auch noch bei einem Bekannten in Betrieb genommen auch in diesem Fall ist das system nicht mehr ansprechbar.


Was mach ich denn jetzt? Hat jemand rat?


Hi,
aus dem log geht hervor, dass jemand das Kommando
shutdown restart an den Bot gesendet hat!

Das erzeugt eine Endlosschleife, denn der shutdown führt natürlich dazu, dass man das Kommando nicht mehr als erledigt markieren kann (der server ist ja weg). Beim nächsten Neustart steht das Kommando wieder an...

Die einfachste Lösung führt über eine manuelle Veränderung der fhem.cfg. Dort findet sich bei Dir mindestens ein der folgenden Zeilen:
attr teleBot cmdKeyword ... attr teleBot cmdFavorites ... Diese Zeile auskommentieren ('#' in die erste Spalte, dann laufen die Kommandos ins Leere und alles ist wieder normal. Die Attribute können dann wieder gesetzt werden.

Also: "shutdown" ist kein Kommando, dass über den Bot ausgeführt werden sollte...


Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Oktober 2015, 14:37:57
Diese ganzen Probleme habe ich zwar nicht, dafür aber sind die anderen Kontakte verschwunden...ebenso meine mühselig eingerichtete Gruppe.

Gruß
Uwe

Die Kontakte sind ja als Reading angelegt, finden sich normalerweise also in fhem.save. Wenn allerdings diese Datei defekt oder unvollständig ist, so kann man immer noch die Kontakte manuell wiederherstellen aus Information im log file (log level 3 muss allerdings vorhanden sein):

Es finden sich für jeden Kontakt im log Einträge wie folgt:

2015.10.14 20:35:25 3: TelegramBot_ContactUpdate new contact :123456:Ralf_Mustermann:@ralf:
2015.10.14 20:35:25 3: TelegramBot_ContactUpdate new contact :-234567::#gruppe:
2015.10.14 20:35:25 3: TelegramBot_ContactUpdate new contact :3456789:jemand::

Von jedem dieser Einträge (suche nach "TelegramBot_ContactUpdate new contact") nimmt man den Text zwischen den äusseren Doppelpunkten (ohne diese Doppelpunkte). Fügt sie zusammen durch ein Leerzeichen getrennt.

Also im Beispiel oben sind das:

123456:Ralf_Mustermann:@ralf -234567::#gruppe 3456789:jemand:
Dann verwendet man das Kommando replaceContacts um die Kontakte neu zu setzen:

set <telebotdevice> replaceContacts <alle Kontakte durch leerzeichen getrennt>
OK und eine Möglichkeit das eleganter zu tun habe ich auf meine todo liste genommen.

Hinweis: Ein regelmässiger save ist in vielenFällen sinnvoll um einen aktuellen Status für alle Geräte zu haben, das kann man auch durch einen "at" Befehl automatisieren.

Johannes

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Oktober 2015, 14:45:57
Hallo zusammen,

ich habe gestern per Update den bot aktualisiert.
Bei mir funktioniert noch alles.
Allerdings habe ich nicht wirklich viel eingerichtet. Bisher nur drei Kontakte und ein paar Favoriten.
Nach dem Update stehen nun zwar viele Fehlermeldungen im Log, diese haben aber scheinbar nichts mit dem TelegramBot zu tun.

Diese Meldung taucht alle paar Sekunden auf, aber nicht erkennbar wer das erzeugt.

Schönen Sonntag

Gerd

Edit: Gerade neu gestartet, kommen keine Meldungen (mehr)

Die Meldung deutet daraufhin, dass Du eine device ohne TYPE hast. Dazu gibt es viele Lösungen hier im Forum und wie beschrieben hat das nichts mit telegramBot zu tun, solche Devices deuten daraufhin, dass irgendwo ein define unvollständig oder fehlerhaft ausgeführt wurde.
Vielleicht gibt es ein "define 1" irgendwo in Deinem fhem.cfg?

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 25 Oktober 2015, 17:06:50
Vielen Dank, Johannes, läuft nun wieder.

Das ist korrekt, der Bot muss aber vorher schon aufgehört haben zu arbeiten, ich war halt verwundert nach dem ich bereits eine Weile Unterwegs war wo denn die Meldung bleiben würde über das abschalten der Verbraucher, dann habe ich probiert mir einen state per list auszugeben da kam dann halt schon nix mehr und dann habe ich es probiert mit shutdown restart, mir nix dabei gedacht. - gemerkt fürs nächste mal. :)

Ich hab das jetzt im Log bei mir auch mal eingrenzen können bin aber noch nicht richtig schlau draus geworden muss noch ein bisschen tiefere ursachen forschung betrieben.

2015.10.24 19:33:34 3: HttpUtils url=<hidden>
2015.10.24 19:33:34 3: <hidden>: HTTP response code 200
2015.10.24 19:33:34 3: HttpUtils <hidden>: Got data, length: 227
2015.10.24 19:33:36 3: HttpUtils url=<hidden>
2015.10.24 19:33:36 3: <hidden>: HTTP response code 200
2015.10.24 19:33:36 3: HttpUtils <hidden>: Got data, length: 542
2015.10.24 19:34:55 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 119.176008939743 s ago
2015.10.24 19:34:55 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:34:56 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:36:56 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.025707006454 s ago
2015.10.24 19:36:56 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:36:59 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:38:59 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.027947902679 s ago
2015.10.24 19:38:59 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:39:01 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:41:01 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.026947021484 s ago
2015.10.24 19:41:01 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:41:04 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:43:04 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.026176929474 s ago
2015.10.24 19:43:04 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:43:06 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:45:06 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.019275903702 s ago
2015.10.24 19:45:06 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:45:07 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:47:07 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.022305965424 s ago
2015.10.24 19:47:07 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:47:09 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:49:09 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.051135063171 s ago
2015.10.24 19:49:09 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:49:09 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:51:09 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.023770093918 s ago
2015.10.24 19:51:09 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:51:13 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:53:13 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.021176815033 s ago
2015.10.24 19:53:13 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:53:18 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:55:18 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.026907920837 s ago
2015.10.24 19:55:18 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:55:22 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:57:22 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.026036977768 s ago
2015.10.24 19:57:22 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:57:22 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:58:26 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:58:27 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 19:59:31 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 19:59:33 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 20:00:37 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 20:00:39 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 20:01:44 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 20:01:47 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 20:02:51 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 20:02:52 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 20:03:56 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 20:03:58 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 20:05:02 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 20:05:03 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 20:06:07 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 20:06:09 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 20:07:14 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 20:07:14 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 20:08:18 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 20:08:18 1: 192.168.1.102:9090 reappeared (wz_Kodi)
2015.10.24 20:09:22 1: 192.168.1.102:9090 disconnected, waiting to reappear (wz_Kodi)
2015.10.24 20:09:22 1: 192.168.1.102:9090 reappeared (wz_Kodi)
Not an ARRAY reference at ./FHEM/70_XBMC.pm line 599.
2015.10.25 05:32:59 1: reload: Error:Modul 99_IPCamNonBlockUtils deactivated:
 
2015.10.25 05:32:59 1: Including fhem.cfg

Um 10.24 - 19:33Uhr hab ich das letzte mal vom telegrambot eine nachricht bekommen ab danach hat offensichtlich Kodi rumgesponnen, dann bin ich zwischenzeitlich nochmal zuhausse gewesen von 21-22:30Uhr ca.. und gegen Elf uhr nachts dann war ich verwundert hatte den list befehl abgesetzt der schon keine rückmeldung mehr gab und wie erwähnt eben der shutdown restart...

Die 99_IPcam war eh nur testhalber und hab ich auch erstmal entfernt, aber gegen elf gibt es irgendwie auch keine logs mehr... ich verstehe das nicht.

Wie dem auch sei läuft erstmal wieder, vielleicht hat ja jemand von euch eine ahnung was da bei mir schief lief.

Vielen Dank euch bis hierhin.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Oktober 2015, 18:01:16
Hi,
verdächtig erscheint mir der Eintrag:
Not an ARRAY reference at ./FHEM/70_XBMC.pm line 599.
Als erste Vermutung hätte ich das dabei fhem abstürzt, denn das klingt eher nach einem schwerwiegenden Fehler, worauf das Modul nicht vorbereitet ist (meldung kommt ja nicht als log sondern als perl-Meldung).

gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Oktober 2015, 18:38:44
Ich habe in github (also noch nicht in der offiziellen Verteilung) eine neue Version hochgeladen zum Testen. Diese enthält folgende Änderungen:

- Favoritenliste wird als Keyboard gesendet (siehe dazu hier: https://core.telegram.org/bots#keyboards (https://core.telegram.org/bots#keyboards))
- shutdown als Kommando wird herausgefiltert (auch als shutdown restart)
- Bei neuen Kontakten wird der statefile geschrieben (abschaltbar mit default an), so dass bei einem Absturz von fhem die Kontakte im statefile gesichert sind und ein log mit allen Kontakten wird erzeugt (log level 2)
- Ergebnisse von Kommandos können in der Länge beschränkt werden. Also das Resultat einer Message kann zwar beliebig lang sein, man kann aber auch eine beschränkte Grösse festlegen

Version findet sich in github hier: https://github.com/viegener/Telegram-fhem/blob/master/50_TelegramBot.pm (https://github.com/viegener/Telegram-fhem/blob/master/50_TelegramBot.pm)

Rückmeldung aus Tests ist willkommen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: UweH am 25 Oktober 2015, 18:54:26
Super, vielen Dank.
Die Geschichte mit den Keyboards ist ja richtig Klasse, funktioniert. Vorbei mit dem umständlichen Tippen.

Gruß
Uwe
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 26 Oktober 2015, 14:41:38
Hallöchen hab mir auch mal die neue Gitversion besorgt funktioniert bis darauf das ich das mit dem versand des custom keyboards noch nicht verstanden habe.

Ansonsten hatte ich noch folgende neue Meldungen im Log:
2015.10.26 08:10:49 3: TelegramBot_Callback teleBot: resulted in :NonBlockingGet timed out on read from <hidden> after 29s: from Polling
2015.10.26 08:11:12 3: TelegramBot_Callback teleBot: resulted in :NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error error:00000000:lib(0):func(0):reason(0) SSL connect attempt failed with unknown error error:00000000:lib(0):func(0):reason(0): from Polling

2015.10.26 12:46:36 1: PERL WARNING: Possible unintended interpolation of <@meine-contact-id> in string at (eval 8387) line 1.
Dann wird mir noch mein Notify dazu ausgepsuckt..

2015.10.26 12:46:36 3: eval: {fhem ("set master_LED rgb 000000") } {fhem ("set teleBot message <@meine-contact-id> Licht und Medien wurden abgeschaltet!") } { if (   ReadingsVal("wz_Kodi", "type", "") eq "channel"
       || ReadingsVal("wz_Kodi", "type", "") eq "episode"
       || ReadingsVal("wz_Kodi", "type", "") eq "musicvideo"
       || ReadingsVal("wz_Kodi", "type", "") eq "picture"
       || ReadingsVal("wz_Kodi", "type", "") eq "movie") {
      if (ReadingsVal("wz_Kodi", "playStatus", "") eq "playing") {
               fhem("set wz_Kodi stop");;
            }
   } else { if (ReadingsVal("wz_Kodi", "playStatus", "") eq "playing") { \                  fhem("set wz_Kodi pause");;
            }
          }
}

Hat aber bisher trotz dieser Fehlermeldungen alles funktioniert, die neue Version habe ich heute nacht gegen 1 Uhr eingespielt...

Greets
speex
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 26 Oktober 2015, 14:59:34

Ansonsten hatte ich noch folgende neue Meldungen im Log:
2015.10.26 08:10:49 3: TelegramBot_Callback teleBot: resulted in :NonBlockingGet timed out on read from <hidden> after 29s: from Polling
2015.10.26 08:11:12 3: TelegramBot_Callback teleBot: resulted in :NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error error:00000000:lib(0):func(0):reason(0) SSL connect attempt failed with unknown error error:00000000:lib(0):func(0):reason(0): from Polling

2015.10.26 12:46:36 1: PERL WARNING: Possible unintended interpolation of <@meine-contact-id> in string at (eval 8387) line 1.
Dann wird mir noch mein Notify dazu ausgepsuckt..

2015.10.26 12:46:36 3: eval: {fhem ("set master_LED rgb 000000") } {fhem ("set teleBot message <@meine-contact-id> Licht und Medien wurden abgeschaltet!") } { if (   ReadingsVal("wz_Kodi", "type", "") eq "channel"
       || ReadingsVal("wz_Kodi", "type", "") eq "episode"
       || ReadingsVal("wz_Kodi", "type", "") eq "musicvideo"
       || ReadingsVal("wz_Kodi", "type", "") eq "picture"
       || ReadingsVal("wz_Kodi", "type", "") eq "movie") {
      if (ReadingsVal("wz_Kodi", "playStatus", "") eq "playing") {
               fhem("set wz_Kodi stop");;
            }
   } else { if (ReadingsVal("wz_Kodi", "playStatus", "") eq "playing") { \                  fhem("set wz_Kodi pause");;
            }
          }
}

Hat aber bisher trotz dieser Fehlermeldungen alles funktioniert, die neue Version habe ich heute nacht gegen 1 Uhr eingespielt...

Greets
speex

Die ersten Meldungen im log sind wiedermal Nichterreichbarkeit bzw. Verbindungsabbruch. Ich habe nachwievor auf meiner todo-liste diese Art Meldungen nur noch auf Wunsch auszugeben.

Die perl-Warnung deutet daraufhin, dass perl @meine-contact-id als Array interpretiert (Weil in perl @ ein array einleitet auch wenn es in einem String der mit " umschlossen ist steht). Ich nehme an Dein Notify enthält @meine-contact-id und nicht <@meine-contact-id>?

Probier doch mal @@ statt @ im notify? Das hat bereits funktioniert.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 26 Oktober 2015, 15:29:33
Hi Johannes vielen dank für deine prompten antworten und die tolle Arbeit!

Das ist so entsprechned definiert mit @@ im notify (Im log erschint es vll. nicht weil es interpretiert ist?) ich hatte ja auch unter anderem das problem das es mit einem nicht klappte... diese meldung kam halt vorher auch nicht also ich pekier mich darüber auch nicht ganz im gegenteil sollte dir nur als info über neuigkeiten seit dem update dienen, funktioniert ja alles. :)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 27 Oktober 2015, 20:37:29
Hallo Johannes,

kleiner Tippfehler in der Hilfe. Steht doppelt im PM.
Zitat
Note: shutdown is not supported as a command (also in favorites) and will be rejected. This is needed to avoid reexecution of the shutdown command directly after restart (endless loop !).
Note: shutdown is not supported as a command (also in favorites) and will be rejected. This is needed to avoid reexecution of the shutdown command directly after restart (endless loop !).

Tippfehler im Wiki
Zitat
....... Nehhmen wir mal an man möchte die Favoriten mit /short ausführen.......

Bisher bin ich noch am probieren und verstehen.
Scheint so weit zu gehen.

Gruss Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 Oktober 2015, 21:37:25
kleiner Tippfehler in der Hilfe. Steht doppelt im PM.
Tippfehler im Wiki

Habe ich korrigiert,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 31 Oktober 2015, 14:12:46
Hallo Johannes,

kann es sein das beim letzte Update vom telegramBot welches verteilt wird, die Schaltflächen nicht erzeugt werden?
Hab die Version von Git eingespielt und hier werden die Schaltflächen wieder erzeugt.

Schönes WE,

Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 31 Oktober 2015, 22:02:05
Ja, die GIT Hib-Version ist aktueller, ich betrachte die Versionen in github als Beta-Versionen, die neue Funktionen enthalten, die ich erst noch einige Zeit testen will bevor sie in die offizielle SVN-Verteilung kommen. Ich bin da immer wieder auf Testergebnisse und Rückmeldungen wie von Dir angeweisen, um zu überprüfen ob die neueste Version auch stabil läuft.

Über SVN wird doch an deutlich mehr Leute verteilt. Die Keyboards funktionieren zwar sind aber aus meiner Sicht noch nicht fertig (bisher gibt es sie nur bei Favoriten und neuerdings auch bei lastCommands).

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 06 November 2015, 00:36:30
Hallo Johannes,

habe noch eine ältere Version (29.10) am laufen. Nicht die Aktuelle vom Git.
Diese Meldung hab ich gerade im Log gesehen:
Zitat
2015.11.04 18:31:10 1: TelegramBot_checkCmdKeyword(cmdFavorites) unauthorized cmd from user :MxxE: (3xxxxxx1)
  Cmd: start
2015.11.04 18:31:25 1: TelegramBot_checkCmdKeyword(cmdKeyword) unauthorized cmd from user :MxxE: (3xxxxxx1)
  Cmd:
2015.11.04 18:31:25 1: TelegramBot_checkCmdKeyword(cmdFavorites) unauthorized cmd from user :MxxE: (3xxxxxx1)
  Cmd: hey
2015.11.04 18:38:09 1: PERL WARNING: Use of uninitialized value $ret in concatenation (.) or string at ./FHEM/50_TelegramBot.pm line 813.


Weis nicht ob die Oberen Meldungen etwas damit zu tun haben?!
Bekannter hat seine ID mitgeteilt. Danach habe ich seine ID eingetragen.
Immer das Theater mit den leeren Variablen ;)

Gruss Gerd

Edit: Neue Version von Git installiert
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 09 November 2015, 00:20:10
Ich korrigiere das und mache es mit dem nächsten Update auch verfügbar, Ist aber wiederum kein problematischer Logeintrag.
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoJota am 10 November 2015, 20:04:02
Guten Abend,

ich möchte gerne als Favorit einen Befehl einspeichern, der bei Aufruf ein Reading zurückschickt. Bekomme leider immer nur den Text statt der Variable zurück.

set TelegramBot message Aktuelle Temperatur: ReadingsVal("wetterstation","temperatur","1")
Wo liegt der Fehler?

Danke

Gruß JoJota
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 November 2015, 21:35:32
Hallo Jojota,
Der telegrambot selber wertet keine perlausdruecke aus, sondern schickt den text so wie er ist. Fuer die auswertung von perl ausdrücken oder fhem kommandos muss man eines der fhem kommandos bemuehen, die auch perl ausdruecke auswerten.

Ich kann die jetzt keine vollstaendige syntax geben, da ich geschäftlich unterwegs bin, aber wenn Du deinen ausdruck in als notify mit {} umschlossen definierst, dann kannst du den befehl als favoriten mit trigger ... definieren. Dann wird im notify auch der readingsval ausgewertet.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoJota am 10 November 2015, 21:55:50
Hallo Johannes,
danke für die schnelle Antwort.
Habe das ganze jetzt in die 99_myUtils.pm ausgelagert und rufe jetzt einfach unter favorites nur die fertige Funktion auf, die dann die Befehle ausführt und die Nachricht verschickt.
Hat auch den Vorteil, dass alles etwas übersichtlicher wird.

Eine Frage habe ich aber noch: Kann man diese automatische Antwort, die beim Ausführen von einem Befehl zurückgesendet wird irgendwie stumm schalten?
Möchte als Bestätigung gerne meine eigene Nachricht senden und die automatische Antwort stört da ein wenig.  ;)

Danke und schönen Abend,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 November 2015, 22:02:11
Hallo Johannes,
danke für die schnelle Antwort.
Habe das ganze jetzt in die 99_myUtils.pm ausgelagert und rufe jetzt einfach unter favorites nur die fertige Funktion auf, die dann die Befehle ausführt und die Nachricht verschickt.
Hat auch den Vorteil, dass alles etwas übersichtlicher wird.

Eine Frage habe ich aber noch: Kann man diese automatische Antwort, die beim Ausführen von einem Befehl zurückgesendet wird irgendwie stumm schalten?
Möchte als Bestätigung gerne meine eigene Nachricht senden und die automatische Antwort stört da ein wenig.  ;)

Danke und schönen Abend,
Johannes

Bisher kann man das noch nicht  :D
Macht aber vermutlich sinn so etwas schaltbar zu machen, so dass leere responses nicht gesendet werden muessen. Auch wenn es eher danach klingt, als ob Du auch eine art dialogfukntion brauchst, wo man einen dialog über telegram abwickeln kann. Also auf ein kommando über telegram mit einem selbstdefinierten rückgabetext (reading oder anderes) antworten.

Aber wie gesagt noch bin ich unterwegs und habe nicht mal zugriff auf meinen entwicklungsrechner...



Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 10 November 2015, 22:30:34
Hallo JoJota-Johannes  :)

Wie wärs wenn du dein 99_myutils.pm als Beispiel hier abrufbar machst?

Danke  ;D

Gruss Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoJota am 10 November 2015, 22:47:04
Hallo JoJota-Johannes  :)

Wie wärs wenn du dein 99_myutils.pm als Beispiel hier abrufbar machst?

Danke  ;D

Gruss Gerd

Hallo Gerd,

ist jetzt kein weltbewegendes Stück Code geworden, aber wenn es manchen hilft, gerne:

sub SendWeather()
{
 my $weather_condition = ReadingsVal("MeinWetter","condition","1");
 my $weather_temp = ReadingsVal("wetterstation","Temperatur","1");
 my $weather_hum = ReadingsVal("wetterstation","Luftfeuchtigkeit","1");
 fhem("set TelegramBot message Daten der Wetterstation: Draußen ist es $weather_condition bei ".$weather_temp."°C. Die Luftfeuchtigkeit beträgt: ".$weather_hum."%.");
}

Aufgerufen wird die Funktion dann unter favorites über { SendWeather() }

Gruß JoJota-Johannes :D
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoJota am 10 November 2015, 23:03:37
Bisher kann man das noch nicht  :D
Macht aber vermutlich sinn so etwas schaltbar zu machen, so dass leere responses nicht gesendet werden muessen. Auch wenn es eher danach klingt, als ob Du auch eine art dialogfukntion brauchst, wo man einen dialog über telegram abwickeln kann. Also auf ein kommando über telegram mit einem selbstdefinierten rückgabetext (reading oder anderes) antworten.

Aber wie gesagt noch bin ich unterwegs und habe nicht mal zugriff auf meinen entwicklungsrechner...

So ungefähr habe ich mir das vorgestellt. Lasse mir im Moment beispielsweise über Favoritenbefehle das aktuelle Bild meiner IPCAM schicken, jetzt auch Wetterdaten und möchte das gerne noch mit anderen Geräten erweitern. Da stört die automatische Meldung dann immer etwas. Und wenn man das ganze jetzt noch mit frei definierbaren Befehlen machen könnte, also nicht nur /favorit1 /favorit2 etc. sondern z.B. /camera oder /weather wäre das natürlich perfekt.  ;)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 11 November 2015, 23:25:45
In der github-Version habe ich das mal eingebaut. Ich habe dazu ein Attribut: cmdReturnEmptyResult eingebaut. Bei Wert 1 (default) wird weiterhin auch ein leeres Result gesendet. Beim Wert 0 wird nach einem Kommando nur dann eine Antwort gesendet, wenn eine Fehlermeldung oder ein anderes Resultat als Ergebnis des Kommandos kommt.

Wie gesagt, momentan ist die Version nur in Github
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Marekh am 12 November 2015, 16:31:39
Bei mir scheitert es schon an der Definition:

define Mein_bot TelegramBot 14540XXXX:AAGQVRx4MAXXXXXXXXXXXXXXXXXXXX

Antwort:

Cannot load module TelegramBot

Hier mein log:

2015.11.12 16:11:48 1: PERL WARNING: Bareword found where operator expected at ./FHEM/50_TelegramBot.pm line 5, near ""en" class"
2015.11.12 16:11:48 1: PERL WARNING: (Missing operator before class?)
2015.11.12 16:11:48 1: PERL WARNING: Bareword found where operator expected at ./FHEM/50_TelegramBot.pm line 13, near "<title>Telegram"
2015.11.12 16:11:48 1: PERL WARNING: (Missing operator before Telegram?)
2015.11.12 16:11:48 1: PERL WARNING: Ambiguous use of -fhem resolved as -&fhem() at ./FHEM/50_TelegramBot.pm line 13.
2015.11.12 16:11:48 1: reload: Error:Modul 50_TelegramBot deactivated:
 Unrecognized character \xC2; marked by <-- HERE after gram-fhem <-- HERE near column 80 at ./FHEM/50_TelegramBot.pm line 13.

2015.11.12 16:11:48 0: Unrecognized character \xC2; marked by <-- HERE after gram-fhem <-- HERE near column 80 at ./FHEM/50_TelegramBot.pm line 13.

2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 148) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 149) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 150) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 151) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 152) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 153) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 154) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 155) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 156) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 157) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 158) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 159) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 160) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 161) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 162) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 163) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 164) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 165) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 166) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 167) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 168) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 169) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 170) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 171) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 172) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 173) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 174) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 175) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 176) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 177) line 1.
2015.11.12 16:13:22 1: PERL WARNING: Useless use of string eq in void context at (eval 178) line 1.
2015.11.12 16:13:32 1: PERL WARNING: Argument "100]" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 1224.
2015.11.12 16:13:39 1: PERL WARNING: Useless use of string eq in void context at (eval 190) line 1.
2015.11.12 16:13:40 1: PERL WARNING: Useless use of string eq in void context at (eval 194) line 1.
2015.11.12 16:13:43 1: PERL WARNING: Useless use of string eq in void context at (eval 196) line 1.
2015.11.12 16:13:43 1: PERL WARNING: Useless use of string eq in void context at (eval 197) line 1.
2015.11.12 16:14:00 1: reload: Error:Modul 50_TelegramBot deactivated:
 Unrecognized character \xC2; marked by <-- HERE after gram-fhem <-- HERE near column 80 at ./FHEM/50_TelegramBot.pm line 13.

2015.11.12 16:14:00 0: Unrecognized character \xC2; marked by <-- HERE after gram-fhem <-- HERE near column 80 at ./FHEM/50_TelegramBot.pm line 13.

2015.11.12 16:15:19 1: HMLAN_Parse: HMLAN1 new condition ok
2015.11.12 16:17:41 1: reload: Error:Modul 50_TelegramBot deactivated:
 Unrecognized character \xC2; marked by <-- HERE after gram-fhem <-- HERE near column 80 at ./FHEM/50_TelegramBot.pm line 13.

2015.11.12 16:17:41 0: Unrecognized character \xC2; marked by <-- HERE after gram-fhem <-- HERE near column 80 at ./FHEM/50_TelegramBot.pm line 13.

Ich benutze die version von Github, die 50_TelegramBot.pm liegt im FHEM Verzeichnis


Danke
Marek

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 12 November 2015, 16:45:25
Bei mir scheitert es schon an der Definition:

define Mein_bot TelegramBot 14540XXXX:AAGQVRx4MAXXXXXXXXXXXXXXXXXXXX

Antwort:

Cannot load module TelegramBot

Hier mein log:

2015.11.12 16:11:48 1: PERL WARNING: Bareword found where operator expected at ./FHEM/50_TelegramBot.pm line 5, near ""en" class"
2015.11.12 16:11:48 1: PERL WARNING: (Missing operator before class?)
2015.11.12 16:11:48 1: PERL WARNING: Bareword found where operator expected at ./FHEM/50_TelegramBot.pm line 13, near "<title>Telegram"
2015.11.12 16:11:48 1: PERL WARNING: (Missing operator before Telegram?)

[/quote]

Die log deuten daraufhin, dass die Datei, die Du im fhem-verzeichnis hast nicht die 50_TelegramBot.pm datei ist, sondern ein HTML-File.
Das Modul enthält in Zeile 5 eine Kommentarzeile und der text [code]"<title>Telegram"
kommt nicht vor.

Wenn Du aus Githib herunterlädsts, solltest Du den "raw" button verwenden, sonst speicherst Du vielleicht die github HTML-Seite.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Marekh am 13 November 2015, 10:52:29
Zitat
Wenn Du aus Githib herunterlädsts, solltest Du den "raw" button verwenden, sonst speicherst Du vielleicht die github HTML-Seite.

Danke das wars!
Läuft prima jetzt :-)

Marek
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 13 November 2015, 12:21:19
Danke das wars!
Läuft prima jetzt :-)

Marek

Schön, ich habe noch eine Bemerkung dazu in den ersten Post mitaufgenommen.
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoJota am 14 November 2015, 11:26:46
In der github-Version habe ich das mal eingebaut. Ich habe dazu ein Attribut: cmdReturnEmptyResult eingebaut. Bei Wert 1 (default) wird weiterhin auch ein leeres Result gesendet. Beim Wert 0 wird nach einem Kommando nur dann eine Antwort gesendet, wenn eine Fehlermeldung oder ein anderes Resultat als Ergebnis des Kommandos kommt.

Wie gesagt, momentan ist die Version nur in Github

Funktioniert. Danke!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 14 November 2015, 23:25:08
Es wird wohl wieder Zeit den jetzigen Stand auch offiziell über das update verfügbar zu machen.

Ich werde morgen diese Version 1.1 ins SVN hochladen (wenn es keine Probleme gibt).
-> Letzte Änderungen betreffen nur ein paar Abrundungen eingebaut, damit die logfiles nicht zu gross werden.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 15 November 2015, 14:23:20
Achtung: Mit update auf FHEM 5.7 (siehe Ankündigung von Rudi --> http://forum.fhem.de/index.php/topic,44094.0.html (http://forum.fhem.de/index.php/topic,44094.0.html))
wird im notify "@@" nicht mehr auf "@" umgewandelt. Wenn Ihr Empfänger in notify-Befehlen angegeben habt, müsst Ihr die doppelten @  nach dem Update auf einfache @ ändern.

Das betrifft natürlich nur die Verwendung innerhalb des notify!

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: UweH am 16 November 2015, 16:45:25
Hallo Johannes,

ich habe ein kleines Problem nach dem letzten Update: Die Nachricht an eine Gruppe (in meinem Fall "FHEM") wird nicht gesendet. Mit dem Befehl "set myTeleBot msg @#FHEM blabla" hat es bisher funktioniert, seit der Version vom 14.11. nicht mehr. Senden an einzelne Empfänger funktioniert. Mit verbose 3 habe ich dazu keine Einträge im Log. Kannst Du das so schon eingrenzen oder brauchst Du weitere Infos?

Edit: Was ich gerade noch gesehen habe: Das Reading "PollingLastError" sagt mir "NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443: SSL wants a read first" mit dem Zeitstempel 2015-11-16 14:30:18.
Aber es funktioniert alles außer Senden an die Gruppe...

Danke und Gruß
Uwe
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 16 November 2015, 16:51:12
Hallo Uwe,
hast Du die Meldung direkt darüber gesehen (http://forum.fhem.de/index.php/topic,38328.msg359574.html#msg359574 (http://forum.fhem.de/index.php/topic,38328.msg359574.html#msg359574))?
Kann es sein, dass der Aufruf aus einem notify nicht funktioniert?

Die Version im update habe ich noch nicht geändert, wenn Du also die offizielle Version vorher hattest, ist dies unverändert.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: UweH am 16 November 2015, 16:54:25
Ja, die Info kenne ich, habe aber noch nicht das Update gezogen...

Ich benutze immer die Version aus dem Github...
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 16 November 2015, 17:25:55
OK, konnte es nachvollziehen.

Es sieht so aus, als ob Telegram etwas geändert hat. Die Gruppenmitgliedschaft für Bots scheint inaktiviert worden zu sein.
telegram.org meldet : Bad Request: chat not found
Es lässt sich aber einfach lösen, indem man den Bot entfernt und wiederhinzufügt, alternativ zur Not die Gruppe neu anlegt.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: UweH am 16 November 2015, 17:35:47
Auf Umwegen bin ich auch gerade zu dieser Erkenntnis gekommen... Ich musste meinen Bot aus der Gruppe entfernen, über den BotFather wieder gruppenfähig machen und wieder hinzufügen, wie Du geschrieben hast. Nun funktioniert es wieder.

Danke

Viele Grüße
Uwe
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: masterpete23 am 20 November 2015, 11:59:17
muss der auf enabled?

Und ich habe ihn angelegt und defined nun kommt
2015.11.20 12:19:13 3: TelegramBot_Define teleBot: called
2015.11.20 12:19:16 2: TelegramBot_DoUrlCommand teleBot: FAILED http access returned error :https://api.telegram.org/bot12222222:AASSSSSSSSSSSSSSSSSS/getMe: Select timeout/error: :
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 20 November 2015, 17:42:38
Moin

pollingTimeout auf z.B. 10 gesetzt?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 November 2015, 22:23:11
[
muss der auf enabled?

Und ich habe ihn angelegt und defined nun kommt
2015.11.20 12:19:13 3: TelegramBot_Define teleBot: called
2015.11.20 12:19:16 2: TelegramBot_DoUrlCommand teleBot: FAILED http access returned error :https://api.telegram.org/bot12222222:AASSSSSSSSSSSSSSSSSS/getMe: Select timeout/error: :

Wenn Du trotz polling attribut nicht weiterkommst, solltest Du mal versuchen den URL für telegramBot (mit getMe) direkt im Browser einzugeben, um zu verifizieren, dass die Daten korrekt sind.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: masterpete23 am 20 November 2015, 22:24:26
Hi,
habe es auf einer anderen pi und neuerem fhem mit der gleichen zeile zum laufen bekommen
danke
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 November 2015, 01:19:20
Ich glaube das habe ich nicht nochmal explizit gesagt: Mit einer BotID (also einem BotAuthToken von telegram) kann immer nur ein telegramBot laufen. Wenn mehrere gleichzeitig Abfragen machen gibt es Probleme. Die Abfragen kommen dann durcheinander.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoJota am 23 November 2015, 15:26:32
Hallo Johannes,

Seit ca. letzter Woche funktioniert bei mir das Erzeugen einer neuen Zeile mit \n nicht mehr. \n erscheint in der ankommenden Nachricht zwar nicht mehr, wird aber nur durch einen Leerschlag statt einen Zeilenumbruch ersetzt. Woran könnte das liegen?

Gruß JoJota
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: nhetzke am 24 November 2015, 14:46:25
Hallo,

ich versuche mich gerade die Einbindung von Telegram in FHEM. Auf der Komandozeile habe ich die Kommunikation bereits erfolgreich testen können. Nun bin ich bei der Einbindung in FHEM ins Stocken geraten.
Mein Problem:
Nach dem Download des Modules: "50_TelegramBot.pm", Konfiguration in der fhem.cfg "define TelegraBot TelegramBot 130306834:---------vws-Vc" und Neustart von FHEM erhalte ich folgende Fehlermeldung:
Undefined subroutine &main::HttpUtils_Close called at ./FHEM/50_TelegramBot.pm line 1468.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 November 2015, 22:49:29
Hallo Johannes,

Seit ca. letzter Woche funktioniert bei mir das Erzeugen einer neuen Zeile mit \n nicht mehr. \n erscheint in der ankommenden Nachricht zwar nicht mehr, wird aber nur durch einen Leerschlag statt einen Zeilenumbruch ersetzt. Woran könnte das liegen?

Gruß JoJota
Hallo Jojota,
sieht so aus, als ob da (leider mal wieder) eine Änderung auf der Telegram-Seite stattgefunden hat. Ich habe eine neue Version in github eingecheckt, bei der \n wieder funktionieren sollte...
Gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 November 2015, 22:59:47
Hallo,

ich versuche mich gerade die Einbindung von Telegram in FHEM. Auf der Komandozeile habe ich die Kommunikation bereits erfolgreich testen können. Nun bin ich bei der Einbindung in FHEM ins Stocken geraten.
Mein Problem:
Nach dem Download des Modules: "50_TelegramBot.pm", Konfiguration in der fhem.cfg "define TelegraBot TelegramBot 130306834:---------vws-Vc" und Neustart von FHEM erhalte ich folgende Fehlermeldung:
Undefined subroutine &main::HttpUtils_Close called at ./FHEM/50_TelegramBot.pm line 1468.
Ist Deine FHEM-Installation aktuell? Die Routine HTTPUtils_Close gibt es eigentlich schon viele Monate.
Die Github-Version musst Du auch nur herunterladen, wenn Du eine neuere Version verwenden willst, als die offizielle Distribution, die mit FHEM verteilt wird.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 25 November 2015, 09:36:46
Hallo,

ich hätte noch einen kleinen Verbesserungsvorschlag.

Es wäre super, wenn man mehrere Adressaten angeben könnte. Beispiel:

set TelegramBotDev message @user1,@user2 Nachricht

... ich weiß, dass man auch an Gruppen schicken kann. Das ist aber nicht immer sinnvoll.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: masterpete23 am 25 November 2015, 11:42:03
kurze Frage: ich bekomm den Bot nicht in eine Gruppe - hat wer einen howto link oder so für mich?
Danke
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoJota am 25 November 2015, 11:42:25
Hallo Jojota,
sieht so aus, als ob da (leider mal wieder) eine Änderung auf der Telegram-Seite stattgefunden hat. Ich habe eine neue Version in github eingecheckt, bei der \n wieder funktionieren sollte...
Gruss,
Johannes

Hallo Johannes,
vielen Dank für die - mal wieder - schnelle Hilfe!
Aus der FHEM Kommandozeile heraus funktioniert \n wieder richtig, allerdings tritt das Problem bei einem Aufruf aus der 99_myUtils.pm weiterhin auf.
Nach etwas probieren habe ich herausgefunden, dass alle \n vorher escaped werden müssen, um im Telegram Modul auch als \n anzukommen. Anstelle von \n funktioniert jetzt nur noch \\n innerhalb der 99_myUtils.pm.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoJota am 25 November 2015, 11:48:21
kurze Frage: ich bekomm den Bot nicht in eine Gruppe - hat wer einen howto link oder so für mich?
Danke
Den Chat mit dem Bot öffnen, oben auf das Bild bzw. den Namen des Bots klicken. Anschließend rechts oben auf die drei Punkte klicken und dann "Zur Gruppe hinzufügen".
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: masterpete23 am 25 November 2015, 12:08:26
Kann ich nicht eine Gruppe mit ihm und mir machen? muss da zwingend noch wer anders mit drin sein, also vorher wohl
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoJota am 25 November 2015, 12:48:24
Kann ich nicht eine Gruppe mit ihm und mir machen?

Doch, wenn du nur mit ihm einen neuen Chat beginnst. In der Telegram Suche @ und dann den Namen des Bots eingeben (z.b. @NameDesBots) und ihm dann eine Nachricht schreiben.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: nhetzke am 25 November 2015, 13:00:14
Ist Deine FHEM-Installation aktuell? Die Routine HTTPUtils_Close gibt es eigentlich schon viele Monate.
Die Github-Version musst Du auch nur herunterladen, wenn Du eine neuere Version verwenden willst, als die offizielle Distribution, die mit FHEM verteilt wird.

Gruss,
Johannes

Hallo Johannes,

ich habe nun nochmal die PM Datei aus dem Verzeichnis genommen und ein Update von FHEM gemacht, inkl. "/usr/bin/perl ./contrib/commandref_join.pl" auf der CMD. Nun bekomme ich keine Fehler mehr ausgegeben. Augenscheinlich wird auch das define nun ohne Fehler gesetzt.

Wenn ich nun aber mittels dem Beispiel "set TelegraBot  message @@<Benutzername>" versenden möchte, erhalte ich immer "FAILED peer not found".
Hast du eine Idee?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 25 November 2015, 13:06:58
Du musst zunächst das Attribut pollingTimeout setzen, damit das neue TelgramBot-Device mindestens einmal bei Telegram schauen geht, was für es da ist. Erst dann bekommt es die Kontakte mitgeteilt, die Du danach dann auch erst adressieren kannst (Du hast dann das Reading Contacts - so lange das nicht da ist, kannst Du jemanden, der da nicht drin steht, nicht adressieren).

Und vorher musst Du von dem User aus, der durch den Bot angeschrieben werden soll, eine Eröffnung an den Bot schreiben.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: nhetzke am 25 November 2015, 13:39:46
Du musst zunächst das Attribut pollingTimeout setzen, damit das neue TelgramBot-Device mindestens einmal bei Telegram schauen geht, was für ihn da ist. Erst dann bekommt er die Kontakte mitgeteilt, die Du danach dann auch erst adressieren kannst (Du hast dann das Reading Contacts - so lange das nicht da ist, kannst Du jemanden, der da drin steht, nicht adressieren).

Und vorher musst Du von dem User aus, der durch den Bot angeschrieben werden soll, eine Eröffnung an den Bot schreiben.

Hi,

danke für die Hilfe an alle. Hab nun noch pollingTimeout 0 gesetzt und dem Bot eine Nachricht geschrieben. Danach ging dann auch die Nachricht von FHEM -> Telegram.

Danke
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 25 November 2015, 16:47:22
Hi nhetzke, ich würde dir mal empfehlen dich durch folgenden Wiki-Eintrag zu lesen denn "pollingtimeout 0" sollte zu Problemen führen wenn ich mich nicht irre. - Bei pollingtimeout 0 funktioniert doch die Kommunikaton von Telegram zu Fhem nicht oder hab ich was falsch in Erinnerung. http://www.fhemwiki.de/wiki/TelegramBot#Hinweise_zum_Betrieb_mit_Fhem (http://www.fhemwiki.de/wiki/TelegramBot#Hinweise_zum_Betrieb_mit_Fhem)

Desweiteren wenn du im TelegramBot-Device bist kannst du unten rechts auch auf "Device specific help" klicken und erhältst dann weitere Infos zum Modul.

Hi,

danke für die Hilfe an alle. Hab nun noch pollingTimeout 0 gesetzt und dem Bot eine Nachricht geschrieben. Danach ging dann auch die Nachricht von FHEM -> Telegram.

Danke

Viel erfolg! :)

P.S. Die Möglichkeit mehrere Empfänger für eine Nachricht definieren zu können fände ich übrigens auch sehr cool!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 November 2015, 17:06:30
Hi nhetzke, ich würde dir mal empfehlen dich durch folgenden Wiki-Eintrag zu lesen denn "pollingtimeout 0" sollte zu Problemen führen wenn ich mich nicht irre. - Bei pollingtimeout 0 funktioniert doch die Kommunikaton von Telegram zu Fhem nicht oder hab ich was falsch in Erinnerung. http://www.fhemwiki.de/wiki/TelegramBot#Hinweise_zum_Betrieb_mit_Fhem (http://www.fhemwiki.de/wiki/TelegramBot#Hinweise_zum_Betrieb_mit_Fhem)

Desweiteren wenn du im TelegramBot-Device bist kannst du unten rechts auch auf "Device specific help" klicken und erhältst dann weitere Infos zum Modul.

Viel erfolg! :)

Absolut richtig, pollingtimeout 0 heisst es wird NICHT nach Änderungen gefragt und damit werden keine Nachrichten empfangen (Es kann nur gesendet werden).

Versuche hier im "telegrammstil"  ;) die generelle Vorgehensweise nochmals aufzulisten aus dem Kopf (sollte so eigentlich auch im wiki/doku stehen, vielleicht nicht als eine Liste):

- Über telegram vom eigenen account beim Botfather einen neuen Bot anmelden
- Diesen Bot beim Botfather so konfigurieren, dass er Nachrichten auch aus Gruppen lesen kann (Optional, wenn man das braucht/nutzen will)
- API Token gut speichern und nicht weitergeben!
- define mit dem API token in FHEM
- Prüfen ob der device in fhem seinen Bot-Namen in den Internals hat, dann ist sicher, dass Verbindung zu telegram und identität des Bots klappt
- Für das Empfangen von Nachrichten noch das Attribut pollingTimeout auf einen Wert grösser 0 setzen (20 oder 60 sind übliche Werte)
- Testmessage an den bot vom eigenen Account schicken
- Nach einiger Zeit sollte die Nachricht in den Readings angezeigt werden - wenn nicht reset auf dem telegrambot Device ausführen und nochmals etwas warten
- Für alle weiteren Benutzer ERST eine Nachricht an den Bot senden, erst dann kann von FHEM aus an die Benutzer gesendet werden (Benutzer werden in Contacts abegelegt und man kann dadruch sehen, wer dem Bot bekannt ist)
- Weitere Konfiguration nach eigenem Geschmack...

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 25 November 2015, 17:13:56
- Für das Empfangen von Nachrichten noch das Attribut pollingTimeout auf einen Wert grösser 0 setzen (20 oder 60 sind übliche Werte)

Nach meiner Erfahrung muss das pollingTimeout auf jeden Fall nach der Definition einmal auf größer 0 gesetzt werden, um überhaupt einmal erst Kontakt zu Telegram herzustellen und ein Update der Kontaktliste zu bekommen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 November 2015, 17:31:50
Nach meiner Erfahrung muss das pollingTimeout auf jeden Fall nach der Definition einmal auf größer 0 gesetzt werden, um überhaupt einmal erst Kontakt zu Telegram herzustellen und ein Update der Kontaktliste zu bekommen.

OK habs gerade getested,zumindest der Name des Bots (im Internal me) wird auch ohne Pollingtimeout gesetzt.
Aber Du hast auf jeden Fall Recht, dass die Kontaktliste nur über Message-Polling aufgefrischt wird, da es leider keine Abfrage von Kontakten über das API gibt.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 November 2015, 22:47:57
Habe gerade die Version 1.1 (Aktueller Stand github) ins SVN hochgeladen. Diese Version wird dann morgen übers update verteilt.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 26 November 2015, 06:55:44
Dankeschön!

Was hältst Du denn davon? : http://forum.fhem.de/index.php/topic,38328.msg364613.html#msg364613
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 26 November 2015, 08:19:37
Dankeschön!

Was hältst Du denn davon? : http://forum.fhem.de/index.php/topic,38328.msg364613.html#msg364613
Ich habe die Funktionalität mehrere empfänger mit einem msg (liste von kontakten) auf meine todo liste aufgenommen. Es erfordert aber etwas Umbau (mehrere rückgaben etc), da telegram selber diese möglichkeit nicht bietet und damit mehrere getrennte sendevorgänge notwendig sind.



Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 26 November 2015, 08:34:54
Danke, Daumen hoch!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Loredo am 27 November 2015, 21:57:37
Mehrere Empfänger können auch mittels des FHEM msg-Kommandos (http://forum.fhem.de/index.php/topic,39983.0.html) adressiert werden:


msg push @TelegramDevice:@@Empfaenger2,@TelegramDevice:@@Empfaenger2 |Titel| Dies ist die Nachricht.


Das ist aber nur "quick and dirty" aus Sicht von msg (es geht viel mehr, ausfürhliche commandref fehlt leider noch). Man kann mehrere Empfänger besser in ein msgContactPush-Attribut packen (gleiche Notation wie oben, kann man auch mit anderen Push-Diensten mischen) und dann macht man nur noch:

msg push @rgr_Residents |Titel| Dies ist die Nachricht.


In diesem Fall wäre es (sinnvollerweise) ein RESIDENTS Device, wo dann alle Kontakte der Bewohner hinterlegt sind, wenn man alle zusammen anschreiben will.


Es geht auch für jeden Bewohner ein ROOMMATE Device zu haben und dort jeweils ein msgContactPush Attribut nur mit den Empfängerdaten für diesen Bewohner anzulegen und dann eben die Bewohner einzeln oder zusammen zu adressieren:


msg push @Bewohner1,Bewohner2,Bewohner3 |Titel| Dies ist die Nachricht.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 28 November 2015, 10:42:07
Hallo Loredo,

danke für Deine Alternative!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: ulli am 03 Dezember 2015, 18:19:08
Hi,

Ich würde gerne Kommandos über Telegram aus der Ferne ausführen. Dafür empfiehlt sich die schon vorhandene favorites Funktion um den lästigen tipp aufwand zu reduzieren.
Super wäre es aber wenn man Favoriten anlegen kann und diese aber dann über eine alias ausführen könnte,  anstatt  über die Index Nummer.

Man könnte z.b. über ein Attribute favorites definieren
Licht1:set light1 on; Licht2:set light2 on

Die sich dann über ein einfaches Kommando per telegram wie folgt ausführen lassen?
/Licht1

Was haltet ihr davon?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 Dezember 2015, 20:15:23
OK, nach dem 2.Lesen habe ich es verstanden, Du möchtest den alias (vor dem Doppelpunkt) für jeden Befehl einzeln definieren um damit unterschiedliche Kurzformen zu ermöglichen.

Generell kein Problem, den Vorschlag finde ich gut, ich nehme das gerne mal auf die todoliste.
Ich würde es vermutlich zusätzlich zu den bisherigen Favoriten aufnehmen, damit ich kompatibel bleiben kann
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: ulli am 03 Dezember 2015, 21:12:14
Sorry für die schlechte Formulierung, du hast es aber richtig verstanden  :)
Evtl wäre es auch noch praktisch wenn man den Befehl über ein voran gestelltes Zeichen. / erkennt?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Marcel2209 am 04 Dezember 2015, 18:36:48
Hallo,

ich hab versuche mich grad daran Telegram auf FHEM zum laufen zu bekommen, leider ohne Erfolg.

Nachdem ich Telegram mit define hinzugefügt habe bekomme ich bei den eadings folgendes zu sehen:
Readings:
     2015-12-04 18:29:52   PollingErrCount 23
     2015-12-04 18:29:52   PollingLastError NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443:  SSL Version SSLv2 not supported error:00000000:lib(0):func(0):reason(0)

Wenn ich manuell über den Browser den Bot abfrage funktioniert es.

Jemand eine Idee?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 Dezember 2015, 18:57:05
Hallo,

ich hab versuche mich grad daran Telegram auf FHEM zum laufen zu bekommen, leider ohne Erfolg.

Nachdem ich Telegram mit define hinzugefügt habe bekomme ich bei den eadings folgendes zu sehen:
Readings:
     2015-12-04 18:29:52   PollingErrCount 23
     2015-12-04 18:29:52   PollingLastError NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443:  SSL Version SSLv2 not supported error:00000000:lib(0):func(0):reason(0)

Wenn ich manuell über den Browser den Bot abfrage funktioniert es.

Jemand eine Idee?

Möglicherweise hilft Dir die Information in folgendem Thread weiter:
http://forum.fhem.de/index.php/topic,33819.0.html (http://forum.fhem.de/index.php/topic,33819.0.html)

Ansonsten wäre es wichtig etwas über Deine Infrastruktur (Worauf läuft FHEM, was für eine Version für Betriebssystem und perl etc).

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Marcel2209 am 04 Dezember 2015, 19:09:40
Möglicherweise hilft Dir die Information in folgendem Thread weiter:
http://forum.fhem.de/index.php/topic,33819.0.html (http://forum.fhem.de/index.php/topic,33819.0.html)

Ansonsten wäre es wichtig etwas über Deine Infrastruktur (Worauf läuft FHEM, was für eine Version für Betriebssystem und perl etc).

Johannes

Das scheint in der Tat mein Problem zu sein, FHEM läuft bei mir auf einem Raspberry Pi, wie kann ich den Fehler darauf beheben? Die Lösung aus dem Thread klappt bei mir nicht.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 Dezember 2015, 19:36:53
Das scheint in der Tat mein Problem zu sein, FHEM läuft bei mir auf einem Raspberry Pi, wie kann ich den Fehler darauf beheben? Die Lösung aus dem Thread klappt bei mir nicht.

Welche Lösung genau hast Du genau probiert?

Kannst Du überhaupt auf dem PI https-Urls aufrufen und geht es auch aus FHEM heraus?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Marcel2209 am 05 Dezember 2015, 14:46:58
Ich habe versucht diesen Befehl abzusetzen das klappt aber auf dem Raspberry nicht.
sudo apt-get --reinstall libio-socket-ssl-perl

Wie kann ich den aus FHEM heraus versuchen eine https Url aufzurufen?
Ich habe am Raspberry keinen Monitor dran habe also nur Zugriff über Putty und die Weboberfläche von FHEM.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 05 Dezember 2015, 22:58:03
Das Kommando muss eigentlich wohl
sudo apt-get install --reinstall libio-socket-ssl-perlheissen.

Die Syntax der Kommandos lässt sich leicht über man apt-get nachschauen. Nur zur Info, es geht hier wohl eher nicht um ein Problem mit telegram, sondern eher mit der Umgebung in der FHEM läuft.

https-Verbindungen testen kannst Du auf der Kommandozeile mit wget



Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Marcel2209 am 05 Dezember 2015, 23:15:10
Das Kommando muss eigentlich wohl
sudo apt-get install --reinstall libio-socket-ssl-perlheissen.

Die Syntax der Kommandos lässt sich leicht über man apt-get nachschauen. Nur zur Info, es geht hier wohl eher nicht um ein Problem mit telegram, sondern eher mit der Umgebung in der FHEM läuft.

https-Verbindungen testen kannst Du auf der Kommandozeile mit wget

Nach sudo apt-get install --reinstall libio-socket-ssl-perl hat es geklappt, Danke dir.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: dermaverick am 08 Dezember 2015, 12:59:45
Hallo Zusammen

Ich bin blutiger Anfänger, habe aber beide Module am "laufen", so dass ich Nachrichten senden und auch empfangen kann. Nun aber zu meinem Problem.
Ich hab schon die Seiten vor und zurück gelesen, aber finde einfach nicht den richtigen Ansatz um bei einem bestimmten empfangenen Text einen entsprechenden Befehl auszufüren.
Hab "cmdKeyword" definiert (/fhem) und auch "favorites" mit "wohnzimmer" definiert.
Wie aber kann ich aus diesem gesendeten Befehl/Nachricht daraus einen entsprechenden Befehl ausführen, wie als einfaches Beispiel dann eine Nachricht senden (als Bsp "set <telegrambot> message <irgendeine Nachricht>").
Wie müsste dies dann in der fhem.cfg geschrieben werden?

Wäre für jede Hilfe dankbar.

mfg
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 08 Dezember 2015, 14:50:36
Du musst ein entsprechendes Notify oder DOIF definieren, welches durch die empfangene Nachricht getriggert wird.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: dermaverick am 08 Dezember 2015, 14:54:11
Du musst ein entsprechendes Notify oder DOIF definieren, welches durch die empfangene Nachricht getriggert wird.

Jo sowas hatte ich schon gelesen, aber es geht sich halt um ein Beispiel wie so ein Programm Code aussehen würde.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 08 Dezember 2015, 15:04:08
Du könntest es zunächst mal selbst recherchieren und probieren, wie man ein entsprechendes Notify oder DOIF definiert. Wenn Du dann nicht weiterkommst, kannst Du gerne hier Deine Versuche präsentieren. Ich bin mir sicher, dass dann jemand Deinen Code optimiert.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: dermaverick am 08 Dezember 2015, 15:39:19
define teleBot TelegramBot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
attr teleBot cmdKeyword /fhem
attr teleBot defaultPeer xxxxxx
attr teleBot favorites wohnzimmer
attr teleBot pollingTimeout 10
attr teleBot room Wohnzimmer
attr teleBot verbose 5
define teleBot_DI DOIF ([teleBot:msgText] eq "hello") ({SendWeather()})

Also ich hab es jetzt mal so umgesetzt, funktioniert auch soweit (SendWeather hab ich mir hier im Forum abgeschaut und in 99_myUtils eingetragen).
Aber hier lese ich ja jetzt nur den ankommenden Text aus und reagiere entsprechend. Aber es gibt doch die Möglichkeit mit diesen definierten commands.
Also wenn ich zb "/fhem wohnzimmer" senden würde erkennt der Bot dass es ein Kommando ist und reagiert entsprechend.
Wie müsste ich das dann entsprechend umsetzen?
Danke für den Tip mit dem DOIF. Einen Schritt weiter bin ich nun schonmal :)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 08 Dezember 2015, 16:00:27
Hallo Zusammen

Ich bin blutiger Anfänger, habe aber beide Module am "laufen", so dass ich Nachrichten senden und auch empfangen kann. Nun aber zu meinem Problem.
Ich hab schon die Seiten vor und zurück gelesen, aber finde einfach nicht den richtigen Ansatz um bei einem bestimmten empfangenen Text einen entsprechenden Befehl auszufüren.
Hab "cmdKeyword" definiert (/fhem) und auch "favorites" mit "wohnzimmer" definiert.
Wie aber kann ich aus diesem gesendeten Befehl/Nachricht daraus einen entsprechenden Befehl ausführen, wie als einfaches Beispiel dann eine Nachricht senden (als Bsp "set <telegrambot> message <irgendeine Nachricht>").
Wie müsste dies dann in der fhem.cfg geschrieben werden?

Wäre für jede Hilfe dankbar.

mfg

Es hat ja schon einige Antworten und Hinweise gegeben, trotzdem hier noch eine kurze Zusammenstellung. Du hast heute generell 2 Möglichkeiten so etwas innerhalb von telegramBot anzugehen:
 
1) Favoriten --> Definieren eines Kommandos, dass eine Reihe von Favoriten-Kommandos auf FHEM ausführen kann. Also Attribute cmdFavorites und favorites. Dann kannst Du mit z.B. /favorite 2 ein entpsrechend definiertes Kommando auslösen

2) cmdKeyword -> Hier kannst Du generell jedes beliebige Kommando auslösen als z.B. /command list type=CUL und damit die Möglichkeiten von FHEM nutzen um Abkürzungen zu machen (also notify, DOIF oder ähnliches)

Die von Dir oben angewendete Möglichkeit geht zwar auch finde ich persönlich aber eher umständlicher.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: dermaverick am 08 Dezember 2015, 22:01:03
Vielen Dank für die Antworten.
So langsam hab ich glaub ich den Durchblick wie ich alles am Besten zusammenbau.

 Danke Danke :)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 08 Dezember 2015, 23:56:19
Ich habe mal wieder eine neue Version in git hochgeladen:

Damit ist es möglich mehrere Empfänger beim senden von Text und Bildern anzugeben
(siehe Vorschlag hier: http://forum.fhem.de/index.php/topic,38328.msg364613.html#msg364613 (http://forum.fhem.de/index.php/topic,38328.msg364613.html#msg364613)
Diese werden einfach durch Leerzeichen (!) getrennt hintereinander angegeben. z.B so:
set aTelegramBotDevice message @@someusername @1234567 a message to be sent to multiple receipients
Ausserdem habe ich die alten Kommandos messageTo sendImageTo sendPhotoTo jetzt endgültig entfernt

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 09 Dezember 2015, 05:53:08
Super, vielen Dank!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: masterpete23 am 09 Dezember 2015, 08:25:35
Ich habe mal wieder eine neue Version in git hochgeladen:

Damit ist es möglich mehrere Empfänger beim senden von Text und Bildern anzugeben
(siehe Vorschlag hier: http://forum.fhem.de/index.php/topic,38328.msg364613.html#msg364613 (http://forum.fhem.de/index.php/topic,38328.msg364613.html#msg364613)
Diese werden einfach durch Leerzeichen (!) getrennt hintereinander angegeben. z.B so:
set aTelegramBotDevice message @@someusername @1234567 a message to be sent to multiple receipients
Ausserdem habe ich die alten Kommandos messageTo sendImageTo sendPhotoTo jetzt endgültig entfernt
Danke - wie ist der einfachste Weg die aus dem git zu bekommen? geht das direkt per fhem commandline?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: masterpete23 am 09 Dezember 2015, 08:29:43
Und wenn ich ein cmdFavorites definiert habe und das in einer Gruppe schreibe kommt die Antwort per PM.
Geht das auch das es in die Gruppe geht?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 09 Dezember 2015, 09:46:07
Danke - wie ist der einfachste Weg die aus dem git zu bekommen? geht das direkt per fhem commandline?

Es mag vielleicht einen Umweg über FHEM geben, aber der direkte Weg führt über das Betriebssystem, insbesondere, da nach Einfügen der neuen Version immer ein Neustart von FHEM angeraten ist (ähnluch wie beim offiziellen Update). Die neue Version wird aber auch bald als offizieller Update bereitgestellt, also kannst Du auch gerne um Risiken zu vermeiden.

Johannes

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 09 Dezember 2015, 09:53:51
Und wenn ich ein cmdFavorites definiert habe und das in einer Gruppe schreibe kommt die Antwort per PM.
Geht das auch das es in die Gruppe geht?

Das wäre vermutlich möglich, aber ich versuche das Szenario zu verstehen bevor ich da etwas einbaue.
Bei mir werden die Favoriten benutzt, um etwas zu steuern/schalten/abzufragen. Das Ergebnis davon möchte ich direkt haben, aber die anderen Mitglieder der Gruppe (bei mir die Familie) sind normalerweise nicht interessiert, wen ich gerade die Temperatur hochgestellt habe oder ein Licht ausschalte. Gerade wenn ich nur die Liste der Favoriten als Keyboard erhalte, so möchte ich das eigentlich nur eprsönlich als Sender der Anfrage haben, oder?

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: masterpete23 am 09 Dezember 2015, 11:57:56
ja ok das kann ich verstehen.
also bekommt der der die Anfrage schickt nen privchat mit dem bot und den befehlen. Finde es halt unübersichtlich, dass man dann das chat fenster tauschen möchte.
Aber gut ich verstehe deine gründe - dann lassen wir das erstmal und ich teste.
Good Job!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 09 Dezember 2015, 12:12:57
Danke!

Ja das mit dem Wechsel in den anderen Thread ist dann unhandlich, ich schaue mal ob man das lösen könnte.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: ulli am 09 Dezember 2015, 18:13:46
Kann man irgendwie blockieren das neue Benutzer hinzugefügt und davon Nachrichten akzeptiert werden?
Ich bekomme manchmal Nachrichten von mysteriösen Kontakten und habe Angst das diese Kommandos ausführen  können. ..
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoeALLb am 09 Dezember 2015, 18:24:43
Es mag vielleicht einen Umweg über FHEM geben, aber der direkte Weg führt über das Betriebssystem, insbesondere, da nach Einfügen der neuen Version immer ein Neustart von FHEM angeraten ist (ähnluch wie beim offiziellen Update). Die neue Version wird aber auch bald als offizieller Update bereitgestellt, also kannst Du auch gerne um Risiken zu vermeiden.

ein
reload 50_TelegramBot sollte eigentlich ausreichen...
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 09 Dezember 2015, 21:00:47
ein
reload 50_TelegramBot sollte eigentlich ausreichen...

Leider nicht, aufgrund der langlaufenden longpoll-Requests, kommt es dabei zu komischen Effekten und man hat ständig 2 parallele http-requests. Wenn reload, dann bitte definitiv auch einen reset durchführen, besser ist restart!

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: masterpete23 am 17 Dezember 2015, 15:44:27
funktionieren eigentlich sprachnachrichten ?
senden und empfangen und abspielen?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 17 Dezember 2015, 17:44:25
funktionieren eigentlich sprachnachrichten ?
senden und empfangen und abspielen?

Nicht offiziell, aber der Versand war früher auch möglich, wenn man es einfach über sendImage oder image die Sounddatei versendet hat, allerdings unterstützt telegram nur ogg codiert mit OPUS laut API.

Empfang geht bisher nicht.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: rtv am 17 Dezember 2015, 18:46:31
Wie kann ich mir denn einen meiner SVG-Plots zusenden lassen?
Ich nehme an, die Grafik müsste erst gerendert, in ein Bild konvertiert und dann verschickt werden?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 18 Dezember 2015, 00:00:55
Genau: Wie das rendern geht, da bin ich momentan überfragt. Das Versenden von Bildern geht davon aus, dass das Bild als Datei auf dem FHEM-Server liegt. ich vermute die Datei liesse sich mit gnuplot erzeugen, allerdings habe ich mir das selber nicht angeschaut. Problem ist, dass Telegram keine SVG-Dateien akzeptiert, also muss der plot als "richtiges" Bild erzeugt werden:

Use one of .jpg, .jpeg, .gif, .png, .tif or .bmp
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 18 Dezember 2015, 21:18:58
Hallo

Können auch Emojis versendet werden ?

Gruss Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 18 Dezember 2015, 22:00:22
Ja von Telegram werden die entsprechenden unicode emojis unterstützt. Diese sollten dann auch auf verschiedenen Plattformen gehen (und werden auch im fhemweb angezeigt). Erweiterte emojis die zum Teil in telegram angeboten werden können nicht dargestellt werden.

Für Beispiele siehe http://apps.timwhitlock.info/emoji/tables/unicode (http://apps.timwhitlock.info/emoji/tables/unicode) --> native Spalte

Leider kann man den Code hier nicht posten, da das Forum mit den erweiterten unicode-Zeichen nicht klar kommt.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 19 Dezember 2015, 02:21:19
Kann man irgendwie blockieren das neue Benutzer hinzugefügt und davon Nachrichten akzeptiert werden?
Ich bekomme manchmal Nachrichten von mysteriösen Kontakten und habe Angst das diese Kommandos ausführen  können. ..

Sorry hatte Deine Nachricht übersehen.
Nein das TelegramBot-API bietet leider momentan keine Möglichkeit die Benutzer, die dem Bot Nachrichten schicken können zu beschränken. Der Mechanismus über die BenutzerIDs den Zugriff auf Kommandos zu beschränken der im TelegramBot-Modul steckt halte ich aber für relativ sicher.

Trotzdem habe ich das mal auf die Todoliste genommen, wenn man das einschaltet werden keine neuen Kontakte hinzugefügt und auch keine Nachrichten ausgewertet/angezeigt
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 19 Dezember 2015, 12:54:34
Hallo viegener

Wenn ich die emojis über die Commandozeile versende funktionieren diese.

Wie funktioniert dies aber über das Backend z.B. notify ?
Beispiele:
define Notify_TestSchalter_On notify TestSchalter:on set teleBot message @Tester GRINNING FACE WITH SMILING EYES U+1F601
define Notify_TestSchalter_On notify TestSchalter:on set teleBot message @Tester GRINNING FACE WITH SMILING EYES \xF0\x9F\x98\x81

Gruss Peter

Ja von Telegram werden die entsprechenden unicode emojis unterstützt. Diese sollten dann auch auf verschiedenen Plattformen gehen (und werden auch im fhemweb angezeigt). Erweiterte emojis die zum Teil in telegram angeboten werden können nicht dargestellt werden.

Für Beispiele siehe http://apps.timwhitlock.info/emoji/tables/unicode (http://apps.timwhitlock.info/emoji/tables/unicode) --> native Spalte

Leider kann man den Code hier nicht posten, da das Forum mit den erweiterten unicode-Zeichen nicht klar kommt.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 19 Dezember 2015, 13:42:05
Hallo viegener

Wenn ich die emojis über die Commandozeile versende funktionieren diese.

Wie funktioniert dies aber über das Backend z.B. notify ?
Beispiele:
define Notify_TestSchalter_On notify TestSchalter:on set teleBot message @Tester GRINNING FACE WITH SMILING EYES U+1F601
define Notify_TestSchalter_On notify TestSchalter:on set teleBot message @Tester GRINNING FACE WITH SMILING EYES \xF0\x9F\x98\x81

Gruss Peter

Ich muss gestehen, dass ich es bisher auch nur aus dem Code des Moduls und über die Kommandozeile gemacht habe, also muss ich wohl da selber rumprobieren.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 19 Dezember 2015, 14:25:49
Hallo zusammen
Anfrage von rtv betreffend der Übertragung von Bildern.

Ich habe schon viel dazu gelesen. In der Praxis habe ich das aber bisher noch nicht probiert (Zeit/Unlust).
Bisher habe ich folgendes dazu gefunden:

Zitat
http://forum.fhem.de/index.php/topic,33608.msg260221/topicseen.html#msg260221
Zitat
http://forum.fhem.de/index.php/topic,22520.30.html

Gruss Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 19 Dezember 2015, 14:32:38
An PeterS

ich habe es heute zum ersten mal probiert Emoji zu verschicken.
Wenn man auf der von Johannes angegebenen URL das entsprechende NATIVE Emoji mit der Maus kopiert,
kann man das ohne Probleme in der Web-Oberfläche von FHEM abschicken und auch in die CFG einfügen.

Ich habe das Notify für Restart von FHEM einfach um das kopierte Icon ergänzt.

# Nach Neustart Meldung via Telegram ausgeben
define notify_fhem_reload notify global:INITIALIZED set fhemBot msg FHEM wurde neu gestartet ⚠

wird nach Neustart an defaultPeer ausgegeben.

Wie man sieht kann man das Emoji auch hier einfügen!?

Gruss Gerd

PS: Johannes, schreib doch die URL zu den Emojis mit in die Hilfe :=)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 19 Dezember 2015, 15:10:50
Hallo Gerd

Danke für die Info :-)

Mein Test hat nun funktioniert. Einfach nur das Icon direkt in die Message reinkopieren (kein UTF-8 oder unicode) und sie wird korrekt verschickt

Gruss Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 19 Dezember 2015, 16:45:17
Wie man sieht kann man das Emoji auch hier einfügen!?

Gruss Gerd

PS: Johannes, schreib doch die URL zu den Emojis mit in die Hilfe :=)

Danke fürs Ausprobieren und gute Idee, ich habe den URL ins fhemwiki eingefügt.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 19 Dezember 2015, 16:54:16
Kann man irgendwie blockieren das neue Benutzer hinzugefügt und davon Nachrichten akzeptiert werden?
Ich bekomme manchmal Nachrichten von mysteriösen Kontakten und habe Angst das diese Kommandos ausführen  können. ..

@ulli: Ich habe eine neue Version (bisher nur in github) eingestellt, die das hinzufügen neuer Kontakte (und das Empfangen von Nachrichten unbekannter Kontakte) unterbindet. Dafür gibt es ein neues Attribut: allowUnknownContacts
Vielleicht hilft das in Deinem Fall?

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 19 Dezember 2015, 20:00:51
Hallo

Wie kann die Message Routine in Perl genutzt werden ?
Bei Verwndung in Perl wird der Empfänger @Tester nicht gefunden ?

define Notify_TestSchalter_On notify TestSchalter:on {fhem("set teleBot message @Tester Perl-Test-String")}

Gruss Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 19 Dezember 2015, 20:17:57
Hallo

Wie kann die Message Routine in Perl genutzt werden ?
Bei Verwndung in Perl wird der Empfänger @Tester nicht gefunden ?

define Notify_TestSchalter_On notify TestSchalter:on {fhem("set teleBot message @Tester Perl-Test-String")}

Gruss Peter

Das @ hat in perl auch innerhalb von Strings eine Bedeutung (Arrayvariablen). Also muss es am besten in einfach Anführungszeichen gesetzt werden. Das sollte funktionieren:

define Notify_TestSchalter_On notify TestSchalter:on {fhem('set teleBot message @Tester Perl-Test-String')}oder
define Notify_TestSchalter_On notify TestSchalter:on {fhem("set teleBot message ".'@Tester'."Perl-Test-String")}
Titel: Per Telegram Bild einer IPCam versenden
Beitrag von: e3xtreme am 20 Dezember 2015, 00:01:35
Ich würde gerne mit dem Drücken meiner Klingel ein Bild von meiner IPCAM direkt per TelegramBot verschicken, muss ich da extra mit der get image routine vom IPCAM modul arbeiten oder gibt es da eine on-the-fly Möglichkeit?

Titel: Antw:Per Telegram Bild einer IPCam versenden
Beitrag von: viegener am 20 Dezember 2015, 01:35:24
Ich würde gerne mit dem Drücken meiner Klingel ein Bild von meiner IPCAM direkt per TelegramBot verschicken, muss ich da extra mit der get image routine vom IPCAM modul arbeiten oder gibt es da eine on-the-fly Möglichkeit?

Das Bild muss als lokale Datei vorliegen, insofern benötigst Du wohl die image routine.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: e3xtreme am 20 Dezember 2015, 02:15:59
Also in der Richtung

set mein_TelegramBot sendimage {"get Ipcam Image 1 10"}
wird keinesfalls klappen?
Schaff es nicht das Bild abzuspeichern und dann gleich abzurufen, das ist ihm so schnell hintereinander scheinbar zu viel...

 ???
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: det. am 20 Dezember 2015, 09:09:13
Ich hatte das Anfangs in einem gemeinsamen notify mit dem Ergebnis, das Bild vom vorherigen Klingeln gesendet zu bekommen. Erzeuge jetzt als Antwort auf die Klingelsignalerkennung das Bild und ein zweites notify auf das Speichern der CAM sendet dann das aktuelle Bild.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 Dezember 2015, 11:44:57
Also in der Richtung

set mein_TelegramBot sendimage {"get Ipcam Image 1 10"}
wird keinesfalls klappen?
Schaff es nicht das Bild abzuspeichern und dann gleich abzurufen, das ist ihm so schnell hintereinander scheinbar zu viel...

 ???

Im Prinzip kann es als eine Befehlsfolge funktionieren, wenn die Zeit zu, abspeichern des bildes konstant ist.

Also folgende schritte
- abholen des bildes und speichern des dateinamens
- entweder feste wartezeit oder schleife bis datei existiert und dann kurz warten
- set bot sendImage <dateiname>

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 20 Dezember 2015, 14:35:14
Hallo

Das Modul logt nur Fehlermeldung, richtig ?
Ein Sende-Eintrag in log muss manuell via {Log 3, "teleBot message ..."} erzeugt werden, oder gibt es ein Attribut ?

Gruss Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 Dezember 2015, 14:45:59
Ja und ich habe die Infos zu gesendeten Messages als Internals abgelegt, damit kann man da leider auch kein notify dranhängen.
Wenn das anderen auch relevant erscheint, könnte man daraus Readings machen oder ein zusätzliches Reading bei gesendeten Nachrichten einführen?

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 20 Dezember 2015, 15:20:19
Hallo

Internals kann mW. leider nicht direkt auslesen. Als readings könnte man es direkt mit {Log 3,ReadingsVal("teleBot","sentMsgText",0)} im Log posten.
Cool wäre auch ein optinales Attribut, welches, wenn gesetzt, direkt die messages im Log einträgt.

Eine Nachricht an mehrere Empfänger zu senden funktioniert bei mir noch nicht ?
Ich habe die Empfänger durch Space getrennt (set teleBot message @Tester1 @Tester2 Multi-Test).

Gibt es dabei noch was zu beachten ?

Gruss Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 Dezember 2015, 16:30:52
Hallo

Internals kann mW. leider nicht direkt auslesen. Als readings könnte man es direkt mit {Log 3,ReadingsVal("teleBot","sentMsgText",0)} im Log posten.
Cool wäre auch ein optinales Attribut, welches, wenn gesetzt, direkt die messages im Log einträgt.

Eine Nachricht an mehrere Empfänger zu senden funktioniert bei mir noch nicht ?
Ich habe die Empfänger durch Space getrennt (set teleBot message @Tester1 @Tester2 Multi-Test).

Gibt es dabei noch was zu beachten ?

Gruss Peter

Doch internals kann man mit InternalVal auslesen, aber man kann nicht auf eine veränderung reagieren.

Eigentlich sollte der versand an mehrere empfänger so gehen, was ist das ergbnis und was sagt das log?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag 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

Bei deinem Beispiel nutzt du 2@ ?!
set aTelegramBotDevice message @@someusername @1234567 a message to be sent to multiple receipients
   
Gruss Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 Dezember 2015, 20:38:56
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...
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag 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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 Dezember 2015, 21:06:33
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 #)

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 Dezember 2015, 22:24:02
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

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 21 Dezember 2015, 11:05:57
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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Dezember 2015, 12:57:39
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).






Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Dezember 2015, 13:01:48
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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 21 Dezember 2015, 15:27:26
Hallo viegener

Stimmt, hatte ich scheinbar überlesen  ::)

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

Gruss Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag 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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 Dezember 2015, 12:03:24
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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 Dezember 2015, 12:17:55
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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag 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.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 Dezember 2015, 13:02:54
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  ;)

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 Dezember 2015, 00:12:02
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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: arthur_dent_2015 am 24 Dezember 2015, 15:51:19
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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 Dezember 2015, 16:04:28
Hallo Arthur,
da ich das 70_Telegram_modul nicht weiterentwickle würde ich empfehlen trotzdem auf mein 50_TelegramBot-Modul zu wechseln.

Ich würde Dich auch unterstützen rauszufinden warum es nicht geht, normalerweise ist die Einrichtung des Bots sogar einfacher als telegram-cli.

Zu Deinem Problem:

Hast Du cmdKeyword gesetzt (auf welchen Wert)?
cmdalias macht eigentlich keinen Sinn, wenn Du cmdKeyword richtig gesetzt hast.



Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: arthur_dent_2015 am 24 Dezember 2015, 18:13:40
Beim senden mit dem Bot bekomme ich die Fehlermeldung Callback returned error:[Error]: Forbidden: can't write to chat with deleted user:

Telegram-cli einzurichten ist so schwer nun auch nicht. cmdKeyword steht auf dofhem. Gesendeter command sieht also so aus: dofhem set schalter1 on
Ergebnis:   lastmessage [18:03] xxxxxx xxxxxxxxxxx >>> dofhem set schalter1 on

schalter1 steht auf verbose 5 und sollte jetzt wenigstens einen Eintrag im Log haben, besser noch auf on stehen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Dezember 2015, 00:48:25
Die Bot-Medlung sagt, dass Telegram (nicht das Modul) den übergebenen Benutzer für gelöscht hält. Kann es sein, dass hier ein altes Account verwendet wird, wie gibst Du den Benutzer an (Id oder name) --> Problem Namen sind nicht eindeutig --> siehe Liste der kontakte unter Contacts

Vielleicht sicherstellen, dass der richtige Kontakt verwendet wird im Zweifel nochmals set replaceContacts verwenden.

Bezüglich 70_Telegram - setze mal Deinen Telegram device auf Verbose 5, mit dem Logfile sollte sich dann feststellen lassen, was nicht geht.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: arthur_dent_2015 am 25 Dezember 2015, 13:10:47
Kann man die beiden Module nicht zusammenführen und unabhängig von der Schnittstelle machen? Über attr interface BOT oder CLI setzen, das wäre richtig cool..
Beide accounts habe ich am 23.12. eingerichtet. Die Nachrichten an den Bot werden auch als gelesen gekennzeichnet.

Hier der Auszug aus meinem Log:
2015.12.25 12:47:40 5: Telegram_Set myTelegram: called
2015.12.25 12:47:40 5: Telegram_Set myTelegram: Processing Telegram_Set( ? )
2015.12.25 12:47:40 5: Telegram_Get myTelegram: called
2015.12.25 12:47:40 5: Telegram_Get myTelegram: Processing Telegram_Get( ? )
2015.12.25 12:49:02 5: Telegram_Read myTelegram: called with noIo defined:
2015.12.25 12:49:02 5: Telegram_Read myTelegram: New read :ANSWER 64
User Arthur Dent online (was online [2015/12/25 12:54:01])

:
2015.12.25 12:49:02 5: Telegram_Read myTelegram: Full buffer :ANSWER 64
User Arthur Dent online (was online [2015/12/25 12:54:01])

:
2015.12.25 12:49:02 5: Telegram_Read myTelegram: parsed a message :User Arthur Dent online (was online [2015/12/25 12:54:01]):
2015.12.25 12:49:11 5: Telegram_Read myTelegram: called with noIo defined:
2015.12.25 12:49:11 5: Telegram_Read myTelegram: New read :ANSWER 32
User Arthur Dent is typing

:
2015.12.25 12:49:11 5: Telegram_Read myTelegram: Full buffer :ANSWER 32
User Arthur Dent is typing

:
2015.12.25 12:49:11 5: Telegram_Read myTelegram: parsed a message :User Arthur Dent is typing:
2015.12.25 12:49:17 5: Telegram_Read myTelegram: called with noIo defined:
2015.12.25 12:49:17 5: Telegram_Read myTelegram: New read :ANSWER 32
User Arthur Dent is typing

:
2015.12.25 12:49:17 5: Telegram_Read myTelegram: Full buffer :ANSWER 32
User Arthur Dent is typing

:
2015.12.25 12:49:17 5: Telegram_Read myTelegram: parsed a message :User Arthur Dent is typing:
2015.12.25 12:49:21 5: Telegram_Read myTelegram: called with noIo defined:
2015.12.25 12:49:21 5: Telegram_Read myTelegram: New read :ANSWER 54
[12:49]  Arthur Dent >>> dofhem set Schalter1 on

:
2015.12.25 12:49:21 5: Telegram_Read myTelegram: Full buffer :ANSWER 54
[12:49]  Arthur Dent >>> dofhem set Schalter1 on

:
2015.12.25 12:49:21 5: Telegram_Read myTelegram: parsed a message :[12:49]  Arthur Dent >>> dofhem set Schalter1 on:

2015.12.25 12:49:50 5: Telegram_Read myTelegram: called with noIo defined:
2015.12.25 12:49:50 5: Telegram_Read myTelegram: New read :ANSWER 65
User Arthur Dent offline (was online [2015/12/25 12:49:29])

:
2015.12.25 12:49:50 5: Telegram_Read myTelegram: Full buffer :ANSWER 65
User Arthur Dent offline (was online [2015/12/25 12:49:29])

:
2015.12.25 12:49:50 5: Telegram_Read myTelegram: parsed a message :User Arthur Dent offline (was online [2015/12/25 12:49:29]):

der list vom Schalter1
Internals:
   00         f0
   CFGFN      ./FHEM/fhem_IT.cfg
   DEF        FFF00FFF0F FF F0
   IODev      CUL0
   NAME       Schalter1
   NR         181
   STATE      off
   STILLDONETIME 0
   TYPE       IT
   XMIT       fff00fff0f
   XMITdimdown 00
   XMITdimup  00
   XMITon     ff
   Code:
     1          fff00fff0f
   Readings:
     2015-12-02 13:20:21   protocol        V1
     2015-12-25 05:00:09   state           off
Attributes:
   IODev      CUL0
   event-on-change-reading state
   model      itswitch
   room       IT
   verbose    5

und vom myTelegram:

Internals:
   DEF        4711
   DeviceName localhost:4711
   FD         59
   NAME       myTelegram
   NR         2689
   PARTIAL
   Port       4711
   Protocol   telnet
   REMAINING
   STATE      opened
   TYPE       Telegram
   lastmessage User Arthur Dent offline (was online [2015/12/25 12:51:05])
   Readings:
     2015-12-25 06:07:49   state           opened
Attributes:
   cmdKeyword dofhem
   defaultPeer Arthur_Dent
   event-on-update-reading lastmessage
   room       Telegram
   verbose    5
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Dezember 2015, 18:21:36
Kann man die beiden Module nicht zusammenführen und unabhängig von der Schnittstelle machen? Über attr interface BOT oder CLI setzen, das wäre richtig cool..
Beide accounts habe ich am 23.12. eingerichtet. Die Nachrichten an den Bot werden auch als gelesen gekennzeichnet.




Sorry aber das mit dem Zusammenführen ist so nicht wirklich sinnvoll, momentan sind ca 10% des Codes geteilt und beide Module arbeiten völlig anders (Im Bot-Modul steckt die ganze Logik des -CLI drin, damit ist der Ablauf völlig richtig). Vielleicht hinkt der Vergleich aber ein Schraubenzieher und eine Zange sind beide Werkzeug aber lassen sich nicht gut vereinheitlichen (auch nicht beim Leatherman)  ;)

Also Dein telegram funktioniert so gar nicht, es sind ja keinerlei Readings enthalten, ergo wird die Message gar nicht wirklich empfangen.
Vermutung, Du startest CLI nicht mit den notwendigen Optionen (Ich vermute mindestens -N fehlt), dazu bitte in der COmmandref nachlesen.

ich verstehe aber immer noch nicht was Du beim Bot machst, Du schreibst von 2 Accounts? Also gibt es einen gelöschten und einen aktiven? Wenn ja, dann musst Du doch nur die ID des aktiven Accounts angeben (das müsste sich durch Ausprobieren doch leicht erreichen lassen)?

Wie gesagt ich plane keine Weiterentwicklung von 70_Telegram

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: arthur_dent_2015 am 25 Dezember 2015, 20:15:09
-N war die Lösung, Danke!!!!  :) copy & paste sollte verboten werden ;)

Eigentlich waren es sogar 3 accounts, Android, CLI und BOT. Inzwischen läuft auch der BOT. Es lag an der ID (kleine Kritik, die Doku ist da nicht sehr hilfreich was die ID ist und woher man sie bekommt). Aber es gibt ja G***** und mit der richtigen Frage kommt man dann auch irgendwann an Ziel. Jetzt funktioniernen bei mir beide Module so wie sie sollen.

Zugegeben, 10% gemeinsamer code sind nicht sooooo viel. Wenn Du aber die CLI nachprogrammiert hast müssten doch die Internals and Readings weitgehend gleich sein. Es wird halt nur ne andere Schnittstelle aufgerufen. Mal sind es die Routinen die mit dem BOT kommunizieren, mal die mit der CLI. Die Leute die die CLI Version im Einsatz haben wären Dir sicherlich sehr dankbar wenn sie von der Weiterentwicklung nicht abgeschnitten wären.

Wie auch immer Du Dich entscheidest, großes Kompliment für Deine Arbeit!!!

Danke & Gruß
Arthur

P.S. muss ich beim BOT allowunknowncontacts auf 1 oder 0 setzen wenn ich dem BOT nur mit meinem account kommunizieren lassen will?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Dezember 2015, 21:01:06
-N war die Lösung, Danke!!!!  :) copy & paste sollte verboten werden ;)

Eigentlich waren es sogar 3 accounts, Android, CLI und BOT. Inzwischen läuft auch der BOT. Es lag an der ID (kleine Kritik, die Doku ist da nicht sehr hilfreich was die ID ist und woher man sie bekommt). Aber es gibt ja G***** und mit der richtigen Frage kommt man dann auch irgendwann an Ziel. Jetzt funktioniernen bei mir beide Module so wie sie sollen.

Zugegeben, 10% gemeinsamer code sind nicht sooooo viel. Wenn Du aber die CLI nachprogrammiert hast müssten doch die Internals and Readings weitgehend gleich sein. Es wird halt nur ne andere Schnittstelle aufgerufen. Mal sind es die Routinen die mit dem BOT kommunizieren, mal die mit der CLI. Die Leute die die CLI Version im Einsatz haben wären Dir sicherlich sehr dankbar wenn sie von der Weiterentwicklung nicht abgeschnitten wären.

Wie auch immer Du Dich entscheidest, großes Kompliment für Deine Arbeit!!!

Danke & Gruß
Arthur

P.S. muss ich beim BOT allowunknowncontacts auf 1 oder 0 setzen wenn ich dem BOT nur mit meinem account kommunizieren lassen will?

Schön, dass es geht.

OK, die Doku schaue ich mir nochmal an.

Das mit dem CLI nachprogrammiert war eher symbolisch gemeint. Im TelegramBot steckt die direkte Kommunikation mit Telegram.org, die CLI abwickelt, allerdings benutzen TelegramBot und CLI komplett verschiedene APIs und Mechanismen. Ich hatte die Vereinheitlichung anfangs auch angedacht, musste aber erkennen, dass es zuviele Unterschiede gibt und das sehr viele ifs bedeuten würde, die den Code fehleranfällig machen und schwer wartbar.

Ja - allowUnknownContacts ist ein Beispiel für eine ungeschickte Benennung. On/Off-Attribute sollten eigentlich immer positiv benannt sein. Also bei 1 werden auch unbekannte Kontakte erlaubt also musst Du 0 verwenden.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 25 Dezember 2015, 22:05:58
Hallo zusammen,

schöne Bastel-Feiertage erst einmal  ;)

Ich habe nun wieder einige Dinge gelesen und bin zwei Schritte weiter gekommen.

Ich habe mir eine 99_myUtils.pm wie im Wiki http://www.fhemwiki.de/wiki/99_myUtils_anlegen (http://www.fhemwiki.de/wiki/99_myUtils_anlegen) beschrieben, erzeugt.

Hier habe ich nun u.a. folgendes eingefügt (Funktioniert sogar)  :)

sub SendPic
{
 fhem("get Cam2 image");
 fhem("set myTGBot message Achtung!\n Das Bild ist eventuel alt!\n Erneut anfordern um ein Aktuelles zu bekommen!");
 fhem("set myTGBot sendImage ./www/snapshots/Cam2_snapshot.jpg");
}

Wie bekomme ich Zeilenumbrüche hin? Das Perl-Übliche
Zitat
\n
wird nicht ausgeführt.
Sind das andere Zeichen die ein CRLF erzeugen?
In einem vorhergehenden Post http://forum.fhem.de/index.php/topic,38328.msg335792/topicseen.html#msg335792 (http://forum.fhem.de/index.php/topic,38328.msg335792/topicseen.html#msg335792) war dies schon mal ein Thema.

Obige drei Zeilen holen von einer Maginon IPC-10 per WLAN ein Bild, speichert es ab.
Zufällig langt nun die Zeitverzögerung durch den folgenden Text um anschließend doch noch das Aktuelle Bild zu schicken.
Dies geschieht in der dritten Zeile.

Danke und schönes WE.

Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Dezember 2015, 22:22:12
Probier mal einfache Anführungszeichen wie folgt:

fhem('set myTGBot message Achtung!\n Das Bild ist eventuel alt!\n Erneut anfordern um ein Aktuelles zu bekommen!');

Hintergrund, Du willst das \n nicht beim Aufruf der fhem-Funktion auflösen sondern erst innerhalb vom telegramBot, das wird durch die einfachen Anführungszeichen (quotes) erreicht.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 25 Dezember 2015, 22:34:20
Hui,
schneller Support ;)

fhem('set myTGBot message Achtung!\n Das Bild ist eventuel alt!\n Erneut anfordern um ein Aktuelles zu bekommen!');

Das erste einfache Anführungszeichen fehlt im Beispiel.
So funktioniert es aber nun!

Klasse!

Danke Johannes.

Gruss Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Dezember 2015, 22:39:14
Hui,
schneller Support ;)

fhem('set myTGBot message Achtung!\n Das Bild ist eventuel alt!\n Erneut anfordern um ein Aktuelles zu bekommen!');

Das erste einfache Anführungszeichen fehlt im Beispiel.
So funktioniert es aber nun!

Klasse!

Danke Johannes.

Gruss Gerd

Oops Ja manchmal sollte ich nochmal lesen was ich schreibe  ;)
(ich habe es korrigiert, Danke)

Bitte gern geschehen!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: arthur_dent_2015 am 25 Dezember 2015, 22:58:43
okay, dann macht das wohl wirklich keinen Sinn  :(
Gilt 0 auch für cmdRestrictedPeer? der wird default auf 1 gesetzt.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 26 Dezember 2015, 00:37:32
okay, dann macht das wohl wirklich keinen Sinn  :(
Gilt 0 auch für cmdRestrictedPeer? der wird default auf 1 gesetzt.

Nein, wie in der commandref beschrieben, werden in cmdRestrictedPeer eine Liste von peers (am besten als contact ids) angegeben (Das mit dem Default 1 kann ich bei mir nicht nachvollziehen)

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: arthur_dent_2015 am 26 Dezember 2015, 00:47:57
sorry, Mistverständniss... ich war beim CLI, der wird default auf 1 gesetzt.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 26 Dezember 2015, 00:56:37
Ich habe gerade nochmals die neueste Version in github hochgeladen.

Damit ist es jetzt möglich auch voiceMessages (sendVoice) und beliebige Medienfiles (sendMedia oder sendDocument) zu versenden.
Ausserdem ihabe ich noch ein paar Fehler bei den alias-namen in favortien beseitig.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 26 Dezember 2015, 13:18:17
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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 26 Dezember 2015, 15:58:37
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.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 26 Dezember 2015, 19:58:26
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 (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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 29 Dezember 2015, 13:35:08
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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 29 Dezember 2015, 15:18:46
@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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 29 Dezember 2015, 16:04:53
Getestet, jetzt läuft es hier auch!

Vielen Dank für den schnellen fix. :)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag 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?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 Januar 2016, 22:38:14
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.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: ulli am 01 Januar 2016, 22:53:41
Dann kommt das Problem daher.
Ich habe es über update geholt, dann ist das noch nicht aktuell. Wann kommt es denn über FHEM rein?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 Januar 2016, 01:12:45
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
- ...
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag 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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 Januar 2016, 11:52:17
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.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 02 Januar 2016, 13:19:49
Hi

Mit Rev 10324 funkioniert es auch bei mir  ;)

Danke und Gruss

Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 Januar 2016, 13:27:23
Gut und Danke für die Bestätigung. Sorry für den Fehler,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: UweH am 02 Januar 2016, 16:21:22
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
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 Januar 2016, 16:25:34
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

Da scheint beim update oder reload etwas schief gegangen zu sein. Kannst Du den FHEM-Server mal komplett neu starten?


Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: UweH am 02 Januar 2016, 16:33:19
Aha. Nix mit reload in diesem Fall. Neustart hilft.

Danke
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 Januar 2016, 16:38:09
Aha. Nix mit reload in diesem Fall. Neustart hilft.

Danke

Ja der Reload funktioniert nur mit EInschränkungen, denn es ist ja quasi eine laufende Routine die geändert wird.

Das Polling läuft im Hintergrund noch, kommt dann nach Ablauf der Zeit zurück und jemand hat das Modul umgebaut 
Wenn ich aus dem Bad käme und der Flur wäre plötzlich halb so hoch wäre ich auch verstimmt  ;)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: UweH am 02 Januar 2016, 16:53:04
Da hätte ich auch was dagegen... ;)

Was ich noch nicht ganz nachvollziehen kann, ist die Vergabe von alias für Kommandos. Kannst Du mal ein konkretes Beispiel aufzeigen? Ich probier da seit der vorletzten Version herum und komme nicht dahinter. Ich glaube, ich brauche mal einen Schubs in die richtige Richtung...

Danke
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: UweH am 02 Januar 2016, 18:32:14
Hat sich erledigt, hab's rausgefunden. Ist natürlich nicht schwer, aber ich hatte einen Knoten im Gehirn... ;D

Erklärung: Ich bin von falschen Voraussetzungen ausgegangen (oder ich habe es immer noch nicht verstanden)... Ich hatte mir von der Alias-Vergabe eine Erleichterung versprochen. Beim bisherigen Verfahren lasse ich mir eine Liste der "shorts" schicken und tippe auf einen Button. Befehl wird ausgeführt, Ende.
Beim Alias muss ich nun den Alias und den Schaltbefehl eintippen...also umständlicher...oder?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: ulli am 03 Januar 2016, 17:59:04
Alles spitze!
Die Favorites und allowUnknownContacts laufen ohne Probleme!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 Januar 2016, 18:16:23
Das ist gut!
Momentan steht auf meiner Todoliste noch 2 grössere Brocken (für TelegramBot):

- Mediendateien auch an FHEM senden können (also das TelegramBot Modul würde sie herunterladen und im Filesystem abzulegen
- Die bereits mehrfach diskutierte Dialogfunktion bei der man eine externe Funktion zum Steuern von FHEM verwenden kann

Beides ist bei mir nicht hoch auf der Prioliste oder gibt es jemanden der gerade aktiv darauf wartet?

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 03 Januar 2016, 20:00:14
Gutes neues zusammen.

Auf Dialogfunktion warte ich bedingt  ;)
Derzeit komme ich aber mit dem vorhandenen zu recht.

Zum Temperatur, Feuchte ..... IPCam abfragen langt es.

Gruß Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Heinz1973 am 07 Januar 2016, 13:27:12
Super Modul, hat alles sofort geklappt. Besten Dank dafür!

cmdKeyword und cmdFavorites funktionieren super. Gibt es die Möglichkeit weitere Kommandos zu definieren, damit man auch sowas machen kann:

/Abwesend
/Anwesend
/Urlaub
...

aktuell muß man das alles über Keyword tunneln, was am Smartphone ziemlich lästig/länglich werden kann.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 07 Januar 2016, 17:49:39
Super Modul, hat alles sofort geklappt. Besten Dank dafür!

cmdKeyword und cmdFavorites funktionieren super. Gibt es die Möglichkeit weitere Kommandos zu definieren, damit man auch sowas machen kann:

/Abwesend
/Anwesend
/Urlaub
...

aktuell muß man das alles über Keyword tunneln, was am Smartphone ziemlich lästig/länglich werden kann.

Danke für die Blumen  ;)

Ja eine solche Möglichkeit gibt es über die favorites. Damit kann man nicht nur einzelne favoriten definieren die über nummern angesprochen werden können sondern auch alias commands genauso wie Du es Dir vorstellst. Schau mal die Attribute favorites, speziell den Absatz über alias commands in der commandref an.

Ich helfe gerne weiter, wenn Du dazu weitere Fragen hast.


Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoeALLb am 09 Januar 2016, 19:29:50
Hm, vielleicht eine blöde frage, vielleicht stehe ich grade am schlauch: kann ich mir alle Fehlermeldungen von fhem ans telegram senden? keine warnings, nur die Fehlermeldungen?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 Januar 2016, 00:28:13
Nicht unbedingt eine blöde Frage, allerdings gibt es sicher unterschiedliche Definitionen was eine Fehlermeldung ist.
Ich hatte mal die Überlegung alle loglevel-1 Meldungen aus dem fhem.log-file per telegram zu versenden, allerdings gibt es innheralb von fhem keine Möglichkeit sich bei Meldungen im fhem-log mit einem bestimmten Level benachrichtigen zu lassen. Dis Diskussion dazu ist leider bisher auch im Sande verlaufen und braucht vielleicht etwas Unterstützung?
http://forum.fhem.de/index.php/topic,45905.0.html (http://forum.fhem.de/index.php/topic,45905.0.html)

Allerdings ist das nur eine mögliche Definition von Fehlermeldung...

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: e3xtreme am 13 Januar 2016, 13:43:50
Im Prinzip kann es als eine Befehlsfolge funktionieren, wenn die Zeit zu, abspeichern des bildes konstant ist.

Also folgende schritte
- abholen des bildes und speichern des dateinamens
- entweder feste wartezeit oder schleife bis datei existiert und dann kurz warten
- set bot sendImage <dateiname>

Hallo nochmal,

Bin wahrscheinlich schon Off Topic, aber meine ursprüngliche Frage war auch hier,....

wie kann ich eine Schleife mit Abfrage nach der Erstellung der Datei machen, die Datei wird in meinem Fall ja überschrieben :o???

Habs mit sleep versucht bin jetzt schon bei sleep 10 und viel mehr möcht ich nur ungern haben, denn sonst klingelt es wirklich stark verzögert...

oder gibt es eine Methode das ganze zu beschleunigen? Prioritäten oder sowas??

Danke, lg
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 14 Januar 2016, 00:51:48
Hallo nochmal,

Bin wahrscheinlich schon Off Topic, aber meine ursprüngliche Frage war auch hier,....

wie kann ich eine Schleife mit Abfrage nach der Erstellung der Datei machen, die Datei wird in meinem Fall ja überschrieben :o???

Habs mit sleep versucht bin jetzt schon bei sleep 10 und viel mehr möcht ich nur ungern haben, denn sonst klingelt es wirklich stark verzögert...

oder gibt es eine Methode das ganze zu beschleunigen? Prioritäten oder sowas??

Danke, lg

Vielleicht brauchst Du keine Schleife/sleep, wenn ich in der Commandref von IPCAM schaue, sieht es so aus, als ob IPCAM nach speichern des / der Bilder einen event schickt, denn Du als trigger für das versenden per telegram versenden könntest. Hier das Beispiel aus der commandref von IPCAM:

Zitat
Send an eMail after snapshots are taken:
    define MOTION.not.02 notify ipcam:.*snapshots.* { myEmailFunction("%NAME") }

Im Aktionsteil des notify müsste dann natürlich der Versand per telegram stehen
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: det. am 14 Januar 2016, 13:33:48
genau so habe ich es gemacht und es funktioniert - ein notify auf die Türklingel speichert von der CAM das Bild, ein notify über die CAM notify ipcam:.*snapshots.* versendet das gespeicherte Bild. Bei einer Hikvision
DS-2CD2032-I CAM funktioniert das prima, bei einem noch billigeren Chinamodell kommt das Bild vom vorherigen Event -Lösung, ich habe mir noch eine weitere Hikvision
DS-2CD2032-I bestellt und tausche die aus.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: derchrome am 14 Januar 2016, 21:56:21
Hallo zusammen,
kurze Frage:
Wenn ich meine Festnetznummer im Format +49 eingebe, dann kommt immer eine Fehlermeldung incorrect phone number. Mit einer Handynummer funktioniert es. Hat jemand eine Idee woran das liegen könnte?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 14 Januar 2016, 22:17:49
Hallo zusammen,
kurze Frage:
Wenn ich meine Festnetznummer im Format +49 eingebe, dann kommt immer eine Fehlermeldung incorrect phone number. Mit einer Handynummer funktioniert es. Hat jemand eine Idee woran das liegen könnte?

Kannst Du erklären, wo Du die Telefonnummer eingibst?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: e3xtreme am 14 Januar 2016, 23:59:40
Vielleicht brauchst Du keine Schleife/sleep, wenn ich in der Commandref von IPCAM schaue, sieht es so aus, als ob IPCAM nach speichern des / der Bilder einen event schickt, denn Du als trigger für das versenden per telegram versenden könntest. Hier das Beispiel aus der commandref von IPCAM:

Hallo danke für den Tipp, klappt zwar jetzt so wie es soll, jedoch muss man auf der Klingel gefühlt um einiges länger drauf bleiben, dass es überhaupt klingelt, kann es sein, dass er da einen Befehl wegschmeißt, weil er grad zwei notifies ausführen möchte??

Bitte hier Antworten, habe einen neuen Thread eröffnet :-)

http://forum.fhem.de/index.php/topic,47359.0.html
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: derchrome am 15 Januar 2016, 05:57:24
Kannst Du erklären, wo Du die Telefonnummer eingibst?
Ich war jetzt über SSH verbunden und hab den Client über “bin/telegram-cli -k tg-server.pub“ (Anleitung aus dem Wiki) gestartet. Und dann kommt die Abfrage.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 15 Januar 2016, 19:01:44
OK, die Meldung kommt vermutlich von telegram selbst, ist das eine VOIP-Nummer, bei denen gibt es wohl bestimmte Bereiche, die telegram ablehnt. Mit meiner eigenen Festnetznummer ging es.

Generell: Nur das TelegramBot-Modul wird weiter gepflegt, das Telegram-Modul, dass die Installation von telegram-cli und eine Telefonnummer voraussetzt läuft zwar momentan stabil, ich würde aber empfehlen das bot-Modul zu verwenden. Dieses hat inzwischen auch deutlich mehr Funktionen.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: derchrome am 15 Januar 2016, 19:27:58
Dann werde ich das mal ausprobieren, danke!
Wie bekomme ich den anderen Client wieder deinstalliert?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 15 Januar 2016, 23:49:30
Das Modul 70_Telegram wirst Du am einfachsten wieder los in dem Du alle Devices die diesen Type verwenden entfernst und dann die Datei 70_Telegram.pm auch löscht. Danach fhem neustarten und prüfen ob es Fehler im Log wg. des Moduls gibt.

telegram-cli wird man danach wieder los, in dem man sicherstellt, das der Prozess nicht mehr läuft und dann das Verzeichnis komplett entfernt. Solange man nicht zusätzliche Schritte (wie z.B. ein service/daemon skript zu erstellen o.ä.) sollte dann auch der Client weg sein.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Heinz1973 am 17 Januar 2016, 22:29:43
Danke für die Blumen  ;)

Ja eine solche Möglichkeit gibt es über die favorites. Damit kann man nicht nur einzelne favoriten definieren die über nummern angesprochen werden können sondern auch alias commands genauso wie Du es Dir vorstellst. Schau mal die Attribute favorites, speziell den Absatz über alias commands in der commandref an.

Ich helfe gerne weiter, wenn Du dazu weitere Fragen hast.


Johannes

Ok, habs über Google irgendwo den Hinweis gefunden, jedoch nicht auf der fhem wiki Seite http://www.fhemwiki.de/wiki/TelegramBot
Hier wäre noch ein Beispiel super, das man einfach rauskopieren kann, das hätte mir Zeit erspart. Funktioniert einwandfrei.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 17 Januar 2016, 23:46:47
Ok, habs über Google irgendwo den Hinweis gefunden, jedoch nicht auf der fhem wiki Seite http://www.fhemwiki.de/wiki/TelegramBot
Hier wäre noch ein Beispiel super, das man einfach rauskopieren kann, das hätte mir Zeit erspart. Funktioniert einwandfrei.

Kann man gerne machen, ich komme leider momentan einfach nicht dazu Code, Commandref und wiki weiterzupflegen (FHEM ist ja auch zum mitmachen  ;) )

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoeALLb am 18 Januar 2016, 09:16:31
Ich würde gerne eine Voicemessage, die ich an den Telegrambot schicke, über meine Lautsprecher ausgeben. GGf. möchte ich über die Message sogar steuern, in welchem Raum die Message wiedergegeben werden soll. Dazu müsste ich dort einfach eine MP3 bekanntgeben.
Gibt es dazu eine Idee, wo ich anfangen könnte?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 18 Januar 2016, 11:40:15
Ich würde gerne eine Voicemessage, die ich an den Telegrambot schicke, über meine Lautsprecher ausgeben. GGf. möchte ich über die Message sogar steuern, in welchem Raum die Message wiedergegeben werden soll. Dazu müsste ich dort einfach eine MP3 bekanntgeben.
Gibt es dazu eine Idee, wo ich anfangen könnte?

Bisher leider gar nicht, da der Bot bisher Multimedia zwar verschicken kann, aber empfangene Bilder/Audio/Dokumente werden noch nicht vollständig behandelt und heruntergeladen. Das steht auf meiner Todo, aber bisher habe ich noch keinen Use case dazu gehabt. Ich kann mir das in den nächsten Tagen anschauen.

Vorschlag: In einem ersten Schritt werden die Nachrichten vom Bot angenommen und es gibt ein zusätzliches Reading in dem ein URL zum herunterladen steckt. Dadurch wird vermieden, dass Bandbreite zum Herunterladen (und Speicherplatz lokal) nur verwendet wird, wenn die Datei auch erwünscht ist. Allerdings steckt dann im URL auch das Authtoken für den Bot mit drin, so ist die Schnittstelle von telegram aufgebaut.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoeALLb am 18 Januar 2016, 14:14:32
Vorschlag: In einem ersten Schritt werden die Nachrichten vom Bot angenommen und es gibt ein zusätzliches Reading in dem ein URL zum herunterladen steckt. Dadurch wird vermieden, dass Bandbreite zum Herunterladen (und Speicherplatz lokal) nur verwendet wird, wenn die Datei auch erwünscht ist. Allerdings steckt dann im URL auch das Authtoken für den Bot mit drin, so ist die Schnittstelle von telegram aufgebaut.

Das wäre toll. Den Rest dazu kann ich dann selbst übernehmen (denke ich...)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 19 Januar 2016, 00:28:47
Das wäre toll. Den Rest dazu kann ich dann selbst übernehmen (denke ich...)

OK, habe gerade eine erste Version in github hochgeladen (also noch nicht über update verfügbar):

Die Nachrichten werden jetzt vom Bot angenommen und es wird ein zusätzliches Reading msgFileId mit der ID der Datei erzeugt.
In msgText wird angegeben welche Art Multimediafile heruntergeladen werden kann (z.T. auch mit Grösse/Bildunterschrift/Mimetype). Der Inhalt beginnt immer mit "received ", also z.B.:
received photo # Size: 264323
Um daraus dann einen URL für das Herunterladen zu erzeugen, muss man allerdings noch einen get-Befehl ausführen, um sich von telegram den URL zu einer Datei liefern zu lassen. Als Parameter wird hier der inhalt von msgFileId übergeben.

get telegrambot urlForFile DuacxG4Yo6gVwu9pxazZPJqELgyoABHgOPu2hwuvVLjMB
Ich musste das so bauen, da die URLs nur temporär gültig sind, während die FileIds auch langfristig gültig sind. Also sollte das get Command direkt vor dem Herunterladen aufgerufen werden. Dazu kann die fileId auch zwischengespeichert werden.

Achso es können nicht nur Photos, sondern auch Voicemessages, Videos, Audio und allgemeine Dokumente empfangen werden.
Vorschlag: In einem ersten Schritt werden die Nachrichten vom Bot angenommen und es gibt ein zusätzliches Reading in dem ein URL zum herunterladen steckt. Dadurch wird vermieden, dass Bandbreite zum Herunterladen (und Speicherplatz lokal) nur verwendet wird, wenn die Datei auch erwünscht ist. Allerdings steckt dann im URL auch das Authtoken für den Bot mit drin, so ist die Schnittstelle von telegram aufgebaut.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: ulli am 21 Januar 2016, 21:23:51
Ich habe inzwischen alles gut am Laufen mit dem Telegram Modul.

Nun habe ich einen Chat erstellt mit zwei Benutzern und diesen Chat als defaultPeer angegeben.
Wenn ich jetzt den Bot direkt anschreibe (also nicht über den Chat) dann antwortet der Bot immer im Chat (also dem defaultPeer)
Kann man es irgendwie einstellen im Modul das der Bot dem Antwortet von dem er "gefragt" wird?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 22 Januar 2016, 11:14:28
Hallo Johannes,

ich bin seit Gestern auch Benutzer des Moduls. Danke für die hervorragende Arbeit...

Ich hätte jetzt einen zusätzlichen Anwendungsfall:
Als Antwort auf eine Command-Anfrage per Telegram-App ein Bild/Plot erhalten.
Konkret geht es um Plots, die ich auf eine Anfrage hin erhalten möchte.

Ich hatte mal kurz in den Code geschaut, und denke, dass es relativ einfach umzusetzen wäre:
- Ein neuer sendImage-Befehl, der keinen Dateinamen erhält, sondern direkt den Datenstrom, der gesendet werden soll
- Eine Erweiterung der Prozedur HandleCommand, die erkennt, ob das Ergebnis des Kommandos ein Bild ist, und dann den neuen sendImage-Befehl aufruft. Das Prüfen kann man z.B. mit einem regulären Ausdruck auf dem Ergebnis von AnalyzeCommand machen:
if ($ret =~ m/^\x89PNG\r\n\x1a\n/) {
# Hier das PNG als Stream direkt versenden
}

Damit könnte man dann so Anweisungen versenden wie
ok fhem { plotAsPng('weblink_aussen_Temperatur') }
und würde als Antwort direkt den Plot erhalten.

Das ganze kann/sollte man natürlich/vielleicht um die anderen möglichen Bildtypen erweitern, falls noch andere use cases existieren...

Meinst du das wäre von deiner Seite aus möglich?

Danke schon mal für deine Reaktion...

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Panik am 22 Januar 2016, 18:24:06
Hallo,

ich benutze auch seit kurzer Zeit den TelegramBot mit FHEM.
Ich sende mit dem Smartphone diese auch im Forum behandelten Alias-Befehle. Funktioniert 1A!

Nun eine Frage, die FHEM nur indirekt betrifft (ich hoffe man verzeiht):
Hat es schon mal jemand geschafft, mit Tasker + Telegram einen Befehl an FHEM zu senden?
Ich kann dazu auch gern per PN angeschrieben werden, wenn es hier nicht passt.

Gruß! Panik
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: ulli am 22 Januar 2016, 18:42:03
Genau danach bin ich auch schon eine std am suchen!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: arthur_dent_2015 am 22 Januar 2016, 19:53:37
Hallo Johannes,
der Telegambot läuft ja soweit ganz gut aber ich finde haufenweise die folgende Fehlemeldung im Log:
TelegramBot_Callback my_fhem_bot: resulted in :NonBlockingGet: returned gethostbyname api.telegram.org failed: from SendIt
Die zu sendende msg geht nicht raus. Was ist da los?
Gruß
Arthur
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 Januar 2016, 01:30:15
Hallo Johannes,
der Telegambot läuft ja soweit ganz gut aber ich finde haufenweise die folgende Fehlemeldung im Log:
TelegramBot_Callback my_fhem_bot: resulted in :NonBlockingGet: returned gethostbyname api.telegram.org failed: from SendIt
Die zu sendende msg geht nicht raus. Was ist da los?
Gruß
Arthur

Die Meldung besagt, dass der FHEM-Server die IP-Adresse von api.telegram.org nicht auflösen kann. Auf dem Rechner scheint die Internetverbindung nicht korrekt zu funktionieren (Namensauflösung / DNS). Das müsste normalerweise auch alle anderen Dienste betreffen, die von dem Rechner auf das Internet zugreifen.

Wenn das linux ist, was steht in der /etc/resolv.conf

Gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 Januar 2016, 01:53:59
Hallo Johannes,

ich bin seit Gestern auch Benutzer des Moduls. Danke für die hervorragende Arbeit...

Ich hätte jetzt einen zusätzlichen Anwendungsfall:
Als Antwort auf eine Command-Anfrage per Telegram-App ein Bild/Plot erhalten.
Konkret geht es um Plots, die ich auf eine Anfrage hin erhalten möchte.

Damit könnte man dann so Anweisungen versenden wie
ok fhem { plotAsPng('weblink_aussen_Temperatur') }
und würde als Antwort direkt den Plot erhalten.

Das ganze kann/sollte man natürlich/vielleicht um die anderen möglichen Bildtypen erweitern, falls noch andere use cases existieren...

Meinst du das wäre von deiner Seite aus möglich?

Danke schon mal für deine Reaktion...

Grüße
Reiner

Hallo Reiner.
na da bin ich ja froh, denn Dein Sonos-Modul nutze ich schon lange :-)
Dein Fall klingt erstmal exotisch ist aber sicher elegant, wenn man nicht erst eine Datei erzeugen, versenden, lsöchen will.
Ich muss mir das aber trotzdem erstmal anschauen, damit ich das bei mir auch nachbauen kann.
Also bitte noch etwas Geduld...
Gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: rtv am 23 Januar 2016, 12:17:08
Dein Fall klingt erstmal exotisch ist aber sicher elegant, wenn man nicht erst eine Datei erzeugen, versenden, löschen will.
Johannes
Hallo Johannes und Reiner,

das ist genau der Anwendungsfall, nach dem ich mich ein paar Seiten vorher erkundigt hatte ;-)
Wäre klasse wenn ihr das hinbekommen würdet!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Hermann am 23 Januar 2016, 12:23:26
Da ich trotz vielen Stunden ausprobieren nicht mehr weiterkomme, hier meine Bitte um Hilfe.

Ich habe nach Wiki einen Bot angelegt. In fhem steht folgendes:

define teleBot TelegramBot xxxxx:key
attr teleBot defaultPeer @BotnameBot
attr teleBot pollingTimeout 20

Mit diesen Satz in der Wiki komme ich ins schleudern, trotz vielem testen: Der TelegramBot kann erst dann Nachrichten an einen telegram user schicken, wenn dieser zuerst an den telegram bot eine Nachricht gesendet hat.

Versuche ich eine Nachricht zu senden (set teleBot message Dies ist eine Nachricht von FHEM) erscheint in fhem immer: FAILED peer not found :@BotnameBot:

Ich komm nicht weiter.

Hermann
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 23 Januar 2016, 12:33:47
Umgekehrt. Du musst von dem, der zukünftig Nachrichten empfangen soll, eine Nachricht an den Bot schicken.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 23 Januar 2016, 12:57:15
Hi rtv,

bislang helfe ich mir mit einer (bzw. zwei) kleinen Prozedur in meiner 99_myUtils.pm:
sub sendPlot($) {
  my ($plotName) = @_;
 
  writeFile('/tmp/plot_'.$plotName.'.png', plotAsPng($plotName));
  fhem('set telegram sendImage /tmp/plot_'.$plotName.'.png '.AttrVal($plotName, 'alias', $plotName));
 
  return undef;
}

sub writeFile($$) {
my ($fileName, $data) = @_;

open IMGFILE, '>'.$fileName;
binmode IMGFILE;
print IMGFILE $data;
close IMGFILE;
}

Für die Funktion "plotAsPng" (kommt aus dem SVG-Modul, und ist damit schon da), brauchst du aber noch eine Library:
sudo apt-get install libimage-librsvg-perl


Dabei bleiben aber Reste im tmp-Ordner übrig, die man irgendwann mal wegräumen könnte/müsste. Da der Plot jeweils nur eine Datei übrigläßt, bleibt das aber im Rahmen...

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: arthur_dent_2015 am 23 Januar 2016, 13:24:42
Die Meldung besagt, dass der FHEM-Server die IP-Adresse von api.telegram.org nicht auflösen kann. Auf dem Rechner scheint die Internetverbindung nicht korrekt zu funktionieren (Namensauflösung / DNS). Das müsste normalerweise auch alle anderen Dienste betreffen, die von dem Rechner auf das Internet zugreifen.

Wenn das linux ist, was steht in der /etc/resolv.conf

Gruss,
Johannes

in der resolv.conf ist meine FB eingetragen. Der Raspi hängt per Powerline an der FB. Auf dem Netz scheint es ab und an Aussetzer zu geben. In der Weboberfläche sehe ich dann connection lost, trying to reconnect. Kann das damit zusammen hängen?
Gruß
Arthur
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: rtv am 23 Januar 2016, 15:07:27
Hi rtv,
bislang helfe ich mir mit einer (bzw. zwei) kleinen Prozedur in meiner 99_myUtils.pm

Danke Reiner, funktioniert perfekt und ist direkt in die Favoriten gewandert - sehr praktisch!

Das Telegram Modul ermöglicht wirklich einige "smarte" Ideen.
Hab' z.B. gerade noch Anrufe in Abwesenheit hinzugefügt:
define Notify_Anruf_Telegram notify CallMonitor:missed_call.* set telegram msg ☎️ Anruf in Abwesenheit: [CallMonitor:missed_call]

Grüße
Ralf
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: RitterSport am 23 Januar 2016, 17:50:46
Hallo,

gibt es eine elegante Lösung um an verschiedene Smartphone über Telegram unterschiedliche Nachrichten zu senden?
Mit WhatsApp (yowsup) kann ich send 49171 usw und dann eben an eine nadere auch noch schicken.

 
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 Januar 2016, 01:41:12
Hallo,

gibt es eine elegante Lösung um an verschiedene Smartphone über Telegram unterschiedliche Nachrichten zu senden?
Mit WhatsApp (yowsup) kann ich send 49171 usw und dann eben an eine nadere auch noch schicken.

Ich bin nicht sicher ob ich das verstehe:

Natürlich kann man unterschiedliche Nachrichten senden  ;) --> Einfach verschiedene Befehle  :D
Man kann auch eine Nachricht an unterschiedliche Empfänger schicken --> Dazu gibt es die Möglichkeit bei message mehrere peers jeweils mit @ am Anfang anzugeben (siehe commandref)
Verschiedene Nachrichten an verschiedene Empfänger geht damit natürlich auch verschiedene Befehle, bei der jeweils andere Empfänger angegebene sind.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 Januar 2016, 02:02:12
So ich habe (bisher nur in github) mal den oben erwähnten Anwendungsfall eingebaut, bei der man das Ergebnis eines Kommandos (z.B. Favoriten) direkt als Bild verschicken kann. Es war etwas aufwändiger, da Telegram sich als etwas störrisch herausgestellt hat.

Das ganze funktioniert mit Favoriten oder auch direkt hinter dem Command Keyword. Generell sollten auch andere Dateiformate (jpg, mp3 und office-Formate funktionieren).

@Reiner,rtv: Ich habe das bisher nur mit plotAsPng getestet. Vielleicht könnt Ihr das auch mal ausprobieren, bevor ich das ins SVN hochlade

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 24 Januar 2016, 11:44:25
Hallo Johannes,

ich werde das heute Abend testen...

Zwischendurch mal eine andere Frage:
Ich versuche gerade eine Telegram-Tonaufnahme auf einem Sonos-Player wiederzugeben. Das klappt nicht auf Anhieb, weil der Player das Format nicht abspielen kann (obwohl Ogg auf der Website als funktionierend deklariert ist).

Nun habe ich mir mal das Format mittels avprobe angeschaut (und wollte es einfach in MP3 konvertieren), erhalte aber folgende Ausgabe:
avprobe version 0.8.6-6:0.8.6-1+rpi1, Copyright (c) 2007-2013 the Libav developers
built on Mar 31 2013 13:58:10 with gcc 4.6.3
[ogg @ 0x1eb6660] Codec not found
/mnt/SonosSpeak/telegram_file_13.ogg: End of file
Ich bekomme avconv einfach nicht dazu, diese Datei zu akzeptieren, und zu konvertieren...
In der Datei sind unter den ersten Bytes die Zeichenfolge "ogg" vorhanden, und weiter hinten wird was von opuslib geschrieben...

Hat jemand schon mal diese Tonaufnahmen weiterverwendet? Weiß jemand wie ich diese korrigeren/konvertieren kann?

Danke schon mal für sachdienliche Hinweise :)

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 Januar 2016, 15:27:42
Hallo Johannes,

ich werde das heute Abend testen...

Zwischendurch mal eine andere Frage:
Ich versuche gerade eine Telegram-Tonaufnahme auf einem Sonos-Player wiederzugeben. Das klappt nicht auf Anhieb, weil der Player das Format nicht abspielen kann (obwohl Ogg auf der Website als funktionierend deklariert ist).

Nun habe ich mir mal das Format mittels avprobe angeschaut (und wollte es einfach in MP3 konvertieren), erhalte aber folgende Ausgabe:
avprobe version 0.8.6-6:0.8.6-1+rpi1, Copyright (c) 2007-2013 the Libav developers
built on Mar 31 2013 13:58:10 with gcc 4.6.3
[ogg @ 0x1eb6660] Codec not found
/mnt/SonosSpeak/telegram_file_13.ogg: End of file
Ich bekomme avconv einfach nicht dazu, diese Datei zu akzeptieren, und zu konvertieren...
In der Datei sind unter den ersten Bytes die Zeichenfolge "ogg" vorhanden, und weiter hinten wird was von opuslib geschrieben...

Hat jemand schon mal diese Tonaufnahmen weiterverwendet? Weiß jemand wie ich diese korrigeren/konvertieren kann?

Danke schon mal für sachdienliche Hinweise :)

Grüße
Reiner

Ich muss mir das auch mal anschauen, im Browser konnte ich sie abspielen (Firefox/Windows) mit dem URL den das Modul zurückliefert. Bisher habe ich das nicht genauer analysiert.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoeALLb am 24 Januar 2016, 19:27:38
@Reiner, hast du den download schon automatisiert? Wenn ja,  kannst du mir einen Code geben? Ich hab erst begonnen, wegen Besuch musste ich aber unterbrechen....
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 24 Januar 2016, 20:48:40
Hi JoeALLb,

das ist nicht weiter kompliziert :)

Hier das Notify auf meinem TelegramBot (heißt "telegram"):
telegram:msgText:.received.voice.* {
  my $url = fhem("get $NAME urlForFile ".ReadingsVal($NAME, 'msgFileId', ''));
  my $fileName = "$NAME_$1" if ($url =~ m/.*\/(.*)/);
  my $newFileName = "$1.mp3" if ($fileName =~ m/(.*)\..*/);

  writeFile('/mnt/SonosSpeak/'.$fileName, get($url));
  qx(/usr/bin/avconv -i /mnt/SonosSpeak/$fileName /mnt/SonosSpeak/$newFileName);
  fhem('set '.ReadingsVal($NAME, 'currentSpeakPlayer', 'tmperror').' PlayURITemp \\\\192.168.0.11/SonosSpeak/'.$newFileName.' '.ReadingsVal($NAME, 'currentSpeakVolume', 5));
}

Und dann noch die Write-Prozedur in einer 99_myUtils.pm:
sub writeFile($$) {
my ($fileName, $data) = @_;

open IMGFILE, '>'.$fileName;
binmode IMGFILE;
print IMGFILE $data;
close IMGFILE;
}

Da steckt jetzt schon der Versuch drin, die Datei vor der Verwendung in ein MP3 umzuwandeln, was ja fehlschlägt (genauso wie die direkte Wiedergabe dieser Datei auf den Sonos-Player).
Und natürlich hat bei dir der Pi vermutlich eine andere IP-Adresse.

Für die Wiedergabe auf den Playern habe ich mir am TelegramBot-Device zwei eigene Readings eingebaut, die ich per Kommando verändern kann.
"currentSpeakPlayer" - Gibt den oder die Player an, wo die Wiedergabe erfolgen soll
"currentSpeakVolume" - Gibt die zu verwendende Lautstärke an.

Dann gibt es am TelegramBot-Device noch die Favoriten zum Setzen dieser Readings:
/jim=setreading telegram currentSpeakPlayer Sonos_Jim ; /joe=setreading telegram currentSpeakPlayer Sonos_Joe ; /wohnzimmer=setreading telegram currentSpeakPlayer Sonos_Wohnzimmer ; /kinder=setreading telegram currentSpeakPlayer Sonos_Jim,Sonos_Joe ; /schlafzimmer=setreading telegram currentSpeakPlayer Sonos_Schlafzimmer ; /all=setreading telegram currentSpeakPlayer Sonos_Jim,Sonos_Joe,Sonos_Schlafzimmer,Sonos_Wohnzimmer ; /speakvolume=setreading telegram currentSpeakVolume
Da gibt es Jim und Joe (nochmal als Gruppe "Kinder" zusammen), Schlafzimmer und Wohnzimmer, und alle zusammen.
Sowie den Favoriten zum Setzen der Abspiellautstärke. Das wird im Notify auch schon alles berücksichtigt/verwendet...

Was jetzt noch fehlt, ist eine saubere Konvertierung der Datei, damit Sonos diese wiedergeben kann. Dann kann die Durchsagerei losgehen :)

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 Januar 2016, 21:12:52
Ich versuche gerade eine Telegram-Tonaufnahme auf einem Sonos-Player wiederzugeben. Das klappt nicht auf Anhieb, weil der Player das Format nicht abspielen kann (obwohl Ogg auf der Website als funktionierend deklariert ist).

Nun habe ich mir mal das Format mittels avprobe angeschaut (und wollte es einfach in MP3 konvertieren), erhalte aber folgende Ausgabe:

Hat jemand schon mal diese Tonaufnahmen weiterverwendet? Weiß jemand wie ich diese korrigeren/konvertieren kann?

Hallo Reiner,
habe gerade mal versucht das auf dem Sonos abzuspielen. Bei mir kommt auch eine Fehlermeldung auf dem Sonos (nicht unterstütztes Format). VLC kann es allerdings ebenfalls abspielen, da ich keinen Konverter auf dem System habe ich mal einen Onlinekonverter ausprobiert (https://online-audio-converter.com/de/ (https://online-audio-converter.com/de/)). Dabei gab es keine Probleme einen funktionsfähigen MP3 zu erzeugen...

Also Ja es gibt Probleme zwischen Sonos und dem Telegram Ogg-Format und ich denke man braucht dafür vermutlich einen Konverter.

Gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoeALLb am 25 Januar 2016, 11:11:57
Hi JoeALLb,

das ist nicht weiter kompliziert :)

Och doch... mein Dateidownload (mit wget) war bei weitem nicht so elegant wie Deine Umsetzung!!!
Vielen Dank dafür!!

Hinweis:
Dieser Code hier konnte so nicht verwendet werden, da die Variable $NAME_ nicht definiert ist. Ich musste also den String leicht anders zusammenfügen, dann klappts aber gut!
"$NAME_$1"

Auf meinem Intel-Board mit Debian8 wird das OGG-File korrekt als MP3 umgewandelt--- Ich muss also nur noch die Sonos-Ansteuerung testen!

Vielen Dank nochmal!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: ulli am 25 Januar 2016, 21:15:44
Ich habe inzwischen alles gut am Laufen mit dem Telegram Modul.

Nun habe ich einen Chat erstellt mit zwei Benutzern und diesen Chat als defaultPeer angegeben.
Wenn ich jetzt den Bot direkt anschreibe (also nicht über den Chat) dann antwortet der Bot immer im Chat (also dem defaultPeer)
Kann man es irgendwie einstellen im Modul das der Bot dem Antwortet von dem er "gefragt" wird?

@Johannes gibt es zu oben beschriebenen Pronomen eine Lösungsidee?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 25 Januar 2016, 22:57:57
Hi Johannes, hi JoeALLb,

sooo, ich habe das mit der Durchsagewiedergabe nun hinbekommen.
Bei mir fehlten wohl einige Codecs im AVConverter.
Mit
sudo apt-get install libav-tools
hat er die fehlenden installiert. Mein Codebeispiel geht bei mir jetzt (natürlich mit der geschweiften Klammer um "$NAME", also "${NAME}_$1", die fehlten noch :) )

Auch die Rückgabe der Bilddaten direkt als Ergebnis eines Befehls klappt gut. Klasse...
Ich bin gerade noch dabei, herauszufinden, ob man einfach ein MP3 mit ID3v2-Tag erkennen kann. Meine MP3s haben immer einen solchen Tag, und kommen deshalb nicht als Ergebnis zurück... ist aber nicht Kriegsentscheidend...

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoeALLb am 27 Januar 2016, 11:14:41
Super, dass es klappt.
Die Verzögerungen sind meist auch relativ kurz, bis die Sprachausgabe dann am Sonos herauskommt, aber manchmal bleibt es etwas "hängen".
Das werd ich mir an einem freien Wochenende mal genauer ansehen!
@Reiner: Ich hätte dazu einen Featurerequest: Könne das Sonos-Modul ein Reading pflegen, wieviele Geräte gerade am spielen sind?
Ähnlich wie beo roommates, das ausgibt, wieviele Personen gerade zuhause sind.
Im Moment behelfe ich mir mit folgender Abfrage, aber als Reading mit Events wäre das natürlich viel eleganter!
{scalar devspec2array("TYPE=SONOSPLAYER:FILTER=transportState=PLAYING:FILTER=currentTrackProvider!=Gruppenwiedergabe.*") }
Ich möchte die Sprachausgabe nur dann starten, wenn maximal 1 Player im ganzen Haus gerade spielt....

Ich bin gerade noch dabei, herauszufinden, ob man einfach ein MP3 mit ID3v2-Tag erkennen kann. Meine MP3s haben immer einen solchen Tag, und kommen deshalb nicht als Ergebnis zurück... ist aber nicht Kriegsentscheidend...

Den Satz verstehe ich nicht ganz?!?

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 27 Januar 2016, 11:39:48
Hi JoeALLb,

das mit den gerade spielenden Playern schaue ich mir mal an.

Der Satz mit dem ID3v2-Tag bezog sich auf die neue Rückgabemöglichkeit bei Kommandos.
Dort wird die Rückgabe des Kommandos einer Identifikation unterzogen, um zu erkennen, ob ein Audio-Stream zurückgegeben werden soll.
Diese Erkennung funktioniert nicht, wenn die Rückgabedaten eine MP3-Datei mit ID3v2-Tag sind. Ob das oft vorkommt sei mal dahingestellt (deswegen ja auch nicht soo wichtig), aber der vollständigkeithalber sollte es noch dazu...

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PSI69 am 27 Januar 2016, 21:50:10
Super Modul - das Einrichten ging einfach, die ersten Nachrichten waren schnell geschickt. Und dann, dann kam mein Problem: Ich hätte nicht gedacht, mit dem Bot den FHEM in eine Boot-Endlosschleife zu schicken...

Meine Konfig:
#
# Telegram Interface
#
define TeleBot TelegramBot xxxxxxxxxxxxxxxxxxxxx
attr TeleBot cmdKeyword doit
# entspricht Account xxxx
attr TeleBot cmdRestrictedPeer 11111111
attr TeleBot defaultPeer xxxx
attr TeleBot pollingTimeout 20
attr TeleBot favorites shutdown restart
attr TeleBot cmdFavorites /short

Ich habe mir also einen Favoriten auf das 'shutdown restart' Kommando vom FHEM angelegt, ich dachte, es sei eine gute Idee, den FHEM bei Problemen per Kommando in den Reboot zu senden; schön. Am Telefon mittels '/short' im Telegram die Liste der Favoriten abgefragt, gewartet, das die Antwort kommt und gewundert, dass das Webinterface vom FHEM im Browser weg war.

Meine Lösungsversuche:
Reboot RasPi - negativ
Stop FHEM (sudo /etc/init.d/fhem stop); in der fhem.cfg alle Einträge vom TeleBot entfernen - negativ; Irgend ein Prozess setzt das Konfig File wieder auf den alten Stand, sobald ich den FHEM wieder starte und die Schleife geht weiter.

Steht auch schön im Logfile:
2016.01.27 21:29:27 0: Server shutdown
2016.01.27 21:29:30 1: Including fhem.cfg
2016.01.27 21:29:31 3: telnetPort: port 7072 opened
2016.01.27 21:29:31 3: WEB: port 8083 opened
2016.01.27 21:29:31 3: WEBphone: port 8084 opened
2016.01.27 21:29:31 3: WEBtablet: port 8085 opened
2016.01.27 21:29:31 2: eventTypes: loaded 48 events from ./log/eventTypes.txt
2016.01.27 21:29:31 3: Opening CUL433 device /dev/ttyACM0
2016.01.27 21:29:32 3: Setting CUL433 serial parameters to 9600,8,N,1
2016.01.27 21:29:32 3: CUL433 device opened
2016.01.27 21:29:32 3: CUL433: Possible commands: BbCFiAZNkGMKUYRTVWXefmLltux
2016.01.27 21:29:32 1: HMLAN_Parse: HMUSB new condition disconnected
2016.01.27 21:29:32 3: Opening HMUSB device 127.0.0.1:1234
2016.01.27 21:29:32 3: HMUSB device opened
2016.01.27 21:29:32 1: HMLAN_Parse: HMUSB new condition init
2016.01.27 21:29:32 0: Server shutdown
2016.01.27 21:29:35 1: Including fhem.cfg

Wer kann mir helfen, den Wahnsinn zu stoppen?
Als letzten Notnagel habe ich ein dd der kompletten SD auf dem NAS, da will ich aber jetzt noch nicht ran.

Eine Frage noch: Wie kann man so etwas (Restart FHEM per Telegram) besser als ich lösen? Oder besser gar nicht?!?

Vielen Dank im Voraus!
Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 Januar 2016, 23:46:39
Super Modul - das Einrichten ging einfach, die ersten Nachrichten waren schnell geschickt. Und dann, dann kam mein Problem: Ich hätte nicht gedacht, mit dem Bot den FHEM in eine Boot-Endlosschleife zu schicken...


Aua, jetzt dachte ich durch Erwähnung in der commandref und Abfangen des Befehls alles gemacht zu haben, aber jetzt stelle ich fest, dass ich nur auf shutdown selbst überprüfe. Das muss ich wohl noch Ändern.

2 Varianten:
- In Github ist eine neue Version, die den Shutdown-Befehl abfängt - Diese kannst Du manuell über die jetzige drüberkopieren dann müsste es aufhören
- Den Perl-Prozess selbst per kill beenden und dann die Änderung an der cfg durchführen, dann sollte auch Ruhe sein. Eigentlich musst Du in der cfg auch nur das Attribut für cmdRestrictedPeer auf einen unbekannten peer setzen (nicht löschen)

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 28 Januar 2016, 00:03:03
Der Satz mit dem ID3v2-Tag bezog sich auf die neue Rückgabemöglichkeit bei Kommandos.
Dort wird die Rückgabe des Kommandos einer Identifikation unterzogen, um zu erkennen, ob ein Audio-Stream zurückgegeben werden soll.
Diese Erkennung funktioniert nicht, wenn die Rückgabedaten eine MP3-Datei mit ID3v2-Tag sind. Ob das oft vorkommt sei mal dahingestellt (deswegen ja auch nicht soo wichtig), aber der vollständigkeithalber sollte es noch dazu...


Ich habe mir das gerade nochmal angeschaut, ja ich habe ja MP3 bereits vorbereitet, allerdings nicht mit den ID3v2 tags. Problem ist dass diese Datein mit ID3 anfangen und das war mir zu unsicher, da dieser Text auch mal am Anfang von normalen RÜckgaben/Nachrichten auftreten kann.

Ich habe jetzt mal einiges an MP3-Files angeschaut und bei meinen Versuchen würde eine Erkennung mit folgendem regexp gehen:

$msg =~ /^ID3.\x00/
Ich habe das mal so in github eingechecked, vielleicht reicht das ja aus?

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PSI69 am 28 Januar 2016, 09:11:43
Hallo Johannes,

danke für die schnelle Antwort zu später Stunde!

Und, wer lesen kann, ist wie immer im Vorteil... in der commandref ist klar die Endlosschleife erwähnt.

Ich habe das aktuelle File und spiele das dann mal ein.

Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 28 Januar 2016, 09:42:48
Hi Johannes,

das war auch einer meiner ersten Gedanken. Allerdings ist diese \x00 ein Teil der Versionsnummer des ID3-Tags, und könnte damit auch mal ungleich 0 sein :)
Unter http://id3.org/id3v2.3.0#ID3v2_header (http://id3.org/id3v2.3.0#ID3v2_header) gibt es eine Beschreibung des 10Byte Headers. Demnach ist dort am Anfang lediglich die ID3-Textfolge fest.

Meine Idee ging jetzt in die Richtung, dass ich diese 10 Bytes auslese, die Position für den Anfang des eigentlichen MP3-Files ausrechne (die Anzahl der Bytes für den ID3-Tag selbst stehen mit im Header), und dort die eigentlichen MP3-Identifiier suche... Ich komme da aber momentan nicht zu...

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 06 Februar 2016, 22:44:07
Hallo Reiner,

klasse mit dem PNG. Das habe ich schon lange gesucht!
Interesse halber, wo befindet sich den /tmp genau?
Im Root unter /tmp sehe ich bei mir keine PNGs.


Dabei bleiben aber Reste im tmp-Ordner übrig, die man irgendwann mal wegräumen könnte/müsste. Da der Plot jeweils nur eine Datei übrig lässt, bleibt das aber im Rahmen...

Grüße
Reiner

Gruß
Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 07 Februar 2016, 00:30:56
Hi Johannes,

das war auch einer meiner ersten Gedanken. Allerdings ist diese \x00 ein Teil der Versionsnummer des ID3-Tags, und könnte damit auch mal ungleich 0 sein :)
Unter http://id3.org/id3v2.3.0#ID3v2_header (http://id3.org/id3v2.3.0#ID3v2_header) gibt es eine Beschreibung des 10Byte Headers. Demnach ist dort am Anfang lediglich die ID3-Textfolge fest.

Meine Idee ging jetzt in die Richtung, dass ich diese 10 Bytes auslese, die Position für den Anfang des eigentlichen MP3-Files ausrechne (die Anzahl der Bytes für den ID3-Tag selbst stehen mit im Header), und dort die eigentlichen MP3-Identifiier suche... Ich komme da aber momentan nicht zu...

Grüße
Reiner

Da ich die Analyse auf die verschiedenen Dateiformate bei jeder Nachricht durchführen muss, will ich vermeiden, dass das zuviel Rechenaufwand verbraucht. Ich habe deshalb jetzt mal auf die aktuell verwendeten/definierten ID3V2-Versionen geprüft
(Also 2.2.x / 2.3.x / 2.4.x wobei 2.4.x wohl noch relativ wenig in Benutzung sind)

Johannes
Titel: TelegramBot - Version 1.4 in SVN
Beitrag von: viegener am 07 Februar 2016, 00:39:59
Die aktuelle Version 1.4 ist jetzt auch im SVN abgelegt und dann mit dem nächsten FHEM Update verfügbar.

Wesentliche Änderungen:

Das Empfangen von Mediendateien im Bot (Bilder, etc). Sobald ein solcher Empfangen wird, kann man über einen weiteren Aufruf den URL zur Datei (bei Telegram) erhalten. Dieser URL ist nur temporär verwendbar.
Achtung: Der URL enthält dann auch das TelegramBot AuthToken!

Das Senden von Mediendateien direkt im Aufruf ohne den Umweg erst eine Datei anlegen zu müssen. Das Dateiformat wird dabei aus dem Stream abgeleitet (MP3, PNG, JPG, PDF und Office-Docs sind unterstützt).



Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 07 Februar 2016, 16:39:26
Hallo Gerd,

der Ordner liegt auf oberster Ebene (deshalb ja mit einem "/" beginnend :) ).
Mittels
ls -la /tmp/plot_*.png
kannst du dir die bereits erzeugten Dateien (zumindest wenn du mein Codebeispiel übernommen hast) auflisten lassen.

Wie gesagt, räumt sich das nicht von selber auf, ist aber schon mal an einer Stelle, die für temporäre Dateien vorgesehen ist :)

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 08 Februar 2016, 22:36:00
Hallo Reiner,

ich bin gerade etwas verwundert.

Ich habe als Favoriten z.B. folgendes in meinem Bot stehen :
Zitat
/Luftdruck={plotAsPng('SVG_log_LI_28_A3D984001605_1')}

Damit und zu allen anderen Sensoren kann ich mir jeweils ein Bild der Aufzeichnung schicken lassen.
Diese Zeile habe ich in der Hilfe zum TelegramBot gesehen.

Nun bin ich davon ausgegangen das dies irgend wie mit deinem Perl-Beispiel aus der 99_myUtils.pm zusammen hängt.
Nach dem ich aber in dieser alles auskommentiert habe, geht die Funktion weiter hin.

Ich hatte dein Beispiel kopiert und nach Misserfolg noch die Library wie geschrieben installiert und dann tat es.
Erst als ich noch ein Text mit ausgeben wollte um zu sehen wo den bei mir das /tmp ist, habe ich bemerkt das die
Zeilen in der 99_myUtils.pm gar nicht angesprochen werden  ::).

Und bin nun der Meinung das dein Beispiel nichts mit meinem Befehl und folglich auch nichts mit den Temp-Verzeichnis zu tun hat ???

Den ich hatte in deinem Beispiel bei mir vergessen den Bot umzubenennen.
Und war kurz erstaunt das es überhaupt funktionierte.

Demnach hat Johannes die Funktion in den TelegramBot eingebaut.
Wen dem so ist, kann natürlich auch nichts im /tmp stehen bleiben , hatte mit dem MC auf dem RPi gesucht und nichts gefunden :)

Aber für weitere Beispiele ist das auch praktisch. Programmiere zwar sporadisch etwas in Perl, aber das FHEM-Spezielle
erschliesst sich mir nicht immer sofort.

Danke fürs zuhören.

Gruss
Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 08 Februar 2016, 23:49:34
Hallo Gerd,

da hast du recht. Mittlerweile kann das TelegramBot-Modul direkt binäre Ergebnisse versenden. Dazu wird direkt im binären Stream geschaut, was für ein Typ das Ergebnis ist, damit die Antwort korrekt gemeldet werden kann.

Die Funktion "plotAsPng()" kommt direkt aus dem zentralen SVG-Modul. Allerdings muss man besagte Library in Perl nachinstallieren...
Mein "sendPlot()"-Beispiel ist nur noch für die Suppe :) Der einzige Vorteil ist noch, dass man direkt einen Text mitgeben kann, der dann unter dem Plot dargestellt wird. Ich lasse mir z.B. täglich Morgens die Aussentemperaturkurve der letzten 24 Stunden zusenden. Solche Infos sende ich mir gerne mit einem Untertitel, um mitzuteilen, warum das nun gesendet wurde...
Die neue Variante verwende ich für meine direkten Anweisungen für Plots, die ich gerne sehen möchte, aber keine große Vorbereitung getroffen habe. Da steht dann ja auch mein Befehl im Chat direkt drüber, und ich weiß, warum ich das Ergebnis erhalte :)

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 09 Februar 2016, 00:45:49
Den ich hatte in deinem Beispiel bei mir vergessen den Bot umzubenennen.
Und war kurz erstaunt das es überhaupt funktionierte.

Demnach hat Johannes die Funktion in den TelegramBot eingebaut.
Wen dem so ist, kann natürlich auch nichts im /tmp stehen bleiben , hatte mit dem MC auf dem RPi gesucht und nichts gefunden :)

Aber für weitere Beispiele ist das auch praktisch. Programmiere zwar sporadisch etwas in Perl, aber das FHEM-Spezielle
erschliesst sich mir nicht immer sofort.


Ich kann zumindest folgendes erhellen:

Die Funktion plotAsPng stammt eigentlich aus dem SVG-Modul, ich habe nur die Möglichkeit in TelegramBot eingebaut, dass Daten direkt an den Bot übergeben werden können, die dann als Bilder/Audio oder Dokument über Telegram versendet werden, ohne dass man erst eine Datei erzeugen muss.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 09 Februar 2016, 11:07:40
Hallo zusammen,

danke für Eure Antworten.

Ich hatte mich schon gewundert das ich etwas in die 99_myUtils.pm rein schreibe welches dann nicht per Bot aufgerufen wurde :=)
Aber so ist das ganze doch wesentlich einfacher.

Vielleicht kann Johannes bei Gelegenheit noch die Möglichkeit schaffen ein Kommentar dem Bild mit zu geben  ::)

Danke

Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 09 Februar 2016, 12:11:40
Hallo Gerd,

natürlich kann das das Modul bereits (deswegen kann ich es ja in meiner "sendPlot()" verwenden).
Nur geht das natürlich nicht bei einer Antwort eines Perl-Aufrufs. Der Aufruf kann ja nur ein Ergebnis liefern. Hier wären aber zwei notwendig. Und dann müsste vermutlich irgendwo noch stehen, was denn für ein Text mitgesendet werden sollte...

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 09 Februar 2016, 13:52:12
Hallo Johannes,

besteht die Möglichkeit, dass das Modul Nachrichten für den Versand puffert, wenn gerade keine Verbindung zum Internet besteht?

Ich habe momentan eine halbdefekte Fritzbox im Betrieb (der Austausch zieht sich leider hin) die in unmotivierten Zeitabständen das Internet neu verbindet. Wenn gerade in einem solchen Zeitraum eine Message versendet werden sollte, wird sie nach einer Timeout-Fehlermeldung verworfen...

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 13 Februar 2016, 15:45:31
Hallo Johannes,

ich schon wieder :)

Ich baue gerade eine ganze Menge Mitteilungen in mein System ein. Momentan geht das nur an mich, allerdings besteht so langsam ein Bedarf, dass manche Mitteilung auch an andere Familienmitglieder gesendet wird.
Dafür wäre es viel einfacher, wenn man dem Modul eine (bzw. mehrere) Gruppe(n) definieren könnte, die man beim Versenden der Nachrichten angibt, und einfach nachträglich zentral am Modul anpassen könnte.
Dabei wollte ich absichtlich nicht auf einen bestimmten Chat zurückgreifen, sondern das ganze Fhem-intern abwickeln.

Man könnte z.B. ein Attribut definieren:
attr telegram sendGroups &Fenster:@Nutzer1,@Nutzer2 | &Türen:@Nutzer1,@Nutzer3 | &Batterien:@Nutzer2,@Nutzer4

Dann könnte man eine Nachricht an diesen Empfängerkreis senden mit
set telegram msg &Batterien Die Batterie von Device xyz ist leer!
Wobei das absichtlich jeweils eine eigene Kopie an jeden Empfänger ist, und somit äquivalent zu
set telegram msg @Nutzer2 @Nutzer4 Die Batterie von Device xyz ist leer!
wäre.

Dafür kann man später sehr einfach den Empfängerkreis für Batteriemeldungen anpassen, ohne bei den einzelnen Meldungen eine Anpassung vornehmen zu müssen...

Ich kann dich da auch gerne unterstützen :)

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 14 Februar 2016, 15:14:39
Hallo Johannes,

ich schon wieder :)

Ich baue gerade eine ganze Menge Mitteilungen in mein System ein. Momentan geht das nur an mich, allerdings besteht so langsam ein Bedarf, dass manche Mitteilung auch an andere Familienmitglieder gesendet wird.
Dafür wäre es viel einfacher, wenn man dem Modul eine (bzw. mehrere) Gruppe(n) definieren könnte, die man beim Versenden der Nachrichten angibt, und einfach nachträglich zentral am Modul anpassen könnte.
Dabei wollte ich absichtlich nicht auf einen bestimmten Chat zurückgreifen, sondern das ganze Fhem-intern abwickeln.

Man könnte z.B. ein Attribut definieren:
attr telegram sendGroups &Fenster:@Nutzer1,@Nutzer2 | &Türen:@Nutzer1,@Nutzer3 | &Batterien:@Nutzer2,@Nutzer4

Dann könnte man eine Nachricht an diesen Empfängerkreis senden mit
set telegram msg &Batterien Die Batterie von Device xyz ist leer!
Wobei das absichtlich jeweils eine eigene Kopie an jeden Empfänger ist, und somit äquivalent zu
set telegram msg @Nutzer2 @Nutzer4 Die Batterie von Device xyz ist leer!
wäre.

Dafür kann man später sehr einfach den Empfängerkreis für Batteriemeldungen anpassen, ohne bei den einzelnen Meldungen eine Anpassung vornehmen zu müssen...

Ich kann dich da auch gerne unterstützen :)

Grüße
Reiner

Kein Problem: Anregungen sind immer willkommen!

Ich verstehe Deine Anfrage und auch, warum Du keine Chat-Id verwenden willst. Aber eigentlich gibt es doch dafür extra Gruppen in Telegram? Mir ist jetzt noch nicht klar, welchen Nutzen eine eigene Gruppenverwaltung im FHEM-Modul bieten würde. Ich arbeite bei mir fast nur mit den Benutzerids und das ist sicherer aber natürlich nicht sehr nutzerfreundlich.

Also die Frage, warum keine Telegram-Benutzergruppen dafür verwenden?

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 14 Februar 2016, 15:19:26
Hallo Johannes,

besteht die Möglichkeit, dass das Modul Nachrichten für den Versand puffert, wenn gerade keine Verbindung zum Internet besteht?

Ich habe momentan eine halbdefekte Fritzbox im Betrieb (der Austausch zieht sich leider hin) die in unmotivierten Zeitabständen das Internet neu verbindet. Wenn gerade in einem solchen Zeitraum eine Message versendet werden sollte, wird sie nach einer Timeout-Fehlermeldung verworfen...

Grüße
Reiner

Ahh, das macht natürlich Sinn. Wenn man sich auf Telegram als Info zu wichtigen Ereignissen verlassen soll, dann sollte es eine Art "guaranteed delivery" geben.

Fragen dazu:

- Ich würde allerdings trotzdem eine Art "timeout" oder max-retries vorsehen, also wenn nach einer bestimmten Zeit oder eine bestimmten Anzahl von Versuchen kein durchkommen ist, wird aufgegeben? (meine Vorstellung wäre default ist 24h)
- Sollten die gepufferten Meldungen auch einen Neustart überleben? - Mein Vorschlag: erstmal nicht

Gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 14 Februar 2016, 17:03:00
Hi Johannes,

danke schon mal für deine Reaktion.

zu den Gruppen: Ich wollte die wirklichen Empfänger im Prinzip darüber im unklaren lassen, wer die Nachricht noch so alles bekommen hat. Wenn ich eine Gruppe bei Telegram richtig verstehe, dann sieht jeder ja, wer noch enthalten ist, und man bekommt bei Veränderungen auch immer Nachrichten darüber (was im Normalfall nun ja auch wirklich sinnvoll ist).

Ich wollte (sind ja hauptsächlich meine Familienmitglieder) nicht mit zusätzlichen Infos spammen, sondern, sozusagen im Untergrund, die Zustellungsgruppen anpassen können.

Zu dem Buffer: Ich denke auch, dass es im ersten Schritt keinen Neustart überstehen muß, und ein 24h Timeout tut auch nicht weh und erscheint mir ebenfalls sinnvoll. Dann bereinigt sich das System auf jeden Fall selber. Die seltenen Fälle von Neustart (wegen Update oder so) dürfen dann halt nicht mit fehlendem Internet zusammenfallen :).
Mein Fhem läuft ja stabil (auch wenn die Perfomance wegen des sporadisch fehlenden Internets stark absinkt), nur mein Internet momentan überhaupt nicht :(
Ich bin da gerade sicherlich auch ein Sonderfall, aber auch der normale 24h-Trenner kann ja im ungünstigsten Fall zu einer Nachrichtenverhinderung führen...

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 15 Februar 2016, 00:21:38
Hallo Reiner,
bei den Gruppen bin ich noch nicht überzeugt, ich tue mich da etwas schwer, die Funktionalität von Telegram im Modul zu doppeln. Bei mir sollen auch alle potentiellen Empfänger mitbekommen, wenn Sie Teil einer Gruppe/Verteilerliste sind (eigentlich sollen Sie sich auch selber aus der Liste entfernen können).
Ist es möglich das innerhalb von FHEM z.B. mit dem msg-Befehl abzuwickeln?

Die Änderung zum Resend habe ich mal vorbereitet, dabei ist mir aber klar geworden, dass es verschiedene Fälle gibt:
a) Fehler, die in FHEM liegen -> Hier möchte man kein retry, damit man die Fehlermeldung sofort lösen kann
b) Temporäre Fehler (timeout, Netzwerkfehler wie bei Dir, etc) -> Retry macht Sinn
c) Generelle Fehler (Account falsch, Format nicht unterstützt etc) -> Eigentlich kein Retry

Nur im Fall b möchte man einen Retry haben. Da ich das gerne unterscheiden möchte, wäre die Frage welche Fehlermeldung bekommst Du denn bei Netzwerkfehlern (in sentMsgResult?

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 15 Februar 2016, 13:09:05
Hi Johannes,

das mit den Gruppen ist auch nicht Kriegsentscheidend. Da die meisten meiner Nachrichten mit einem umliegenden DOIF versendet werden, habe ich ja sehr einfachen Zugriff auf Readings von Devices. Ich lege mir einfach zu jeder "Gruppe" ein Reading mit den Benutzern an, wie es beim "set telegram msg"... als erstes geschrieben werden muss, und kann damit meine Gruppen intern im Reading verwalten...
Ich würde das auch nicht Gruppenverwaltung nennen, sondern eher als Zweck-Alias für einen oder mehrere Benutzer sehen. Damit kann ich locker leben... es sollte ja nur ein Vorschlag sein...

Zu dem ausfallenden Internet:
Ich habe das mal gerade beobachtet. Erst steht dort ein "WAITING" drin, und nach kurzer Zeit (vielleicht 20-60s, ich habe leider nicht auf die Uhr gesehen) dann "NonBlockingGet: returned connect to to https://api.telegram.org:443 timed out" (mit dem doppelten "to").

Wie möchtest du denn a) erkennen? Zwischen b) und c) sehe ich ja noch eine gute Differenzierbarkeit, aber bei a) hört die Erkennbarkeit doch auf, oder? Sonst könntest du mit deinem Code ja die allgemeine Fehlersuche in Fhem revolutionieren :)

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 15 Februar 2016, 13:51:01
Zu dem ausfallenden Internet:
Ich habe das mal gerade beobachtet. Erst steht dort ein "WAITING" drin, und nach kurzer Zeit (vielleicht 20-60s, ich habe leider nicht auf die Uhr gesehen) dann "NonBlockingGet: returned connect to to https://api.telegram.org:443 timed out" (mit dem doppelten "to").

Wie möchtest du denn a) erkennen? Zwischen b) und c) sehe ich ja noch eine gute Differenzierbarkeit, aber bei a) hört die Erkennbarkeit doch auf, oder? Sonst könntest du mit deinem Code ja die allgemeine Fehlersuche in Fhem revolutionieren :)

Hallo Reiner,
das mit der Meldung hilft, denn das entspricht der Meldung, die ich bei mir provoziert habe.

Bei a) war ich vielleicht nicht ausführlich genug. Ich meinte damit, wenn beim Erstellen der Daten innerhalb von FHEM für den Request ein Problem auftritt (Content zu lang, Contact nicht bekannt, etc), ist das voraussichtlich nicht selbstreparierend. Es gibt die Phase in dem die Daten für den Request zusammengestellt werden, bevor der eigentliche Request an die HTTPUtils/http-nonblocking get übergeben wird. Diesen Fall kann ich im Code natürlich unterscheiden. Sollte hier ein Problem auftreten würde ich keine Wiederholung versuchen.

Also keine Revolution, nicht mal besonders ausgefuchst...
Gruss,
Johannes

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 19 Februar 2016, 01:35:32
Hallo Johannes,

besteht die Möglichkeit, dass das Modul Nachrichten für den Versand puffert, wenn gerade keine Verbindung zum Internet besteht?

Ich habe momentan eine halbdefekte Fritzbox im Betrieb (der Austausch zieht sich leider hin) die in unmotivierten Zeitabständen das Internet neu verbindet. Wenn gerade in einem solchen Zeitraum eine Message versendet werden sollte, wird sie nach einer Timeout-Fehlermeldung verworfen...

Grüße
Reiner

@Reiner: So  ich habe in github mal eine erste Version gestellt, die Nachrichten puffert und weider versendet in abgestuften Intervallen.
Es gibt esin Attribut maxRetries, bei dem man die Werte 0 (kein erneuter Versuch) bis 5 (5 weitere Sendeversuche) einstellen kann. Der erste Neuversuch findet nach 10s statt, dann nach 100s, 1000s(15min), 10000(~3h), ~1tag

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: ulli am 21 Februar 2016, 10:59:07
Ich habe zur Zeit immer das Problem das sich mein FHEM verabschiedet mit folgender Fehlermeldung im Log:
2016.02.21 00:00:17 3: TelegramBot_Callback Telegram: Digest: Number of poll failures on 2016-02-20 is :1:
Bizarre copy of ARRAY in scalar assignment at /usr/share/perl/5.14/Carp.pm line 140.

Kann sich das wer erklären?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Februar 2016, 13:45:25
Ich habe zur Zeit immer das Problem das sich mein FHEM verabschiedet mit folgender Fehlermeldung im Log:
2016.02.21 00:00:17 3: TelegramBot_Callback Telegram: Digest: Number of poll failures on 2016-02-20 is :1:
Bizarre copy of ARRAY in scalar assignment at /usr/share/perl/5.14/Carp.pm line 140.

Kann sich das wer erklären?

Im ersten Moment bin ich mal überfragt, denn Carp ist ein perl-Core-Modul, dass vermutlich an verschiedenen Stellen indirekt zum Einsatz kommt.

Die TelegramBot-Meldung sagt eigentlich nur aus, dass über die letzten 24h nur einmal ein Problem beim Pollen von Nachrichten aufgetreten ist. Das ist also eher gut und eigentlich auch kein Fehler. Ob die danachfolgende Meldung damit zusammenhängt kann ich erstmal nicht beurteilen.

Du solltest mal global stacktrace einschalten, um damit mehr Info über den Verursacher zu bekommen. Ausserdem wäre es gut bei Telegram mal das Attribut verbose auf den Wert 5 zu setzen, um festzustellen, wo möglicherweise das Problem auftritt.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Spiff am 21 Februar 2016, 17:16:33
Hi,

ich versuceh auch gerade, das Modul einzurichten.
Leider (, leider) ist fhem bei mir auf einem Windows-PC installiert und ich habe SSL-Probleme.
Nachrichten kommen weder rein, noch gehen sie raus. Über den Browser funktioniert es.

Ich habe diese beiden sslVersion-Einstellungen ausprobiert:

TLSv12:!SSLv3
PollingLastError
NonBlockingGet: returned : Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error SSL wants a read first SSL connect attempt failed with unknown error SSL wants a read first

SSLv23:!SSLv3:!SSLv2
PollingLastError
NonBlockingGet: returned : Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Ich nutze ActivePerl 5.16.3.1603 und das IO-Socket-SSL-Package ist in der Version 1.955 (site) und 1.84 (perl) installiert.

Hat jemand eine Idee, was ich noch probieren könnte?

Danke + Gruß
Spiff.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Februar 2016, 20:24:17
Hi,

ich versuceh auch gerade, das Modul einzurichten.
Leider (, leider) ist fhem bei mir auf einem Windows-PC installiert und ich habe SSL-Probleme.
Nachrichten kommen weder rein, noch gehen sie raus. Über den Browser funktioniert es.

Ich habe diese beiden sslVersion-Einstellungen ausprobiert:

TLSv12:!SSLv3
PollingLastError
NonBlockingGet: returned : Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error SSL wants a read first SSL connect attempt failed with unknown error SSL wants a read first

SSLv23:!SSLv3:!SSLv2
PollingLastError
NonBlockingGet: returned : Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Ich nutze ActivePerl 5.16.3.1603 und das IO-Socket-SSL-Package ist in der Version 1.955 (site) und 1.84 (perl) installiert.

Hat jemand eine Idee, was ich noch probieren könnte?

Danke + Gruß
Spiff.

Ich habe leider jetzt aktuell keinen Windows-Rechner mit perl / FHEM, deshalb kann ich vermutlich nicht helfen. Die erste Meldung kommt aber zumindest auch unter Linux vor. Normalerweise tritt diese Meldung unter Linux nur gelegentlich auf (bei mir). Vielleicht ist das auch unter Windows nur ein sporadischer Fehler?

Vielleicht gibt es ja andere, die es unter Windows zum Laufen gerbacht haben?
 
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Spiff am 23 Februar 2016, 15:59:52
Hi,

was mir vielleicht helfen würde, wäre, wenn jemand mir bestätigen könnte, dass es vielleicht mit den Versionen von IO::SOCKET::SSL, die ich drauf habe und der aktuellen fhem-Version nicht funktioniert.
Die aktuelle Version ist ja 2.024, die bekomme ich auf meiner Version von ActivePerl 5.16.3.1603 nicht installiert.
Ich kann Perl leider gerade nicht aktualisieren, weil dann wiederum ein anderes notweniges, aber veraltetes Package seinen Dienst versagt...  ::)

Könnte jemand mal auf IO::SOCKET::SSL 1.84 und/oder 1.955 downgraden und sehen, ob es auf Nicht-Windows-Systemen dann läuft?
Nur, wenns nicht zu umständlich ist... ich habe leider kein anderes System zur Verfügung.

Danke + Gruß
Spiff
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: The-Holgi am 29 Februar 2016, 17:13:59
Hallo,
habe folgende Meldung im log gefunden:
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 319, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 555, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 972, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 1831, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 1841, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 1941, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 2006, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 2020, <$fh> line 1323.
keys on reference is experimental at ./FHEM/50_TelegramBot.pm line 2024, <$fh> line 1323.

Hat jemand eine Idee was das zu bedeuten hat ?
Funktionieren tut das Modul wie gehabt, die Meldungen sind aber neu. Eventuell nach update von whezzy auf jessie aufgetaucht.

Gruß Holgi
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 29 Februar 2016, 21:37:10
@The-Holgi: Musste mich auch erst schlau machen, die Meldung ist neu mit perl 5.20. Sollte in diesem Fall nicht problematisch sein. Ich werde aber einen Fix machen, damit die Meldung nicht mehr auftauchen wird. Bei mir kommt sie wg. perl 5.14 nicht vor.

Danke für den Hinweis!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: The-Holgi am 29 Februar 2016, 21:56:12
OK, Danke für die Info.

Gruß Holgi
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 07 März 2016, 23:03:44
@The-Holgi: Im Github ist eine neue Version, die keine Fehler mehr produzieren sollte (hoffentlich)...

Ausserdem habe ich eine neue Möglichkeit hinzugefügt bei Favoriten noch eine Sicherheitsabfrage vorzusehen, damit man nicht unabsichtlich einen Befehl verschickt. Dazu setzt man einfach ein Fragezeichen vor den Favoriten. Also steht dann in der Liste so etwas wie:
list mydummy; ?set confirmationdevice on; set justanotherdevice off
Beim Aufruf des 2. Favoriten wird dann erst eine Rückfrage gesendet (Keyboard mit Befehl oder Abbruch) und nur wenn die Bestätigung gesendet wird beginnt die Ausführung.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 08 März 2016, 20:50:45
Wenn ich die "Confirmation" - Abbreche liefert er mir immer wieder das Confirmation Keyboard zurück zeigt mir also nicht mehr die Standard "Favorite" befehle ansonsten wäre das ein klasse feature, Vielen Dank!! :)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 08 März 2016, 23:09:06
@speex: Ich konnte das bisher bei mir nicht nachstellen, kannst Du mir sagen wo und wie genau das auftritt?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 09 März 2016, 01:20:21
Wenn Ich einen Befehl absetze und die "Sicherheitsfrage" bestätige oder abbreche - ist egal - zeigt er mir immer wieder die sicherheitsfrage anstatt das ursprüngliche "favorite-keyboard" mit dem "favorite-attribut-command" komm ich dann wieder raus und er liefert mir wieder das favorite keyboard. - hoffe das war jetzt nachvollziehbar. :)

Ich drück halt immer faul auf das quadrat mit den vier punkten. :D
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 09 März 2016, 10:04:28
@speex: Der entscheidende Hinweis war das Quadrat mit den 4 Punkten.

Leider ist das von Dir beobachtete Verhalten eigentlich ein Fehler im telegram client. Die Custom-Keyboards werden eigentlich nur einmal angezeigt und sollten dann wieder verschwinden, der Telegram-Client merkt sich immer das letzte und zeigt es bei Druck auf den Knopf mit den 4 Punkten an. Wenn das letzte Custom-Keyboard eben die Bestätigungsabfrage war, erscheint eben das bei Druck auf den Knopf.

Da ich kein Custom-Keyboard liefern kann, ohne dass es angezeigt wird, habe ich leider keine Möglichkeit das von Dir gewünschte Verhalten (Nach der Bestätigung wird ein Favorite-Keyboard gesendet aber nicht angezeigt) herzustellen.

Leider musst Du nach der Bestätigung noch einmal das favorite-cmd senden, damit das keyboard wieder erscheint.


Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 11 März 2016, 17:02:58
Hi ja das habe ich zwischenzeitlich jetzt auch festgestellt irgendwie finde ich das etwas unglücklich ansonsten gefällt mir das feature sehr!

Mir gelingt es gerade nicht die Sprachausgabe per Sonos einzurichten mit Reinerleins Code Schnipsel, ich habe irgendwie das gefühl das die sub writeFile bei mir nicht greift wenn ich eine Sprachnachricht verschicke pausiert sonos kurz und macht dann weiter, im SonosSpeak ordner werden auch keine Files angelegt hat da jemand Rat für mich? :)

get teleBot urlForFile AwADAgADGwAD8dhkB3yRUmTC2JwVAg : https://api.telegram.org/file/bot137804761:AAGTAIqmDanDgdX_Qf8zsEhPrZPPwidQakk/voice/file_19.oga
avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
/mnt/SonosSpeak/teleBot_file_19.oga: No such file or directory

Mein notify sieht wie folgt aus:
teleBot:msgText:.received.voice.* {
  my $url = fhem("get $NAME urlForFile ".ReadingsVal($NAME, 'msgFileId', ''));
  my $fileName = "${NAME}_$1" if ($url =~ m/.*\/(.*)/);
  my $newFileName = "$1.mp3" if ($fileName =~ m/(.*)\..*/);

  writeFile('/mnt/SonosSpeak/'.$fileName, get($url));
  qx(/usr/bin/avconv -i /mnt/SonosSpeak/$fileName /mnt/SonosSpeak/$newFileName);
  fhem('set '.ReadingsVal($NAME, 'currentSpeakPlayer', 'tmperror').' PlayURITemp \\\\192.168.0.132/SonosSpeak/'.$newFileName.' '.ReadingsVal($NAME, 'currentSpeakVolume', 5));
}
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Christian Uhlmann am 17 März 2016, 13:54:15
Hallo zusammen,

weiß jemand ob Supergruppen https://telegram.org/blog/supergroups5k (https://telegram.org/blog/supergroups5k) unterstützt werden?


Danke und Grüße

Christian
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 17 März 2016, 22:13:39
@christian.uhlmann: Kann leider keine Aussage dazumachen, da ich keine meiner Gruppen bisher umwandeln konnte und eine Option für neue Gruppen habe ich auch bishe rnicht gefunden. Also: ist ungetestet
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: schnitzelbrain am 19 März 2016, 19:12:36
Erst mal ein lob für das tolle Modul  :D

ich setze das Modul als Meldung ans Handy über einen DOIF ein.
Heute ist jetzt das erste mal folgendes passiert:
TelegramBot_DoUrlCommand XXXBot: FAILED http access returned error :https://api.telegram.org/botxyz:abc/getMe: Can't connect(2) to https://api.telegram.org:443: 
SSL wants a read first:

Ich hab gesehen das ein Retry zum Senden geplant ist.
Wie weit ist denn das fortgeschritten ?
Beziehungsweise würde dieser Fehler auch zu einem retry führen?

Schnitzelbrain
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 19 März 2016, 22:46:15
Erst mal ein lob für das tolle Modul  :D

ich setze das Modul als Meldung ans Handy über einen DOIF ein.
Heute ist jetzt das erste mal folgendes passiert:
TelegramBot_DoUrlCommand XXXBot: FAILED http access returned error :https://api.telegram.org/botxyz:abc/getMe: Can't connect(2) to https://api.telegram.org:443: 
SSL wants a read first:

Ich hab gesehen das ein Retry zum Senden geplant ist.
Wie weit ist denn das fortgeschritten ?
Beziehungsweise würde dieser Fehler auch zu einem retry führen?


Die Fehlermeldung kann ich leider auch nicht erklären, sie scheint gelegentlich aufzutreten ist aber bei mir bisher immer nur sporadisch aufgetreten. Ich vermute es gibt gegentlich Probleme beim Aufbau der SSL-Verbindung, es gibt aber wohl keine Möglichkeit das zu verhindern.

Normalerweise sollte ein solcher Fehler zum retry führen, das konnte ich aber nicht ausprobieren, da ich den Fehler bisher immer nur beim Lesen gehabt habe,

Neue Version kommt morgen
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 19 März 2016, 22:54:59
Neue Version 1.5 ist soeben in SVN gewandert und wird ab morgen verteilt. Im wesentlichen sind nur die bereits hier beschriebenen Erweiterungen:

- retry - Mit attribut maxRetries kann man steuern, dass Sendeversuche (max 5 mit abgestuftem Intervall) wiederholt werden
- Bestätigungsdialog für favorite Kommandos

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 März 2016, 02:00:38
weiß jemand ob Supergruppen https://telegram.org/blog/supergroups5k (https://telegram.org/blog/supergroups5k) unterstützt werden?

So habe jetzt einige Tests mit supergruppen gemacht und auch noch eine neue Version in github hochgeladen, die mit supergruppen umgehen kann. Also auch umgewandelte Gruppen neu als Kontakt erkennt und auch Nachrichten in diese Gruppen senden kann.
Pinning und andere Features in supergruppen sind aber über das bot api nicht verfügbar

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: schnitzelbrain am 20 März 2016, 13:11:41
Neue Version 1.5 ist soeben in SVN gewandert und wird ab morgen verteilt. Im wesentlichen sind nur die bereits hier beschriebenen Erweiterungen:

- retry - Mit attribut maxRetries kann man steuern, dass Sendeversuche (max 5 mit abgestuftem Intervall) wiederholt werden
- Bestätigungsdialog für favorite Kommandos

Na das passt ja super.  ;D Danke für das update
Habs installiert, schau mer mal.

Grüße
Schnitzelbrain
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: schnitzelbrain am 21 März 2016, 20:32:54
Update, läuft seit gestern ohne Probleme hab den retry auf 2 gestellt.

Alle Meldungen gingen direkt durch, zumindest hab ich außer den success Polling Meldungen nix negatives gesehen.

Super arbeit  ;D


Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 23 März 2016, 18:12:41
Hallo Leute,
ich habe eben versucht TelegramBot in fhem zum laufen zu bekommen, leider stürzt fhem direkt ab, im log habe ich dann noch folgende Meldung :

2016.03.23 17:06:00 3: TelegramBot_Define TelegramBot: called
2016.03.23 17:06:01 2: TelegramBot_DoUrlCommand TelegramBot: FAILED http access returned error :https://api.telegram.org/botxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxx/getMe: Select timeout/error: :

Mein System habe ich noch mit 5.6 laufen und da alles ohne Probleme z.Z. läuft, möchte ich ungern ein Update machen oder ist das hierfür notwendig?

Grüße Marcel
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 März 2016, 20:41:39
Es kann sein, dass Deine FHEM-Version ziemlich alt ist und Du den telegrambot von Hand nachinstalliert hast?

Wenn das so ist, kann es sein, dass das nicht geht. Für telegramBot sind damals auch Änderungen an httpsrv gemacht worden, aber je nach Alter Deiner Installation kann es natürlich auch sein, dass andere Teile veraltet sind.

Sorry, ohne update kann ich Dir vermutlich nicht helfen, da ich jetzt keine alte Installation habe.

Der einzige Vorschlag wäre vielleicht auch eine aktuelle HTTPSRV nachzuinstallieren. Allerdings wäre es möglich, dass dann andere Dinge in der jetzigen Installation nicht mehr funktionieren.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 23 März 2016, 20:53:17
Danke erstmal.
Ja hab ich per hand nachinstalliert.
Ich werde morgen mal die httpsrv aktualisieren.
Da ich eh heute ein gesamtes Image meiner ssd gemacht habe, kann ich ruhig mal was versuchen. ☺

Ansonsten muss ich halt mal den Versuch mit einem kompletten update wagen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 März 2016, 23:06:57
Danke erstmal.
Ja hab ich per hand nachinstalliert.
Ich werde morgen mal die httpsrv aktualisieren.
Da ich eh heute ein gesamtes Image meiner ssd gemacht habe, kann ich ruhig mal was versuchen. ☺

Ansonsten muss ich halt mal den Versuch mit einem kompletten update wagen.

Ich würde sowieso eher vorschlagen ein komplettes update zu machen, das tut der Stabilität des Systems durchaus gut. Ausserdem ist ein regelmässiges Update normalerweise leichter zu "verdauen" als ein Update nach langer Zeit.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 24 März 2016, 08:11:13
Ich habe jetzt mein Testsystem mal geupdatet und telegram läuft jetzt.
kann ich eigentlich auch Bilder an fhem senden?
Größe Marcel
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 24 März 2016, 11:54:41
Momentan experimentiere ich mit dem versenden von Plots.
Mittels aufruf via
ok fhem {plotAsPng("test_SVG")}
funktioniert das auch wunderbar.

Gibt es aber auch eine möglichkeit das direkt aus fhem heraus zu machen?
Inetwa:
set myTelegrambot sendImage {plotAsPng("test_SVG")}

Was ich sonst gefunden habe war von hier https://forum.fhem.de/index.php?topic=38842.0 (https://forum.fhem.de/index.php?topic=38842.0)
Plot2JPEG("Name des Plots", "/opt/fhem/log/wetter.jpg");
fhem("set WhatsAppDevice image /opt/fhem/log/wetter.jpg");
Aber das ist ja irgendwie doppelt gemoppelt, da der Bot das ja eigentlich unterstützt.

Grüße
igami
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: raimundl am 24 März 2016, 21:13:09
Hallo!

Habe bis dato keine Frage. Habe Telegram gestern installiert und alles funktioniert bisher wunderbar.

Möchte daher nur Danke sagen!

LG
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 März 2016, 22:03:02
Ich habe jetzt mein Testsystem mal geupdatet und telegram läuft jetzt.
kann ich eigentlich auch Bilder an fhem senden?
Größe Marcel

Guter Punkt, ich habe vergessen das Get-Kommando getUrlForFile zu dokumentieren. Das muss ich noch nachreichen.
Du findest aber hier im Thread auch Beispiele für Mediendateien: https://forum.fhem.de/index.php/topic,38328.msg397729/topicseen.html#msg397729 (https://forum.fhem.de/index.php/topic,38328.msg397729/topicseen.html#msg397729) Das geht für Voicenachrichten genauso wie für Bilder.

Und hier ist die ursprüngliche Beschreibung: https://forum.fhem.de/index.php/topic,38328.msg394348/topicseen.html#msg394348 (https://forum.fhem.de/index.php/topic,38328.msg394348/topicseen.html#msg394348)

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 März 2016, 22:39:05
Hallo!

Habe bis dato keine Frage. Habe Telegram gestern installiert und alles funktioniert bisher wunderbar.

Möchte daher nur Danke sagen!

LG

Auch das ist sehr willkommen  8)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 25 März 2016, 10:58:32
Super viegener, funktioniert und Danke für die schnellen Hilfen, die hier geleistet werden !!!

Jetzt noch ne Frage, ich habe Bilder auf einem anderen System, welches ich unter http://192.xxx.xxx.xx/plot2jpeg/aussentemperaturen.jpg erreichen kann.
Ist es möglich auch Bilder von einem entfernten System zu verschicken?

Ich habe schon set TelegramBot sendImage http://192.xxx.xxx.xx/plot2jpeg/aussentemperaturen.jpg
aber das funktioniert nicht.

Grüße Marcel
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 März 2016, 15:11:16
Jetzt noch ne Frage, ich habe Bilder auf einem anderen System, welches ich unter http://192.xxx.xxx.xx/plot2jpeg/aussentemperaturen.jpg erreichen kann.
Ist es möglich auch Bilder von einem entfernten System zu verschicken?

Ich habe schon set TelegramBot sendImage http://192.xxx.xxx.xx/plot2jpeg/aussentemperaturen.jpg
aber das funktioniert nicht.

Grüße Marcel

Das Telegrambot-Modul unterstützt nur lokale Dateien. Ich würde das auch nicht so gerne ändern, da ich dann das lesen der Bildinhalte nicht mehr synchron machen kann, sonst würde ich FHEM u.U. blockieren, wenn die Netzwerkverbindung langssam ist. Bei normalen Dateien verlasse ich mich momentan darau, dass das schnell geht...

Folgende Möglichkeiten fallen mir ein, wie man das jetzt mit vorhandenen Mitteln lösen könnte:

1) Du könntest das entfernte "Verzeichnis" ins lokale Filesystem mounten -_> also z.B. auf Linux über SMB, wenn die entfernten Dateien auf einem Windowsserver liegen. Oder entsprechend auch über andere remotemounts (NTFS/WebDAV) etc.
2) Du könntest die Datei über einen Systembefehl (z.B. wget unter Linux) holen und damit eine lokale Datei holen.
3) Das Modul IPCAM lässt sich vielleicht auch dazu missbrauchen einfach nur die Bilddatei in einem lokalen Verzeichnis abzulegen und dann über den Event, den IPCAM bei snapshots schickt, den Versendebefehl für telegram triggern

Vielleicht hilft das schonmal?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 25 März 2016, 17:28:48
Danke, ich werde es morgen mal mit dem wget versuchen, damit hab ich auch schon andere Dinge laufen.
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 13:39:41
Ich habe heute mal eine fhemwiki-Seite für Telegram erstellt:

http://www.fhemwiki.de/wiki/Telegram (http://www.fhemwiki.de/wiki/Telegram)

gibts auch eines für 50_TelegramBot.pm ?

gruss
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 14:20:34
so, habe TelegramBot definiert, danach absturz von FHEM und dauernder reboot von FHEM! startet nicht mehr,was hats denn da auf sich.

gruss

so, nach neustart des raspi, und neuerlichem definieren von TelegramBot selbiges. Fhem stürtzt ab und bootet immer neu. Raspi muss neu gestartet werden.

Was mache ich falsch?

define Telegram TelegramBot user:api

Auszug aus logfile,
Undefined subroutine &main::HttpUtils_Close called at /opt/fhem/FHEM/50_TelegramBot.pm line 1813.
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 505, in run
    self.__target(*self.__args, **self.__kwargs)
IOError: [Errno 104] Connection reset by peer
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 14:48:36
So jetzt gibt es eine erste relativ stabile Version von einem telegramBot Modul für FHEM --> 50_TelegramBot.pm

Anbei findet sich der aktuelle Stand, im wesentlichen kann dieses Modul das meiste, was auch 70_Telegram (das aufh telegram-cli) aufsetzt macht. Also insbesonderen Senden und Empfangen von Textnachrichten, mit Auslösen von Kommandos und auch entsprechende Einschränkungen, wer kommunizieren darf. Ich habe im wesentlichen auch die Benennungen gleich gehalten. Folgende wesentliche Abweichungen sind mir bekannt:

+ Es ist keine andere Software notwendig, das Modul sollte demnach auch auf anderer Hardware funktionieren können (insbesondere kein telegram-cli
+ Es ist keine Rufnummer erforderlich für die Registrierung reicht die telegram BOT Registrierung wie hier beschrieben: https://core.telegram.org/bots (https://core.telegram.org/bots)
- Es können noch keine Bilder gesendet werden (Muss ich noch implementieren)
- Es gibt keine secret chats (im BOT API nicht enthalten)
- Bots können nicht von sich beliebige telgram user kontaktieren, die erste Kommunikation muss immer von einem normalen Telegram-Benutzer gestartet werden
o Das Attribut pollingTimeout muss auf einen Wert > 0 gesetzt sein, sonst wird nichts empfangen

Jetzt hoffe ich auf eifrige Fehlermeldungen...

Johannes

Hallo.
Genügt es wirklich nur die 50_TelegramBot.pm zu installieren?
Dann einfach define xxx  und das wars?
Klappt bei mir leider nicht.

gruss
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 15:21:15
Hallo.
Kann es sein das es auf FHEM 5.6 nicht mehr läuft? Habe 2. fhem mit 5.7 und da lässt es sich definieren.
Gibts noch wo version für 5.6 ?

gruss
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 März 2016, 15:24:56
so, habe TelegramBot definiert, danach absturz von FHEM und dauernder reboot von FHEM! startet nicht mehr,was hats denn da auf sich.

gruss

so, nach neustart des raspi, und neuerlichem definieren von TelegramBot selbiges. Fhem stürtzt ab und bootet immer neu. Raspi muss neu gestartet werden.

Was mache ich falsch?

define Telegram TelegramBot user:api

Auszug aus logfile,
Undefined subroutine &main::HttpUtils_Close called at /opt/fhem/FHEM/50_TelegramBot.pm line 1813.
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 505, in run
    self.__target(*self.__args, **self.__kwargs)
IOError: [Errno 104] Connection reset by peer

Das Problem hatten wir bereits eine Seite vorher, auf alten FHEM-Installationen ist eine manuelle Nachinstallation von aktuellen Modulen immer ein Glücksspiel. Der TelegramBot ist zwar unter 5.6 entwickelt worden aber setzt heute eine relativ aktuelle FHEM-Installation voraus.

Alle Module verwenden ja auch anderen Funktionen aus FHEM und Hilfsmodulen, wenn diese sehr alt sind ist die Nachinstallation nicht unbedingt erfolgreich.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 15:25:29
Hallo Leute,
ich habe eben versucht TelegramBot in fhem zum laufen zu bekommen, leider stürzt fhem direkt ab, im log habe ich dann noch folgende Meldung :

2016.03.23 17:06:00 3: TelegramBot_Define TelegramBot: called
2016.03.23 17:06:01 2: TelegramBot_DoUrlCommand TelegramBot: FAILED http access returned error :https://api.telegram.org/botxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxx/getMe: Select timeout/error: :

Mein System habe ich noch mit 5.6 laufen und da alles ohne Probleme z.Z. läuft, möchte ich ungern ein Update machen oder ist das hierfür notwendig?

Grüße Marcel

selbiges bei mir, auf einem 5.7 läufts.
Ich will auch nicht updaten, zuviel zum ändern.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 15:26:51
Das Problem hatten wir bereits eine Seite vorher, auf alten FHEM-Installationen ist eine manuelle Nachinstallation von aktuellen Modulen immer ein Glücksspiel. Der TelegramBot ist zwar unter 5.6 entwickelt worden aber setzt heute eine relativ aktuelle FHEM-Installation voraus.

Alle Module verwenden ja auch anderen Funktionen aus FHEM und Hilfsmodulen, wenn diese sehr alt sind ist die Nachinstallation nicht unbedingt erfolgreich.

ich habe es mit update 50_TelegramBot.pm installiert. Sollte doch normalerweise die version für 5.6 sein, wenn man aus 5.6 aufruft, odr nicht?
Titel: Antw:Telegram instant messaging - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 März 2016, 15:27:19
gibts auch eines für 50_TelegramBot.pm ?

gruss

Ja natürlich. Einfach ausprobieren geht schneller  :D Also einfach mal in der fhemwiki-Suche telegrambot eingeben dann kommt man hin:

http://www.fhemwiki.de/wiki/TelegramBot (http://www.fhemwiki.de/wiki/TelegramBot)

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 März 2016, 15:31:41
ich habe es mit update 50_TelegramBot.pm installiert. Sollte doch normalerweise die version für 5.6 sein, wenn man aus 5.6 aufruft, odr nicht?

Nein, warum? Ein Update spielt die aktuelle Version ein.

Das Problem hat aber nichts mit 5.6 oder 5.7 zu tun, sondern vermutlich damit dass Deine Installation einfach recht alt ist (Veraltetes httpsrv)

Empfehlung bleibt: Auf aktuelle Version upzudaten und die Installation aktuell zu halten, mindestens solange man erweitert oder anpasst.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 März 2016, 15:33:30
selbiges bei mir, auf einem 5.7 läufts.
Ich will auch nicht updaten, zuviel zum ändern.

Bei ma_bo läuft es nach dem Update:

Ich habe jetzt mein Testsystem mal geupdatet und telegram läuft jetzt.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 15:44:32
Ich lasse es mal auf dem 2. fhem laufen.
Noch ne frage zur telefonnummer, muss die telefonnummer bestehen bleiben? oder kann man eine einmalige zum anmelden nehmen.
ich habe da eine prepaid die noch 1 monat lang gilt.
gruss
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 März 2016, 16:17:34
Ich lasse es mal auf dem 2. fhem laufen.
Noch ne frage zur telefonnummer, muss die telefonnummer bestehen bleiben? oder kann man eine einmalige zum anmelden nehmen.
ich habe da eine prepaid die noch 1 monat lang gilt.
gruss

Für den TelegramBot wird keine Telefonnummer benötigt, Du musst nur einen Bot über den Botfather anmelden --> Siehe auch im wiki
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 16:20:31
Hallo.
Wiki hab ich vor mir, werd aber nicht schlau daraus. Habe jetzt mal einen Account angelegt, per App und /newbot.
User und Api kam an, hab ich auch bei definition eingetragen.
Ich hoffe das passt so. Aber wie versende ich jetzt nachrichten?
aus dem Beispiel vom Wiki  123456:Ralf_Mustermann:@ralf  werd ich nicht schlau.

gruss
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 März 2016, 16:41:10
@satprofi: 123456:Ralf_Mustermann:@ralf sind drei verschiedene Bezeichnungen für den selben Benutzer.

Viel wichtiger ist aber der Hinweis im wiki:

Zitat
Der TelegramBot kann erst dann Nachrichten an einen telegram user schicken, wenn dieser zuerst an den telegram bot eine Nachricht gesendet hat.


Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: schnitzelbrain am 27 März 2016, 16:43:58
Hallo.
Wiki hab ich vor mir, werd aber nicht schlau daraus. Habe jetzt mal einen Account angelegt, per App und /newbot.
User und Api kam an, hab ich auch bei definition eingetragen.
Ich hoffe das passt so. Aber wie versende ich jetzt nachrichten?
aus dem Beispiel vom Wiki  123456:Ralf_Mustermann:@ralf  werd ich nicht schlau.

gruss

Einfach mit
set DeinBotName message @Ralf_Mustermann Den Text den du senden willst ohne Anführungsstriche
Kannst du auch in der FHEM Kommandozeile testen.
Vorher natürlich erst einmal von Ralf_Mustermann eine Nachricht an deinen Bot schicken.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 16:48:55
Hallo.
Danke, aber da komm ich nicht weiter.
Habe mir aufs Handy eine Nachricht geschockt, kommt an. Aber welchen Namen trag ich beim defaultPeer ein? Den Usernamen von den Kontakten ? Das kennt TelegramPot nicht. "peer not found"
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 März 2016, 17:17:36
Hallo.
Danke, aber da komm ich nicht weiter.
Habe mir aufs Handy eine Nachricht geschockt, kommt an. Aber welchen Namen trag ich beim defaultPeer ein? Den Usernamen von den Kontakten ? Das kennt TelegramPot nicht. "peer not found"

Hast Du mal in die Doku geschaut, da sind zum Versenden von Nachrichten jede Menge Beispiele:
Normalerweise kannst Du die Kontakte in defaultPeer ähnlich angeben, allerdings ohne den (ERSTEN) führenden @

Also zum Beispiel 123456 für die User ID
oder Ralf_Mustermann
doer @ralf


Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 17:19:35
hallo.
Ja, aber ich kann an den username @xxx nichts senden. ausser vom Handy, das findet den user über den username sofort. Wie empfange ich auf Fhem eine nachricht? darf der überhaupt den token vom handy nutzen?

gruss
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 März 2016, 18:07:21
@satprofi: Sorry, ich verstehe Deine Fragen nicht, bei 10 Fragen in so kurzer Zeit kann ich vielleicht nicht gut genug helfen oder DU solltest nochmal in aller Ruhe die Doku wiki und commandref überprüfen? Ansonsten: Kannst Du mal etwas genauer beschreiben wo es hängt und was bereits geht. Welchen Befehl gibst Du ein, wenn Du sendest, wie sieht der Botdevice aus (listing ohne authtoken) empfängt er Nachrichten korrekt?

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 18:11:34
Hallo.
So, dürfte klappen. Habe mir neuen Token senden lassen, und jetzt bekomme ich auch readings. Werde weitertesten bzgl. empfangen/senden.

Ich empfange jetzt nachrichten von extern, aber antworten auf diesen absender klappt nicht, "peer not found:xxxx"


so jetzt klappts. entweder bin ich doof, oder das wiki passt nicht.
Ich darf nicht an den Username senden, uach nicht an ID:Name:@username, sondern einfach auf name

set Message Name nachricht
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 März 2016, 18:29:14
Hallo.
So, dürfte klappen. Habe mir neuen Token senden lassen, und jetzt bekomme ich auch readings. Werde weitertesten bzgl. empfangen/senden.

Ich empfange jetzt nachrichten von extern, aber antworten auf diesen absender klappt nicht, "peer not found:xxxx"


so jetzt klappts. entweder bin ich doof, oder das wiki passt nicht.
Ich darf nicht an den Username senden, uach nicht an ID:Name:@username, sondern einfach auf name

set Message Name nachricht

Genau das habe ich doch gesagt:

Hast Du mal in die Doku geschaut, da sind zum Versenden von Nachrichten jede Menge Beispiele:
Normalerweise kannst Du die Kontakte in defaultPeer ähnlich angeben, allerdings ohne den (ERSTEN) führenden @

Also zum Beispiel 123456 für die User ID
oder Ralf_Mustermann
doer @ralf


Dafür war das oder gedacht, nicht alle zusammen sondern nur eines der Elemente für defaultPeer und beim Senden, beim Senden aber ein zusätzlicher @ im befehl
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 27 März 2016, 18:33:12
nein, es klappt nicht mit @ auch nicht mit username von Telegram. Es kalappt nur mit dem Namen zw. den ::
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 März 2016, 19:04:30
nein, es klappt nicht mit @ auch nicht mit username von Telegram. Es kalappt nur mit dem Namen zw. den ::

Also nochmals im Detail, wenn der user name für Ralf Mustermann ralf ist, dann wird in den Kontakten das als @ralf angezeigt beim Message senden muss aber noch ein @ davorgesetzt werden also @@ralf oder auch

set mytelegrambot message @@ralf Eine nachricht
ralf muss natürlich durch einen gültigen user name ersetzt werden !
User name ist hier nicht Vorname_Nachname

Alternativ kann auch die User ID (nur ziffern oder führendes -) verwendet werden. Wenn diese 123456 ist, dann schreibt man

set mytelegrambot message @123456 Eine nachricht
So funktioniert das bei mir und soweit ich weiss auch bei anderen...
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 28 März 2016, 10:32:20
Hallo.
Ich
dachte es genügt das @. Aber man muss 2x @@ oben, und unten 1x @ eingeben. Sonst wird der standard Peer genommen und alles als Text.
Danke , jetzt hab ichs geschnallt.
Hoffentlich bleibt das Modul weiterhin so toll.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 28 März 2016, 12:01:30
Also, wer (wie ich) seine Hautfheminstanz nicht updaten möchte, da alles ohne Probleme läuft (ich habe versucht ein update auf 5.7 zu machen und ich müsste einiges umstellen), dem bleibt die Möglichkeit die ich gewählt habe.

NUC mit FHEM 5.6 als Hauptinstanz
Raspberry mit FHEM 5.7 und ganz aktuell

auf dem Raspberry habe ich TelegramBot laufen, dann habe ich RFHEM auf beiden (NUC und Raspberry) installiert.
Nun kann ich über RFHEM alle Daten die ich benötige an von meinem Raspberry zum NUC schicken und alle Daten die ich brauche vom NUC zum Raspberry.

RFHEM ist nicht offiziell eingecheckt, findet man aber im WIKI beschrieben und funktioniert bei mir seit 3 Tagen ohne Probleme, einfach mal durchlesen und testen. Es funktioniert so ähnlich wie FHEM2FHEM.
Ich muss sagen, RFHEM ist eine RIESEN Erweiterung und nun kann ich Daten ohne Probleme hin und her senden.

Zu TelegramBot kann ich nur sagen, super Sache und 1000 mal besser als WhatsApp, bei WhatsApp muss man ja immer nachfrickeln und hoffen, dass es noch läuft, da es offiziell ja nicht unterstütz wird.

Ich kann jedem nur empfehlen sich mit TelegramBot zu beschäftigen, wenn es nicht direkt funktioniert, nicht aufgeben, es lohnt sich.

Vielen DANK an viegener, für dieses super Modul !!!

Grüße Marcel
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 28 März 2016, 12:07:26
Hallo, Danke.

Ich habe aber trotzdem Probleme, bringe auf einer FHEM, jetzt auf 5.7 upgedatet, telegram immer noch nicht zum laufen.
Selbes sympthom wie bei 5.6, fhem stürzt ab bei define Telegram xxxx. Am 2. raspi läufts, aber dort kann ich wieder nicht zum HMLAN verbinden.

Was benötigt man denn noch? fheminfo meldet 5.7
50_TelegramBot.pm ist von heute, 95,514kB

kann doch nicht sein !

gruss
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 28 März 2016, 12:15:00
define TelegramBot TelegramBot <key> müsste eigentlich gehen, nicht als Telegram sondern als TelegramBot
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 28 März 2016, 12:16:54
define Telegram TelegramBot <key> klappt aber am 2. raspi.
Telegram ist ja nur der Name.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 28 März 2016, 12:31:13
Ok, dann hab ich es falsch verstanden.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 28 März 2016, 12:38:34
Hallo, Danke.

Ich habe aber trotzdem Probleme, bringe auf einer FHEM, jetzt auf 5.7 upgedatet, telegram immer noch nicht zum laufen.
Selbes sympthom wie bei 5.6, fhem stürzt ab bei define Telegram xxxx. Am 2. raspi läufts, aber dort kann ich wieder nicht zum HMLAN verbinden.

Was benötigt man denn noch? fheminfo meldet 5.7
50_TelegramBot.pm ist von heute, 95,514kB

kann doch nicht sein !

gruss

Welche Meldung kommt beim Absturz und hast Du das TelegramBot-Modul aus dem Update oder nochmals von Hand installiert?
Das einzige Modul, zu dem es starke Abhängigkeiten gibt ist HttpUtils, das sollte aber auch beim Update mitkommen.

Die Grösse des Moduls ist erstmal keine Aussage und das Datum wird ja beim Update gesetzt ist dementsprechend auch nur begrenzt hilfreich.
Ohne die Meldung ist das kaum zu analysieren.

Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 28 März 2016, 12:46:57
keine Meldung, Webif ist weg und Browser meldet keine Verbindung .
Und fhem startet auch nicht mehr, ausser über telnet und etc/init.d/fhem start.
httputils ist vom 16.08.2015, also kein update erhalten.

gruss

Habe die mal upgedatet,und jetzt nach reload " Undefined subroutine &main::HttpUtils_Initialize called at fhem.pl line 2243."

Ob fhem noch so klappt wie vorher ?

gruss
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 28 März 2016, 12:49:29
keine Meldung, Webif ist weg und Browser meldet keine Verbindung .
Und fhem startet auch nicht mehr, ausser über telnet und etc/init.d/fhem start.
httputils ist vom 16.08.2015, also kein update erhalten.

gruss

Ich meinte die Meldung im Log

Wenn die HTTPUtils nicht aktuell ist, ist Dein Update nicht korrekt gelaufen, HTTPUtils (und eigentlich das ganze System) sollte aktuell sein. Die FHEM-Version ist ansonsten irrelevant.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 28 März 2016, 12:54:27
Hallo.
Bingo!  Jetzt konnte ich TelegramBot definieren!
Wie kann man das update beeinflussen? es wurden vielleicht gerade mal 20 Module upgedatet, und in /opt/fhem  gerade mal die fhem.pl.

mehr nicht.

gruss

so, Telegram eingerichtet, sendet auch autom. über DOIF.
Wahtsapp ist schon deinstalliert.
Nochmals Grossen Dank zwecks Modul !
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 28 März 2016, 14:35:55
kurze nachfrage, wie kann man sich ein userbild anlegen?

gruss
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 28 März 2016, 14:54:54
Zum botfather gehen und    /help    eingeben, dort wird alles erklärt

/setuserpic

Setzt das profilbild
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 28 März 2016, 16:58:49
Ja, habe ich. Aber er lässt den FHEM username nicht zu. Nur den auf die tel.Nr registrierten

Gesendet von meinem Transformer TF101 mit Tapatalk

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: resben am 28 März 2016, 20:05:46
Hey,
super Modul, vielen Dank schonmal für die Arbeit.

Ein Problem hab ich leider aktuell noch und hoffe, dass ihr mir da helfen könnt: Bei dem attribut favorites, wird leider immer nur der erste angegebene Wert übernommen.
So siehts die entsprechende Zeile aus:
attr telegramBot favorites set testStatus on; set testStatus off
Als Favorit wird mir immer nur der erste der beiden Befehle angezeigt.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 29 März 2016, 00:34:47
Hey,
super Modul, vielen Dank schonmal für die Arbeit.

Ein Problem hab ich leider aktuell noch und hoffe, dass ihr mir da helfen könnt: Bei dem attribut favorites, wird leider immer nur der erste angegebene Wert übernommen.
So siehts die entsprechende Zeile aus:
attr telegramBot favorites set testStatus on; set testStatus off
Als Favorit wird mir immer nur der erste der beiden Befehle angezeigt.

Ja, das ist einfach: Statt des einfachen Semikolons muss beim Setzen des Attributes jeweils ein doppeltes Semikolon als Trenner angegeben werden. Das einfache Semikolon wird in fhem als Trennung zwischen Kommandos angesehen, so dass im Attribut nur der erste Teil ankommt. das set ... off wird dann als Befehl ausgeführt...
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: forum-merlin am 29 März 2016, 16:35:18
Hallo FHEM Freunde!

Ich habe seit heute auch telegramBOT laufen und ich hoffe ich kann damit nachhaltig das yowsup Modul ablösen. Eigentlich schon schade, denn ich hatte es eigentlich geliebt!

Als erstes möchte ich mal ein DANKE an "viegener" loswerden, der das Modul ja geschrieben hat und weiterhin pflegt. Also.... DANKE! :)  :)

Wie gesagt, sind das alles erste Gehversuche, ich will erstmal nur von FHEM was an die User schicken, und ich habe gerade ein Problem, wo ich einfach auf dem Schlauch stehe...

Ich habe in meinem BOT einen defaultPeer auf eine Gruppe gesetzt.
Ziel ist es, dass alle Nachrichten die ich durch notifys absetze an diese Gruppe schicke. Das funktioniert schon ganz gut.

Wenn ich jetzt aber versuche einen User direkt anzuschreiben über den BOT, kommt die Nachricht nicht bei dem User an, sondern wieder bei der Gruppe.

Hier ein paar Beispiele:
{ fhem ("set myFhemServerBot message Diese Nachricht geht direkt an die Gruppe da hier der defaultPeer zieht. Das ist OK so!") }
{ fhem ("set myFhemServerBot message @08154711 Diese Nachricht sollte eigentlich an meine UserID gehen, geht aber wieder an die Gruppe !") }
{ fhem ("set myFhemServerBot message @@08154711 Diese Nachricht sollte eigentlich an meine UserID gehen, geht aber wieder an die Gruppe !") }

FRAGE:
Wie bekomme ich es hin, dass ich auch an einzelne UserIDs etwas schicken kann?


Danke und Gruß

/Holger

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 29 März 2016, 17:15:11
FRAGE:
Wie bekomme ich es hin, dass ich auch an einzelne UserIDs etwas schicken kann?
Wenn du das über Perl machst musst du das @ mittel \ escapen.

Grüße
igami
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: forum-merlin am 29 März 2016, 19:00:12
Danke!
funktioniert.  ;D

Einfach nicht dran gedacht das mal auszuprobieren
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: resben am 30 März 2016, 08:58:43
Ja, das ist einfach: Statt des einfachen Semikolons muss beim Setzen des Attributes jeweils ein doppeltes Semikolon als Trenner angegeben werden. Das einfache Semikolon wird in fhem als Trennung zwischen Kommandos angesehen, so dass im Attribut nur der erste Teil ankommt. das set ... off wird dann als Befehl ausgeführt...

Das ging, vielen Dank für die Hilfe und die Erklärung :D
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: sinus61 am 02 April 2016, 19:04:03
Hat es schon mal jemand geschafft, mit Tasker + Telegram einen Befehl an FHEM zu senden?

Das sollte eigentlich mit der App Touchless Chat gehen, die auch als Plugin für Tasker arbeitet. Hab es aber gerade mal probiert und nicht zum laufen bekommen.

http://forum.joaoapps.com/index.php?resources/send-message-when-you-arrive-at-work.71/
Titel: Telegram instant messaging TelegramBot - Variablen oder Readings im Text
Beitrag von: fstefan1960 am 03 April 2016, 13:06:43
Hallo,

von dem Modul bin ich ganz begeistert, nachdem ich mit yowsup immer wieder Probleme hatte. Wenns lief, wurde was geändert und wieder kam nichts mehr an.

Ich hab eine Frage, die vermutlich allen Cracks hier als banal vorkommt. Hab versucht, sie durch Lesen zu lösen, aber hab im ganzen Fred nicht die Antwort gefunden:

Ich habe eine Variable "MyIP", die ich gerne zusenden will. Wie muss ich den Befehl aufbauen?
set Telegrambot msg Die neue Ip ist $MyIP
wird genau so gesendet, aber eben nicht durch die IP ersetzt.



Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 April 2016, 13:30:46
Hallo,

von dem Modul bin ich ganz begeistert, nachdem ich mit yowsup immer wieder Probleme hatte. Wenns lief, wurde was geändert und wieder kam nichts mehr an.

Ich hab eine Frage, die vermutlich allen Cracks hier als banal vorkommt. Hab versucht, sie durch Lesen zu lösen, aber hab im ganzen Fred nicht die Antwort gefunden:

Ich habe eine Variable "MyIP", die ich gerne zusenden will. Wie muss ich den Befehl aufbauen?
set Telegrambot msg Die neue Ip ist $MyIP
wird genau so gesendet, aber eben nicht durch die IP ersetzt.

Das ist an sich kein Problem, aber was ist eine Variable in diesem Umfeld?
Ist es eine Perlvariable, die in einem Deiner Module/MyUtils definiert wurde? --> Dann musst Du am besten in dem Modul auf der Perl ebene einen befehl zusammenbauen, der das versendet also in Perl:
fhem("set Telegrambot msg Die neue Ip ist $MyIP") Dann wird die Variable auch ersetzt.

Besser wäre aber Deine Variable zum Beispiel als State eines Dummys zu speichern, dann kannst Du üebr notify auch bei einer Änderung das Versenden automatisch auslösen (das wäre dann auch eher FHEM-"typisch").

define newIP_dummy dummy

set newIP_dummy IP 100.100.100.100

define newIP_notify notify  newIP_dummy:IP.* set Telegrambot msg New IP set: $EVTPART1


Natürlich muss dann nach feststellen der neuen IP auch der richtige set ausgeführt werden.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: fstefan1960 am 03 April 2016, 16:09:54
Super,

vielen Dank. Meine große Hoffnung ist nun, dass die zugrunde liegende Technik nicht so oft geändert wird wie bei Whatsapp/yowsup. Da hatte man ja das Gefühl, dann man jeden Monat yowsup neu installieren musste.

Was bisher bei mir mit Telegram sofort läuft, ist einfach grandios. Auch, dass bei Anforderung das Menu der möglichen Kurzbefehle kommt und man dann einfach antippen kann, hat einen grandiosen WAF. Wow!

Kann man die Anmeldung weiterer User am Bot verhindern? Ansonsten muss ja nur jemand mein "doit" erraten und fährt mir die Rolläden rauf und runter :).

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 03 April 2016, 18:09:57
Kann man die Anmeldung weiterer User am Bot verhindern? Ansonsten muss ja nur jemand mein "doit" erraten und fährt mir die Rolläden rauf und runter :).

Dazu einfach wenn du in Fhem im Telegrambot bist einfach unten auf Device Specific help klicken oder im commandref da wird meistens beschrieben was geht.
http://fhem.de/commandref.html#TelegramBot (http://fhem.de/commandref.html#TelegramBot)
In deinem Fall musst du das cmdRestrictedPeer <peername(s)> Attribut setzen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 April 2016, 18:54:46
Dazu einfach wenn du in Fhem im Telegrambot bist einfach unten auf Device Specific help klicken oder im commandref da wird meistens beschrieben was geht.
http://fhem.de/commandref.html#TelegramBot (http://fhem.de/commandref.html#TelegramBot)
In deinem Fall musst du das cmdRestrictedPeer <peername(s)> Attribut setzen.

Absolut richtig!
Als Ergänzung noch zwei Anmerkungen: Zur Sicherheit sollten bei cmdRestrictedPeer user ids (also die Zahlen zu den Kontakten) verwendet werden, da diese die grösste Sicherheit aufweisen, da von telegram vergeben und nicht vom Benutzer.

Ausserdem gibt es noch das Attribute:

allowUnknownContacts

Mit dem man auch neue Kontakte komplett ablehnen kann.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: fstefan1960 am 04 April 2016, 17:10:34
Hallo,

je besser etwas läuft, um so mehr Wünsche weckt das ja auch.

1. Gibt es eine Methode, wie ich das Bild des Bots ändern kann?
Wenn ich mit dem BotFather chatte, zeigt er mir als mögliches Kommando an /setUserPic. Wenn ich das nutze, fordert er mich auf: Choose a bot to change profile photo.
Wenn ich dann den Namen meines Bots eingebe, kommt nur: Invalid bot selected.

2. Wenn ich den Befehl /short schicke, kommt eine Reihe Buttons zurück mit den möglichen Befehlen, die ich hinterlegt habe. Die sind allerdings typisch FHEM-Syntax-beschriftet. Kann man die mit einem Label versehen: "WoZi-Licht an" statt "set WoZiLampe_3 toggle"?

Vielen Dank

sagt Frank
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 April 2016, 22:17:56
Beides ist kein Problem (über den Botfather)

ad 1) setuserpic ist der richtige Weg. Zur Auswahl des Bots schickt der botfather ein custom keyboard mit der Auswahl des Bots wenn man nicht den Namen eintippt sondern diese Keyboard zur Auswahl benutzt geht es problemlos. Man schickt dann einfach ein Bild an den Botfather

ad 2) Bei der Definition der Favorites im botfather kann man auch angeben
short1 - Ein ganz toller Befehle
short2 - Und dieser ist noch besser
short3 - Nicht so gut

Dann schickt der bot bei Eingabe von / bereits diese Liste mit den sprechenden Beschreibungen
Ich wollte das im Bot nicht nochmal doppeln.

Ausserdem gibt es jetzt ja die Möglichkeit in den Favoriten auch sprechende Namen für die Favoriten zu hinterlegen:

/lichtan=set lights on
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 04 April 2016, 22:42:27
Hallo,

da muss ich doch mal nachfragen :)

Ich habe auch ein paar Favoriten in Fhem angelegt. Ich habe dafür die Schreibweise z.B.
/temperature = { sendPlot('weblink_aussen_Temperatur') }
und natürlich weitere mit Semikolon getrennt.

Wenn ich nun im Telegram-Client "/help" aufrufe, erhalte ich die Liste meiner Favoriten. Allerdings steht vor jedem Favoriten ein neuer Favoriten-Shortcut "/help1" durchnummeriert (in meinem Fall bis "/help11") - siehe Anhang...

Was kann ich denn da noch anpassen. So sieht es nicht sehr hübsch aus. Am Besten wäre es ja auch, wenn er den wahren Befehl gar nicht anzeigt, sondern nur den vergebenen "schönen" Aliasnamen... aber das wird wohl nicht gehen...

Danke schon mal...

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 April 2016, 23:35:05
Ich bin ja schon überzeugt  ;)   --> Also muss ich nochmal ran.

Idee wäre also für jeden Favoriten auch einen Text angeben zu können, der statt des eigentlichen Befehls angezeigt wird...
Da muss ich mir erstmal eine sinnvolle Syntax überlegen, damit das nicht zu fehleranfällig wird.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Reinerlein am 05 April 2016, 00:30:05
Hallo,

zu Beginn kann man es auch erstmal einfach gestalten: wie wäre es mit einem Zusätzlichen Steuerattribut?
Eigentlich ist deine Syntax dafür doch schon ausreichend.

Nennen wir das Attribut mal kurz "sendShortFavorites". Wenn es z.B. "true" oder "1" ist, dann werden im Keyboard nur die Befehle der Favoriten ausgegeben (also das Ding mit dem Slash bis zum =-Zeichen).
z.B. "/temperature"
Die folgende Auswertung, wenn das als Benutzerauswahl beim Bot wieder ankommt, funktioniert ja dabei sowieso schon...

Der nächste Schritt wären dann noch kurze Beschreibungstexte, die zusätzlich oder anstatt der Befehle angezeigt werden. Da wird es schon etwas kniffliger bei der Definition und Auswertung als Anweisung :)

Btw.: Wäre ein Attribut zum Steuern, ob generell in der Fhem-Antwort nochmal der Befehl und dieser Bot-Prefix vorkommen sollen, auch nett :)

Grüße
Reiner
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 08 April 2016, 00:38:47
Hallo,

zu Beginn kann man es auch erstmal einfach gestalten: wie wäre es mit einem Zusätzlichen Steuerattribut?
Eigentlich ist deine Syntax dafür doch schon ausreichend.

Nennen wir das Attribut mal kurz "sendShortFavorites". Wenn es z.B. "true" oder "1" ist, dann werden im Keyboard nur die Befehle der Favoriten ausgegeben (also das Ding mit dem Slash bis zum =-Zeichen).
z.B. "/temperature"
Die folgende Auswertung, wenn das als Benutzerauswahl beim Bot wieder ankommt, funktioniert ja dabei sowieso schon...

Der nächste Schritt wären dann noch kurze Beschreibungstexte, die zusätzlich oder anstatt der Befehle angezeigt werden. Da wird es schon etwas kniffliger bei der Definition und Auswertung als Anweisung :)

Btw.: Wäre ein Attribut zum Steuern, ob generell in der Fhem-Antwort nochmal der Befehl und dieser Bot-Prefix vorkommen sollen, auch nett :)

Grüße
Reiner

Ich habe gerade mal eine neue Versions in github hochgeladen die dazu 2 Änderungen enthält:

- Es kann jetzt auch einen Beschreibungstext für einen Favorite definiert werden, der dann statt des Kommandos ind er Favoritenliste und Bestätigung angezeigt wird
- Die Texte die als Antworten des Bots zurückgegeben werden kann man jetzt selber umdefinieren (Dafür sind eigene Attribute text...) vorgesehen.

Vermutlich erfüllt das noch nicht ganz die Wünsche an die Favoritenliste aber es ist erstmal ein grosser Schritt dahin gemacht

Wie immer Feedback willkommen
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: pipp37 am 08 April 2016, 02:56:21
Nur mal Danke sagen. :)

Ich habe mir heute die Zeit genommen um meine umfangreiche Fhem Konfiguration mit TelegramBot zu erweitern.

Nachdem wieder mal yowsup Probleme macht und ich nicht schon wieder meine Utils umschreiben will, bin ich auf das Modul gestossen und bin begeistert.
Damit löse ich Whatsapp und wahrscheinlich auch Pushover ab und stelle alles auf Telegram um.

Vielen Dank an viegener für die Arbeit und die Mühe.

Ich habe mit heute den gesamten Thread von Anfang an durchgelesen. Perfekt.
Gruss Armin

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: speex am 08 April 2016, 13:53:58
Hi viegener auch von mir dickes danke bin mit deinem Modul sehr glücklich.

Hab gerade mal die neue Github-version eingespielt, läuft.
Sehr cool mit den custom descriptions, vielen dank dafür!!!  :D


Grüsse
Speex
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: FHEM-User22 am 08 April 2016, 15:19:30
Hallo an alle,
ich weiss nicht, obs wirklich hier her passt.
Man sollte sich doch bei Telegram mit jeder Telefonnummer anmelden können (zB. Festnetz oder andere), Hauptsache man kann SMS oder Anrufe empfangen. Egal, wie ich es versuche, ob mit Browser oder Handy, immer bekomme ich die Meldung: "Ungültige Nummer".

Hat da jemand Erfahrungen?

Dankeschön.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 08 April 2016, 15:28:30
Hallo an alle,
ich weiss nicht, obs wirklich hier her passt.
Man sollte sich doch bei Telegram mit jeder Telefonnummer anmelden können (zB. Festnetz oder andere), Hauptsache man kann SMS oder Anrufe empfangen. Egal, wie ich es versuche, ob mit Browser oder Handy, immer bekomme ich die Meldung: "Ungültige Nummer".

Hat da jemand Erfahrungen?

Dankeschön.

Ich kann nur bestätigen, dass sowohl Festnetznummern als auch Mobilnummern funktionieren.
Es gab wohl mal Ablehnung von Google-VOIP-Nummern aber generell funktionieren wohl auch reine VOIP-Nummern.
Wichtig ist, dass die Telefonummer für telegram korrekt, also mit Country-Code etc angegeben wird

Nur zur Sicherheit: Für den telegramBot ist keine Nummer erforderlich, ich nehme an, dass ist klar.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 08 April 2016, 17:54:16
Hallo an alle,
ich weiss nicht, obs wirklich hier her passt.
Man sollte sich doch bei Telegram mit jeder Telefonnummer anmelden können (zB. Festnetz oder andere), Hauptsache man kann SMS oder Anrufe empfangen. Egal, wie ich es versuche, ob mit Browser oder Handy, immer bekomme ich die Meldung: "Ungültige Nummer".

Hat da jemand Erfahrungen?

Dankeschön.

der vorteil zu whatsapp. man kann beliebig viele geräte auf selber nummer anmelden, per sms kommt code.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: FHEM-User22 am 09 April 2016, 08:54:12
Moin an alle

Ich kann nur bestätigen, dass sowohl Festnetznummern als auch Mobilnummern funktionieren.
Es gab wohl mal Ablehnung von Google-VOIP-Nummern aber generell funktionieren wohl auch reine VOIP-Nummern.
Wichtig ist, dass die Telefonummer für telegram korrekt, also mit Country-Code etc angegeben wird

Ich habe alles durchpobiert, also +49dann die Nummern, ohne Null, mit Null(sollte nicht gehen) aber sofort kommt ungültige Nummer. Ich habe das mit Telekom-Festnetznummern sowie auch Telekom Anlagenanschlußnummern durchprobiert. Als erstes die Frage "stimmt die Nummer?" wenn ich dann <ok> drücke, kommt "Falsche Telefonnummer" Irgendwo muß ich was falsch machen.

Ich versuche es mit dem Web-Browser und auch mit einem Handy, immer die gleiche Fehlermeldung.


Nur zur Sicherheit: Für den telegramBot ist keine Nummer erforderlich, ich nehme an, dass ist klar.

Nein, ist mir nicht klar. Also ich kann über FHEM Nachrichten schicken und empfangen, ohne das ich eine Tel.-Nummer angemeldet habe?

Grüße
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 09 April 2016, 10:37:48
Moin an alle



Nein, ist mir nicht klar. Also ich kann über FHEM Nachrichten schicken und empfangen, ohne das ich eine Tel.-Nummer angemeldet habe?

Grüße

nein, nicht wirklich. du musst einmal eine nummer angeben, auf die du dann deine aktivierungs-sms bekommst. du kannst aber diese nummer für mehrere geräte nehmen, also auch dort wo keine simcard engelegt ist. also deshalb auch für fhem.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: pipp37 am 09 April 2016, 10:40:02
Es gibt 2 Telegram Module. Mit TelegramBot ist keine Telefonnummer und keine Clientinstallation nötig.

Der 1. Eintrag des Threads erklärt das recht gut.
Gruss


Gesendet von iPhone mit Tapatalk
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: FHEM-User22 am 09 April 2016, 13:56:26
Es gibt 2 Telegram Module. Mit TelegramBot ist keine Telefonnummer und keine Clientinstallation nötig.

Hallo,
Ja, Prima, funzt super mit TelegramBot. Kann schon Licht einschalten über Telegram und auch Bewegungsmeldungen aufs Handy schicken.

Hat sich schon jemand Readinggroups auf Anforderung per Telegram schicken lassen? Wäre interessant z.B. bei Temperaturen.

Grüße
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: satprofi am 09 April 2016, 16:13:12
Ja, per DOIF
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: FHEM-User22 am 10 April 2016, 09:32:16
Hallo,
prima, Könnte man bitte in die Codeschnipsel schauen, oder ist es irgendwo beschrieben?

Dankeschön
Und schönen Sonntag
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 April 2016, 13:21:46
Hallo,
prima, Könnte man bitte in die Codeschnipsel schauen, oder ist es irgendwo beschrieben?

Dankeschön
Und schönen Sonntag

Da die Formatierung von Telegramnachrichten sehr eingeschränkt ist (vorsichtig ausgedrückt) ist das Versenden von Readinggroups (insbesondere mit HTML-Formatierungen) direkt nicht sinnvoll. Was man gut machen kann ist die Daten in ein Textformat umwandeln und das entsprechende Kommando als Favoriten ablegen oder über z.B. zeitgesteuert triggern.

Als direktes Kommando (z.B. in Notify, DOIF oder at):

set telebot msg Temperatur im Wohnzimmer ist [tempwz:temperature] Grad und es sind [tempwz:humidity] Prozent Luftfeuchtigkeit
In einen Favoriten kann man das generell auch aufnehmen oder auch in anderer Notation:

{( return "Temperatur im Wohnzimmer ist ".ReadingsVal("tempwz","temperature","unbekannte")." Grad und es sind ".ReadingsVal("tempwz","humidity","unbekannte")." Prozent Luftfeuchtigkeit" )}
Vielleicht geht das auch eleganter, da fällt mir aber gerade nichts zu ein...


Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: justme1968 am 10 April 2016, 13:44:24
oder einfach etwas in der art z.b.:list .* temperature humidity
statt dem .* kannst du dich beliebig austoben -> siehe devspec in der commandref. readings kannst du natürlich auch noch mehrere angeben.

gruss
  andre
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: ronny332 am 16 April 2016, 09:34:11
Das scheint ja wirklich die Lösung zu sein. Wochen war ich nun dauergenervt weil yowsup nur noch Probleme machte (ständig am patchen, mittlerweile aus 4 verschiedenen Quellen Codes zusammengefügt, damit es überhaupt noch lief).
Die Art und Weise der Bots in Telegram war mir zwar erst etwas suspekt (man sollte erst die Anleitungen lesen und dann probieren etwas einzurichten ;-)), aber jetzt läuft es inklusive Gruppen wirklich perfekt.
Vielen Dank für das Modul!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 17 April 2016, 08:38:16
Momentan experimentiere ich mit dem versenden von Plots.
Mittels aufruf via
ok fhem {plotAsPng("test_SVG")}
funktioniert das auch wunderbar.

Gibt es aber auch eine möglichkeit das direkt aus fhem heraus zu machen?
Inetwa:
set myTelegrambot sendImage {plotAsPng("test_SVG")}

Was ich sonst gefunden habe war von hier https://forum.fhem.de/index.php?topic=38842.0 (https://forum.fhem.de/index.php?topic=38842.0)
Plot2JPEG("Name des Plots", "/opt/fhem/log/wetter.jpg");
fhem("set WhatsAppDevice image /opt/fhem/log/wetter.jpg");
Aber das ist ja irgendwie doppelt gemoppelt, da der Bot das ja eigentlich unterstützt.

Grüße
igami

Habe es nun erst mal folgendermaßen gelöst:
{TelegramBot_ExecuteCommand($defs{myTelegramBot}, [myTelegramBot:msgPeerId], '{plotAsPng("test_SVG")}');; return;;}

Vielleicht gibt es ja aber noch einen elegangtere Lösung.

Grüße
igami
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: forum-merlin am 18 April 2016, 07:28:54
Ich weiss nicht wieso aber seit gestern kommen meine Meldungen aus FHEM nicht mehr sauber an. Alle ü und ö  etc. Schauen jetzt sch... aus. Jemand ne Ahnung was ich machen kann? Siehe Screenshot

Danke
Holger

Gesendet von meinem SM-G920F mit Tapatalk

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 18 April 2016, 08:22:37
Ich weiss nicht wieso aber seit gestern kommen meine Meldungen aus FHEM nicht mehr sauber an. Alle ü und ö  etc. Schauen jetzt sch... aus. Jemand ne Ahnung was ich machen kann? Siehe Screenshot

Danke
Holger

Gesendet von meinem SM-G920F mit Tapatalk

Hast Du denn irgendetwas zwischen 17:xx und 19:xx bei Dir geändert?
Bei mir funktionieren die Umlaute noch. Kann es sein, dass die Datei in der die Meldung zusammengebaut wird nicht mehr korrekt ist (falsche Codierung von Sonderzeichen / nicht UTF-8)? Also hast Du an den Dateien etwas geändert?
Johannes

 
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Adriano am 18 April 2016, 08:47:13
Hi. Könnt ihr kurz die Syntax der Favoritenaliase beschreiben. Vielen Dank.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 18 April 2016, 12:09:29
Nur damit ich verstehe, welche Art Informationen Dir fehlen zu den

Beispielen für Favorites und Beschreibung der Syntax in der commandref:
http://fhem.de/commandref.html#TelegramBot (http://fhem.de/commandref.html#TelegramBot)

und auf Deutsch auch im fhemwiki:

http://www.fhemwiki.de/wiki/TelegramBot (http://www.fhemwiki.de/wiki/TelegramBot)

Gibt es spezielle Fragen?
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Adriano am 18 April 2016, 14:03:04
Kenn ich alles und funktioniert auch. Ich dachte man kann für die Favouriten auch aliase definieren. Anstatt also /fav1 z.B. /lichtan
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 18 April 2016, 14:40:24
Kenn ich alles und funktioniert auch. Ich dachte man kann für die Favouriten auch aliase definieren. Anstatt also /fav1 z.B. /lichtan

Wie gesagt, das ist in den Beispielen in der commandref enthalten, ich kann es aber auch gerne für Dich hierhin kopieren:

Zitat
Example: Assuming cmdFavorites is set to a value of favorite and this attribute is set to a value of
get lights status; /light=set lights on; /dark=set lights off; /heating=set heater;
    A message "favorite 1" or "/light" to the bot would execute the command set lights on


Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: forum-merlin am 18 April 2016, 17:41:08
Hast Du denn irgendetwas zwischen 17:xx und 19:xx bei Dir geändert?
Bei mir funktionieren die Umlaute noch. Kann es sein, dass die Datei in der die Meldung zusammengebaut wird nicht mehr korrekt ist (falsche Codierung von Sonderzeichen / nicht UTF-8)? Also hast Du an den Dateien etwas geändert?
Johannes

Habs gefunden. War ein Problem das ich selbst verbockt hatte.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 18 April 2016, 17:55:46
Habe es nun erst mal folgendermaßen gelöst:
{TelegramBot_ExecuteCommand($defs{myTelegramBot}, [myTelegramBot:msgPeerId], '{plotAsPng("test_SVG")}');; return;;}

Vielleicht gibt es ja aber noch einen elegangtere Lösung.
Mhh, ich würde auch gerne die kompliziert rustikale Lösung nehmen, aber scheinbar übersteigt sie meinen Horizont  :'(
Muss ich den entspr. angepassten Code von der Kommandozeile des FHEMweb abfeuern können?

Grundsätzlich ist doch das hier, nur ohne Anforderung
Zitat von: Commandref
Send the following message as a command to the bot ok fhem { plotAsPng('SVG_FileLog_Aussen') }
assuming ok fhem is the command keyword)
Aber auch das bekomme ich nicht entsprechend umgebaut, um es ohne Abruf aus einem DOIF zu senden  :'(


grafiklose Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: F.R. am 19 April 2016, 07:50:45
Hallo,
ich habe nach einigem Rumprobieren jetzt auch den TelegramBot zum laufen gebracht. In diesem Thread sind ja jede Menge Infos enthalten.  Ich fand es jedoch sehr verwirrend, dass am Beginn des Threads noch über die TelegramCLI diskutiert wird und erst ab ca Seite7 über den TelegramBot.

Daher wäre mein Vorschlag, diesen Thread aufzuteilen und die TelegramCLI-Beiträge in einen eigenen Thread zu packen. Wäre das möglich?

Gruß Florian
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 19 April 2016, 08:14:09
Also ich kann Florian zustimmen, allerdings finde ich Doku in Form von Forendiskusssionen doch eher unglücklich. Egal ob hier oder in anderen Bereichen muss man lange suchen, bis man alle Irrwege verlassen hat und zum Ziel kommt. Von daher ist die Auftrennung des Threads auch nur halbherzig.
Ich rufe lieber dazu auf, aktiv an dem entspr. Wiki-Artikel (http://www.fhemwiki.de/wiki/TelegramBot) mitzuarbeiten. Das ist genau eine Seite, auf der alle Informationen stehen sollten und wenn der rund ist, braucht keiner seitenweise Forenthreads wälzen.

einseitige Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 19 April 2016, 19:20:31
Hallo viegener,

ist es möglich, dass man die vom TelegramBot gesendete Nachricht auch als Reading bekommt, bzw. kannst du das einbauen?
Würde das gerne auch mit in ein Log schreiben.

Grüße Marcel
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Adriano am 19 April 2016, 19:22:01
Danke viegener. Jetzt hats bei mir auch Klick gemacht mit den Aliasen ;)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoWiemann am 19 April 2016, 19:27:42
Hallo viegener,

ist es möglich, dass man die vom TelegramBot gesendete Nachricht auch als Reading bekommt, bzw. kannst du das einbauen?
Würde das gerne auch mit in ein Log schreiben.

Grüße Marcel

Hallo Marcel,

bei mir wird das readings msgText gefüllt.

Grüße Jörg
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 19 April 2016, 20:18:37
bei mir wird das readings msgText gefüllt.
Bei mir auch - aber mit der letzten empfangenen Nachricht.

Mein Bot wird mit Werbung versorgt und dabei kam es zu diesem Fehler: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 1465Ist das relevant oder normal? Neue Nachrichten werden auf jeden Fall empfangen - da gibt es kein Problem.
Ich muss wohl doch die Privacy wieder einschalten.

gespammte Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 19 April 2016, 20:48:24
Zitat
bei mir wird das readings msgText gefüllt.

wird bei mir nur mit der empfangenen Nachricht gefüllt, aber nicht mit der versendeten.

Grüße Marcel
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoWiemann am 19 April 2016, 21:22:59
wird bei mir nur mit der empfangenen Nachricht gefüllt, aber nicht mit der versendeten.

Grüße Marcel

Argh, falsch herum gelesen ...

Und das set generiert auch keinen Log-Eintrag...

Du kannst aber folgendes machen:

attr teleBot UserReadings MsgTextSend {InternalVal("teleBot","sentMsgText","none");;}
define teleBotLog FileLog ./log/teleBot-%Y.log teleBot:.*MsgTextSend.*

Grüße Jörg
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 19 April 2016, 21:30:20
Danke, das mit dem userReading klappt wundebar.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 April 2016, 00:18:05
Also ich kann Florian zustimmen, allerdings finde ich Doku in Form von Forendiskusssionen doch eher unglücklich. Egal ob hier oder in anderen Bereichen muss man lange suchen, bis man alle Irrwege verlassen hat und zum Ziel kommt. Von daher ist die Auftrennung des Threads auch nur halbherzig.
Ich rufe lieber dazu auf, aktiv an dem entspr. Wiki-Artikel (http://www.fhemwiki.de/wiki/TelegramBot) mitzuarbeiten. Das ist genau eine Seite, auf der alle Informationen stehen sollten und wenn der rund ist, braucht keiner seitenweise Forenthreads wälzen.

einseitige Grüße
Niels

Wiki-Seite finde ich jetzt auch eine gute Lösung. Ich versuche zwar auf jeden Fall die Commandref in englisch vollständig zu halten, verstehe aber, dass das u.U. nicht für jeden passt.

- Jeder kann gerne selber Beispiele und Inhalte zum Wiki hinzufügen, speziell Beispiele sind immer wieder angefragt
- Wenn jemand nicht selber ins wiki schreiben will, gerne auch Inhalte hier einstellen, ich kann das dann ins Wiki übertragen

Ansonsten, wenn es konkrete Punkte gibt, die Euch im wiki fehlen sagt gerne auch hier Bescheid. Ich möcte nämlich auch ins wiki nur Inhalte übertragen, die für jemanden hilfreich sind.

 
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 April 2016, 00:25:16
Bei mir auch - aber mit der letzten empfangenen Nachricht.

Mein Bot wird mit Werbung versorgt und dabei kam es zu diesem Fehler: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 1465Ist das relevant oder normal? Neue Nachrichten werden auf jeden Fall empfangen - da gibt es kein Problem.
Ich muss wohl doch die Privacy wieder einschalten.

gespammte Grüße
Niels

Nein das kommt immer mal wieder vor, das einzelne Zugriffe schief gehen. Wenn es stört, gibt es das Attribut: pollingVerbose mit dem Wert 1_Digest wird nur alle 24 Stunden ein Eintrag mit der Anzahl der Fehler geloggt, damit man sieht ob es wirklich ein Problem gibt.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 April 2016, 00:30:06
Hallo viegener,

ist es möglich, dass man die vom TelegramBot gesendete Nachricht auch als Reading bekommt, bzw. kannst du das einbauen?
Würde das gerne auch mit in ein Log schreiben.

Grüße Marcel

Ich kann das noch einbauen, wollte aber nicht zuviele Readings haben, deshalb hatte ich mich darauf beschränkt die Readings sentMsgResult und sentMsgId hinzugefügt, diese werden NACH Versand der Nachricht gesetzt und erlauben es dann den Text aus dem Internal sentMsgText herauszulesen. Wichtig ist, dass man auf das Setzen der Readings wartet, sonst ist die Nachricht vielleicht gar nicht gesendet.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 06:32:11
- Wenn jemand nicht selber ins wiki schreiben will, gerne auch Inhalte hier einstellen, ich kann das dann ins Wiki übertragen
Da ich mich in Sachen Programmierung nicht beteiligen kann, gebe ich da auch gerne etwas zurück und kann im Rahmen meiner begrenzten Möglichkeiten behilflich sein.

Ansonsten, wenn es konkrete Punkte gibt, die Euch im wiki fehlen sagt gerne auch hier Bescheid. Ich möcte nämlich auch ins wiki nur Inhalte übertragen, die für jemanden hilfreich sind.
Oh ja, ein SVG-Plot als Bildchen versenden bitte. Das bekomme ich mit den bislang gefundenen Informationen nicht gebacken.

beschränkte Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: abc2006 am 20 April 2016, 06:38:46
Oh ja, ein SVG-Plot als Bildchen versenden bitte. Das bekomme ich mit den bislang gefundenen Informationen nicht gebacken.

+1
hätte ich auch gerne :-)

Grüße
Stephan
Titel: Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoWiemann am 20 April 2016, 08:08:35
[Hallo, zu SVG Plot hatte ich schon mal eine Lösung im WhatsApp Thread vorgestellt. Die beschriebene Erweiterung im SVG Modul konnte sich bisher nicht beim Maintainer durchsetzen.]

Nonsens, es war das RSS Modul gemeint.


Grüße Jörg

Gesendet von iPhone mit Tapatalk
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 20 April 2016, 09:24:29
Das Problem verstehe ich nicht. Die in FHEM eingebaute Funktion

{plotAsPng("SVGDEV")}
Bereitet einen Plot als png auf. Das wiederum kann man einfach als image versenden.

Edit: Einfach unter favorites ablegen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JoWiemann am 20 April 2016, 09:35:13
Hallo,

ich habe Blödsinn erzählt. Ich meinte das RSS Modul. Damit kann man erstellte RSS Seiten als Bild ohne den Umweg über wget versenden.




Grüße Jörg

Gesendet von iPad mit Tapatalk
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 10:28:04
Das Problem verstehe ich nicht. Die in FHEM eingebaute Funktion
{plotAsPng("SVGDEV")}Bereitet einen Plot als png auf. Das wiederum kann man einfach als image versenden.
Sorry, für meine begrenzten Fähigkeiten. Aber so einfach ist das für mich nicht:
set meinTelegramBot sendImage @meinZiel {plotAsPng("SVG_meinDiagamm")}
FAILED file :{plotAsPng("SVG_meinDiagamm")}: not found or empty

Da gibt es ja nun noch folgende Aussage, die ich aber auch nicht ernsthaft verstehe und umsetzen kann:
Habe es nun erst mal folgendermaßen gelöst:
{TelegramBot_ExecuteCommand($defs{myTelegramBot}, [myTelegramBot:msgPeerId], '{plotAsPng("test_SVG")}');; return;;}
{TelegramBot_ExecuteCommand($defs{meinTelegramBot}, [meinTelegramBot:meinZiel], '{plotAsPng("SVG_meinDiagamm")}');; return;;}
syntax error at (eval 344547) line 1, near "meinTelegramBot"

fehlerhafte Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 20 April 2016, 10:35:53
{TelegramBot_ExecuteCommand($defs{"TelegramBot"}, [msgPeerId], '{plotAsPng("PlotDevice")}');; return;;}
TelegramBot: Dein Bot Device
msgPeerId: Deine PeerID (auch herauszufinden über ReadingsVal())
PlotDevice: Dein plot Device

Einfacher geht es aber, wie gesagt, mit den favorites. Dort kann man es einfach so angeben:

/meinBefehl={plotAsPng("PlotDevice")};Plots fordert man sicher sowieso eher an, als das man sie automatisch verschickt.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 12:21:49
Plots fordert man sicher sowieso eher an, als das man sie automatisch verschickt.
Na ja, ich versende einen Alarm bei Unter- bzw. Überschreitung von Werten, da soll das Tagesplot eigentlich schon automatisch mitkommen

TelegramBot: telegramBot (zugegeben etwas unglücklich)
msgPeerId: 12345678
PlotDevice: Terrarium_1

{TelegramBot_ExecuteCommand($defs{"telegramBot"}, [@12345678], '{plotAsPng("Terrarium_1")}');; return;;}Das läuft nun so erst einmal durch, allerdings wird es nicht gesendet:
sentMsgResult -> NonBlockingGet: returned FAILED peer not found :ARRAY(0x31xxxb8)

Gleiches ohne das @-Zeichen in der PeerID (dadurch kam ich erst darauf, ob hier evtl. das @ benötigt wird).

mühsame Grüße
Niels

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 20 April 2016, 12:37:18
Ohne @ und das ist nicht die ID von deinem Bot, sondern die des Peers (dein Handy oder sonstiges). Gerade noch einmal getestet. Klappt einwandfrei.

Edit: und das ohne @ genau der gleiche Fehler erscheint, glaube ich nicht.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 12:53:30
Ohne @ und das ist nicht die ID von deinem Bot, sondern die des Peers (dein Handy oder sonstiges).
Ja klar die des Handys. Habe ich auch nochmal mit einer Textnachricht geprüft, dass die ok ist.

Edit: und das ohne @ genau der gleiche Fehler erscheint, glaube ich nicht.
Jo, nicht zu 100%, der Hex-Wert ist anders  ;)
Ich habe es jetzt nochmal an eine Gruppe versucht - gleicher Fehler, nur anderer Hex-Wert.

fehlerhafte Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 20 April 2016, 12:57:45
Ohne @ und das ist nicht die ID von deinem Bot, sondern die des Peers (dein Handy oder sonstiges). Gerade noch einmal getestet. Klappt einwandfrei.

Edit: und das ohne @ genau der gleiche Fehler erscheint, glaube ich nicht.

[myTelegramBot:msgPeerId] liest das Reading msgPeerId vom device myTelegramBot, also die ID die als letztes den Bot angeschrieben hat. Wie sieht denn die ID von einer Gruppe aus?

Wie hier (https://forum.fhem.de/index.php/topic,51425.0.html) beschrieben habe ich Dialoge und arbeite nicht mit Favorites, aber das ist noch nicht ganz ausgereift :D
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 20 April 2016, 13:23:23
Mit Gruppen habe ich mich nicht beschäftigt. Haben die keine ID?

@Muschelpuster: Ist der Peer denn vielleicht wirklich unbekannt? Die eckigen Klammern um die ID sind natürlich bei direkter Angabe einer ID überflüssig. Die benötigt man nur, wenn man das Reading verwenden möchte. Sorry das habe ich übersehen. Das kann evtl. je nach Perl Version Probleme machen (kommt auf den Kontext an).
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 14:01:18
Mit Gruppen habe ich mich nicht beschäftigt. Haben die keine ID?
Doch, die beginnt mit einem Minuszeichen.

@Muschelpuster: Ist der Peer denn vielleicht wirklich unbekannt? Die eckigen Klammern um die ID sind natürlich bei direkter Angabe einer ID überflüssig.
Upps, da hätte ich natürlich drauf kommen können (hatte ich schon mal irgendwo), aber mit dem Syntax tue ich mich echt schwer.
Nun geht die Nachricht raus, doch das Ergebnis ist noch nicht ganz optimal:
Zitat von: Telegram-Nachricht
TelegramBot fhem cmd:
{plotAsPng(Terrarium_1")}:
result OK

langsam voranschreitende Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 20 April 2016, 14:16:09
Nun geht die Nachricht raus, doch das Ergebnis ist noch nicht ganz optimal:
Dann sag doch mal was du nun genau gemacht hast
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 20 April 2016, 15:03:29
Was ist denn nicht optimal? Schreibe hier nochmal genau was du machst (mit komplettem Kontext). Das was ich bisher gepostet habe, habe ich in der Befehlszeile verwendet. Je nach Kontexst müsste man ggf. etwas anpassen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 18:45:46
Definitionen:
#TelegramBot
define telegramBot TelegramBot xxxxxxxxxxxxxxxxxxxx
attr telegramBot allowUnknownContacts 1
attr telegramBot pollingTimeout 120
attr telegramBot room Maschinenraum

# FileLog Definition
define FileLog_Terrarium FileLog ./log/Terrarium-%Y-%m.log 1Wire_TerraLF:Luftfeuchte:.*|1Wire_TerraSwitch:sensed.A:.*|1Wire_TerraTemp_.*:.*Temperatur.*
attr FileLog_Terrarium icon icoLog
attr FileLog_Terrarium room Logfiles

# Chart
define Terrarium_1 SVG FileLog_Terrarium:Terrarium_1:CURRENT
attr Terrarium_1 room Terrarium
attr Terrarium_1 sortby 40
attr Terrarium_1 title "Luftfeuchtigkeit  (Min $data{min1}%, Max $data{max1}%, Aktuell $data{currval1}%)"

GPlot-File:# Created by FHEM/98_SVG.pm, 2015-08-02 21:16:12
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid
set ylabel "Grad C"
set y2label "Prozent"

#FileLog_Terrarium 4:1Wire_TerraLF.Luftfeuchte\x3a::
#FileLog_Terrarium 4:1Wire_TerraTemp_HS.Temperatur\x3a::
#FileLog_Terrarium 4:1Wire_TerraTemp_MO.Temperatur\x3a::

plot "<IN>" using 1:2 axes x1y2 title 'relLuftfeuchte' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Temp Hotspot' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Temp Mitte oben' ls l7 lw 1 with lines

Und an der Kommando-Eingabe von FHEMweb:{TelegramBot_ExecuteCommand($defs{"telegramBot"}, xxxxxx, '{plotAsPng("Terrarium_1")}');; return;;}
detaillierte Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 20 April 2016, 19:04:20
Falls es jemanden interessiert, ich erzeuge jede 30 Minuten mit einem at Job eine Bilddatei und kann mir diese dann einfach per TelegramBot zuschicken.
Diese Dateien werden bei mir unter /opt/fhem/www/plot2jpg/ abgelegt.

Das ganze habe ich schon vor der Nutzung mit TelegramBot usw. gemacht, da ich die Bilder auch zum anzeigen für ein Tablet brauche, wie ich aber hier gesehen habe, geht es ja auch einfacher, aber ich wollte euch nur mal kurz zeigen, wie es auch gehen kann.

Als erstes
sudo apt-get install libgd-graph-perl
sudo apt-get install libgd-text-perl
sudo apt-get install libimage-librsvg-perl

in die 99_myUtils muss folgendes :
sub Plot2JPEG($$) {

use GD;

my ($myPlot, $myFile) = @_;

my $pngImg = plotAsPng($myPlot);

if(!defined($pngImg) or ($pngImg eq "")) {
Log3 "Plot2JPEG", 2, "Plot2JPEG: error while creating image from $myPlot";
return;
};

my $image = GD::Image->newFromPngData($pngImg) or die Log3 "Plot2JPEG", 2, "Plot2JPEG: error while creating GD::Instance from $myPlot";

my $jpeg = $image->jpeg;

open (FILE, ">" . $myFile) or die Log3 "Plot2JPEG", 2, "Plot2JPEG: error while openeing " . $myFile;
print FILE $jpeg;
close (FILE);

Log3 "Plot2JPEG", 2, "Plot2JPEG: jpeg image created from $myPlot in " . $myFile;

return;
}

at DEF
+*00:30:00 {Plot2JPEG("SVG_FileLog_Aussentemperaturen", "/opt/fhem/www/plot2jpg/aussentemperaturen.jpg");}
Jetzt kann man (sobald die Datei einmal vorhanden ist und dann ja alle 30 Minuten aktualisiert wird) mit
set TelegramBot sendImage /opt/fhem/www/plot2jpg/aussentemperaturen.jpgdas Bild versenden.

Vielleicht hilft das dem ein oder anderen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 20 April 2016, 19:28:13
@Muschelpuster: Aber was genau ist denn nun noch nicht "optimal"?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 19:39:26
@Muschelpuster: Aber was genau ist denn nun noch nicht "optimal"?
Die Anzeige auf meinem TelegramClient. Da steht:
Zitat
TelegramBot fhem cmd:
{plotAsPng(Terrarium_1")}:
result OK

grafikfreie Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 20 April 2016, 19:44:32
Und da fehlt ein Anführungszeichen. Sicher, dass du es korrekt in die Kommandozeile von FHEM eingegeben hast?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 20:06:28
Und da fehlt ein Anführungszeichen. Sicher, dass du es korrekt in die Kommandozeile von FHEM eingegeben hast?
Ja, die steht bei mir im Editor und wird mit Copy&Paste in FHEM und das Forum kopiert. Der Fehler liegt beim Abtippen vom Mäusekino.

legastenische Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 20 April 2016, 20:43:01
Ich bin etwas ratlos. Wie alt ist denn dein FHEM? Probiere mal noch folgendes:

{TelegramBot_ExecuteCommand($defs{"telegramBot"}, xxxxxx, "{plotAsPng('Terrarium_1')}");; return;;}
BTW: Aus der Web-Version von Telegram (https://web.telegram.org) könntest du auch Copy & Paste machen ;)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 20:54:15
Ich bin etwas ratlos. Wie alt ist denn dein FHEM?
Fhem info:
  Release  : 5.7 FeatureLevel: 5.7
  OS       : linux
  Arch     : arm-linux-gnueabihf-thread-multi-64int
  Perl     : v5.14.2

BTW: Aus der Web-Version von Telegram (https://web.telegram.org) könntest du auch Copy & Paste machen ;)
Da hast Du recht, aber das willst Du nicht sehen:TelegramBot fhem cmd :{plotAsPng('Terrarium_1')}: result OK
erfolglose Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 20 April 2016, 20:59:38
Das sagt leider nicht sehr viel über das Alter. Die Ausgabe von version wäre hilfreicher. Aber auf der anderen Seite sollte es kein Problem machen. Ich weiß bloß nicht, ob es sein kann, dass das TelegramBot Modul zu alt ist. Da habe ich die Entwicklung erst seit kurzem verfolgt.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 21:02:42
Ich mache mal ein Update - kann ja nicht schaden  ;)
Das Letzte ist ja schon wieder ein paar Wochen her.

inaktuelle Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 21:13:07
Auch mit aktuellem FHEM sieht es nicht besser aus.

aktuelle Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 20 April 2016, 21:18:49
Funktionier das mit den Plots denn als Antwort? Wie in der Commandref beschrieben:
Zitat
Send the following message as a command to the bot ok fhem { plotAsPng('SVG_FileLog_Aussen') }
assuming ok fhem is the command keyword)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 20 April 2016, 21:22:26
sudo apt-get install libgd-graph-perl
sudo apt-get install libgd-text-perl
sudo apt-get install libimage-librsvg-perl
Ha, libimage-librsvg-perl fehlte. Nun ist natürlich die Frage, ob man die anderen Module auch braucht, damit das ordentlcih in's Wiki übertragen werden kann.

gelöste Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 April 2016, 22:32:34
Ha, libimage-librsvg-perl fehlte. Nun ist natürlich die Frage, ob man die anderen Module auch braucht, damit das ordentlcih in's Wiki übertragen werden kann.

gelöste Grüße
Niels

Klingt gut und Danke an alle die hier gerade helfen!!!

Wenn das jetzt im wiki stände wäre es sicher hilfreich, momentan gibt es im Bot noch keine einfachere Möglichkeit, um über ein FHEM-Kommando Bilder/Plots zu verschicken.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 21 April 2016, 09:49:40
Einen habe ich noch  :-[
Möchte man seinen Plot nun noch mit einem Text versehen, dann hilft das hier:
{fhem "set mein_telegramBot message \@meine_ZielID Mein Text" ;; TelegramBot_ExecuteCommand($defs{"mein_telegramBot"}, meine_ZielID, '{plotAsPng("mein_SVG")}');; return;;}Falls noch jemand neben mir auf diese Idee kommt  8)
Vermutlich kann das auch der Befehl TelegramBot_ExecuteCommand, aber ich eben nicht  ;)

beschriftete Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 21 April 2016, 10:18:57
Wenn das jetzt im wiki stände wäre es sicher hilfreich, momentan gibt es im Bot noch keine einfachere Möglichkeit, um über ein FHEM-Kommando Bilder/Plots zu verschicken.
Meinst Du ein etwa so: http://www.fhemwiki.de/wiki/TelegramBot#Versand_von_SVG-Plots

Danke an alle die hier gerade helfen!!!
Und nicht zu vergessen, Danke für das Modul!!!

dokumentierte Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Esjay am 21 April 2016, 10:40:13
Servus zusammen!

Erstmal danke für das Modul..Ich schalte meine Steckdosen jetzt öfter einfach mal vom Sofa übers Handy an und aus, nur weil ich es jetzt kann.Verrückt sag ich nur.
Ich hätte allerdings mal eine Frage. Im Post 570 kann man sehen,dass der Bot nicht die Standard Antwort aller "TelegramBot fhem cmd: ect" zurücksendet, sondern einen angepassten Text.
Ich hatte hier auch i-wo gelesen, wie das funktioniert,komme aber auch nach längerem Suchen nicht auf die richtige Spur.

Bin dankbar für Tipps.

Grüße
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 21 April 2016, 10:57:14
Im Post 570 kann man sehen,dass der Bot nicht die Standard Antwort aller "TelegramBot fhem cmd: ect" zurücksendet, sondern einen angepassten Text.
Also ich würde sagen, dass hier nur Statusmeldungen über ein NOTIFY oder ein DOIF verschickt wurden...

ungesteuerte Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: jneroes am 21 April 2016, 13:33:54
Hi,

super Modul  :). Gibt es eine Möglichkeit die inline Keyboards zu verwenden oder ist das schon geplant?
https://core.telegram.org/bots/2-0-intro#new-inline-keyboards

Danke und Gruß

Sören
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 April 2016, 15:08:39
Meinst Du ein etwa so: http://www.fhemwiki.de/wiki/TelegramBot#Versand_von_SVG-Plots

Genau, Danke dafür!
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 April 2016, 15:27:35
Servus zusammen!

Erstmal danke für das Modul..Ich schalte meine Steckdosen jetzt öfter einfach mal vom Sofa übers Handy an und aus, nur weil ich es jetzt kann.Verrückt sag ich nur.
Ich hätte allerdings mal eine Frage. Im Post 570 kann man sehen,dass der Bot nicht die Standard Antwort aller "TelegramBot fhem cmd: ect" zurücksendet, sondern einen angepassten Text.
Ich hatte hier auch i-wo gelesen, wie das funktioniert,komme aber auch nach längerem Suchen nicht auf die richtige Spur.

Bin dankbar für Tipps.

Grüße

Die Version war bisher nur in github hochgeladen. Üblicherweise packe ich neue Features erst eine Zeit nur ins github um ein paar weitere tests insbesondere von weiteren Benutzern abzuwarten. Dadurch dauert es je nach meiner Verfügbarkeit einige Zeit bis ins SVN wandern.
Das habe ich aber soeben gemacht, jetzt sind sie im SVN und kommen morgen über update überall an (Die Attribute zum Customizing sind dann auch in der commandref beschrieben)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 April 2016, 17:27:27
Hi,

super Modul  :). Gibt es eine Möglichkeit die inline Keyboards zu verwenden oder ist das schon geplant?
https://core.telegram.org/bots/2-0-intro#new-inline-keyboards

Danke und Gruß

Sören

Generell wäre das (und die ganze inline-Funktionalität) sicher eine gute Erweiterung für Bestätigungs oder Dialogfunktionen. Da die Inline-Keyboards aber noch nicht für Gruppen zur Verfügung stehen würde ich da erst noch abwarten.

Mir ist noch etwas unklar, wie man das einigermassen hilfreich in die FHEM-Kommandos einbauen kann, denn mit inline/direkter Antwort und Keyboards wird das eher unübersichtlich.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: FHEM-User22 am 23 April 2016, 10:57:35
Hallo,
seit meinem heutigen Update geht Folgendes nicht mehr:

Telegram1:msgText:.Temp set Telegram1 message {( return "-----------  Stadt -------")}
{( return "-Aussen")}
{(ReadingsVal("Stadt_Aussen","temperature","unbekannte")." Grad   ".ReadingsVal("Stadt_Aussen","humidity","unbekannte")." % Hum" )}
{( return "-Büro")}

Es kommen nur Fehlermeldungen auf Telegram an (kann ich gerne nachliefern)
Bis vor dem Update klappte es.

Meine Versuche jetzt:
Telegram1:msgText:.Temp set Telegram1 message {( return "-----------  Stadt -------
-Aussen
2")}


geht soweit, aber ich schaffe es nicht, readings einzubinden!

Was kann ich noch liefern?

Dankeschön.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 April 2016, 15:06:16
OK, ich kann das Problem nachvollziehen, es hängt wohl irgendwie mit eienr Umstellung im fhem.pl-Modul zusammen.
Ich konnte es eingrenzen, dass es mit der Verwendung mehrerer Perl-Ausdrücke in einem set vorkommt, allerdings nicht speziell mit Readings:

Probier doch mal folgendes:

Telegram1:msgText:.Temp set Telegram1 message
{(ReadingsVal("Stadt_Aussen","temperature","unbekannte")." Grad   ".ReadingsVal("Stadt_Aussen","humidity","unbekannte")." % Hum" )}

Das sollte gehen.

Als kurzfristigen Workaround kannst Du auch verwenden, wie gesagt das Problme tritt auf wenn mehrfach auf die Perl-Ebene in einem Set gewechselt wird:

Telegram1:msgText:.Temp set Telegram1 message
{("-----------  Stadt -------"."-Aussen".ReadingsVal("Stadt_Aussen","temperature","unbekannte")." Grad   ".ReadingsVal("Stadt_Aussen","humidity","unbekannte")." % Hum"."-Büro" )}

Ich habe mal eine Lösung vorgeschlagen und Rudi gebeten diese in fhem.pl aufzunehmen:
https://forum.fhem.de/index.php/topic,52552.0.html (https://forum.fhem.de/index.php/topic,52552.0.html)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: FHEM-User22 am 24 April 2016, 10:51:43
Moin,

ich habs mit:

{(ReadingsVal("Stadt_Aussen","temperature","unbekannte")." Grad   ".ReadingsVal("Stadt_Aussen","humidity","unbekannte")." % Hum" )}
probiert. Da kommt nichts an. wenn ich aber diese Zeile lösche und nur Test schreibe, funtioniert es. Also Telegram funktioniert.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 24 April 2016, 10:58:20
Folgendes sollte seit fhem 5.7 auch funktionieren:
Telegram1:msgText:.Temp set Telegram1 message
[Stadt_Aussen:temperature] Grad   [Stadt_Aussen:humidity] % Hum
Sicher bin ich mir zwar nicht, aber im Zweifelsfall funktioniert das mit einem DOIF statt notify :D

Grüße
igami
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 24 April 2016, 12:14:52
Da das ein Feature von set ist (siehe commandref), ist es wohl egal, ob man das nun in DOIF, notify oder sonstwas verwendet. Mischen von Perl Code und FHEM ist nicht notwendig (wenn man nur Readings weiter verwendet).
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 24 April 2016, 12:19:18
Hatte in der Commandref nach [<device>:<reading>] gescht, da war ich nur bei IF gelandet, aber jetzt wo du sagt set, da steht es ohne spitze Klammern

Zitat
From featurelevel 5.7 on the set (and setreading) command replaces:

    [device:reading] with the corresponding reading of device, if both device and reading exists.
    [device:reading:d] same as above, but only the number is retrieved, see ReadingsNum
    {(perlExpression)} with the result of perlExpression, if the expression does not generates an error.

Aber trotzdem sollte Perl auch funktionieren.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 24 April 2016, 12:20:30
Perl funktioniert auch, viele tun sich bloß schwer, die Klammern richtig zu setzen und den Code klar abzugrenzen. Support muss man dafür nicht geben, wenn es auch einfacher geht ;)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Tedious am 26 April 2016, 14:43:41
Hallo zusammen,

erst mal besten Dank für die Arbeit hier. Bin letztendlich gestern auch von WA hierher gewechselt, da mit das dauernde Blocken/Umstellen auf den Sender geht... Soweit klappt alles, ich bin noch dabei mich einzuarbeiten. Eine Frage zu den Keyboards... ich habe Favoriten angelegt, als Kommando ein /do gesetzt, Keyboard wird mir auch angeboten. Meine Syntax (exemplarisch) ist wie folgt:

/Balkon[Balkontemperatur]=set Telegram msg Temperatur [LaCrosse_12:temperature] C°;
/Server[WHS wecken]=set WOL_WHS on;
/PlotMarie[Maries Zimmer GFX]={plotAsPng("SVG_FileLog_HZ_Marie_1")};

Im Keyboard steht jetzt (leider) /do1 = /Balkon = Balkontemperatur, etc. Gibt es einen Parameter den ich übersehen habe der mir *nur* die Beschreibung in den [] liefert, also bspw. Nur Balkontemperatur? Das würde den WAF massiv steigern

Zweite kleine Frage - ggf. habe ich das auch übersehen? Zu den Nutzern - kann ich ja bei den Benachrichtigungen mit "message @ABC" gezielt triggern. Sendet mgs als Parameter an den Initiator (also den der an den Bot geschrieben hat) oder an den defaultPeer? Sprich, muss ich für eine Temperaturabfrage in einem Raum für jeden (theoretischen) User der anfragen könnte einen separaten Befehl definierten, oder geht die Antwort direkt an den Fragestellenden zurück?

Beste Grüße

Sascha
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 26 April 2016, 17:20:06
Ich habe gerade mal folgendes entspr. der Commandref getestet:attr telegramBot favorites [Rolllaeden zu]=set DuoFern_Rollladen.* position 10;[Rolllaeden auf]=set DuoFern_Rollladen.* position 0Mein Favoritenkommando ist 'Befehl'. OK, ohne Slash geht das nicht in der Gruppe, aber hier ist ja die direkte Kommunikation mit dem Bot eh besser.
Dann steht nur da:
Zitat
Befehl1 = Rolllaeden zu
Befehl2 = Rolllaeden auf
Das finde ich nun schon recht brauchbar. Jetzt muss nur noch die Antwort aufgehübscht werden...

beschriftete Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 26 April 2016, 18:15:37
Zweite kleine Frage - ggf. habe ich das auch übersehen? Zu den Nutzern - kann ich ja bei den Benachrichtigungen mit "message @ABC" gezielt triggern. Sendet mgs als Parameter an den Initiator (also den der an den Bot geschrieben hat) oder an den defaultPeer? Sprich, muss ich für eine Temperaturabfrage in einem Raum für jeden (theoretischen) User der anfragen könnte einen separaten Befehl definierten, oder geht die Antwort direkt an den Fragestellenden zurück?
Geht an den Fragestellenden zurück - habe ich gerade mit Deinem 3. Fall getestet.
Im 1. Fall löst Du ja ein Kommando aus, das wird an den Defult Peer gehen, da würde ich mal versuchen:set Telegram msg @[Telegram:msgPeerId] Temperatur [LaCrosse_12:temperature] C°Das führt aber dazu, dass Du die Nachricht und eine Quittung über die Befehlsausführung erhälst...
Mit Homematic konnte ich das auch nicht wirklich schick lösen:[Temperatur Wohnzimmer]=get HM_Hzg_T_WZ param measured-temp;Geht zwar, aber der WAF tendiert bei der Antwort noch gegen 0:
Zitat
TelegramBot FHEM :
    Befehl:get HM_Hzg_T_WZ param measured-temp:
  Ergebnis:
21.5


überprüfte Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: MadMax-FHEM am 26 April 2016, 23:23:52
Hallo,

bin nicht sicher ob ich hier richtig aufgehoben bin aber trotzdem:

habe eben ein update gemacht und danach startete fhem nicht mehr.

Per Linux-Console habe ich im Logfile folgenden letzten Eintrag gefunden:

Unmatched ) in regex; marked by <-- HERE in m/Y@si___) <-- HERE / at ./FHEM/50_TelegramBot.pm line 2140, <$fh> line 954.

Nach dem Deaktivieren des TelegramBot modul (define in fhem.cfg auskommentiert) läuft es wieder...
...aber nat. ohne TelegramBot :-|

Danke schon mal, Joachim
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 26 April 2016, 23:44:35
Hallo,

bin nicht sicher ob ich hier richtig aufgehoben bin aber trotzdem:

habe eben ein update gemacht und danach startete fhem nicht mehr.

Per Linux-Console habe ich im Logfile folgenden letzten Eintrag gefunden:

Unmatched ) in regex; marked by <-- HERE in m/Y@si___) <-- HERE / at ./FHEM/50_TelegramBot.pm line 2140, <$fh> line 954.

Nach dem Deaktivieren des TelegramBot modul (define in fhem.cfg auskommentiert) läuft es wieder...
...aber nat. ohne TelegramBot :-|

Danke schon mal, Joachim

Ich muss zugeben, dass ich erstmal ratlos bin, denn an der entsprechenden Zeile gibt es im aktuellen Stand nichts, was dazu passt. Kannst Du vielleicht mal Deine 50_TelegramBot.pm-Datei hier als Anhang hochladen? Dann kann cih daran mal schauen.

Ich bin erstmal ratlos....
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: MadMax-FHEM am 26 April 2016, 23:47:55
Hi,

danke für die schnelle Reaktion!

Hab auch schon geschaut und (auf die schnelle) auch nix gefunden...

Klar, kommt...

Gruß, Joachim
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 April 2016, 00:36:19
OK, habe gerade eine neue Version ins SVN hochgeladen, die das Problem vermutlich fixt.
Vielleicht kannst Du ja auch nochmal ausprobieren?
Die Version ist hier im Anhang

Zum Ausprobieren die Datei über Deine Version drüberkopieren und den Server einmal neustarten.

Sorry für den Fehler: Es hing vermutlich mit Sonderzeichen im Kontakt zusammen...
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: MadMax-FHEM am 27 April 2016, 07:42:53
Hi,

sorry, wenn ich gewusst hätte, dass so schnell noch was kommt wäre ich länger wach geblieben...

Habs eingespielt: funktioniert!!

Super! Danke!

Gruß, Joachim
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Tedious am 27 April 2016, 09:24:03
Geht an den Fragestellenden zurück - habe ich gerade mit Deinem 3. Fall getestet.
Im 1. Fall löst Du ja ein Kommando aus, das wird an den Defult Peer gehen, da würde ich mal versuchen:set Telegram msg @[Telegram:msgPeerId] Temperatur [LaCrosse_12:temperature] C°Das führt aber dazu, dass Du die Nachricht und eine Quittung über die Befehlsausführung erhälst...

Hmm... so ganz schlau werde ich leider noch nicht. Unter WH hatte ich das so gelöst dass ich notifys gebastelt haben die denn auf die Kontakte gehört haben. Hat also A den Befehl XYZ gesendet ist das notify drauf angesprungen, hat den Befehl ausgeführt und das Feedback an a zurückgesendet. Analoges auch bei B. Trage ich hier einen defaultPeer auf A ein, und B fragt z.B. die Temperatur ab bekommt A die Antwort und B keine. Wo liegt mein Denkfehler, bzw. wie kann ich das lösen - das ist mir leider ncohj nicht klar? A soll alle Statusmeldungen bekommen, den hätte ich also gerne als defaultPeer. Sollte B trotzdem eine Anfrage stellen sollte B auch die Antwort bekommen. Klar, man kann komplexe Befehle senden - aber B ist in dem Fall weiblich, für den WAF sollte das über das vorgeschlagene Keyboard der Favoriten gehen ;)

Zitat
Mit Homematic konnte ich das auch nicht wirklich schick lösen:[Temperatur Wohnzimmer]=get HM_Hzg_T_WZ param measured-temp;Geht zwar, aber der WAF tendiert bei der Antwort noch gegen 0:

Zumindest das kann man eingrenzen. Der Parameter cmdReturnEmptyResult = 0 unterbindet das zuverlässig.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 27 April 2016, 12:06:16
Hmm... so ganz schlau werde ich leider noch nicht. Unter WH hatte ich das so gelöst dass ich notifys gebastelt haben die denn auf die Kontakte gehört haben. Hat also A den Befehl XYZ gesendet ist das notify drauf angesprungen, hat den Befehl ausgeführt und das Feedback an a zurückgesendet. Analoges auch bei B. Trage ich hier einen defaultPeer auf A ein, und B fragt z.B. die Temperatur ab bekommt A die Antwort und B keine. Wo liegt mein Denkfehler, bzw. wie kann ich das lösen - das ist mir leider ncohj nicht klar? A soll alle Statusmeldungen bekommen, den hätte ich also gerne als defaultPeer. Sollte B trotzdem eine Anfrage stellen sollte B auch die Antwort bekommen. Klar, man kann komplexe Befehle senden - aber B ist in dem Fall weiblich, für den WAF sollte das über das vorgeschlagene Keyboard der Favoriten gehen ;)

Zumindest das kann man eingrenzen. Der Parameter cmdReturnEmptyResult = 0 unterbindet das zuverlässig.

Ich versuche mal eine Erklärung zu geben, da es verschiedene Attribute gibt, die hier eine Rolle spielen:

Generell wird bei der Ausführung von FHEM-Kommandos übr telegram (auch Favoriten) das Ergebnis an den Sender des Kommandos zurückgeschickt.

cmdRestrictedPeer Dieses Attribut beschränkt die Ausführung von Kommandos auf hier gelistete Kontakte oder alle (default) wenn nicht gesetzt.
ACHTUNG: Ich empfehle dringend dieses Attribut zu setzen und zwar auf die Contact-IDs (numerisch) für erlaubte Kontakte!

defaultPeerCopy ermöglicht, dass Ergebnisse von Kommandos AUCH an den/die defaultPeer geschickt werden

cmdReturnEmptyResult Erlaubt es Ergebnisse zu schicken, die Inhalt (also Rückmeldungen oder Werte) enthalten aber auch leere Rückgaben als Erfolgsmeldung (OK)

Also müsste für Dein Besipiel defaultPeer=A / defaultPeerCopy=1 gesetzt werden, lass mich wissen wenn dabei etwas nicht funktioniert

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Tedious am 27 April 2016, 13:16:40
Heyho,

besten Dank für die Notes! Ich teste das mal aus wenn ich zuhause bin. Danke!
Titel: Kommunikation zwischen zwei Bots
Beitrag von: OliS. am 30 April 2016, 22:19:49
Guten Abend!

Ich habe jetzt den kompletten Thread durch, und hoffe, nichts überlesen zu haben.
Ist es möglich, dass sich zwei Bots untereinander unterhalten? Hintergrund ist, ich möchte gern mit dem Modul so eine Art FHEM2FHEM über das Internet realisieren. Bsw. sollen Temperaturwerte eines Sensors meines Heim-FHEM an mein Büro-FHEM übertragen werden.

Ich habe es mit

DOIF ([Sensor:temperature])(set fhem_home_bot message @1234567 [Sensor:temperature])
versucht. Wobei "@1234567" die ID meines Büro-Bots ist. Das funktioniert allerdings so nicht. Kann es sein, dass sich nur "echte" Clients mit Bots unterhalten können und umgekehrt?

Oli
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 30 April 2016, 22:40:54
Nein, das ist nicht möglich. Ein Bot kann nur eine Nachricht an einen Empfänger schreiben wenn dieser ihm vorher geschrieben hat.

Grüße
igami
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 30 April 2016, 22:44:45
Theoriemodus an
Kann man diese nicht in eine Gruppe einladen und selber dann die Gruppe wieder verlassen ?
Theoriemodus aus
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: igami am 30 April 2016, 22:59:20
Theoriemodus an
Kann man diese nicht in eine Gruppe einladen und selber dann die Gruppe wieder verlassen ?
Theoriemodus aus
Müsste dann mal einer testen ;)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 30 April 2016, 23:18:58
Müsste dann mal einer testen ;)

Muss keiner testen. Leider geht das nicht, telegram unterbindet sogar, dass ein Bot Nachrichten von anderen Bots sieht in einer Gruppe sieht. Ich habe das mal im Zuge von der Einführung von Supergruppen getestet und es steht wohl auch auf der Webseite von telegram.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: OliS. am 01 Mai 2016, 10:25:57
Muss keiner testen. Leider geht das nicht, telegram unterbindet sogar, dass ein Bot Nachrichten von anderen Bots sieht in einer Gruppe sieht. Ich habe das mal im Zuge von der Einführung von Supergruppen getestet und es steht wohl auch auf der Webseite von telegram.

Ok, so etwas in der Art dachte ich mir schon. Vielen Dank für die Antwort und für das Modul. Ich werde es trotzdem als Rückfallstufe nutzen, falls ich mal nicht per VPN in mein Netz komme.

Danke und einen schönen 1. Mai.

Oli
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: spel am 01 Mai 2016, 14:40:39
Hallo,

nachdem yowsup7Whatsapp nur ca. 5 Tage lief, bin ich jetzt auf Telegram umgestiegen und sehr zufrieden.

Ein paar Verständnisfragen habe ich allerdings noch:
- in seinem eigenen "Chat" darf man den Bot nicht rauslöschen weil er dann angehalten ist und ich keine Nachrichten mehr empfangen kann, richtig?
- als DefaultPeer habe ich mich (natürlich) eingetragen. Wäre es möglich, dass jmd. anderes sich mit dem bot verbinden kann? Sowas möchte ich natürlich nicht... Da verstehe ich den Ablauf noch nicht so ganz.

Und wie ist der Befehl zum BotFather hin, um sich alle seine Bots anzeigen zu lassen. Kann ich den BotFather-Chat löschen und anhalten - oder was passiert dann?

Danke!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 Mai 2016, 17:47:53
Hallo,

nachdem yowsup7Whatsapp nur ca. 5 Tage lief, bin ich jetzt auf Telegram umgestiegen und sehr zufrieden.

Ein paar Verständnisfragen habe ich allerdings noch:
- in seinem eigenen "Chat" darf man den Bot nicht rauslöschen weil er dann angehalten ist und ich keine Nachrichten mehr empfangen kann, richtig?
- als DefaultPeer habe ich mich (natürlich) eingetragen. Wäre es möglich, dass jmd. anderes sich mit dem bot verbinden kann? Sowas möchte ich natürlich nicht... Da verstehe ich den Ablauf noch nicht so ganz.

Und wie ist der Befehl zum BotFather hin, um sich alle seine Bots anzeigen zu lassen. Kann ich den BotFather-Chat löschen und anhalten - oder was passiert dann?

Danke!

Der bot ist auch ohne in einer Gruppe oder einem sonstigen Chat enthalten ist weiter erreichbar. Man kann üblicherweise auch bots als Kontakt suchen indem man den @-Namen eingibt, dann erscheinen Bots auch in der Kontaktsuche

Ja jemand anders kann dem Bot Nachrichten schicken und auch Komandos ausführen, wenn das Attribute cmdRestrictedPeer nicht gesetzt ist (aber z.B. cmdKeyword ). Dieses Attribute vor Öffnung von Komandos auf jeden Fall auf gültige contact IDs setzen !!!

Den botfather chat kann man aus dem eigenen Client löschen, die Bots bleiben danach erhalten.
Die Bots auflisten kann man durch Ausführung eines der Kommandos im botfather z.B. /setabouttext . Dann erscheint eine Tastatur mit allen bots.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 Mai 2016, 21:12:50
Ich habe gerade noch ein paar Versuchen gemacht:

Egal ob man den Chat im Client löscht (oder nur den Verlauf löscht), der Bot kann weiterhin Nachrichten an den Benutzer senden.

Erst wenn man in den Optionen im chat "Bot anhalten" wählt, wird der Bot geblockt und es lassen sich keine Nachrichten mehr an den Benutzer verschicken.

Durch "neu starten" lässt sich das aber leicht lösen.

=> Dies sind die Optionen im Android-Client in iOS / Web  etc heisst das unter Umständen anders.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: weini am 04 Mai 2016, 18:25:07
Nachdem WA an deren Protokoll schraubt und alle nicht konformen Zugriffe block bin ich vor einer Woche auf TelegramBot umgestiegen.
Großes Kompliment, das Modul ist toll implementiert und es macht deutlich mehr Laune, mit einer "offiziellen" Schnittstelle und der damit verbundenen Stabilität und Verläßlichkeit zu arbeiten.

Eine kleine Erweiterungsanfrage hätte ich aber:
Ich habe bei "yowsup" immer das Attribut "allowedCommand" genutzt, um nur "set" und "get" zuzulassen.
Im FHEM Modul "allowed" gibt es mit dem Attribut "allowedCommands" eine ähnliche Implementierung der selben Funktionalität.

Das Attribut "cmdTriggerOnly" vom TelegramBot hilft mir nicht weiter, da ich damit für zig Devices extra Notifys anlegen müsste.

Es wäre super, wenn das im TelegramBot noch ergänzt werden könnte. Vielleicht kann man den notwendigen Code ja teilweise sogar bei einem der beiden anderen Module "entleihen".
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 Mai 2016, 18:51:44
Nachdem WA an deren Protokoll schraubt und alle nicht konformen Zugriffe block bin ich vor einer Woche auf TelegramBot umgestiegen.
Großes Kompliment, das Modul ist toll implementiert und es macht deutlich mehr Laune, mit einer "offiziellen" Schnittstelle und der damit verbundenen Stabilität und Verläßlichkeit zu arbeiten.

Eine kleine Erweiterungsanfrage hätte ich aber:
Ich habe bei "yowsup" immer das Attribut "allowedCommand" genutzt, um nur "set" und "get" zuzulassen.
Im FHEM Modul "allowed" gibt es mit dem Attribut "allowedCommands" eine ähnliche Implementierung der selben Funktionalität.

Das Attribut "cmdTriggerOnly" vom TelegramBot hilft mir nicht weiter, da ich damit für zig Devices extra Notifys anlegen müsste.

Es wäre super, wenn das im TelegramBot noch ergänzt werden könnte. Vielleicht kann man den notwendigen Code ja teilweise sogar bei einem der beiden anderen Module "entleihen".

OK, ich hatte schon selber darüber nachgedacht, aber auf die erste Anfrage aus der Community gewartet. Kommt auf die Todoliste und sollte bald machbar sein.
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: weini am 04 Mai 2016, 23:37:38
Das klingt spitze, würde mich sehr freuen!

Vielen Dank im Voraus!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 05 Mai 2016, 12:17:35
OK, neue Version im github mit allowedCommands (analog FHEMWeb und yowsup)

Bitte mal ausprobieren, bevor ich das über udpate verfügbar mache.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: weini am 05 Mai 2016, 18:12:09
Hallo Johannes!

Das ging ja schnell.
Funktioniert bei mir einwandfrei: Wenn das Attribut gesetzt ist, dann werden Befehle dich nicht in der Liste stehen abgelehnt.

Für die Dokumentation: "allowendCommands" wirkt auch für Favoriten.

Seiteneffekte mit "cmdTriggerOnly" habe ich nicht getestet. Prinzipiell könnte man das jetzt durch "attr allowed_<tgbName> allowedCommands trigger" ablösen, dann muss aber in der Nachricht "trigger" als Befehl mitgegeben werden.

Nochmal 1000 Dank für die schnelle Hilfe!

Viele Grüße,
Christian
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 05 Mai 2016, 18:16:36
Gern geschehen !

Ich habe in diesem Zusammenhang cmdTriggerOnlyas deprecated markiert und werde es in einem der nächsten Versionen entfernen. Damit mache ich mir über Wechselwirkungen weniger Sorgen  :D

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 05 Mai 2016, 18:24:15
Die Version mit allowedCommands (und dem neuen reply set command) ist auch jetzt als 1.7 in SVN
und ab morgen über update verfügbar

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: HenryD am 13 Mai 2016, 07:55:01
Bei mir funktioniert Telegram seit der Nacht vom 11.5. zum 12.5 nicht mehr. Im Modul steht der Fehler: Callback returned error:Unauthorized.
Wenn ich vom Telefon eine Meldung an den Bot senden will, erscheint auf dem Telefon hinter der Meldung ein rotes Ausrufezeichen.
Außerdem hat sich auf den Telefonen der Name des FHEM Bots geändert. Dort steht jetzt "Name Hidden".
Ich hatte vor zwei Tagen die FHEM Konfiguration erweitert. Ich hatte am 10.5. für meine Hue Leuchten ein notify hinzugefügt, das diese nach einem Stromausfall ausgeschalten werden. Dazu hatte ich FHEM mehrmals neu gestartet um diese Funktion zu testen. Dabei sollte nichts passiert sein, denn da habe ich bei jedem Neustart die entsprechende Telegram Nachricht bekommen. Danach habe ich FHEM aktualisiert und noch einmal neu gestartet. Am 11.5 sind noch 5 Meldungen gekommen. Die letzte um 20:56 Uhr.
Hat jemand eine Idee?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JanHH am 13 Mai 2016, 12:20:41
Ich habe noch eine Frage zu allowedCommands:
Ich möchte nur ganz bestimmte (in Perl formulierte) Kommandos zulassen.
Also habe ich allowedCommands auf {status()} gesetzt (das ist eine Funktion in 99_utils.pm, die den Hauszustand ad Telegram sendet, z.B. ob alle Fenster zu sind).
Laut Logfile hat das auch geklappt:
2016.05.13 12:07:01 3: TelegramBot_Attr Telegram: modified allowed_Telegram with commands :{status()}:

Jedoch bekomme ich
TelegramBot FHEM :
    Befehl:{status()} :
  Ergebnis:
Forbidden command {status()}.


Mache ich was falsch, oder geht das so nicht?
Ich kann natürlich notfalls über einen Dummy und ein Notfify darauf arbeiten, aber das wäre "von hinten durch die Brust ins Auge"...
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: justme1968 am 13 Mai 2016, 12:46:44
die perl ebene kann man nur komplett erlauben. genau so wie die shell ebene. jeweils mit dem schlüsselwort perl bzw. shell.

du kannst aber mit cmdalias den jeweiligen perl code einen namen auf der fhem ebene geben und dieses dann gezielt erlauben. ohne gleich komplett perl zu erlauben.

gruss
  andre
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: JanHH am 13 Mai 2016, 13:32:12
Danke! Das war das Bit, welches mir noch gefehlt hat. Nun läuft alles wie geschmiert.
Viel stressärmer als yowsup - Whatsapp scheint immer mal wieder am Protokoll zu schrauben, da ist Telegram mit der offiziell unterstützten API bestimmt stabiler.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 13 Mai 2016, 16:24:22
Bei mir funktioniert Telegram seit der Nacht vom 11.5. zum 12.5 nicht mehr. Im Modul steht der Fehler: Callback returned error:Unauthorized.
Wenn ich vom Telefon eine Meldung an den Bot senden will, erscheint auf dem Telefon hinter der Meldung ein rotes Ausrufezeichen.
Außerdem hat sich auf den Telefonen der Name des FHEM Bots geändert. Dort steht jetzt "Name Hidden".
Ich hatte vor zwei Tagen die FHEM Konfiguration erweitert. Ich hatte am 10.5. für meine Hue Leuchten ein notify hinzugefügt, das diese nach einem Stromausfall ausgeschalten werden. Dazu hatte ich FHEM mehrmals neu gestartet um diese Funktion zu testen. Dabei sollte nichts passiert sein, denn da habe ich bei jedem Neustart die entsprechende Telegram Nachricht bekommen. Danach habe ich FHEM aktualisiert und noch einmal neu gestartet. Am 11.5 sind noch 5 Meldungen gekommen. Die letzte um 20:56 Uhr.
Hat jemand eine Idee?

Nicht wirklich eine Idee, aber kannst Du mal einen Chat mit dem botfather starten (von dem Account, der den bot urpsrünglich erzeugt hat) und schauen, ob Du noch etwas ändern kannst an dem Bot. Dann siehst Du auch ob da alles ok ist.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: HenryD am 13 Mai 2016, 22:58:20
Ich habe jetzt einen neuen Bot eingerichtet. alles funktioniert wieder. Beim"alten" Bot habe ich diese Meldung bekommen:
:
Method: messages.setTyping
Url: N/A
Result: {"_":"rpc_error","error_code":400,"error_message":"PEER_ID_INVALID"}
Stack: Error
    at Object.g [as invokeApi] (https://web.telegram.org/js/app.js:31:11150)
    at I (https://web.telegram.org/js/app.js:36:21375)
    at m.$emit (https://web.telegram.org/js/app.js:16:4877)
    at MessageComposer.onTyping (https://web.telegram.org/js/app.js:52:30665)
    at MessageComposer.onKeyEvent (https://web.telegram.org/js/app.js:50:25422)
    at HTMLDivElement.ie.event.dispatch (https://web.telegram.org/js/app.js:5:2788)
    at HTMLDivElement.f.handle (https://web.telegram.org/js/app.js:4:31558)

Ein Bot mit dem alten Namen einrichten ging nicht, da habe ich die Meldung bekommen, dass der Name schon vergeben ist (klar, an mich vergeben!)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 13 Mai 2016, 23:32:17
Interessante Meldung, die scheint irgendwo aus dem telegramServer zu stammen. Mit irgendetwas bist Du wohl auf einen Fehler in deren Server gestossen.

Also ne, keine Viren in telegram unterbringen  ;D

Schön aber das es wieder geht,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: duu75 am 16 Mai 2016, 18:06:20
Kriege seit heute nachmittag eine Fehlermeldung und BOT geht nicht mehr.
Was muss ich machen?

2016.05.16 18:00:37 3: TelegramBot_Callback TG_Klingel: resulted in :Callback returned error:Bot was blocked by the user:: from SendIt
2016.05.16 18:00:37 3: TelegramBot_Callback TG_Klingel: Reached max retries (ret: Callback returned error:Bot was blocked by the user:) for msg 55735264 : test

Latest Revision: 11150
50_TelegramBot.pm    11090 2016-03-19 21:38:31Z viegener

Hat sich was an der API geändert und muss ich ein Update machen?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 16 Mai 2016, 19:48:54
Nein, Du hast in Telegram die Kommunikation mit dem bot angehalten und damit darf der Bot Dir nichts mehr senden.

Siehe auch Beschreibung hier: https://forum.fhem.de/index.php/topic,38328.msg446814.html#msg446814 (https://forum.fhem.de/index.php/topic,38328.msg446814.html#msg446814)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: duu75 am 17 Mai 2016, 07:54:26
Nein, Du hast in Telegram die Kommunikation mit dem bot angehalten und damit darf der Bot Dir nichts mehr senden.

Siehe auch Beschreibung hier: https://forum.fhem.de/index.php/topic,38328.msg446814.html#msg446814 (https://forum.fhem.de/index.php/topic,38328.msg446814.html#msg446814)

Danke!
Hatte versehentlich nicht den Verlauf , sondern den Bot im Eingang gelöscht.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Murdock am 18 Mai 2016, 00:07:35
Hallo viegener,

tolles Modul, danke dafür !

hier meine Frage ;)  Gibt es einen Weg, das der Bot bzw das Modul Nachrichten die vom Bot selber gesendet werden auch ausliest? Wir suchen gerade verzweifelt nach einer Lösung um vom IFTTT Maker Chanel enstpannt und zeitnah Befehle an fhem zu senden. Ich habe es schon geschaft das der Bot in meinem Bot-Chat den Befehel "doit set schalter1 on" empfängt, aber das fhem Modul merkt dies leider nicht. Sende ich persönlich im Bot-Chat den Befehl klappt alles bestens. Ich habe schon den Telegram Bot Support kontaktiert, leider ohne Erfolg. Die sagen Bots lesen Nachrichten anderer Bots nicht aus und auch eine Art "User-Token" um eine URL als persönliche Nachricht unter meinen Namen zu verschicken an den Bot, gibt es leider nicht.

Sinn des ganzen ist es vom Amazon Echo Sprechbefehle zu geben, diese werden von IFTTT Amazon Alexa Channel erkannt und über den Maker Channel per URL an den Telegramm-Bot gescickt, wo dann dein Modul zum Einsatz kommen sollte und die von den Bot gesendeten Befehele im fhem ausführt.
Das wäre meine letzte Hoffnung im Moment, vielleicht weist du ja ob so etas funktioniert ? Eine Info darüber wäre auf jeden Fall cool.

Hier geht es zur den detailierten Infos unserer Versuche:
https://forum.fhem.de/index.php/topic,41082.msg448259.html#msg448259

Danke.

Beste Grüße  8)

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 18 Mai 2016, 01:02:55
Hallo Murdock,
über telegramBot gibt es dazu leider keine Lösung, ich habe auch keine Möglichkeit gefunden, dass ein Bot die Nachrichten anderer Bots lesen kann. Alle Versuche die ich dazu mal angestellt habe waren nicht erfolgreich.

Ohne, dass ich das empfehlen möchte gäbe es die Möglichkeit in FHEM das veraltete und nicht mehr weitergpeflegte 70_Telegram-Modul zu verwenden. Dieses ist am Anfang dieses Threads auch noch beschrieben (und auch im fhemwiki). Das 70_Telegram-Modul meldet sich als normaler Benutzer mit Telefonnummer in telegram an und könnte so auch nachrichten von Bots lesen. Generell kann das Modul auch Kommandosausführen.

Aber wie gesagt: Dieses Modul wird nicht mehr weitergepflegt, ist auf einem deutlich älteren Stand und erfordert auch die Installation von telegram-cli (siehe dazu fhemwiki)

Gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Murdock am 18 Mai 2016, 07:16:56
Hallo Johannes,

vielen Dank für deine schnelle Antwort. Dann weiss ich jetzt, das ich das so nicht weiter verfolgen brauche und teste jetzt mal mit dem 70_Telegram-Modul ein bischen rum. Solltest du dennoch irgendwann durch Zufall beim Programmieren auf eine Lösung stoßen, so schreib das bitte hier irgendwo rein, da deine Lösung mit dem telegramBot für mich bis jetzt echt der zeitnahste und ressourcenschonensde Ansatz war.

Vielen Dank

Gruss,
Sven
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: tiroso am 29 Mai 2016, 14:56:34
Hallo,

Ich habe seit kurzem das Problem das ich keine Bilder mit Beschreibung versenden kann. Habe leider vorher kein Backup angelegt und weiß im Moment nicht woran es liegt.
Bilder ohne Text bekomme ich mit sendImage weg, das ist kein Problem.
Sobald ich einen Text versende:
set TelegramBot sendImage /opt/fhem/plot.png Das ist ein Test
Kommt folgende Fehlermeldung:
2016.05.29 14:54:54 3: TelegramBot_Callback TelegramBot: resulted in :Callback returned error:Bad Request: Can't parse reply keyboard markup JSON object:: from SendIt
2016.05.29 14:54:54 3: TelegramBot_Callback TelegramBot: Reached max retries (ret: Callback returned error:Bad Request: Can't parse reply keyboard markup JSON object:) for msg 100376656 : /opt/fhem/plot.png


Woran kann das liegen? Was kann ich machen?
Ich würde ungerne nach dem Bild die Beschreibung senden, sondern lieber wieder als Caption dazu senden.

Ich hoffe mir kann da jemand helfen
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 29 Mai 2016, 17:30:30


@tiroso: Das passt, bin gerade aus dem Urlaub wiedergekommen. Ich kann das Problem nachvollziehen und es ist ein Fehler in meinem Modul, der bei der letzten Umstellung hereingekommen ist, Sorry dafür

Wird später heute noch ins SVN kommen und dann ab morgen per update verteilt. Bin gerade noch dabei ein anderes Problem bei den Kontakten und Umlauten zu lösen.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 29 Mai 2016, 20:54:48
Neue Version ist im SVN mit folgenden Fixes:
- Bildbeschreibungen können wieder bei sendImage mitgesendet werden --> forum 455762
- Kontakte mit Umlauten werden jetzt auch korrekt nach Neustart gesetzt (generell für UTF-8-Zeichen)

ab morgen per update verfügbar
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: tiroso am 29 Mai 2016, 23:25:39
Danke dir für die schnelle Reaktion und für das noch schnellere Hotfix. :)

Gesendet von meinem SM-G900F mit Tapatalk

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: scooty am 31 Mai 2016, 11:53:45
Hallo,

habe ein Problem mit Nachrichten, die Umlaute enthalten, sie werden nicht verschickt, folgende Fehlermeldungen tauchen im Log auf:
2016.05.31 11:43:02.875 3: TelegramBot_Callback HSXX_TELEGRAM: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2016.05.31 11:43:02.876 3: TelegramBot_Callback HSXX_TELEGRAM: Reached max retries (ret: NonBlockingGet timed out on read from <hidden> after 30s) for msg Andreas : Tür geöffnet!

Sende ich das ganze mit "Tuer geoeffnet!" als Text, funktioniert es.
Was könnte ich verbockt haben?

Als Version ist die
50_TelegramBot.pm      11548 2016-05-29 15:34:26Z viegenerim Einsatz.

Vielen Dank für jegliche Rückmeldung,
Andreas

PS: Hier noch das verbose 5 Log dazu:
2016.05.31 11:42:21.037 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:21.038 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:21.222 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:21.223 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:21.224 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:21.224 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:21.226 5: TelegramBot_Get HSXX_TELEGRAM: called
2016.05.31 11:42:21.226 5: TelegramBot_Get HSXX_TELEGRAM: Processing TelegramBot_Get( ? )
2016.05.31 11:42:21.923 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:21.924 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:21.925 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:21.925 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:21.927 5: TelegramBot_Get HSXX_TELEGRAM: called
2016.05.31 11:42:21.927 5: TelegramBot_Get HSXX_TELEGRAM: Processing TelegramBot_Get( ? )
2016.05.31 11:42:23.160 5: TelegramBot_Callback HSXX_TELEGRAM: called from Polling
2016.05.31 11:42:23.161 5: TelegramBot_ParseUpdate HSXX_TELEGRAM: data returned :{"ok":true,"result":[]}:
2016.05.31 11:42:23.161 5: UpdatePoll HSXX_TELEGRAM: number of results 0
2016.05.31 11:42:23.162 5: TelegramBot_UpdatePoll HSXX_TELEGRAM: called
2016.05.31 11:42:23.162 4: TelegramBot_UpdatePoll HSXX_TELEGRAM: initiate polling with nonblockingGet with 5s
2016.05.31 11:42:23.168 4: TelegramBot_Callback HSXX_TELEGRAM: resulted in :SUCCESS: from Polling
2016.05.31 11:42:28.299 5: TelegramBot_Callback HSXX_TELEGRAM: called from Polling
2016.05.31 11:42:28.299 5: TelegramBot_ParseUpdate HSXX_TELEGRAM: data returned :{"ok":true,"result":[]}:
2016.05.31 11:42:28.300 5: UpdatePoll HSXX_TELEGRAM: number of results 0
2016.05.31 11:42:28.300 5: TelegramBot_UpdatePoll HSXX_TELEGRAM: called
2016.05.31 11:42:28.300 4: TelegramBot_UpdatePoll HSXX_TELEGRAM: initiate polling with nonblockingGet with 5s
2016.05.31 11:42:28.306 4: TelegramBot_Callback HSXX_TELEGRAM: resulted in :SUCCESS: from Polling
2016.05.31 11:42:32.716 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:32.717 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( message )
2016.05.31 11:42:32.717 5: TelegramBot_Set HSXX_TELEGRAM: start send for cmd :message: and sendType :0:
2016.05.31 11:42:32.718 5: TelegramBot_SendIt HSXX_TELEGRAM: called
2016.05.31 11:42:32.718 5: TelegramBot_SendIt HSXX_TELEGRAM: try to send message to :Andreas: -:Tür geöffnet!: - :<undef>:
2016.05.31 11:42:32.719 4: TelegramBot_GetFullnameForContact # Contacts is 00000000:Andreas:@xxxxxxx: (Angaben sind anonymisiert!)
2016.05.31 11:42:32.719 4: TelegramBot_GetFullnameForContact # name is Andreas
2016.05.31 11:42:32.728 5: TelegramBot_Set HSXX_TELEGRAM: message done succesful:
2016.05.31 11:42:32.774 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:32.775 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:32.907 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:32.907 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:32.909 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:32.909 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:32.911 5: TelegramBot_Get HSXX_TELEGRAM: called
2016.05.31 11:42:32.911 5: TelegramBot_Get HSXX_TELEGRAM: Processing TelegramBot_Get( ? )
2016.05.31 11:42:33.437 5: TelegramBot_Callback HSXX_TELEGRAM: called from Polling
2016.05.31 11:42:33.438 5: TelegramBot_ParseUpdate HSXX_TELEGRAM: data returned :{"ok":true,"result":[]}:
2016.05.31 11:42:33.439 5: UpdatePoll HSXX_TELEGRAM: number of results 0
2016.05.31 11:42:33.440 5: TelegramBot_UpdatePoll HSXX_TELEGRAM: called
2016.05.31 11:42:33.440 4: TelegramBot_UpdatePoll HSXX_TELEGRAM: initiate polling with nonblockingGet with 5s
2016.05.31 11:42:33.448 4: TelegramBot_Callback HSXX_TELEGRAM: resulted in :SUCCESS: from Polling
2016.05.31 11:42:33.970 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:33.971 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:33.974 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:33.974 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:33.977 5: TelegramBot_Get HSXX_TELEGRAM: called
2016.05.31 11:42:33.977 5: TelegramBot_Get HSXX_TELEGRAM: Processing TelegramBot_Get( ? )
2016.05.31 11:42:34.090 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:42:34.091 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:42:39.070 5: TelegramBot_Callback HSXX_TELEGRAM: called from Polling
2016.05.31 11:42:39.070 5: TelegramBot_ParseUpdate HSXX_TELEGRAM: data returned :{"ok":true,"result":[]}:
2016.05.31 11:42:39.071 5: UpdatePoll HSXX_TELEGRAM: number of results 0
2016.05.31 11:42:39.072 5: TelegramBot_UpdatePoll HSXX_TELEGRAM: called
2016.05.31 11:42:39.072 4: TelegramBot_UpdatePoll HSXX_TELEGRAM: initiate polling with nonblockingGet with 5s
2016.05.31 11:42:39.079 4: TelegramBot_Callback HSXX_TELEGRAM: resulted in :SUCCESS: from Polling
2016.05.31 11:42:44.290 5: TelegramBot_Callback HSXX_TELEGRAM: called from Polling
2016.05.31 11:42:44.291 5: TelegramBot_ParseUpdate HSXX_TELEGRAM: data returned :{"ok":true,"result":[]}:
2016.05.31 11:42:44.291 5: UpdatePoll HSXX_TELEGRAM: number of results 0
2016.05.31 11:42:44.292 5: TelegramBot_UpdatePoll HSXX_TELEGRAM: called
2016.05.31 11:42:44.292 4: TelegramBot_UpdatePoll HSXX_TELEGRAM: initiate polling with nonblockingGet with 5s
2016.05.31 11:42:44.309 4: TelegramBot_Callback HSXX_TELEGRAM: resulted in :SUCCESS: from Polling
2016.05.31 11:42:49.450 5: TelegramBot_Callback HSXX_TELEGRAM: called from Polling
2016.05.31 11:42:49.451 5: TelegramBot_ParseUpdate HSXX_TELEGRAM: data returned :{"ok":true,"result":[]}:
2016.05.31 11:42:49.451 5: UpdatePoll HSXX_TELEGRAM: number of results 0
2016.05.31 11:42:49.452 5: TelegramBot_UpdatePoll HSXX_TELEGRAM: called
2016.05.31 11:42:49.452 4: TelegramBot_UpdatePoll HSXX_TELEGRAM: initiate polling with nonblockingGet with 5s
2016.05.31 11:42:49.457 4: TelegramBot_Callback HSXX_TELEGRAM: resulted in :SUCCESS: from Polling
2016.05.31 11:42:54.592 5: TelegramBot_Callback HSXX_TELEGRAM: called from Polling
2016.05.31 11:42:54.593 5: TelegramBot_ParseUpdate HSXX_TELEGRAM: data returned :{"ok":true,"result":[]}:
2016.05.31 11:42:54.598 5: UpdatePoll HSXX_TELEGRAM: number of results 0
2016.05.31 11:42:54.599 5: TelegramBot_UpdatePoll HSXX_TELEGRAM: called
2016.05.31 11:42:54.600 4: TelegramBot_UpdatePoll HSXX_TELEGRAM: initiate polling with nonblockingGet with 5s
2016.05.31 11:42:54.608 4: TelegramBot_Callback HSXX_TELEGRAM: resulted in :SUCCESS: from Polling
2016.05.31 11:42:59.763 5: TelegramBot_Callback HSXX_TELEGRAM: called from Polling
2016.05.31 11:42:59.764 5: TelegramBot_ParseUpdate HSXX_TELEGRAM: data returned :{"ok":true,"result":[]}:
2016.05.31 11:42:59.765 5: UpdatePoll HSXX_TELEGRAM: number of results 0
2016.05.31 11:42:59.766 5: TelegramBot_UpdatePoll HSXX_TELEGRAM: called
2016.05.31 11:42:59.767 4: TelegramBot_UpdatePoll HSXX_TELEGRAM: initiate polling with nonblockingGet with 5s
2016.05.31 11:42:59.782 4: TelegramBot_Callback HSXX_TELEGRAM: resulted in :SUCCESS: from Polling
2016.05.31 11:43:02.875 5: TelegramBot_Callback HSXX_TELEGRAM: called from SendIt
2016.05.31 11:43:02.875 3: TelegramBot_Callback HSXX_TELEGRAM: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2016.05.31 11:43:02.876 3: TelegramBot_Callback HSXX_TELEGRAM: Reached max retries (ret: NonBlockingGet timed out on read from <hidden> after 30s) for msg Andreas : Tür geöffnet!
2016.05.31 11:43:02.950 4: TelegramBot_Set HSXX_TELEGRAM: called
2016.05.31 11:43:02.950 4: TelegramBot_Set HSXX_TELEGRAM: Processing TelegramBot_Set( ? )
2016.05.31 11:43:04.931 5: TelegramBot_Callback HSXX_TELEGRAM: called from Polling
2016.05.31 11:43:04.932 5: TelegramBot_ParseUpdate HSXX_TELEGRAM: data returned :{"ok":true,"result":[]}:
2016.05.31 11:43:04.933 5: UpdatePoll HSXX_TELEGRAM: number of results 0
2016.05.31 11:43:04.934 5: TelegramBot_UpdatePoll HSXX_TELEGRAM: called
2016.05.31 11:43:04.935 4: TelegramBot_UpdatePoll HSXX_TELEGRAM: initiate polling with nonblockingGet with 5s
2016.05.31 11:43:04.943 4: TelegramBot_Callback HSXX_TELEGRAM: resulted in :SUCCESS: from Polling
2016.05.31 11:43:10.096 5: TelegramBot_Callback HSXX_TELEGRAM: called from Polling
2016.05.31 11:43:10.097 5: TelegramBot_ParseUpdate HSXX_TELEGRAM: data returned :{"ok":true,"result":[]}:
2016.05.31 11:43:10.098 5: UpdatePoll HSXX_TELEGRAM: number of results 0
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 31 Mai 2016, 21:56:29
Hab gleiches Problem, dass Nachrichten nicht verschickt werden.
Wenn ich per at z.B. periodisch verschicke
set bot message testklappt das
Falls ich jetzt - wie vorher immer funktionierte - die message per funktion in eine $var schreibe und folgenden Aufruf dann tätige
set bot message $varOriginalaufruf innerhalb at
fhem("set myBot message $preamble$finalMsgText");;\erhalte ich die Fehlermeldung
"sentMsgResult NonBlockingGet timed out on read from <hidden> after 30s"

übrigens auch kein Versenden mehr, wenn ich per bot einen state eines dummys verwende:
fhem("set myBot message Garagentür hinten ist noch offen!\n[Datum:state]-[Zeit:state]");;\

Ich hab keine Änderung an meiner cfg durchgeführt,
fhem-update am 30.05. gemacht


EDIT
lass ich die Umlaute raus geht's..., hat also nix mit Variablen etc zu tun. Meine Variable enhält immer ein "Ä", somit klappt das Versenden nicht. Also gleiche Beobachtung wie scooty
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 Juni 2016, 16:04:15

fhem-update am 30.05. gemacht

EDIT
lass ich die Umlaute raus geht's..., hat also nix mit Variablen etc zu tun. Meine Variable enhält immer ein "Ä", somit klappt das Versenden nicht. Also gleiche Beobachtung wie scooty

@knopf_piano, scooty: Das muss ich mir anschauen, warum Umlaute über perl momentan nicht funktionieren. Perl ist etwas speziell bezueglich encodings/zeichensätzen in strings und Ja genau dort habe ich in letzter Zeit auch fixes eingebaut, allerdings konnte ich es bisher bei mir nicht nachstellen.

Zusatzfrage: Könnt Ihr etwas zu Plattform (PI / Linux? welche version/etc) und verwendeter perl-version sagen?

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 01 Juni 2016, 16:08:18
Ich hab BananaPi R1 mit aktuelles bananian-linux, perl 5.20.
Wenn ich die identische Kiste über pushnotifier abschicke klappt's, mit telegram aktuell leider nicht.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: scooty am 01 Juni 2016, 16:48:01
Raspberry Pi 2 Model B
(uname -a): Linux 4.4.11-v7+ #888 SMP Mon May 23 20:10:33 BST 2016 armv7l GNU/Linux
(cat /etc/issue.net): Raspbian GNU/Linux 7
Perl: v5.14.2

Vielen Dank für's Kümmern,
Andreas
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 Juni 2016, 20:47:34
Ich versuche immer noch den Fehler nachzuvollziehen, leider tritt das Problem bei mir nicht auf und auch die Informationen zu perl/OS helfen mir bisher nicht. Deshalb mal die Frage, was passiert denn, wenn Ihr folgendes ausprobiert?

{ my $msg="äöüßß-1";; fhem("set TYPE=TelegramBot msg $msg") }
Bei mir geht auch diese Nachricht problemlos durch, genauso wie der Inhalt eines Dummy-States mit Umlauten.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 01 Juni 2016, 20:49:56
{ my $msg="äöüßß-1";; fhem("set TYPE=TelegramBot msg $msg") }Kein Empfang
{ my $msg="aa";; fhem("set TYPE=TelegramBot msg $msg") }wird empfangen
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 Juni 2016, 21:22:23
Ich kann das Problem bei mir immer noch nicht nachvollziehen. Ich bekomme eine Fehlermeldung, wenn ich im Browser das encoding (von unicode / UTF-8) auf etwas anderes (z.B. Western) umschalte und dann den Codeschnipsel von oben im Browser als FHEM-Kommando eingebe.

Allerdings ist die Fehlermeldung dann:
sentLastResult   Callback returned error:Bad Request: Message text must be encoded in utf-8:
Deshalb muss ich leider weiterfragen: Was steht denn nach dem Fehler bei Euch in sentLastResult bzw. sentMsgResult?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 01 Juni 2016, 21:31:04
erst dauert's...
im Reading "sentMsgResult" steht "WAITING" für ca 15s.
anschließend steht
sentMsgResult: NonBlockingGet timed out on read from after 30s
sentMsgText: äöüßß-1

message kommt nicht an
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 Juni 2016, 22:02:20
Mmmmh, ratlos...

Hat es denn vorher funktioniert und wisst Ihr noch welche Version vorher in Betrieb war?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 01 Juni 2016, 22:09:44
Mmmmh, ratlos...

Hat es denn vorher funktioniert und wisst Ihr noch welche Version vorher in Betrieb war?
Letzte woche gings noch. Möglich, dass die letzte änderung das bewirkt. Das hab ich jedoch schon versucht zu revidieren mit der vorherigen aus dem restoredir, kein erfolg. fhem.pl hat sich evtl auch geändert, hab ich jetzt nicht weiter geschaut, ist aber ne überlegung.
Ich möcht halt vermeiden für alle botmsg ein substitute anzuschieben. evtl errden sich noch andere auf das problem melden, scooty hat das problem ja auch :-\
Danke für unterstützung übrigens!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 Juni 2016, 23:13:18
Leider komme ich bisher nicht weiter ich habe auch andere Änderungen im SVN angeschaut und keinen Zusammenhang gesehen.

Anbei mal eine Version mit Debugausgaben (landen im FHEM-Log). Es wäre toll wenn einer von Euch mal diese Version installieren (gegen original austauschen und FHEM neustarten) könnte, den perl-Code von oben mit den Umlauten ausführen und dann mal die Debug_ausgaben aus dem log hier posten würde.

Achso am liebsten wäre es mir natürlich wenn das ganze mit verbose 5 auf dem Bot laufen würde und die entpsrechenden logs auch dabeiwären...
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 02 Juni 2016, 07:20:17
siehe log im Anhang,
ich hab name, vorname, id ersetzt, damit nicht jeder das sieht.

hab beide befehle abgesetzt, mit Umlauten und ohne
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: The-Holgi am 02 Juni 2016, 07:50:55
Hallo,
habe auch auf einmal das Problem das Bilder nicht mehr gesendet werden. Hier ein auszug aus dem logfile:
TelegramBot_Callback Kamera_Bot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
TelegramBot_Callback Kamera_Bot: Reached max retries (ret: NonBlockingGet timed out on read from <hidden> after 30s) for msg Holgi_XXX : /opt/fhem/snaps/testbild.jpg
Gruß Holgi
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 Juni 2016, 08:24:30
Hallo,
habe auch auf einmal das Problem das Bilder nicht mehr gesendet werden. Hier ein auszug aus dem logfile:
TelegramBot_Callback Kamera_Bot: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
TelegramBot_Callback Kamera_Bot: Reached max retries (ret: NonBlockingGet timed out on read from <hidden> after 30s) for msg Holgi_XXX : /opt/fhem/snaps/testbild.jpg
Gruß Holgi

Versendest Du Bilder mit Captions (Bildunterschriften) und hast Du ein update (nach dem 30.5.) gemacht? Ansonsten mache doch ein Update, ich habe hier einen Fix gemacht.

Sollte das nicht helfen müsste ich wissen, ob auch Du Umlaute in den Bildunterschriften versendest?


Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: The-Holgi am 02 Juni 2016, 08:56:21
Hallo,
Danke für die schnelle Antwort.
Ich verwende keine Bildbeschreibungen. Laut updatecheck gibt es keine neue Version.
Bei mir läuft 50_TelegramBot.pm 11548 2016-05-29 15:34:26Z viegener sollte die neueste Version sein oder ?
Es wäre möglich das es seit dem update nicht mehr geht. Hatte soweit nichts verändert. Text kann ich problemlos versenden, es sei denn es sind umlaute im Text.
Verschicke die Bilder mit einem DOIF :
([klingel] eq "off") ( set VU_Uno remotecontrol 1) (get ipcam1 image) (set Summer_schuppen on-for-timer 10) (set Kamera_Bot sendImage @Holgi_XXX @Ulla_XXX /opt/fhem/snaps/ipcam1_snapshot.jpg ) (set VU_Uno remotecontrol 0)Vielleicht könnte das auch was damit zu tun haben ?
2016.06.02 09:12:25 1: PERL WARNING: substr outside of string at FHEM/HttpUtils.pm line 403.
2016.06.02 09:12:25 1: PERL WARNING: Use of uninitialized value $data in numeric eq (==) at FHEM/HttpUtils.pm line 404.

Edit: Ist zwar keine Lösung für das Problem aber mit  Version:
50_TelegramBot.pm 11090 2016-03-19 21:38:31Z viegener $
geht es wieder.

Gruß Holgi
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 Juni 2016, 23:02:50
@ The-Holgi, knopf_piano, scooty: Es scheint sich alles um dasselbe Problem zu handeln und ich habe immer noch keine Ahnung warum Eure Installation/Perl sich anderes verhält als meine Umgebungen, ich habe aber eine mögliche Erklärung und den Versuch einer Lösung.

Anbei eine Testversion, die hoffentlich bei Euch das Problem löst. Es wäre toll, wenn einer von Euch die Version mal ausprobieren könnte.

Ich verstehe zwar immer noch nicht warum bei Euch ein Problem auftritt und bei mir nicht. Es hat aber wohl mit unterschiedlichen Unterstützungen für unicode zu tun und perl ist dabei etwas speziell.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 03 Juni 2016, 01:17:44
top, das geht (schnellcheck)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 Juni 2016, 01:43:58
OK, Danke für der ersten test, ich warte mal noch einen Tag ab auf andere Rückmeldungen, bevor ich das ins SVN hochlade
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: scooty am 03 Juni 2016, 11:33:13
Nochmals Danke für's Kümmern, von mir leider nicht so gute Nachrichten:
Der Messagetext
äüößwird zwar versendet kommt aber als
äüöÃbeim Empfänger an.
Anbei der Debug-Eintrag aus dem Log:
2016.06.03 11:18:39.927 1: DEBUG>send command  :--TelegramBot_boundary-x0123
Content-Disposition: form-data; name="chat_id"

72773459
--TelegramBot_boundary-x0123
Content-Disposition: form-data; name="text"

äüöß
--TelegramBot_boundary-x0123--:

Ist diese Info ausreichend oder brauchst Du noch ein verbose 5 Log?

Andreas
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 03 Juni 2016, 11:46:20
das kann m.E. an der perl-version liegen,
wie gesagt geht die Version bei mir mit perl v5.20
@scooty: kannst du die perl-version bei dir mal hochziehen, oder gibt's per apt nur die 5.14?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: scooty am 03 Juni 2016, 12:31:49
@scooty: kannst du die perl-version bei dir mal hochziehen, oder gibt's per apt nur die 5.14?
Per apt-get gibt's leider nur die 5.14 (="perl ist schon die neueste Version").

Andreas
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 Juni 2016, 14:10:02
Kann es sein, dass Ihr eines der folgenden Module einsetzt?:

allergy
Jabber
Pushalot
Pushbullet
Pushover

oder aus contrib noch
 andnotify
 gcmsend
 FS20ZDR

Gruss,
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: scooty am 03 Juni 2016, 14:18:52
Nein, ich nutze keines der Module.

Andreas
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: The-Holgi am 04 Juni 2016, 00:01:19
Hallo, ich nutze Pushover.
Werde die "Testversion" morgen mal installieren und berichten.
Danke erstmal für deine Arbeit.
Gruß Holgi
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 04 Juni 2016, 11:03:26
OK, Danke für der ersten test, ich warte mal noch einen Tag ab auf andere Rückmeldungen, bevor ich das ins SVN hochlade
Hi viegener,
Rückmeldung: aktuell keine Auffälligkeit mit dieser letzten Version bei mir.
Grüße und fettes Dankeschön!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Gigafix am 04 Juni 2016, 15:08:57
Hallo

Mit der Testversion läuft es jetzt bei mir auch wieder. Ich nutze auch folgende Module:
allergy
Pushalot
Pushbullet

Erst einmal vielen Dank, das es wieder funktioniert.  :)

Gruß
Gigafix
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Himbi777 am 05 Juni 2016, 13:49:44
Falls ich jetzt - wie vorher immer funktionierte - die message per funktion in eine $var schreibe und folgenden Aufruf dann tätige
set bot message $varOriginalaufruf innerhalb at
fhem("set myBot message $preamble$finalMsgText");;\erhalte ich die Fehlermeldung
"sentMsgResult NonBlockingGet timed out on read from <hidden> after 30s"

Dieses Problem konnte ich beheben, indem ich hier die Variable $var noch folgendes angehangen habe.  ."."
War natürlich bei ca. 20 verschiedenen Telegram_Bot Aufrufen etwas Arbeit.

Was bei mir auch noch aufgefallen ist, in meiner Anwendung der Unwetterzetrale, werden (gerade jetzt bei den vielen Unwetterwarnungen) mehrere Meldungen in kurzer Zeit an mehrere Empfänger geschickt, hier werden ebenso Meldungen mit der Fehlermeldung  "sentMsgResult NonBlockingGet timed out on read from <hidden> after 30s"  quittiert und nicht veersendet, obwohl der Aufruf dazu immer gleich ist.

Gruß Himbi777
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 05 Juni 2016, 18:04:40
Hi viegener,
ist es eigentlich auch möglich, Sonderzeichen/literals
U+27F2 oder \xe2\x9f\xb2auf den Bot zu schicken?
Ist nicht dringend, würde nur die Lesbarkeit für mein Kalendercheck aus dem thread hier erhöhen
https://forum.fhem.de/index.php/topic,53207.0.html (https://forum.fhem.de/index.php/topic,53207.0.html)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: andre07 am 06 Juni 2016, 20:37:57
Ich versuche gerade den code hier im Thread von Reinerlein zum laufen zu bringen
:msgText:.received.voice.* { my $url = fhem("get $NAME urlForFile ".ReadingsVal($NAME, 'msgFileId', ''));
  my $fileName = "${NAME}_$1" if ($url =~ m/.*\/(.*)/);
  my $newFileName = "$1.mp3" if ($fileName =~ m/(.*)\..*/);

  writeFile('/mnt/SonosSpeak/'.$fileName, get($url));
  qx(/usr/bin/avconv -i /mnt/SonosSpeak/$fileName /mnt/SonosSpeak/$newFileName);
  fhem('set '.ReadingsVal($NAME, 'currentSpeakPlayer', 'tmperror').' PlayURITemp \\\\192.168.178.108/SonosSpeak/'.$newFileName.' '.ReadingsVal($NAME, 'currentSpeakVolume', 5));
}

Bekomme dann aber das hier im log zurückgeliefert

2016.06.06 20:21:34 3: sonos_telegrambot return value: Unknown command {, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command writeFile('/mnt/SonosSpeak/'.$fileName,, try help.
Unknown command qx(/usr/bin/avconv, try help.
Unknown command fhem('set, try help.
Unknown command }
Wenn ich ${NAME}_$1 abändere in $NAME schreibt er mir zwar eine Datei legt es aber nicht als mp3 ab.
avconv ist installiert
Andre
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Merlin1 am 06 Juni 2016, 23:16:21
Ich versuche grad SendPhoto/Image zum Laufen zu bekommen.
Erst hatte ich nur eine Fehlermeldung, dann habe ich die Testversion installiert.
Jetzt bekomme ich viel Debug im Log und folgenden Fehler:

--TelegramBot_boundary-x0123--:
2016.06.06 23:06:30 3: TelegramBot_Callback merlin1bot: resulted in :Callback returned error:IMAGE_PROCESS_FAILED:: from SendIt
2016.06.06 23:06:30 3: TelegramBot_Callback merlin1bot: Reached max retries (ret: Callback returned error:IMAGE_PROCESS_FAILED:) for msg xxx : /opt/fhem/www/snapshots/Cam2_snapshot.jpg

System und Raspberry sind sonst alle auf dem aktuellen Stand.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 07 Juni 2016, 01:29:33
Ich versuche grad SendPhoto/Image zum Laufen zu bekommen.
Erst hatte ich nur eine Fehlermeldung, dann habe ich die Testversion installiert.
Jetzt bekomme ich viel Debug im Log und folgenden Fehler:

--TelegramBot_boundary-x0123--:
2016.06.06 23:06:30 3: TelegramBot_Callback merlin1bot: resulted in :Callback returned error:IMAGE_PROCESS_FAILED:: from SendIt
2016.06.06 23:06:30 3: TelegramBot_Callback merlin1bot: Reached max retries (ret: Callback returned error:IMAGE_PROCESS_FAILED:) for msg xxx : /opt/fhem/www/snapshots/Cam2_snapshot.jpg

System und Raspberry sind sonst alle auf dem aktuellen Stand.


Bitte nicht die Testversion installieren, wenn Du kein Problem mit Umlauten hast. Die Fehlermeldung kommt bei der Testversion für Bilder.
Welche Fehlermeldung kam denn vorher?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Merlin1 am 07 Juni 2016, 08:44:57

Bitte nicht die Testversion installieren, wenn Du kein Problem mit Umlauten hast. Die Fehlermeldung kommt bei der Testversion für Bilder.
Welche Fehlermeldung kam denn vorher?
Im Last Error " NonBlockingGet timed out on read from after 30s "

Ich habe dann eine alte Version installiert, damit ich mit dem Skript vorankomme. Version 1.5. und da lief es auf Anhieb.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: andre07 am 07 Juni 2016, 17:08:52
; war der übeltäter aber wie das so ist bei copy paste übersieht man leicht mal was
Ansonsten tolles Modul macht mir vieles einfacher......
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 07 Juni 2016, 20:23:09
Hi viegener,
ist es eigentlich auch möglich, Sonderzeichen/literals
U+27F2 oder \xe2\x9f\xb2auf den Bot zu schicken?
Ist nicht dringend, würde nur die Lesbarkeit für mein Kalendercheck aus dem thread hier erhöhen
https://forum.fhem.de/index.php/topic,53207.0.html (https://forum.fhem.de/index.php/topic,53207.0.html)

Bisher gibt es das nicht, ich nehme das mal auf meine Todoliste, ist aber momentan etwas knapp ich versuche immer noch rauszufinden was momentan die Probleme mit Umlauten auslöst.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 07 Juni 2016, 20:47:16
kein streß damit.
Das ist ja nicht so wichtig, freut mich aber, wenn du's als Idee mit aufnimmst.
Grüße!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 08 Juni 2016, 20:01:37
Ich habe nach dem Update auf die Version 11548 2016-05-29 15:34:26Z viegener das folgende Problem:

2016.06.08 18:08:35 3: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 30s: from SendIt
2016.06.08 18:08:35 3: TelegramBot_Callback Telegram: Reached max retries (ret: NonBlockingGet timed out on read from <hidden> after 30s) for msg Ralli : ÜEA: Garagentor Benachrichtigung

Es liegt am Ü. Nehme ich das Ü aus der zu sendenden Nachricht raus, klappt's.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 09 Juni 2016, 00:49:04
Danke für Eure Geduld, leider bin ich aber mit der Ursache für das Problem beim Versenden von Umlauten noch nicht wirklich auf den Grund gekommen. Status:
- Mit der Aktuellen Version aus dem SVN geht das problemlos bei mir
- Mit der testversion geht es ebenfalls bei mir und auch bei einigen anderen (in zumindest einem Fall sorgt es aber für Fehlkonvertierung von Zeichen) --> trotzdem ist es nur eine Testversion und sollte nur dazu dienen das Problem näher einzukreisen

Aktueller Plan, die gesamt Behandlung der Nachrichten sowohl von telegram als auch aus fhem nochmals durchgehen und die gesamte Behandlung von unicode codierungen neu machen. Das dauert aber leider noch etwas.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 09 Juni 2016, 07:29:37
Hallo viegener
Die Version 11395 läuft bei mir stabil.
Die Version 11548 steigt regelmäßig mit NonBlockingGet timed out on read from <hidden> after 65s aus.

Laut API lassen sich auch Nachrichten als html versenden (Fettschrift).
Dein Modul unterstützt das aber nicht, oder ?

Gruß Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: scooty am 09 Juni 2016, 08:00:21
Aktueller Plan, die gesamt Behandlung der Nachrichten sowohl von telegram als auch aus fhem nochmals durchgehen und die gesamte Behandlung von unicode codierungen neu machen. Das dauert aber leider noch etwas.
Kein Thema, ist ja auch eher ein "kosmetisches" Problem, ohne Umlaute funktioniert es ja hervorragend.
Und überhaupt: vielen Dank für's Kümmern.  :)

Andreas
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Otto am 10 Juni 2016, 08:50:58
Hi,

kann mir einer sagen wie ich das https://www.youtube.com/watch?v=at6fRLsXfEs (https://www.youtube.com/watch?v=at6fRLsXfEs) nachbaue?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 10 Juni 2016, 08:54:02
Steht unter dem Video.

Es gibt hier im Forum auch noch einige gute Beispiele, wie sowas zu machen ist. chatbot wäre ein Stichwort.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Otto am 10 Juni 2016, 09:00:49
Zitat
chatbot wäre ein Stichwort.

Ok, danke. Da finde ich schon was ;)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 11 Juni 2016, 20:03:07
So, ich habe jetzt mal das ganze UTF8-Zeugs komplett umgebaut und eine neue Version erstellt, die bei mir jetzt mit allen Umlauten und Szenarien, die ich testen konnte stabil funktioniert. Diese habe ich hier angehängt.

@Ralli, PeterS, knopf_piano, Himbi777,    The-Holgi und wer sonst noch betroffen war:
Alle die Probleme mit Umlauten hatten und/oder timeout meldungen beim Senden bitte ich nochmals mit dieser Version zu testen, ich möchte das ungern über SVN machen, solange ich nicht einigermassen sicher sein kann, dass das auch ausserhalb von meinen Installationen funktioniert:

Wenn es dabei weiter timeouts / Fehler gibt, wäre ein log-Auszug mit (verbose 4) extrem hilfreich, denn es gibt offensichtlich Unterschiede zwischen perl und perl-library-Versionen die diese Probleme auslösen.

Also Rückmeldung wäre sehr hilfreich.
Danke für die Geduld
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 11 Juni 2016, 22:10:33
Hallo Johannes,

bin gerade dabei ein neues Sensorboard von Tobias Müller einzurichten (Temperatur/Feuchte und Luftgüte).
Dabei bin ich nun auch über das Umlaute Problem gestossen als ich nun ein Favorit für die Luftgüte (mit "ü") anlegen wollte.

Mit
Zitat
/start
habe ich mir die Liste neu schicken lassen und hier sieht man nun das alles was mit "ü"
geschrieben wird, von Telegram nicht Blau markiert wird. Man kann also nur z.B.
Zitat
/start7
anwählen, aber nicht
Zitat
/luftgüte

Sobald die Umlaute raus sieht geht es.

Wie mir jetzt dann auch erst auffiel besteht das Problemchen ja schon länger bei mir.
Habe darauf aber nie geachtet weil es nicht so relevant war  ::)
Das gleiche gab es hier schon mit
Zitat
/LüfterAn
und
Zitat
/LüfterAus
War der Meinung das Problem betrifft mich nicht  8)

Schön das Du gerade ein Update eingespielt hast. Werde es gleich testen und wieder berichten!

Bis in 10min , oder so.

Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 11 Juni 2016, 22:29:31
Hallo Johannes,

habe die Version von heute "Date: Sat, 11 Jun 2016 20:21:01 GMT" aktiviert.

Bei den Befehlsausgaben hat sich nichts geändert.

Denke mal das der TelegramBot hier einfach keine Umlaute mag?

Im Screenshot sieht man das.
Erste Versuch ohne Umlaute > /start7 und /Luftguete werden Blau angezeigt.
Beim zweiten Versuch ist die /Luftgüte nicht mehr Blau und auch nicht anklickbar.

Edit: Johannes, ich schick Dir mein Log mit Verbose 4 direkt zu.

Gruss Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 11 Juni 2016, 23:25:11
@maista: Ich habe mir die Beschreibung und das log angeschaut. Generell scheint es so zu sein, dass bei Dir die Konvertierung soweit funktioniert. Es ist wirklich so, dass telegram in commands (also in Befehlen, die mit / eingeleitet werden) keine Umlaute erlaubt:

Zitat
Commands can use latin letters, numbers and underscores

Deshalb wird das nicht blau markiert, es ist kein Kommando aus Sicht von telegram.

Das Umlauteproblem der anderen ist aber etwas anders, denn da werden (wurden ?) bei Umlauten im Text keine Nachrichten übertragen. Bei Dir kommen die Umlaute ja sauber durch und auch wieder in FHEM an. Also bei Dir funktioniert die neue Version. Die Einschränkung bei den Commands auf die obigen Zeichen ist etwas was vermutlich nicht kurzfristig geändert wird. Generell würde aber auch ein solches Kommando mit fhem funktionieren, es würde eben nur nicht automatisch im Client markiert.



Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Maista am 11 Juni 2016, 23:36:25
Hallo Johannes,

alles klar. War die letzte Zeit nicht am probieren und habe auch nicht komplett verfolgt wo genau das Problem lag mit den Umlauten.

Schönes Wochenende.

Gerd
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ralli am 12 Juni 2016, 07:11:47
So, ich habe jetzt mal das ganze UTF8-Zeugs komplett umgebaut und eine neue Version erstellt, die bei mir jetzt mit allen Umlauten und Szenarien, die ich testen konnte stabil funktioniert. Diese habe ich hier angehängt.
@Ralli, PeterS, knopf_piano, Himbi777,    The-Holgi und wer sonst noch betroffen war:
Alle die Probleme mit Umlauten hatten und/oder timeout meldungen beim Senden bitte ich nochmals mit dieser Version zu testen

Danke! Mein Anwendungsfall funktioniert nun (wieder).
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: scooty am 12 Juni 2016, 13:14:10
Mit der Testversion (https://forum.fhem.de/index.php/topic,38328.msg460971.html#msg460971) funktionieren Umlaute in Messages bei mir auch.

Vielen Dank,
Andreas
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 13 Juni 2016, 17:57:57
So, ich habe jetzt mal das ganze UTF8-Zeugs komplett umgebaut und eine neue Version erstellt, die bei mir jetzt mit allen Umlauten und Szenarien, die ich testen konnte stabil funktioniert. Diese habe ich hier angehängt.

@Ralli, PeterS, knopf_piano, Himbi777,    The-Holgi und wer sonst noch betroffen war:
Alle die Probleme mit Umlauten hatten und/oder timeout meldungen beim Senden bitte ich nochmals mit dieser Version zu testen, ich möchte das ungern über SVN machen, solange ich nicht einigermassen sicher sein kann, dass das auch ausserhalb von meinen Installationen funktioniert:

Wenn es dabei weiter timeouts / Fehler gibt, wäre ein log-Auszug mit (verbose 4) extrem hilfreich, denn es gibt offensichtlich Unterschiede zwischen perl und perl-library-Versionen die diese Probleme auslösen.

Also Rückmeldung wäre sehr hilfreich.
Danke für die Geduld

Umlaute werden bei mir geschickt, passt
der geht auch, klappt bei mir somit
{ my $msg="äöüßß-1";; fhem("set TYPE=TelegramBot msg $msg") }
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: abc2006 am 20 Juni 2016, 18:08:41
Hi, bin ich hier richtig für einen Wunsch nach \t ?

In Nachrichten kann ich mit \n eine Newline erzeugen, wenn ich das ganze jetzt noch grob ausrichten könnte, wär das cool ...

und je nachdem wieviel Arbeit es ist und ob dus unterstützen magst, wären hier noch ein paar häufig benutzte Kommandos:

http://linux.die.net/man/1/printf


Grüße und Danke

Stephan
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Juni 2016, 19:36:08
Hi, bin ich hier richtig für einen Wunsch nach \t ?

In Nachrichten kann ich mit \n eine Newline erzeugen, wenn ich das ganze jetzt noch grob ausrichten könnte, wär das cool ...

und je nachdem wieviel Arbeit es ist und ob dus unterstützen magst, wären hier noch ein paar häufig benutzte Kommandos:

http://linux.die.net/man/1/printf


Grüße und Danke

Stephan

Hallo Stephan,
das würde ich gerne machen, da ich gerne gut formatierte Nachrichten senden würde. Leider filtert telegram Leerzeichen (insbesondere am Anfang von Zeilen) heraus. Es gibt zwar Möglichkeiten über die speziellen Formatierungen zu gehen, das wurde aber bisher nicht von allen Clients unterstützt.
Johannes
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: abc2006 am 21 Juni 2016, 19:45:36
Hi,
bei mir wäre die Anwendung
Name:\t[Reading]. Würde evtl gehen.

Was sind denn die speziellen Formatierungen, von denen du sprichst?

Kannst du mir einen Tipp geben, wo ich Informationen darüber finde?

Danke
Stephan
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Juni 2016, 19:52:41
Hi,
bei mir wäre die Anwendung
Name:\t[Reading]. Würde evtl gehen.

Was sind denn die speziellen Formatierungen, von denen du sprichst?

Kannst du mir einen Tipp geben, wo ich Informationen darüber finde?

Danke
Stephan


Habs gerade mal getestet, die Leerzeichen werden auch das rausgefiltert. Kannst Du selber ausprobieren.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: abc2006 am 21 Juni 2016, 19:59:52
Stimmt.... von Handy zu handy gehts aber, auch mit vielen Leerzeichen dazwischen ....

Grüße
Stephan
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 21 Juni 2016, 20:41:41
Die Sonderformatierungen werden hier beschrieben: https://core.telegram.org/bots/api#markdown-style (https://core.telegram.org/bots/api#markdown-style)
Achtung, diese werden aber bisher nicht von meinem Modul unterstützt.

Ich habe mal gerade noch ein wenig experimentiert, es sieht wohl so aus, als ob man doch die Leerzeichen durch das Bot API schleusen kann. Allerdings werden Tab-Zeichen nicht unterstützt. Also mach ich mich mal an eine Implementierung.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: abc2006 am 21 Juni 2016, 20:49:09
fände ich ziemlich cool, wenn ich was testen soll, sag bescheid!

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: tiroso am 22 Juni 2016, 19:32:46
@Otto
Das war mein Video bei YouTube ;) Danke. Hättest mich da auch anschreiben können. Wenn du noch bedarf an so einem chatbot hast....unter Codeschnipsel habe ich den Code gepostet. Den Link zu dem Beitrag findest du auch unter dem YouTube Video.
Bin noch an einem FhemBot dran. Wenn du noch Interesse hast
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: kud am 23 Juni 2016, 13:17:43
Habe mich auch mal an die Steuerung über Telegram gewagt.
Im Wiki habe ich folgendes gelesen:
<---
Die Antworten werden als Schaltflächen dargestellt (Telegram inline Keyboard) und können am Mobile-Client direkt angeklickt werden um sie auszuführen. Um die Beschriftung der Schaltflächen zu optimieren, können die Befehle im Attribut favorites mit Beschreibungen versehen werden:
[Rollaeden zu ]=set TYPE=ROLLADEN pos 100;[Rollaeden auf]=set TYPE=ROLLADEN pos 0
Nun antwortet der Bot auf das Schlüsselwort für die Favoriten mit:
Favorites
/short1 = Rollaeden zu
/short2 = Rollaeden auf
-->
Gesetzt ist CMDKEYWORD = mache
                  CMDFAVORITES = /menu
                  FAVORITES [Heizung an]=set Heizung on; [Heizung aus]=set Heizung off etc.

Jetzt habe ich folgendes Problem.
Nach der Eingabe in Telegram-Client von
"/menu"

...TelegramBot fhem : (59657275) Favorites 1 mache [Heizung an]=set Heizung on 2 mache [Heizung aus]=set Heizung off

Es werden keine Schaltflächen auf dem Smartphone angezeigt.
Habe ich was vergessen?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 23 Juni 2016, 14:18:03
@kud: Kannst Du mal ein Listing Deines TelegramBot-Devices in code tags hier einstellen (URLs / Kontakte bitte unkenntlich machen)


Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: kud am 23 Juni 2016, 14:32:00
Sorry  :-\ Verstehe nicht was Du braucht. ???
Die Ausgabe von list oder ein Bildschirmfoto?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: kud am 23 Juni 2016, 14:48:58
Ich habe mal ein "list teleBot" gemacht siehe PDF.
Mit dieser Konfig funktioniert ein zB. /menu 1

Dann habe ich die Favoriten mal abgeändert (verkürzt).
Attributes:
   cmdFavorites /menu
   cmdKeyword mache
   defaultPeer Kai-Uwe
   favorites  [Wasser Ein]=set Eicherwasserpumpe on-for-timer 900;[Ventil1 ein]= set Eicherventil1 on-for-timer 180
   pollingTimeout 120

Es werden keine Schaltflächen angezeigt und ein /menu 1 geht nicht..
Ausgabe am Telegram-Client:
TelegramBot fhem cmd :[Ventil1 ein]= set Eicherventil1 on-for-timer 180: result :Unknown command [Ventil1, try help.:

 
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Otto am 23 Juni 2016, 15:41:12
@tiroso

ok, danke.

Ich habe zwischenzeitlich mir selber was gebaut.

Läuft gut ;)

Zitat
Bin noch an einem FhemBot dran. Wenn du noch Interesse hast
Logo, schaue ich mir gerne an
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 Juni 2016, 00:53:40
Ich habe mal ein "list teleBot" gemacht siehe PDF.
Mit dieser Konfig funktioniert ein zB. /menu 1

Dann habe ich die Favoriten mal abgeändert (verkürzt).
Attributes:
   cmdFavorites /menu
   cmdKeyword mache
   defaultPeer Kai-Uwe
   favorites  [Wasser Ein]=set Eicherwasserpumpe on-for-timer 900;[Ventil1 ein]= set Eicherventil1 on-for-timer 180
   pollingTimeout 120

Es werden keine Schaltflächen angezeigt und ein /menu 1 geht nicht..
Ausgabe am Telegram-Client:
TelegramBot fhem cmd :[Ventil1 ein]= set Eicherventil1 on-for-timer 180: result :Unknown command [Ventil1, try help.:

So jetzt habe ich mir das nochmal genauer angeschaut.
Für einen Alias oder einen Beschreibungstext muss immer ein / am Anfang angegeben werden, wie in der commandref beschrieben. Das beispiel im wiki ist wohl inkorrekt.
favorites  /[Wasser Ein]=set Eicherwasserpumpe on-for-timer 900;/[Ventil1 ein]= set Eicherventil1 on-for-timer 180 müsste also gehen
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: kud am 24 Juni 2016, 08:23:49
Nachdem ich das geändert habe kommt nach einem "/menu" folgende Meldung zurück(PC als auch Handy)

TelegramBot fhem : (59657275) Favorites 1 mache /[Wasserpumpe 15min]=set Eicherwasserpumpe on-for-timer 900 2 mache /[Ventil1 3min]=set Eicherventil1 on-for-timer 180 3 mache /[Ventil2 3min]=set Eicherventil2 on-for-timer 180 4 mache /[Ventil3 3min]=set Eicherventil3 on-for-timer 180 5 mache /[Tunnel ein]={system("sudo /usr/sbin/vpnc fritz.conf")} 6 mache /[Tunnel aus]={system("sudo /usr/sbin/vpnc-disconnect")}

Die Eingabe /menu 1 wird entsprechend mit einem Fehler  "...Unknown Command..." ebenfalls nicht ausgeführt.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: kud am 24 Juni 2016, 11:07:45
Ich habe mir mal die Commandref "Telegrambot" reingezogen.
Dazu habe ich Fragen.
1. Warum wird bei den Favoriten immer das CMDKeyword vorangestellt?
2. <<<<get lights status; /light=set lights on; /dark[Make it dark]=set lights off; /heating=set heater; /[status]=get heater status;
Then a message "favorite1" to the bot would execute the command get lights status
A message "favorite 2" or "/light" to the bot would execute the command set lights on. And the favorite would show as "make it dark" in the list of favorites.
A message "/heating on" or "favorite 3 on" to the bot would execute the command set heater on
>>>>
Warum ist "make it dark" nicht favorit 3 sondern erst /heating ?

Trotzallem. Meine Favoriten gehen nicht nach dem Muster /[Beschreibung]=set xyz und von der Inline-Tastatur , wie im Wiki beschreiben, sehe ich auch nichts.

Bin ich da der Einzigste?



Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 24 Juni 2016, 11:15:32
Bin ich da der Einzigste?

Nein. Aber vielleicht der einzige!

Sorry für OT, aber bei sowas kräuseln sich mir die Fußnägel.

Unabängig davon ist deine Frage schwer zu verstehen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: kud am 24 Juni 2016, 11:48:30
OT
@marvin78:
"Der prominenteste Vertreter eines fälschlicherweise gesteigerten Absolutadjektivs ist das Wort einzigst"
 ;D "Die einzigste und perfekteste Möglichkeit, diesem sprachlichen Misstand optimalst zu begegnen, ist jedem Internetnutzer, der sich dermaßen totalst an der deutschen Sprache vergeht, einen Link zu dieser Aufklärungs-Webseite zu schicken. Der Autor dieser Webseite würde sich enormst darüber freuen, da er die gesteigerten Absolutadjektive in den letztesten zwei Sätzen leider immer häufiger in persönlichen Gesprächen zu hören bekommt."
http://www.einzigste.info/

Asche auf mein Haupt :'(

Zurück zum Thema:
Also ich hab mal weiterprobiert.
In meinem Haus-Telebot habe ich mal die Favoriten aktiviert.
Wenn ich da /menu eingebe sehe ich die Schaltflächen der Favoriten .
Der TelegramBot im Garten läuft nur über Mobilfunk. Vielleicht hängt es daran.
Des weiteren ist mir aufgefallen, dass im GartenBot unter Readings - storedcommands ne ganze Menge drinsteht:
<<<
mache Eicherventil2 on-for-timer 200 mache set Eicherventil1 on-for-timer 200 mache list Eicherw.* mache {system("sudo /usr/sbin/vpnc fritz.conf")} mache set Eicherwasserpumpe on-for-timer 1200 mache set Eicherventil1 on-for-timer 250 mache set Eicherventil2 on-for-timer 250 mache set Eicherventil3 on-for-timer 250
>>>
Beim HausBot steht nur ein Eintrag mit einem uralten Datum.
 
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 24 Juni 2016, 12:50:30
@kud: Ich vermute nicht, dass es am Mobilfunk liegen kann. Ich denke es gibt Unterschiede in den Installationen. Leider war der list den Du bereitgestellt hast ja von dem Bot, der funktioniert und auch keine solchen Favoriten enthält. Ich denke Du musst Deinen Gartenbot mal anschauen, es könnte auch sein, dass die FHEM-Version veraltet ist (für telegramBot)?

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: PeterS am 24 Juni 2016, 16:20:05
Hallo viegener

Ich habe deine Version (11395) vom 11.06. bisher problemlos am Laufen  ;)

Gruß Peter
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: kud am 24 Juni 2016, 19:20:33
Habe mir das Teil aus dem Garten geholt und ein Update gemacht ....jetzt erscheinen die Buttons im Telegramclient ;D
Die Beschriftung ist aber noch nicht ok.
/[Pumpe an]=set Eicherwasserpumpe on-for-timer 900;  --> ergibt "menu1 = /[Pumpe an]=set Eicherwasserpumpe...." als Beschriftung.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Juni 2016, 10:33:06
Ich habe gerade keinen direkten Zugriff auf mein System, deshalb kann ich es nicht selber ausprobieren. Aber ein Favoriteneintrag:
/[ein Text]=list telebotsollte einen Knopf erzeugen auf dem der Favoritenbefehl und die Nummer steht und dahinter mit = nur der Text also z.B.
/menu5 = ein Text
Der von Dir gezeigte Knopftext ist mir unklar:
Erstens fehlt der / vor menu, wenn Dein Favoritenbefehl /menu ist
Zweitens sollte dasa Kommando nicht mehr erscheinen.

Eigentlich sollte das sogar funktionieren, wenn Du den / vor dem Text weglässt, das kann ich aber erst wieder übrprüfen wenn ich zurück bin.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: kud am 25 Juni 2016, 11:05:57
Cmdfavorites "/menu" habe ich zu "menu" gemacht.
Meine Favoriten sind so in der Def eingetragen.

/[Pumpe an] = set Eicherwasserpumpe on-for-timer 900; set Eicherventil1 on-for-timer 180; set Eicherventil2 on-for-timer 180; set Eicherventil3 on-for-timer 180; {system("sudo /usr/sbin/vpnc fritz.conf")}; {system("sudo /usr/sbin/vpnc-disconnect")}

Die Buttons im Telegramclient sehen alle gleich aus.

menu1 = /[Pumpe an] = set Eicherw....
menu2 = set Eicherventil on...
.
.
.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Juni 2016, 11:23:08
@kud: Bitte wirklich Codetags verwenden, dann hätte ich das jetzt schneller gefunden. Wenn ich das richtig sehe, hast Du Leerzeichen vor und nach dem = Die müssen weg.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: kud am 25 Juni 2016, 16:02:22
Jhu . Endlich geklappt.  :D

Es darf KEIN "/" vorangestellt werden und das mit den Leerzeichen sollte vielleicht mal erwähnt werden. Oder habe ich das überlesen  ???

Danke fürs helfen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Juni 2016, 16:46:26
Jhu . Endlich geklappt.  :D

Es darf KEIN "/" vorangestellt werden und das mit den Leerzeichen sollte vielleicht mal erwähnt werden. Oder habe ich das überlesen  ???

Danke fürs helfen.

Ja habe ich in die neue Commandref mitaufgenommen
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 25 Juni 2016, 16:50:03
Gerade habe ich die neue Version mit den Änderungen zur Behandlung von Umlauten (UTF8/Unicode) ins SVN übergestellt als 1.8. Die Version ist dann ab morgen im offiziellen Update enthalten.

Danke für alle die getestet haben und hier Rückmeldung gegeben haben. Ich hoffe, dass das Problem jetzt erstmal nicht mehr auftritt.

Andere Änderung: \t für Textnachrichten wird unterstützt, allerdings wird daraus bei telegram wohl ein einzelnes Leerzeichen
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: knopf_piano am 26 Juni 2016, 10:05:26
Gerade habe ich die neue Version mit den Änderungen zur Behandlung von Umlauten (UTF8/Unicode) ins SVN übergestellt als 1.8. Die Version ist dann ab morgen im offiziellen Update enthalten.

Danke für alle die getestet haben und hier Rückmeldung gegeben haben. Ich hoffe, dass das Problem jetzt erstmal nicht mehr auftritt.

Andere Änderung: \t für Textnachrichten wird unterstützt, allerdings wird daraus bei telegram wohl ein einzelnes Leerzeichen
Herzlichen DANK!!!
auch für den Support und Unterstützung
Schönen Sonntag
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: pelipe am 30 Juni 2016, 15:32:20
Moin,

ich hatte (aus unerklärlichen Gründen) auch Probleme beim Senden von Photos (NonBlockingGet timed out on read from <hidden> after 30s).
Mit dem Update von viegener klappt es wieder einwandfrei.

Vielen Dank!!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: felskrone am 11 Juli 2016, 14:09:22
Hallo,

sollte mit der neuen Version dann nicht auch das senden von Icons / Emoticons funktionieren?
Bei mir kommt das leider als Text an (z.B. "U+26C5 blabla") oder mache ich etwas falsch?

Danke für ein kurze Info!

Gruß, fk
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 12 Juli 2016, 11:15:09
Bei mir funktionieren die Emoticons leider auch nicht.
Hat jemand das schon mal getestet und angezeigt bekommen?

Grüße Marcel
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 13 Juli 2016, 13:49:41
Funktioniert einwandfrei. Man muss eben nur die Emoticons "direkt" verwenden. Also direkt hier aus der linken spalte heraus kopieren und so versenden.

http://apps.timwhitlock.info/emoji/tables/unicode
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Ma_Bo am 13 Juli 2016, 22:57:47
Klar, jetzt funktioniert es auch. Habe immer den Code für das jeweilige Emoticon versucht... 😁
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: felskrone am 15 Juli 2016, 09:30:19
Bei mir geht es jetzt auch... kaum macht man es richtig, schon funktioniert es!

Vielleicht kann man das im Wiki nochmal deutlicher herausstellen, dass man da wirklich das Icon selber kopieren soll und den Verweis auf Unicode weglassen:

da steht:

"Es ist auch möglich Emojis mit den (Text-)Nachrichten zu versenden. Die entsprechenden (Unicode-)Zeichen werden einfach direkt mit in den Text der Nachricht aufgenommen. Um das zu vereinfachen kann man das einfach per Copy und Paste von dieser Seite....."

Ich hab es so jedenfalls nicht verstanden und war da ja auch nicht alleine mit...


An dieser Stelle aber dann auch mal einen herzlichen Dank an den Entwickler, der das bereitstellt und sich auch noch die Mühe macht einen Wiki-Eintrag zu erstellen!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: marvin78 am 15 Juli 2016, 09:49:04
Das was dort steht ist nicht falsch. Man könnte es ggf. noch genauer Beschreiben.

Für das Wiki kann im Übrigen jeder einen Zugang bekommen.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 15 Juli 2016, 14:36:34
Bei mir geht es jetzt auch... kaum macht man es richtig, schon funktioniert es!

Vielleicht kann man das im Wiki nochmal deutlicher herausstellen, dass man da wirklich das Icon selber kopieren soll und den Verweis auf Unicode weglassen:

da steht:

"Es ist auch möglich Emojis mit den (Text-)Nachrichten zu versenden. Die entsprechenden (Unicode-)Zeichen werden einfach direkt mit in den Text der Nachricht aufgenommen. Um das zu vereinfachen kann man das einfach per Copy und Paste von dieser Seite....."

Ich hab es so jedenfalls nicht verstanden und war da ja auch nicht alleine mit...


An dieser Stelle aber dann auch mal einen herzlichen Dank an den Entwickler, der das bereitstellt und sich auch noch die Mühe macht einen Wiki-Eintrag zu erstellen!

Machst Du einen Vorschlag, was man an der Formulierung verbessern kann, kann ich das auch gerne ins wiki übernehmen, doer Du besorgst Dir selber einen Account?

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: bjoernbo am 20 Juli 2016, 10:13:56
Hallo zusammen,

ich habe jetzt die ersten Seiten mal durchgelesen, konnte aber für mich ein wichtige Sache nicht finden. Mit Telgram kann ich Befehle an FEHM senden und bekomme dann darüber entsprechende Rückmeldung, wie z.B. die Heizungstemperatur etc.

Ist es auch möglich, dass wenn bspw. die Temperatur im Kühlschrank über 10° Grad ist, dass ich automatische eine Nachtricht in Telegram angezeigt bekomme? Ode rmuss ich, wenn ich diese Info haben möchte das ganze erst aus "Telegram" heraus antriggern?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: juergen012 am 20 Juli 2016, 10:18:32
Hallo, ich sende eine Nachricht, wenn die Temperatur über 10 Grad ist..


Fridge:on set Telegrambot message Achtung - Der Kühlschrank ist ausgefallen!!!!

..gibt auch ein Beispiel..mal nach Fridge suchen..

Gruß
Jürgen K.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 20 Juli 2016, 10:22:47
Hallo zusammen,

ich habe jetzt die ersten Seiten mal durchgelesen, konnte aber für mich ein wichtige Sache nicht finden. Mit Telgram kann ich Befehle an FEHM senden und bekomme dann darüber entsprechende Rückmeldung, wie z.B. die Heizungstemperatur etc.

Ist es auch möglich, dass wenn bspw. die Temperatur im Kühlschrank über 10° Grad ist, dass ich automatische eine Nachtricht in Telegram angezeigt bekomme? Ode rmuss ich, wenn ich diese Info haben möchte das ganze erst aus "Telegram" heraus antriggern?

Vielleicht habe ich die frage missverstanden, aber das senden einer nachricht bei eintritt eines bestimmten zustandes/ereignisses lässt sich jederzeit über die fhem mittel (z.b doif oder notify) machen. Im aktionsteil kannst du dann auch eine nachricht mit beliebiger info über telegram absenden.

Aber wie gesagt, vielleicht habe ich etwas missverstanden.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: bjoernbo am 20 Juli 2016, 10:39:48
Ne, alles richtig Verstanden. Stimmt, doif gibt es ja auch noch. Danke für eure schnelle Rückmeldung!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Kamik am 26 Juli 2016, 22:09:53
Hallo zusammen,

mich würde interessieren ob es möglich ist Logdateien via Telegram zu versenden. Um es noch interessanter zu machen, würden mich bspw. die FHEM Logdatei gefiltert auf den letzten Tag oder andere Tage interessieren.

Was denkt ihr darüber?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 26 Juli 2016, 23:47:36
Hallo zusammen,

mich würde interessieren ob es möglich ist Logdateien via Telegram zu versenden. Um es noch interessanter zu machen, würden mich bspw. die FHEM Logdatei gefiltert auf den letzten Tag oder andere Tage interessieren.

Was denkt ihr darüber?

Generell ist das sicher möglich, denn FileLogs lassen sich über ein get auslesen (siehe commandref) und die Rückgabe kann als Message mit Telegram verschickt werden. Es könnte sein, dass man etwas perl drumherumbraucht, aber generell ist das wohl möglich.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: buki am 27 Juli 2016, 23:06:09
Hallo zusammen,

ich bekomme dieses Reading


Readings:
     2016-07-27 22:44:25   PollingErrCount 61
     2016-07-27 22:44:25   PollingLastError NonBlockingGet timed out on read from <hidden> after 7s

Habe über die Suchfunktion schon versucht das Problem zu lösen, jedoch führte das zu keinem Erfolg.
Es kommen keine Telegram Nachrichten mehr in fhem an.
Wie kann ich das Problem lösen?

Vielen Dank schon mal für die Hilfe.

Gruß buki
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Brockmann am 29 Juli 2016, 11:37:49
Frage bzw. vielleicht Featurewunsch:
Telegram unterstützt ja prinzipiell das Löschen von einzelnen Nachrichten eines Chats. Wird das auch von der API unterstützt und falls ja, könnte das Modul in Zukunft vielleicht darum erweitert werden?

Ich fände es praktisch, wenn FHEM Nachrichten, die sich zwischenzeitlich erledigt haben, selbst wieder löschen könnte, etwa wenn man sie bereits auf einem anderen Kanal bestätigt hat oder wenn sich die Situation ohnehin wieder verändert hat, etwa weil die Sensorwerte mittlerweile wieder im grünen Bereich sind.
Ich schicke mir beispielsweise bestimmte Hinweise oder Warnungen sowohl zur Anzeige auf lokale Tablets als auch per Telegram aufs Smartphone. Wenn jemand die Nachrichten am Tablet bestätigt, bekommt FHEM das mit und könnte sie dann auch bei Telegram wieder entfernen. So finde ich solche Nachricht immer auch auf dem Smartphone vor und muss sie ein zweites Mal löschen bzw. weiß nicht sicher, ob sich zuhause schon jemand drum gekümmert hat.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Benni am 29 Juli 2016, 12:04:15
Im einfachsten Fall könntest du dir ja jeweils auch, statt die vorherige Nachricht zu löschen, eine weitere Telegram-Nachricht schicken lassen, wenn sich die Situation wieder verändert hat.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: MadMax-FHEM am 30 Juli 2016, 10:58:25
Hallo,

ich hatte vor kurzem einen Fehler beim Senden, hier der Logeintrag:

2016.07.27 23:09:53 3: TelegramBot_Callback MyBot: resulted in :NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error error:00000000:lib(0):func(0):reason(0) SSL connect attempt failed with unknown error error:00000000:lib(0):func(0):reason(0): from SendIt
2016.07.27 23:09:53 3: TelegramBot_Callback MyBot: Reached max retries (ret: NonBlockingGet: returned <hidden>: Can't connect(2) to https://api.telegram.org:443: SSL connect attempt failed with unknown error error:00000000:lib(0):func(0):reason(0) SSL connect attempt failed with unknown error error:00000000:lib(0):func(0):reason(0)) for msg XX : Wasserstandsanzeige ausgefallen!
2016.07.28 00:00:05 3: TelegramBot_Callback MyBot: Digest: Number of poll failures on 2016-07-27 is :46:
2016.07.29 00:00:01 3: TelegramBot_Callback MyBot: Digest: Number of poll failures on 2016-07-28 is :20:
2016.07.30 00:00:03 3: TelegramBot_Callback MyBot: Digest: Number of poll failures on 2016-07-29 is :1:

Das trat zum ersten Mal und nur einmal auf, seit ich mit Telegram arbeite.

Der Fehler an sich (sofern er nicht häufig[er] kommt) ist mir eigentlich egal (außer jemdand sieht, dass etwas falsch konfiguriert ist etc. / aber prinzipiell funktioniert es).

Wichtiger: kann ich so einen Fehler abfragen???

Denn die gewünschte Nachricht ging nicht raus...
...ich setzte nach dem Senden einen Eintrag, dass verschickt wurde, damit nicht noch mal geschickt wird.

Blöd natürlich, wenn die Nachricht wie in diesem Fall nicht raus ging...

Ich verschicke die Nachricht wie folgt aus einer Sub:

{fhem "set MyBot message Wasserstandsanzeige ausgefallen!"}

Kann ich da sowas wie einen Returnwert abfragen?
Und wenn wie?

Vielen Dank, Joachim
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: jmike am 30 Juli 2016, 11:24:40
Hallo Joachim.

Schau dir mal den EventMonitor an während du eine Message schickst, da wird ein event sentMsgResult erstellt:
TelegramBot telegram sentMsgResult: SUCCESS
Zusätzlich gibt es den PollingErrCount, hier z.b. bei falscher Authorisierung:

TelegramBot telegram sentMsgResult: Callback returned error:Unauthorized:
TelegramBot telegram PollingErrCount: 4

Damit sollte man doch ein Notify für einen Fallback bauen können ;)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: MadMax-FHEM am 30 Juli 2016, 19:26:10
Hi jmike,

danke.
Schaue ich mir mal an...

Gruß, Joachim
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 31 Juli 2016, 01:33:21
Hallo zusammen,

ich bekomme dieses Reading


Readings:
     2016-07-27 22:44:25   PollingErrCount 61
     2016-07-27 22:44:25   PollingLastError NonBlockingGet timed out on read from <hidden> after 7s

Habe über die Suchfunktion schon versucht das Problem zu lösen, jedoch führte das zu keinem Erfolg.
Es kommen keine Telegram Nachrichten mehr in fhem an.
Wie kann ich das Problem lösen?

Vielen Dank schon mal für die Hilfe.

Gruß buki

Die Suchfunktion in der commandref hätte vielleicht geholfen, da sind die beiden Readings kurz erklärt  ;D

Generell wird in diesem Reading vermerkt wie häufig an diesem Tag (seit 0 Uhr) Fehler beim Polling aufgetreten sind. Irgendwas hast Du vermutlich geändert, vielleicht an der Bot-Konfiguration (beim Botfather oder in FHEM). 61 Fehler bis zum Abend sind nicht sehr viel wenn gar nichts geht. Das heisst normalerweise, dass das Polling zwar gestört ist, aber meistens doch funktioniert.

Ohne genauere Angaben was Du geändert hast und die Info ob Senden noch geht ist das nicht einfach zu lösen.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 31 Juli 2016, 01:38:03
Hallo Joachim.

Schau dir mal den EventMonitor an während du eine Message schickst, da wird ein event sentMsgResult erstellt:
TelegramBot telegram sentMsgResult: SUCCESS
Zusätzlich gibt es den PollingErrCount, hier z.b. bei falscher Authorisierung:

TelegramBot telegram sentMsgResult: Callback returned error:Unauthorized:
TelegramBot telegram PollingErrCount: 4

Dem kann ich nichts hinzufügen, dass ist perfekt :)

Wenn jemand ein Beispiel hat, wie er die Reaktion auf Fehler beim Senden realisiert hat, nehme ich das gerne als use case ins wiki auf. Dann können andere das als Vorlage nehmen.

Damit sollte man doch ein Notify für einen Fallback bauen können ;)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: buki am 31 Juli 2016, 09:22:20
Danke für deine Antwort viegener.

Ich habe weder an der Konfiguration in fhem noch am Telegrambot etwas geändert.
Es ist so, dass Nachrichten verschickt werden können, jedoch kommen an den Bot gesendete Nachrichten nicht in fhem an und können deshalb nicht verarbeitet werden.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 August 2016, 20:51:02
Danke für deine Antwort viegener.

Ich habe weder an der Konfiguration in fhem noch am Telegrambot etwas geändert.
Es ist so, dass Nachrichten verschickt werden können, jedoch kommen an den Bot gesendete Nachrichten nicht in fhem an und können deshalb nicht verarbeitet werden.


Wenn am telegrambot nichts geändert wurde und auch am Account des Bots nichts geändert wurde. Ist die Frage, was sich sonst geändert hat. Telegram selber funktioniert generell weiterhin. Der Account scheint auch noch senden zu können. Dann musst Du vermutlich nachprüfen, was sich geändert haben könnte: Also update von fhem oder linux? Netzwerkänderungen? andere fhem-Änderungen?

Hast Du fhem und den darauf laufenden Rechner mal runtergefahren und neu gestartet?

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: buki am 01 August 2016, 21:21:16
Wenn am telegrambot nichts geändert wurde und auch am Account des Bots nichts geändert wurde. Ist die Frage, was sich sonst geändert hat. Telegram selber funktioniert generell weiterhin. Der Account scheint auch noch senden zu können. Dann musst Du vermutlich nachprüfen, was sich geändert haben könnte: Also update von fhem oder linux? Netzwerkänderungen? andere fhem-Änderungen?

Hast Du fhem und den darauf laufenden Rechner mal runtergefahren und neu gestartet?



Es wurden keinerlei Netzwerkänderungen vorgenommen. Ich habe zwischenzeitlich Linux sowie fhem aktualisiert.
Der Rechner wurde schon ein paar mal neu gestartet.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 01 August 2016, 21:34:34
Es wurden keinerlei Netzwerkänderungen vorgenommen. Ich habe zwischenzeitlich Linux sowie fhem aktualisiert.
Der Rechner wurde schon ein paar mal neu gestartet.


Wenn dir jemand helfen soll, musst Du schon etwas mehr an Infos herausgeben. Ich habe sonst das Gefühl Du veranstaltest ein Ratespiel
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: buki am 01 August 2016, 21:42:32
Wenn dir jemand helfen soll, musst Du schon etwas mehr an Infos herausgeben. Ich habe sonst das Gefühl Du veranstaltest ein Ratespiel

Es soll natürlich kein Ratespiel werden ;)
Welche Infos brauchst du?
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 02 August 2016, 20:51:44
Frage bzw. vielleicht Featurewunsch:
Telegram unterstützt ja prinzipiell das Löschen von einzelnen Nachrichten eines Chats. Wird das auch von der API unterstützt und falls ja, könnte das Modul in Zukunft vielleicht darum erweitert werden?

Ich fände es praktisch, wenn FHEM Nachrichten, die sich zwischenzeitlich erledigt haben, selbst wieder löschen könnte, etwa wenn man sie bereits auf einem anderen Kanal bestätigt hat oder wenn sich die Situation ohnehin wieder verändert hat, etwa weil die Sensorwerte mittlerweile wieder im grünen Bereich sind.
Ich schicke mir beispielsweise bestimmte Hinweise oder Warnungen sowohl zur Anzeige auf lokale Tablets als auch per Telegram aufs Smartphone. Wenn jemand die Nachrichten am Tablet bestätigt, bekommt FHEM das mit und könnte sie dann auch bei Telegram wieder entfernen. So finde ich solche Nachricht immer auch auf dem Smartphone vor und muss sie ein zweites Mal löschen bzw. weiß nicht sicher, ob sich zuhause schon jemand drum gekümmert hat.

Generell fände ich aas auch eine gute Funktion, kenne aber momentan nur die Möglichkeit bot-nachrichten zu verändern. Das habe ich bisher noch nicht eingebaut, denn eine Löschfunktion kenn ich nicht.

Ich kenne aber auch im Telegram-Client keine Möglichkeit Nachrichten (bei anderen) zu löschen. Wenn im Client etwas gelöscht wird, bezieht sich das nach meinem Verständnis nur auf diesen Client. Bei anderen bleibt die Meldung weiterhin vorhanden.

 
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Brockmann am 03 August 2016, 08:54:27
Ich kenne aber auch im Telegram-Client keine Möglichkeit Nachrichten (bei anderen) zu löschen. Wenn im Client etwas gelöscht wird, bezieht sich das nach meinem Verständnis nur auf diesen Client. Bei anderen bleibt die Meldung weiterhin vorhanden.
Sorry für mein Halbwissen. Ich habe noch mal genauer nachgelesen. Es gibt bei den geheimen Chats die Möglichkeit Nachrichten zu löschen bzw. mit einem Verfallsdatum zu versehen, nach dem sie automatisch gelöscht werden. Es wird dann sowohl beim Sender als auch beim Empfänger gelöscht. Aber eben nur in geheimen Chats.

Außerdem habe ich auch die Information gefunden, dass die Telegram Bot API das Löschen von Nachrichten derzeit nicht unterstützt. Insofern hat sich das Thema so oder so erstmal erledigt.
http://stackoverflow.com/questions/35269776/telegram-bot-how-to-delete-or-remove-a-message-or-media-from-a-channel-or-group
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 03 August 2016, 15:28:48
Sorry für mein Halbwissen. Ich habe noch mal genauer nachgelesen. Es gibt bei den geheimen Chats die Möglichkeit Nachrichten zu löschen bzw. mit einem Verfallsdatum zu versehen, nach dem sie automatisch gelöscht werden. Es wird dann sowohl beim Sender als auch beim Empfänger gelöscht. Aber eben nur in geheimen Chats.

Außerdem habe ich auch die Information gefunden, dass die Telegram Bot API das Löschen von Nachrichten derzeit nicht unterstützt. Insofern hat sich das Thema so oder so erstmal erledigt.
http://stackoverflow.com/questions/35269776/telegram-bot-how-to-delete-or-remove-a-message-or-media-from-a-channel-or-group

Danke fürs Nachrecherchieren, denn ich habe die Anforderung bei mir für die Wetterbilder, die ich mir täglich zusenden lasse und die ich dann immer manuell löschen muss, da ich den Chat selbst nicht löschen möchte. Eine gute Lösung nur die aktuellen Wettervorhersagen vorzuhalten fehlt mir auch noch.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Knorki am 08 August 2016, 22:34:04
Hallo Zusammen,

ich hab TelegramBot bei mir eingerichtet. Funktioniert soweit alles sehr gut. Nachrichten senden, empfangen, alles klappt.
Was mir aufgefallen ist: Im Logfile finde ich zahlreiche Einträge wie

2016.08.07 00:00:11 3: TelegramBot_Callback Telegram: Digest: Number of poll failures on 2016-08-06 is :1589:

Kann da jemand was mit anfangen? Google und Forum-Suche hat irgendwie nichts gescheites ergeben. Danke für eure Mithilfe.

Stefan
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 August 2016, 12:47:36
Hallo Zusammen,

ich hab TelegramBot bei mir eingerichtet. Funktioniert soweit alles sehr gut. Nachrichten senden, empfangen, alles klappt.
Was mir aufgefallen ist: Im Logfile finde ich zahlreiche Einträge wie

2016.08.07 00:00:11 3: TelegramBot_Callback Telegram: Digest: Number of poll failures on 2016-08-06 is :1589:

Kann da jemand was mit anfangen? Google und Forum-Suche hat irgendwie nichts gescheites ergeben. Danke für eure Mithilfe.

Stefan

Kurz zur Erklärung: Der TelegramBot baut eine Verbindung zum Telegram-Server auf, um über eingehende nachrichten für den Bot informiert zu werden (sogenanntes long poll). Diese Verbindung wird über einige Zeit gehalten (Attribut pollingTimeout ). Ein "poll failure" tritt auf, wenn es zu einem Fehler in dieser Verbindung kommt. Über das Attribut pollingVerbose lässt sich steuern wie detailliert die Fehler im log vermeldet werden. Default ist einmal in 24h wird nur die Anzahl der Fehler gemeldet (wie bei Dir).

Normalerweise sind eine kleine (meist einstellige Anzahl) von Fehlern, bei Dir sind es aber relativ viele. Bei einem angenommenen Timeout von 15sec sind es normalerweise etwa 6000 Polls in 24h, wenn also 1600 davon schiefgehen, ist etwas faul.

Somit wäre es vermutlich gut herauszufinden was das für Fehler sind, der jeweils letzte Fehler steht im Reading PollingLastError. Vielleicht wäre es sinnvoll mal pollingVerbose auf 2_Log zu setzen und die Fehler anzuschauen.

Gründe können Netzwerkinstabilität sein (sowohl von FHEM zum Router, als auch in der Internetanbindung). Manchmal kommt es auch vor dass die Telegramserver an einem Tag mal Probleme machen, das ist aber bei mir noch nicht über mehrere Tage passiert.

Also nicht besorgniserregend, aber es deutet auf ein Problem hin, wenn die Anzahl der Fehler über mehrere Tage hoch bleibt.





Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Knorki am 10 August 2016, 16:47:14
Hallo,

ich hab pollingVerbose auf 2_Log gesetzt und bekomme nun nachstehende Fehlermeldungen ins log:
2016.08.10 16:41:01 2: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 245s: from Polling
2016.08.10 16:41:21 2: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 245s: from Polling
2016.08.10 16:42:17 2: TelegramBot_Callback Telegram: resulted in :SUCCESS: from Polling
2016.08.10 16:42:46 2: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 245s: from Polling
2016.08.10 16:43:30 2: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 245s: from Polling
2016.08.10 16:44:24 2: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 245s: from Polling

Gruß
Stefan
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 10 August 2016, 17:01:58
Hallo,

ich hab pollingVerbose auf 2_Log gesetzt und bekomme nun nachstehende Fehlermeldungen ins log:
2016.08.10 16:41:01 2: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 245s: from Polling
2016.08.10 16:41:21 2: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 245s: from Polling
2016.08.10 16:42:17 2: TelegramBot_Callback Telegram: resulted in :SUCCESS: from Polling
2016.08.10 16:42:46 2: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 245s: from Polling
2016.08.10 16:43:30 2: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 245s: from Polling
2016.08.10 16:44:24 2: TelegramBot_Callback Telegram: resulted in :NonBlockingGet timed out on read from <hidden> after 245s: from Polling

Gruß
Stefan

Ich empfehle in der commandref polligTimeout auf einen Wert zwischen 15 und 60 zu setzen (auch weil Telegram intern einen Timeout hat, der meines Wissens unter 245s liegt):

Zitat
pollingTimeout <number>
Used to specify the timeout for long polling of updates. A value of 0 is switching off any long poll. In this case no updates are automatically received and therefore also no messages can be received. It is recommended to set the pollingtimeout to a reasonable time between 15 (not too short) and 60 (to avoid broken connections).

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: DS_Starter am 11 August 2016, 18:18:40
Hallo Johannes,

ich benutze nun ebenfalls dein Modul und bin dabei die Funktionen die es bietet in mein FHEM zu integrieren.
Vielen Dank für deine Arbeit !  :)

Beim Versenden von Kamerasnapshots (ca. 1,8 Mb pro Bild ) bin ich fast immer in einen Timeout gelaufen und das Bild/die Message wurde natürlich nicht versendet:

NonBlockingGet: returned write to https://api.telegram.org:443 timed out
Das Problem habe ich beseitigt, indem ich den Timeout-Parameter im Code auf 40 gesetzt habe:

my %TelegramBot_hu_do_params = (
                  url        => "",
                  timeout    => 40,
                  method     => "GET",
                  header     => $TelegramBot_header,
                  hideurl    => 1,
                  callback   => \&TelegramBot_Callback
);

Wahrscheinlich ist meine Internetanbindung in Verbindung mit vllt. noch anderen Faktoren etwas zu langsam.
Natürlich ist diese Anpassung beim nächsten Update wieder weg sofern ich das Modul nicht vom Update ausnehme was ich natürlich nicht möchte.

Deswegen die Frage, ob du nicht ein Attribut (z.B. httptimeout) einbauen könntest, mit dem der User diesen Timeout-Wert in seiner Umgebung anpassen könnte. So ein Feature wäre sicherlich auch für andere Nutzer m.M. nach recht hilfreich.

Danke und Grüße,
Heiko
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 12 August 2016, 00:14:26
@DS_Starter: Macht Sinn. Ich nehme das auf die Todoliste auf / für nach dem Urlaub  :)
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Knorki am 12 August 2016, 14:34:02
Ich empfehle in der commandref polligTimeout auf einen Wert zwischen 15 und 60 zu setzen (auch weil Telegram intern einen Timeout hat, der meines Wissens unter 245s liegt):

Hi,

hab ich gemacht, und schon siehts deutlich besser aus:
2016.08.12 00:00:12 3: TelegramBot_Callback Telegram: Digest: Number of poll failures on 2016-08-11 is :2:

Vielen Dank

Stefan
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: arokh12 am 12 August 2016, 18:19:46
Hallo,

ich bin gerade dabei, von yowsup zu telegram zu wechseln. Ich habe bei mir einzelne 3 Kontakte eingerichtet. Das Senden von FHEM an jeden Einzelnen Kontakt funktioniert problemlos.

Per Yowsup habe ich vorher aus meinen Utils Programm-Dateien alle nacheinander aufgerufen. (set yowsup msg <Nummer> Text; set yowsup2 msg <Nummer> Text;...). Jetzt habe ich das ganze an Telegram angepasst (set Telegram1 message Text;; set Telegram2 message Text;...).

Dabei stellte sich das folgende Problem heraus, das der letzte in der Auflistung die Nachricht bekommt, und die anderen beiden, die davor aufgerufen werden, die Nachricht nicht verschickt wird.
 
Im Internal sentMsgResult steht dann dauerhaft waiting. Woran kann das liegen?

Vielen Dank im voraus

arokh12
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Esjay am 12 August 2016, 18:32:57
Hallo,

ich bin gerade dabei, von yowsup zu telegram zu wechseln. Ich habe bei mir einzelne 3 Kontakte eingerichtet. Das Senden von FHEM an jeden Einzelnen Kontakt funktioniert problemlos.

Per Yowsup habe ich vorher aus meinen Utils Programm-Dateien alle nacheinander aufgerufen. (set yowsup msg <Nummer> Text; set yowsup2 msg <Nummer> Text;...). Jetzt habe ich das ganze an Telegram angepasst (set Telegram1 message Text;; set Telegram2 message Text;...).

Dabei stellte sich das folgende Problem heraus, das der letzte in der Auflistung die Nachricht bekommt, und die anderen beiden, die davor aufgerufen werden, die Nachricht nicht verschickt wird.
 
Im Internal sentMsgResult steht dann dauerhaft waiting. Woran kann das liegen?

Vielen Dank im voraus

arokh12

Grüße

Commandref sagt folgendes!
message|msg|send [ @<peer1> ... @<peerN> ] <text>

Versuch mal die @ zeichen vor deinen Kontakten rein zu nehmen, dann sollte es funktionieren.

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: arokh12 am 13 August 2016, 14:32:15
Grüße

Commandref sagt folgendes!
message|msg|send [ @<peer1> ... @<peerN> ] <text>

Versuch mal die @ zeichen vor deinen Kontakten rein zu nehmen, dann sollte es funktionieren.

Oh, das habe ich dann wohl überlesen. Jetzt funktioniert es aber problemlos

Danke,

arokh12
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Knorki am 14 August 2016, 22:17:28
Hallo,

leider sind die Polling time out Fehler doch wieder aufgetaucht:

2016-08-14 22:11:46 TelegramBot Telegram PollingLastError: NonBlockingGet timed out on read from  after 85s
2016-08-14 22:11:46 TelegramBot Telegram PollingErrCount: 412
2016-08-14 22:12:39 TelegramBot Telegram PollingLastError: NonBlockingGet timed out on read from  after 85s
2016-08-14 22:12:39 TelegramBot Telegram PollingErrCount: 413
2016-08-14 22:13:51 TelegramBot Telegram PollingLastError: NonBlockingGet timed out on read from  after 85s
2016-08-14 22:13:51 TelegramBot Telegram PollingErrCount: 414

Den Wert hatte ich auf 40 gesetzt. Wieso er einen time out nach 85s erhält ist mir ein Rätsel.
Hat irgendjemand vielleicht eine Lösung?

Gruß
Stefan
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: abc2006 am 15 August 2016, 11:42:38
Hi,
ich möchte gerne ein DOIF für 3h auf disable setzen und danach wieder enablen.

Da ich den Befehl oft brauchen werde, möchte ich das gerne über die Favoriten lösen.

dazu habe ich versucht
/off3h=set DF_machwas disable 1; defmod 3hON at +03:00 set DF_machwas disable 0;
Leider ist das Semikolon ja Trenner für Favoriten, so dass das defmod bereits den zweiten Platz belegt und nicht mit ausgeführt wird.

Wie könnte ich das hinkriegen?
Danke
Stephan



Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 15 August 2016, 12:07:41
Hi,
ich möchte gerne ein DOIF für 3h auf disable setzen und danach wieder enablen.

Da ich den Befehl oft brauchen werde, möchte ich das gerne über die Favoriten lösen.

dazu habe ich versucht
/off3h=set DF_machwas disable 1; defmod 3hON at +03:00 set DF_machwas disable 0;
Leider ist das Semikolon ja Trenner für Favoriten, so dass das defmod bereits den zweiten Platz belegt und nicht mit ausgeführt wird.

Wie könnte ich das hinkriegen?
Danke
Stephan

Es gibt verschiedene Möglichkeiten in fhem mehrere kommandos als kombination zu definieren. Schau doch mal unter cmdalias oder notify/trigger.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: hartenthaler am 20 August 2016, 17:01:18
Ich möchte ein pdf Dokument verschicken, das im Dateinamen zwei Leerzeichen enthält. Laut command ref muss der Dateiname dazu in " eingeschlossen werden. Geht aber nicht.
set Telegram.Bot sendDocument "my_documents/a b c.pdf"
führt zur Fehlermeldung "TelegramBot_Set: Command sendDocument, extra parameter specified after filename".

Wenn ich die Leerzeichen im Dateinamen durch "_" ersetze, geht es natürlich (egal ob ich das fhem-Kommando dann mit oder ohne " schreibe).

Und ich habe noch ein Problem mit Umlauten. Normalerweise kommen diese beim Telegram-Client korrekt an. Wenn ich aber über das Modul TALKTOME ein Reading weiterschicke, dann klappt das nicht korrekt.
Ich habe ein Kalender-Device und dort ein User-Reading "sprache_heute" mit dem Inhalt "Für heute stehen keine Termine im Kalender.". Beim Telegram-Client kommt aber folgendes an: "Für heute stehen keine Termine im Kalender."
Im RiveScript-Konfigurationsfile von TALKTOME steht:
! array termintage = heute|morgen

+ welche termine ([habe ich]|[haben wir]|stehen|gibt es) [im kalender] [für] (@termintage) [im kalender|an]
* <star2> == heute => <call>readingsval cv_KalenderGH sprache_heute Error</call>
* <star2> == morgen => <call>readingsval cv_KalenderGH sprache_morgen Error</call>
Wie kann ich testen ob das Problem auf Seiten von TALKTOME oder auf Seiten des TelegramBot liegt? Ich komme nicht drauf wie ich den Inhalt eines Readings per Telegram verschicke. Ich habe es z.B. so versucht:
set Telegram.Bot message { ReadingsVal("cv_KalenderGH","sprache_heute","Error") }Aber da kommt beim Client nur der Text "{ ReadingsVal("cv_KalenderGH","sprache_heute","Error") }" an, was ich natürlich fast vermutet hatte.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: voodrax am 20 August 2016, 18:18:44
Hallo!

Habe eine Frage, hoffe es kann mir jemand helfen.
Habe den Telegram-Bot eingerichtet. Funktioniert so weit so gut, Senden/Empfangen funktioniert. Habe ein Notify auf meinen Kellerlüfter gelegt, um informiert zu werden, wenn er sich einschaltet:
define TelegramCellarFanNotifyOn notify DOSE_Keller_Sw:.*on set Telegram message Keller-Luefter EIN
Mein Problem ist, dass ich in Telegram aber dann immer mehrere Messages bekomme, wenn ich dann zB den Lüfter ausschalte (das passiert gleich wie wenn ich im Web-IF den Lüfter ausschalte):
Ich: FHEM set DOSE_Keller_Sw off [14:18:53]

FHEMBot:
Keller-Luefter AUS [14:18:54]
 TelegramBot FHEM :
 Befehl:set DOSE_Keller_Sw off:
  Ergebnis:
OK

 Keller-Luefter AUS [14:18:54]
 Keller-Luefter AUS [14:18:54]


Meine Frage ist daher: Weiß jemand, wieso der Bot manchmal mehrere Nachrichten doppelt schickt? manchmal steht auch AUS, AUS, EIN, AUS...usw..
Ist nicht immer gleich, ist immer irgendwie, also zufällig.

Das macht der Bot aber nur beim Notify...wenn ich ein /SVG anfordere, bekomme ich es immer sauber nur 1x.

Weiß evtl. jemand Rat? Habe ich etwas übersehen?

Danke im Voraus für eure Hilfe.

LG
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: MadMax-FHEM am 20 August 2016, 18:46:55
Hi,

schon mal im EventMonitor geschaut welche Events kommen...

Denn sobald was mit 'on' kommt löst das notify aus und schickt eine Nachricht...

Gruß, Joachim
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: homeum am 20 August 2016, 19:37:04
Vllt ist es sinnvoll, anstatt mit Notify die Sache mit DOIF zu lösen.
Denn bei DOIF kommt erst wieder eine neue Benachrichtigung, wenn zuvor wieder die andere Bedingung aktiv war. Zweifache Auslösung bei der selben Bedingungen ist damit generell nicht möglich.
Ich habe mit DOIF sämtliche Telegram-Benachrichtigungen eingestellt, völlig ohne Probleme.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Marlen am 21 August 2016, 00:58:03
Hallo,

hab eine Problem mit Telegram_bot in FHEM:
Ich möchte Nachrichten an verschiedene Gruppen schicken, jedoch geht die Nachricht immer nur an defaultPeer!

Über der Eingabezeile in FHEM geht es allerdings!

Hab mir gedacht, ich erstell mir einfach mehrere bot's, allerdings gibt es hier dann wohl probleme beim polling!!!

Grrrrr......hoffe mir kann jemand helfen!
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: DS_Starter am 21 August 2016, 10:33:22
...... Ich komme nicht drauf wie ich den Inhalt eines Readings per Telegram verschicke. Ich habe es z.B. so versucht.....

Hallo Hartenthaler,

um eine, in welcher Form auch immer, zusammengesetzte Message über TelegramBot zu versenden setze ich in einer 99_MyUtils Funktion eine Variable $msg zusammen und versende diese dann über den Dienst an den defaultPeer. Hier ein Beispiel wie ich das mit einer Alarmmessage mache die im Alarm-Modul verwendet wird:

######################################################
########   Alarmanlage Alarm Level 5 - Batt leer
######################################################
sub AlmLvl5() {
 my $msg = 'Batterie schwach Alarm bei '.$defs{'LBatt.warn'}{READINGS}{'state'}{VAL}.' festgestellt. \n\nFHEM-Server';
 fhem ("set teleBot message $msg");
}

Aufzurufen wäre das Ganze dann ganz einfach über {AlmLvl5()} in der FHEMWEB-Eingabezeile oder in einem Notify usw.
Vielleicht hift dir das bei deiner Fehlersuche bzw. Aufgabenstellung.

viele Grüße,
Heiko
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: heinzfo am 25 August 2016, 20:00:47
Hallo

Ich bin von yowsup auf Telegram umgestiegen.
Senden und Empfangen geht mitlerweile.

Nun habe ich eine 99_TelegramUtils.pm die ich schon für Whatsapp verwende auf Telegram umgeschrieben.

Bei Whatsapp hatte ich 3 Mobiltelefone die Nachrichten senden/empfangen konnten, und von der 99_WhatsappUtils.pm daten bezogen haben.


Wie kann ich das bei Telegram lösen?

Das Whatsapp Beispiel
##############################################
# $Id: 99_WhatsAppUtils.pm $
package main;

use strict;
use warnings;
use POSIX;

sub
WhatsAppUtils_Initialize($$)

{ my ($hash) = @_; }

### define WhatsappHeinz notify HeinzMobil:message.* {WhatsappAnswer($NAME,$EVENT)}
### define WhatsappGabi notify GabiMobil:message.* {WhatsappAnswer($NAME,$EVENT)}
### define WhatsappNavi notify HeinzNavi:message.* {WhatsappAnswer($NAME,$EVENT)}

### define HeinzMobil yowsup 4917xxxxxxxxxx
### define GabiMobil yowsup 4917xxxxxxxxxx
### define HeinzNavi yowsup 4917xxxxxxxxxx

sub WhatsappAnswer($$)

{
  my ($NAME,$EVENT) = @_;

### Licht
if( $EVENT eq 'message: Licht' ) { fhem "set $NAME send Licht im Wohnzimmer ist jetzt eingeschaltet \xF0\x9F\x92\xA1";
fhem "set Stehlampe.wz dim43% 15"; sleep 0.5; fhem "set Bodenlampe.wz dim68% 48";}
elsif( $EVENT eq 'message: Licht aus' ) {fhem "set $NAME send Licht Wohnzimmer ist aus"; fhem "set AlleLampen.wz off";}
elsif( $EVENT eq 'message: Wandlampe' ) {fhem "set $NAME send Wandlampe bis 10:30 an"; fhem "set Stehlampe.wz on-till 10:23:17";}
elsif( $EVENT =~ /message: Wandlampe (dim+\d+%|on|off)/ ) {fhem "set $NAME send Wandlampe $1"; fhem "set Stehlampe.wz $1";}
elsif( $EVENT =~ /message: Bodenlampe (dim+\d+%|on|off)/ ) {fhem "set $NAME send Bodenlampe $1"; fhem "set Bodenlampe.wz $1";}
elsif( $EVENT =~ /message: Tischlampe (dim+\d+%|on|off)/ ) {fhem "set $NAME send Tischlampe $1"; fhem "set Tischlampe.az $1";}
elsif( $EVENT eq 'message: Flur' ) {fhem "set $NAME send Licht Flur"; fhem "set LichtFlur on-for-timer 0.5";}

Beste Grüße
Heinz
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: DeeSPe am 25 August 2016, 20:05:08
Ich bin den für mich einfachsten/logischsten Weg gegangen ohne mich genau mit der Materie befasst zu haben.

Habe ein userattr bei meinen ROOMMATES erstellt, z.B. TelegramID.
Dieses attr lese ich dann einfach an gewünschter Stelle in einer Sub ein.

Gruß
Dan
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: hartenthaler am 28 August 2016, 01:57:39
Danke Heiko @DS_Starter

Habe es nun testen können und festgestellt, dass das Problem mit den nicht richtig übertragenen Umlauten aus einem Reading nicht im Telegram-Modul liegt, sondern beim TALKTOME-Modul zu suchen ist. Habe mir dazu eine Routine in 99_myUtils.pm geschrieben mit der ich alles mögliche, u.a. auch Readings verschicken kann. Auch Readings mit Umlauten finden den Weg korrekt zum Telegram-Client.

#################################################################
###  Nachrichten, Readings, Bilder, Dokumente und Plots per Telegram verschicken                       ###
#################################################################

# Beispiele:
# Textnachricht:                                            send_telegram("Dies ist eine Nachricht.");
# Device, Reading:                                        send_telegram("cv_Kalender","t_001_summary");
# Plot:                                                         send_telegram("SVG_FileLog_NETATMO_CO2");
# Bild (.jpg oder .png zur direkten Ansicht):   send_telegram("picture.png");
# sonstiges Dokument (download):               send_telegram("document.pdf");
# Der erste Übergabeparameter darf maximal einen Punkt enthalten, der die Dateierweiterung abtrennt bzw. die Textnachricht abschließt.

sub send_telegram($;$) {
 my ($document, $reading) = @_;
 my $device = "Telegram.Bot";    # Telegram device ggf. anpassen
 my $peer = "x_y";  # anpassen - bei mir ist das Vorname_Nachname
 my $path   = "./my_documents/";  # default-Verzeichnis für Bilder und Dokumente; relativ zum fhem-Verzeichnis, also etwa /opt/fhem/my_documents/
 
 if (!defined $device) {
   Log3 'send_telegram', 1, "Device ".$device." not found";
   return "Device not found";
 }
 
 if (defined $reading) {  # reading (first parameter = device, second parameter = reading)
   $document = ReadingsVal($document,$reading,"Error");
   fhem ("set $device message $document");
 } else {  # message or plot or image or document
   my @parts = split(/\./,$document);
   if (!defined @parts or @parts == 1) { # plot or message
     my $plotfile="./www/gplot/".$document.".gplot";
     if (-e $plotfile) {  # plot
       $document = "{plotAsPng('".$document."')}";
       TelegramBot_ExecuteCommand($defs{$device}, $peer, $document);
     } else {  # message
       fhem ("set $device message $document");
     }
   }
   elsif (defined @parts) {  # image or document
     $document = $path.$document if (!-e $document);
     if (-e $document) {
       if (@parts[1] eq "png" or @parts[1] eq "jpg") { # image
     fhem("set $device sendImage $document");
       } else { # other document
         fhem("set $device sendDocument $document");
       }
     } else {
       Log3 'send_telegram', 1, "File not found";
       return "File not found";
     }
   }
 }
 return;
}

Es bleibt das Problem, dass man keine Dokumente verschicken kann, die Leerzeichen im Dateinamen enthalten.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: DeeSPe am 28 August 2016, 02:40:39
Mal irgendwie versucht die Leerzeichen zu escapen oder mit entsprechendem Codes aufzufüllen? z.B. %20

Gruß
Dan
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: hartenthaler am 28 August 2016, 05:31:39
Laut Doku muss man Dateinamen mit Leerzeichen in "" einfassen. Geht aber nicht. Das Escapen der Leerzeichen durch "\ " bringt keine Veränderung. Das Ersetzen der Leerzeichen durch %20 führt dazu, dass das File nicht gefunden wird. Also auch keine Lösung. Einziger Work-Around ist das Umbenennen der Datei.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: micomat am 31 August 2016, 22:40:22
Hallo zusammen,

ich habe eben erfolgreich den TelegramBot integriert, habe nur ein Problem.
Mein DOIF loest mit gesetztem "do always" unendlich oft hintereinander aus?!
define test DOIF ([telegrambot:msgText] eq "Leistung") (set telegrambot message [Zaehler_Gesamt:Leistung])
attr test do always
attr test event-on-update-reading msgText

Ich kapier nur nicht wieso? Das Reading msgText updatet nur einmalig.

[EDIT]
Habs mit cmdPause nun geloest
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Brockmann am 01 September 2016, 08:38:31
Ich kapier nur nicht wieso? Das Reading msgText updatet nur einmalig.
1. Müsste es nicht attr telegrambot event-on-update-reading msgText heißen?
2. Das DOIF wird getriggert, wenn telegrambot ein Event erzeugt, also irgendein Reading oder Status von telegrambot aktualisiert wird. Wenn dann die Bedingung stimmt, löst es aus. Und die Bedingung stimmt ja solange, bis in msgText was anderes steht.

Ich triggere bei meinen DOIFs nicht auf das Reading, sondern auf das Event. So kann das DOIF nur einmal in dem Moment getriggert werden, wo einen Nachricht ankommt, weil die Bedingung nur in dem Moment wahr ist:
define test DOIF ([telegrambot:"Leistung") (set telegrambot message [Zaehler_Gesamt:Leistung])
attr test do always

Das reagiert, wenn Telegram eine Nachricht empfängt, die das Wort "Leistung" enthält. Voraussetzung ist wie oben beschrieben attr telegrambot event-on-update-reading msgText bzw. zumindest Events durch prevMsgText usw. sollten unterdrückt werden.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: micomat am 01 September 2016, 08:48:46
Danke, werde ich testen :)
EDIT:
Klappt, danke :) naechtlicher Denkfehler
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 04 September 2016, 23:56:39
Laut Doku muss man Dateinamen mit Leerzeichen in "" einfassen. Geht aber nicht. Das Escapen der Leerzeichen durch "\ " bringt keine Veränderung. Das Ersetzen der Leerzeichen durch %20 führt dazu, dass das File nicht gefunden wird. Also auch keine Lösung. Einziger Work-Around ist das Umbenennen der Datei.

Das ist leider richtig, Dateien mit Leerzeichen funktionieren momentan auch nicht mit Anführungsstrichen, ich muss mir dafür eine neuen Ansatz überlegen.

 
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Muschelpuster am 06 September 2016, 07:26:26
Na ja, vielleicht bin ich da etwas altmodisch, aber bei Dateinamen mit Leerzeichen beschleicht mich immer ein leichtes Unwohlsein. Ich weiß, dass das immer mehr gemacht wird, trotzdem halte ich es für eine Unsitte.

altmodische Grüße
Niels
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: RitterSport am 07 September 2016, 18:07:28
Hallo,

kann mir jemand sagen woran es liegt wenn ich bei bestimmten Sendeversuchen folgendes bekomme:
PollingLastError

NonBlockingGet timed out on read from <hidden> after 65s 2016-09-07 18:05:20

Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: viegener am 08 September 2016, 00:12:37
Hallo,

kann mir jemand sagen woran es liegt wenn ich bei bestimmten Sendeversuchen folgendes bekomme:
PollingLastError

NonBlockingGet timed out on read from <hidden> after 65s 2016-09-07 18:05:20

Die Fehlermeldung bezieht sich eigentlich auf Nachrichtenempfang, nicht auf das Senden. Ein Zusammenhang mit Sendeversuchen wäre mir jetzt nicht aufgefallen bisher. Eine gewisse Anzahl solcher Meldungen am Tag sind auch bei stabilem Internetzugang normal. Siehe dazu auch weiter oben im Thread.
Titel: Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
Beitrag von: Carsten am 20 Septemb