Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

pula

Danke  sehr!
Ich werde mir das ansehen und hier berichten. Kann aber ein wenig dauern...
Cheers,
Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

andies

Ich habe Probleme beim Löschen von Nachrichten ("message can't be deleted") und mir ist nicht klar, warum der Bot das verweigert. Die Suche hier (https://stackoverflow.com/questions/35269776/telegram-bot-how-to-delete-or-remove-a-message-or-media-from-a-channel-or-group/35271942) ergab auch nichts, was ich nachvollziehen könnte.

Ich mache das derzeit zB so:
sub LogFileEintraegeSenden(){
my $datum;
$datum = POSIX::strftime("%Y-%m",localtime(time));
my $nachricht;
$nachricht = qx(tail -n10 /opt/fhem/log/fhem-$datum.log);
$nachricht =~ s/;//g;  ##Semikolon entfernen
$nachricht =~ s/&//g;  ##siehe https://core.telegram.org/bots/api#markdown-style
$nachricht =~ s/<//g;  ##
$nachricht =~ s/>//g;  ##
fhem("set TelegramBot _msg ```".$nachricht."```; sleep 10; defmod LogfileDelete at +05:00:00 set TelegramBot msgDelete ".InternalVal("TelegramBot", "sentMsgId",0));
}


Weiß jemand, was da falsch ist?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

viegener

Zitat von: andies am 07 Mai 2019, 19:17:22
Ich habe Probleme beim Löschen von Nachrichten ("message can't be deleted") und mir ist nicht klar, warum der Bot das verweigert. Die Suche hier (https://stackoverflow.com/questions/35269776/telegram-bot-how-to-delete-or-remove-a-message-or-media-from-a-channel-or-group/35271942) ergab auch nichts, was ich nachvollziehen könnte.

Ich mache das derzeit zB so:
sub LogFileEintraegeSenden(){
my $datum;
$datum = POSIX::strftime("%Y-%m",localtime(time));
my $nachricht;
$nachricht = qx(tail -n10 /opt/fhem/log/fhem-$datum.log);
$nachricht =~ s/;//g;  ##Semikolon entfernen
$nachricht =~ s/&//g;  ##siehe https://core.telegram.org/bots/api#markdown-style
$nachricht =~ s/<//g;  ##
$nachricht =~ s/>//g;  ##
fhem("set TelegramBot _msg ```".$nachricht."```; sleep 10; defmod LogfileDelete at +05:00:00 set TelegramBot msgDelete ".InternalVal("TelegramBot", "sentMsgId",0));
}


Weiß jemand, was da falsch ist?

Ja, Du wertest die sentMsgID aus während des Ablaufs Deiner sub LogFileEintraegeSenden. Also noch vor die Nachricht gesendet wird. Denn der Teil InternalVal... wird ja ausgewertet BEVOR fhem überhaupt aufgerufen wird und die Nachricht versendet.

Nebenbei - warum verwendest Du Internal (es gibt auch ein Reading)?

Sauber wäre auf das Versenden der Nachrichti zu reagieren (also notify auf sentMsgId mit zusätzlicher Überprüfung ob das eine logfile msg war - zum Beispiel über geeigneten msg prefix) und dann erst im notify den at mit dem msgdelete aufsetzen. Dann ist auch sichergestellt, dass die sentMsgId die richtige ist und nicht zufällig diejenige die gerade im Device steht beim Aufruf.

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

andies

Danke! Wenn ich was habe, werde ich das hier einstellen.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

stratege-0815

Hallo zusammen,
ich möchte per telegram eine html nachricht senden. Dabei  soll ein bild gesendet werden, das auf eine bestimmte URL linked.

Wenn ich das Bild erhalte soll dann ein Klick darauf die hinterlegte url öffnen.

Hat das schon einmal jemand gemacht?

Gruß
Jan

ulli

Ich habe ein ähnliches thema.
Ich möchte Daten in einer tabellenform mit farbiger Schrift an mein Handy über Telegram senden.
Da scheinbar der Bot das so nicht unterstützt überlege ich Wie ich die Info zu einem Bild konvertieren kann und dann versende...

Ich brauche das um Informationen lesbar und übersichtlich darstellen zu können.

blackbite

Hallo allerseits,

ich bekomme seltsamer Weise seit dem 10.05. keine Bilder mehr an meinen Bot verschickt. Ein sendImage @***botname*** /opt/fhem/www/snapshots/Cam2_Einfahrt_IPCAM_snapshot.jpg
liefert nur noch ein "NonBlockingGet: returned write error: Die Ressource ist zur Zeit nicht verfügbar" zurück. Text versenden ist kein Problem. Ich habe nichts an der Config geändert. Das eigentliche Bild ist korrekt vorhanden und die Berechtigungen passen auch auf dem Filesystem.
Hat das Problem auch irgendwer?
Außer, dass die Telegram-App für Android selbst in der Zeit upgedated wurde, fällt mir nichts ein.
Besten Dank für jegliche Hilfe.

Blackbite
Blackbite

viegener

Zitat von: blackbite am 13 Mai 2019, 08:22:26
Hallo allerseits,

ich bekomme seltsamer Weise seit dem 10.05. keine Bilder mehr an meinen Bot verschickt. Ein sendImage @***botname*** /opt/fhem/www/snapshots/Cam2_Einfahrt_IPCAM_snapshot.jpg
liefert nur noch ein "NonBlockingGet: returned write error: Die Ressource ist zur Zeit nicht verfügbar" zurück. Text versenden ist kein Problem. Ich habe nichts an der Config geändert. Das eigentliche Bild ist korrekt vorhanden und die Berechtigungen passen auch auf dem Filesystem.
Hat das Problem auch irgendwer?
Außer, dass die Telegram-App für Android selbst in der Zeit upgedated wurde, fällt mir nichts ein.
Besten Dank für jegliche Hilfe.

Blackbite

Mmh - die Fehlermeldung tritt wohl auf, während das Bild an Telegram gesendet wird. Mit den Berechtigungen sollte das nichts zu tun zuhaben und auch mit der Android App definitiv nicht. Wenn das vorher mit genau denselben Bildern funktioniert hat, ist mir das erstmal ein Rätsel.

Vielleicht kannst Du mal ein paar Dinge ausprobieren / beantworten:
- Neustart des Rechners auf dem FHEM läuft
- Versenden eines kleinen Bildes von Hand --> Ergebnis?
- Gibt es (angenommen raspbian?) Systemmeldungen im syslog etc?
- Dateisysteme voll (z.B. /tmp ?)
- Gibt es Netzwerkprobleme (oder andere Meldungen, die auf instabile Netzwerkverbindungen hindeuten
- Tritt es bei jedem Bilder-Versand auf oder nur gelegentlich

Ansonsten wäre es gut, etwas mehr über die Umgebung und Infrastruktur Deines FHEMS und der Bilder zu hören. Da die Fehlermeldung vom System kommt, beim Netzwerktransfer an Telegram.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Frank_Huber

Morgen,

Ebenfalls seit dem 10.05. schickt eine meiner Instanzen einen Plot nicht mehr.
Letztes Update war am 09.05.
Ein Restore auf den Stand vom 24.04. bringt keinen Erfolg.
Somit schließe ich FHEM als Verursacher aus und gehe zurück auf den Stand vom 09.05.

Wenn ich den Plot verkleinere funktioniert es wieder.
vergrößere ich einen anderen Plot der aktuell funktioniert so geht dieser nicht mehr.
Es scheint als hätte Telegram hier Probleme / Änderungen.

Werde den "Fehlerhaften" Plot mal auf einer anderen Instanz testen.
Durch den zetralen MySQL hab ich die Daten überall.

co010

Hallo,
bei mir ist das gleiche Problem,
ZitatHallo allerseits,

ich bekomme seltsamer Weise seit dem 10.05. keine Bilder mehr an meinen Bot verschickt. Ein sendImage @***botname*** /opt/fhem/www/snapshots/Cam2_Einfahrt_IPCAM_snapshot.jpg
liefert nur noch ein "NonBlockingGet: returned write error: Die Ressource ist zur Zeit nicht verfügbar" zurück. Text versenden ist kein Problem. Ich habe nichts an der Config geändert. Das eigentliche Bild ist korrekt vorhanden und die Berechtigungen passen auch auf dem Filesystem.

-Text versenden geht
-Bilder bis 50 Kb geht auch
-Bilder größer (zb. 900 kb geht nicht mehr) seid 10.05.2019 > Fehler >sentMsgResult > NonBlockingGet: returned write error: Resource temporarily unavailable
                                                                                                     >PollingLastError>NonBlockingGet timed out on read from <hidden> after 245s
-Updates Aktuell

Grüße Robert

blackbite

Zitat von: co010 am 13 Mai 2019, 11:55:12
Hallo,
bei mir ist das gleiche Problem,
-Text versenden geht
-Bilder bis 50 Kb geht auch
-Bilder größer (zb. 900 kb geht nicht mehr) seid 10.05.2019 > Fehler >sentMsgResult > NonBlockingGet: returned write error: Resource temporarily unavailable
                                                                                                     >PollingLastError>NonBlockingGet timed out on read from <hidden> after 245s
-Updates Aktuell

Grüße Robert

Danke @all
Ist genau mein Verhalten, was Robert hier beschreibt. Meine jpg-Datei ist etwa 63kB groß und kommt zu 99% nicht an. Ich kann erst heute Abend einen Versuch mit einer Datei <50kB machen.
Blackbite

Frank_Huber

#2111
Ich hab jetzt noch etwas rungetestet mit meinen Instanzen...

Die Problematischnen Plots und das DOIF zum senden auf eine andere Instanz kopiert.
Diese ist Update Stand 24.04.2019. --> keine Probleme.
Den API Key dieser Instanz auf die andere übernommen. --> gleiches Problem.
Update gemacht. --> Problem ist da.
Restore gemacht: Problem beseitigt.

Somit scheint es für mich an einem der updates zwischen dem 24.04. und 09.05. zu liegen.
Hier das Log vom Update Heute (vom Restore ist im Log nichts zu sehen):
2019.05.13 13:49:37 1: backup done: FHEM-20190513_134852.tar.gz (32923647 Bytes)
2019.05.13 13:49:37 1: RMDIR: ./restoreDir/update/2019-02-21
2019.05.13 13:49:37 1: UPD ./CHANGED
2019.05.13 13:49:37 1: UPD ./MAINTAINER.txt
2019.05.13 13:49:37 1: UPD ./fhem.cfg.demo
2019.05.13 13:49:38 1: UPD ./fhem.pl
2019.05.13 13:49:38 1: UPD FHEM/00_MYSENSORS.pm
2019.05.13 13:49:38 1: UPD FHEM/01_FHEMWEB.pm
2019.05.13 13:49:38 1: UPD FHEM/10_EnOcean.pm
2019.05.13 13:49:38 1: UPD FHEM/10_MQTT2_DEVICE.pm
2019.05.13 13:49:38 1: UPD FHEM/10_MYSENSORS_DEVICE.pm
2019.05.13 13:49:38 1: UPD FHEM/10_RESIDENTS.pm
2019.05.13 13:49:38 1: UPD FHEM/10_ZWave.pm
2019.05.13 13:49:38 1: UPD FHEM/20_GUEST.pm
2019.05.13 13:49:38 1: UPD FHEM/20_PET.pm
2019.05.13 13:49:38 1: UPD FHEM/20_ROOMMATE.pm
2019.05.13 13:49:38 1: UPD FHEM/46_TRX_LIGHT.pm
2019.05.13 13:49:38 1: UPD FHEM/49_SSCam.pm
2019.05.13 13:49:38 1: UPD FHEM/50_HP1000.pm
2019.05.13 13:49:39 1: UPD FHEM/50_MOBILEALERTSGW.pm
2019.05.13 13:49:39 1: UPD FHEM/55_DWD_OpenData.pm
2019.05.13 13:49:39 1: UPD FHEM/70_Pushover.pm
2019.05.13 13:49:39 1: UPD FHEM/73_AMADCommBridge.pm
2019.05.13 13:49:39 1: UPD FHEM/73_AutoShuttersControl.pm
2019.05.13 13:49:39 1: UPD FHEM/73_DoorBird.pm
2019.05.13 13:49:39 1: UPD FHEM/73_GardenaSmartBridge.pm
2019.05.13 13:49:39 1: UPD FHEM/74_AMADDevice.pm
2019.05.13 13:49:39 1: UPD FHEM/76_SMAInverter.pm
2019.05.13 13:49:39 1: UPD FHEM/88_HMCCU.pm
2019.05.13 13:49:39 1: UPD FHEM/88_HMCCURPCPROC.pm
2019.05.13 13:49:39 1: UPD FHEM/91_notify.pm
2019.05.13 13:49:39 1: UPD FHEM/93_DbRep.pm
2019.05.13 13:49:39 1: UPD FHEM/95_YAAHM.pm
2019.05.13 13:49:39 1: UPD FHEM/98_DOIF.pm
2019.05.13 13:49:40 1: UPD FHEM/98_Heating_Control.pm
2019.05.13 13:49:40 1: UPD FHEM/98_Installer.pm
2019.05.13 13:49:40 1: UPD FHEM/98_MediaList.pm
2019.05.13 13:49:40 1: UPD FHEM/98_Modbus.pm
2019.05.13 13:49:40 1: UPD FHEM/98_RandomTimer.pm
2019.05.13 13:49:40 1: UPD FHEM/98_Text2Speech.pm
2019.05.13 13:49:40 1: UPD FHEM/98_WeekdayTimer.pm
2019.05.13 13:49:40 1: UPD FHEM/98_autocreate.pm
2019.05.13 13:49:40 1: UPD FHEM/98_livetracking.pm
2019.05.13 13:49:40 1: UPD FHEM/98_vitoconnect.pm
2019.05.13 13:49:40 1: UPD FHEM/98_weekprofile.pm
2019.05.13 13:49:40 1: UPD FHEM/DevIo.pm
2019.05.13 13:49:40 1: UPD FHEM/HttpUtils.pm
2019.05.13 13:49:40 1: UPD FHEM/Meta.pm
2019.05.13 13:49:40 1: UPD FHEM/RESIDENTStk.pm
2019.05.13 13:49:40 1: UPD FHEM/UConv.pm
2019.05.13 13:49:40 1: UPD FHEM/holiday/ni.holiday
2019.05.13 13:49:40 1: UPD FHEM/holiday/ns.holiday
2019.05.13 13:49:40 1: UPD FHEM/holiday/th.holiday
2019.05.13 13:49:40 1: UPD FHEM/lib/74_AMADautomagicFlowset_4.4.1.xml
2019.05.13 13:49:40 1: UPD FHEM/lib/74_AMADtaskerset_4.4.1.prj.xml
2019.05.13 13:49:40 1: UPD FHEM/lib/AttrTemplate/httpmod.template
2019.05.13 13:49:41 1: UPD FHEM/lib/AttrTemplate/mqtt2.template
2019.05.13 13:49:41 1: UPD FHEM/lib/fhem_zwave_deviceconfig.xml.gz
2019.05.13 13:49:41 1: UPD demolog/fhem.save
2019.05.13 13:49:41 1: UPD docs/commandref_frame.html
2019.05.13 13:49:41 1: UPD docs/commandref_frame_DE.html
2019.05.13 13:49:41 1: UPD www/gplot/ElsnerWS.gplot
2019.05.13 13:49:41 1: UPD www/gplot/ElsnerWS_2.gplot
2019.05.13 13:49:41 1: UPD www/gplot/ElsnerWS_3.gplot
2019.05.13 13:49:41 1: UPD www/pgm2/f18.js
2019.05.13 13:49:41 1: UPD www/pgm2/fhemweb.js
2019.05.13 13:49:41 1: saving fhem.cfg
2019.05.13 13:49:41 1: saving ./log/fhem.save
2019.05.13 13:49:41 1:
2019.05.13 13:49:41 1: New entries in the CHANGED file:
2019.05.13 13:49:41 1:  - bugfix:  88_HMCCU: Flag for disabling initial device update
2019.05.13 13:49:41 1:  - bugfix:  10_MYSENSORS_DEVICE: prevent fhem crashing by ack timeout
2019.05.13 13:49:41 1:              at higher verobse levels
2019.05.13 13:49:41 1:  - change:  98_Heating_Control.pm will be removed soon. Users will need to
2019.05.13 13:49:41 1:              change their device definitions to 98_WeekdayTimer; supporting
2019.05.13 13:49:41 1:              code is provided, but perl calls have to be changed manually.
2019.05.13 13:49:41 1:  - bugfix:  73_AutoShuttersControl: fix bug roommate and windwo comfort
2019.05.13 13:49:41 1:  - bugfix:  73_DoorBird: Error 404 handling for history images corrected
2019.05.13 13:49:41 1:  - bugfix:  73_AutoShuttersControl: fix sunset sunrise object values
2019.05.13 13:49:41 1:  - feature: 74_AMADtaskerset_4.4.0.prj: add nfc tag support in taskerset
2019.05.13 13:49:41 1:                74_AMADautomagicflowset: fix bug then use VLC player
2019.05.13 13:49:41 1:  - feature: 73_DoorBird: Images can be stored as JPGs
2019.05.13 13:49:41 1:  - feature: 73_DoorBird: Secure communication with https ans SessionID
2019.05.13 13:49:41 1:  - bugfix:  73_AutoShuttersControl: fix brightness detection for IsDay,
2019.05.13 13:49:41 1:                fix detection for manual driveing
2019.05.13 13:49:41 1:  - bugfix:  73_GardenaSmartBridge: fix the fix
2019.05.13 13:49:41 1:  - bugfix:  73_GardenaSmartBridge: check if defined $data
2019.05.13 13:49:41 1:  - bufix:   55_DWD_OpenData: SunUp calculation (forum #83097 msg #931972)
2019.05.13 13:49:41 1:  - feature: 10_RESIDENTS: add home alone mode
2019.05.13 13:49:41 1:  - new:     20_PET: new RESIDENTS module type for pets at home
2019.05.13 13:49:41 1:  - bugfix:  73_AutoShuttersControl: fix bugs and logic problems
2019.05.13 13:49:41 1:  - feature: 98_weekprofile: HMCCU support
2019.05.13 13:49:41 1:  - change:  10_MYSENSORS_DEVICE: enhance support for SetExtensions;
2019.05.13 13:49:41 1:                       separate readings for heatrbeat, smartSleep & NACK
2019.05.13 13:49:41 1:  - bugfix:  73_GardenaSmartBridge: fix undefined_value Error
2019.05.13 13:49:41 1:  - feature: 98_Text2Speech: add Amazon Polly as new suggested TTS-Engine
2019.05.13 13:49:41 1: ... rest of lines skipped.
2019.05.13 13:49:41 1: Calling /usr/bin/perl ./contrib/commandref_join.pl -noWarnings, this may take a while
2019.05.13 13:53:32 1: *** EN FHEM/44_Rollo.pm: ignoring text due to DOS encoding
2019.05.13 13:53:32 1: *** DE FHEM/44_Rollo.pm: ignoring text due to DOS encoding
2019.05.13 13:53:32 1:
2019.05.13 13:53:32 1: update finished, "shutdown restart" is needed to activate the changes.
2019.05.13 13:53:32 1:
2019.05.13 13:53:33 1: fheminfo Statistics data sent to server. See Logfile (level 4) for details.
2019.05.13 13:55:10 1: Server shutdown delayed due to logdb for max 10 sec
2019.05.13 13:55:21 0: Server shutdown
2019.05.13 13:55:24 1: Including fhem.cfg

Frank_Huber

#2112
So, hab noch einige tests gemacht und Module vom Update ausgeschlossen.

Der Verursacher ist: HttpUtils.pm
HttpUtils.pm       17831 2018-11-24 15:09:17Z rudolfkoenig
macht keine probleme,

Die einzige Ändeung scheint die hier zu sein:
https://svn.fhem.de/trac/changeset/19349/

Aber hier endet mein Latein...

knopf_piano

bei mir kommen nur Bilder mit 20kB durch, sowohl sendImage, sendPhoto
bash:

convert ipcam.jpg -define jpeg:extent=20kb ipcam2.jpg && chown fhem:dialout ipcam2.jpg


fhem:

set myBot sendImage ipcam2.jpg


mit der Version klappt auch das Versenden größerer Bilder
# $Id: HttpUtils.pm 17034 2018-07-27 05:47:13Z rudolfkoenig $
zotac nano mit proxmox und ganz viel zeug drauf

viegener

Zitat von: Frank_Huber am 13 Mai 2019, 16:16:33
So, hab noch einige tests gemacht und Module vom Update ausgeschlossen.

Der Verursacher ist: HttpUtils.pm
HttpUtils.pm       17831 2018-11-24 15:09:17Z rudolfkoenig
macht keine probleme,

Die einzige Ändeung scheint die hier zu sein:
https://svn.fhem.de/trac/changeset/19349/

Aber hier endet mein Latein...

Danke für die detaillierte Analyse. Ich habe Rudi mal eine PN gesendet, vielleicht kann er mal draufschauen. Die Meldung besagt, dass hier beim Senden aufs Netzwerk temporär nicht gesendet werden kann (EAGAIN) . Es wäre blockierend für den Prozess, das ist aber beim Öffnen der Netzwerkverbindung explizit nicht gewünscht worden. Weniger technisch beschrieben, vielleicht kann dieser Fall in HTTPUtils explizit abgefangen werden und ein neuer Sendeversuch gemacht werden.

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