Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

viegener

Zitat von: ocin4 am 16 Juli 2023, 02:16:07
Zitat von: viegener am 16 Juli 2023, 00:39:27Versuche mal die Leerzeichen durch \s zu ersetzen,
Das hat nicht funktioniert (siehe Anhang)
Zitat von: viegener am 16 Juli 2023, 00:39:27sonst wäre diedie einzige Möglichkeit über perl die Methode
TelegramBot_Set im Modul direkt aufzurufen
Das versteh ich nicht.

VG, Nico


Dein Bildschirmfoto kann ich nicht interpretieren. Ruf doch einfach mal folgenden Befehl auf:

set DeinTelegramBot _msg <pre>a\sb\s\sc\s\s\s\sd\n0123456789</pre>
Das Ergebnis müsste dann im telegram client etwa so aussehen - siehe Bild

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

ocin4

Zitat von: viegener am 16 Juli 2023, 13:19:16Dein Bildschirmfoto kann ich nicht interpretieren.
Mein Script bastelt noch ein Keyboard mit rein und schickt die Nachricht an den Peer, von dem die Anfrage kam. In dem Screenshot sieht man, dass "\s" durch ein einfaches "s" ersetzt wurde.
Zitat von: viegener am 16 Juli 2023, 13:19:16Ruf doch einfach mal folgenden Befehl auf:
set DeinTelegramBot _msg <pre>a\sb\s\sc\s\s\s\sd\n0123456789</pre>
Das Ergebnis müsste dann im telegram client etwa so aussehen - siehe Bild
Der Befehl oben funktioniert, bei mir nicht, also musste es was mit dem Escapen zu tun haben. Wenn ich jetzt in meine Messgae ein "\\s" anstelle eines Leerzeichens schreibe, funktioniert es, wie es soll, siehe Screenshot.
Danke!

viegener

Schön, dass Du eine LÖsung gefunden hast.
Würde mich aber interessieren warum bei Dir zweifach escapen notwendig ist. Hast Du den Befehl direkt im Browser in FHEM ausgeführt?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

ocin4

Moin,

der Befehl, den du geschrieben hast, funktioniert direkt im Browser. Ich hab hier mal das DEF des Notifys, in welchem ich doppelt escapen muss, kannst ja mal kucken, ob du herausfindest, warum das so ist. Hängt  meiner Meinung nach bestimmt mit FHEM-/Perl-Syntax zusammen, bei denen ich nicht so fit bin.
myTelegramBot:msgText.* {
my $peer = "@" . ReadingsVal("myTelegramBot", "msgPeerId", xxxxxxxxx); #default unkenntlich gemacht
my $befehlhelp         = "/hilfe";
my $befehltemp         = "/temp";
my $befehlbildtemp     = "/bildtemp";
my $befehlbildrh       = "/bildrh";
my $befehlheizdeckean  = "/HeizdeckeAn";
my $befehlheizdeckeaus = "/HeizdeckeAus";
my $befehlkuechean     = "/Kueche21";
my $befehlkuecheaus    = "/Kueche18";
my $befehlkuechesommer = "/KuecheSommer";
my $keyboard = "($befehlhelp|$befehltemp|$befehlbildtemp|$befehlbildrh) ($befehlheizdeckean|$befehlheizdeckeaus) ($befehlkuechean|$befehlkuecheaus|$befehlkuechesommer)";
my $msg = $peer . " " . $keyboard;
if  ($EVTPART1 eq 'Liste' || $EVTPART1 eq '/list' || $EVTPART1 eq '/liste' || $EVTPART1 eq '/help' || $EVTPART1 eq $befehlhelp) {
fhem("set myTelegramBot message $msg\
$befehltemp: Temperaturen\n$befehlbildtemp: Temperaturen-SVG\n$befehlbildrh: Luftfeuchte-SVG\n$befehlheizdeckean Heizdecke an\n$befehlheizdeckeaus Heizdecke aus\n$befehlkuechean Heizkörper Küche auf 21°C\n$befehlkuecheaus Heizkörper Küche auf 18°C\n$befehlkuechesommer Heizkörper Küche Sommerbetrieb");
}
elsif ($EVTPART1 eq 'Temperatur' || $EVTPART1 eq $befehltemp) {
my $tempWB = ReadingsVal("MQTT2_Prologue_Boden", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_Prologue_Boden", "humidity", "") . "% rH";
my $tempAZ = ReadingsVal("MQTT2_Nexus_AZ", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_Nexus_AZ", "humidity", "") . "% rH";
my $tempBad = ReadingsVal("MQTT2_Prologue_Bad", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_Prologue_Bad", "humidity", "") . "% rH";
my $tempSZ = ReadingsVal("MQTT2_inFactory_SZ", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_inFactory_SZ", "humidity", "") . "% rH";
my $tempKue = ReadingsVal("MQTT2_Prologue_Kueche", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_Prologue_Kueche", "humidity", "") . "% rH";
my $tempWZ = ReadingsVal("MQTT2_Nexus_WZ", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_Nexus_WZ", "humidity", "") . "% rH";
my $tempKel = ReadingsVal("MQTT2_inFactory_Keller", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_inFactory_Keller", "humidity", "") . "% rH";
my $tempBarb = ReadingsVal("MQTT2_inFactory_Barbara", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_inFactory_Barbara", "humidity", "") . "% rH";
my $tempCP = sprintf("%.1f", ReadingsVal("myCarportTemperatureProxy", "state", "")) . "°C";
fhem("set myTelegramBot message $msg <pre>Wäscheboden\\s\\s $tempWB\nArbeitszimmer $tempAZ\nBad\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s $tempBad\nSchlafzimmer\\s $tempSZ\nKüche\\s\\s\\s\\s\\s\\s\\s\\s $tempKue\nWohnzimmer\\s\\s\\s $tempWZ\nKeller\\s\\s\\s\\s\\s\\s\\s $tempKel\nDraußen\\s\\s\\s\\s\\s\\s $tempBarb\nCarport\\s\\s\\s\\s\\s\\s $tempCP</pre>");
}
else {
# Die anderen Befehle wegen Übersichtlichkeit hier rausgenommen.
}
}

viegener

Zitat von: ocin4 am 17 Juli 2023, 07:44:59Moin,

der Befehl, den du geschrieben hast, funktioniert direkt im Browser. Ich hab hier mal das DEF des Notifys, in welchem ich doppelt escapen muss, kannst ja mal kucken, ob du herausfindest, warum das so ist. Hängt  meiner Meinung nach bestimmt mit FHEM-/Perl-Syntax zusammen, bei denen ich nicht so fit bin.
myTelegramBot:msgText.* {
my $peer = "@" . ReadingsVal("myTelegramBot", "msgPeerId", xxxxxxxxx); #default unkenntlich gemacht
my $befehlhelp         = "/hilfe";
my $befehltemp         = "/temp";
my $befehlbildtemp     = "/bildtemp";
my $befehlbildrh       = "/bildrh";
my $befehlheizdeckean  = "/HeizdeckeAn";
my $befehlheizdeckeaus = "/HeizdeckeAus";
my $befehlkuechean     = "/Kueche21";
my $befehlkuecheaus    = "/Kueche18";
my $befehlkuechesommer = "/KuecheSommer";
my $keyboard = "($befehlhelp|$befehltemp|$befehlbildtemp|$befehlbildrh) ($befehlheizdeckean|$befehlheizdeckeaus) ($befehlkuechean|$befehlkuecheaus|$befehlkuechesommer)";
my $msg = $peer . " " . $keyboard;
if  ($EVTPART1 eq 'Liste' || $EVTPART1 eq '/list' || $EVTPART1 eq '/liste' || $EVTPART1 eq '/help' || $EVTPART1 eq $befehlhelp) {
fhem("set myTelegramBot message $msg\
$befehltemp: Temperaturen\n$befehlbildtemp: Temperaturen-SVG\n$befehlbildrh: Luftfeuchte-SVG\n$befehlheizdeckean Heizdecke an\n$befehlheizdeckeaus Heizdecke aus\n$befehlkuechean Heizkörper Küche auf 21°C\n$befehlkuecheaus Heizkörper Küche auf 18°C\n$befehlkuechesommer Heizkörper Küche Sommerbetrieb");
}
elsif ($EVTPART1 eq 'Temperatur' || $EVTPART1 eq $befehltemp) {
my $tempWB = ReadingsVal("MQTT2_Prologue_Boden", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_Prologue_Boden", "humidity", "") . "% rH";
my $tempAZ = ReadingsVal("MQTT2_Nexus_AZ", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_Nexus_AZ", "humidity", "") . "% rH";
my $tempBad = ReadingsVal("MQTT2_Prologue_Bad", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_Prologue_Bad", "humidity", "") . "% rH";
my $tempSZ = ReadingsVal("MQTT2_inFactory_SZ", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_inFactory_SZ", "humidity", "") . "% rH";
my $tempKue = ReadingsVal("MQTT2_Prologue_Kueche", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_Prologue_Kueche", "humidity", "") . "% rH";
my $tempWZ = ReadingsVal("MQTT2_Nexus_WZ", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_Nexus_WZ", "humidity", "") . "% rH";
my $tempKel = ReadingsVal("MQTT2_inFactory_Keller", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_inFactory_Keller", "humidity", "") . "% rH";
my $tempBarb = ReadingsVal("MQTT2_inFactory_Barbara", "temperature_C", "") . "°C, " . ReadingsVal("MQTT2_inFactory_Barbara", "humidity", "") . "% rH";
my $tempCP = sprintf("%.1f", ReadingsVal("myCarportTemperatureProxy", "state", "")) . "°C";
fhem("set myTelegramBot message $msg <pre>Wäscheboden\\s\\s $tempWB\nArbeitszimmer $tempAZ\nBad\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s $tempBad\nSchlafzimmer\\s $tempSZ\nKüche\\s\\s\\s\\s\\s\\s\\s\\s $tempKue\nWohnzimmer\\s\\s\\s $tempWZ\nKeller\\s\\s\\s\\s\\s\\s\\s $tempKel\nDraußen\\s\\s\\s\\s\\s\\s $tempBarb\nCarport\\s\\s\\s\\s\\s\\s $tempCP</pre>");
}
else {
# Die anderen Befehle wegen Übersichtlichkeit hier rausgenommen.
}
}

OK, das erklärt es aus Perl heraus mit den doppelten Anführungszeichen wird Perl das erste "\" entfernen. Wenn Du den String in quotes/einfache Anführungszeichen also ' setzt sollte es auch ohne Dopplung gehen.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

ocin4

Zitat von: viegener am 17 Juli 2023, 13:58:52Wenn Du den String in quotes/einfache Anführungszeichen also ' setzt sollte es auch ohne Dopplung gehen.
Ja, aber dann werden die Variablen im String nicht mehr geparst, müsste ich dann mit . aufteilen und zusammenfügen. Weiß jetzt nicht, was besser ist. Danke aber trotzdem, evtl brauch ich das andermal, man lernt ja nie aus.

VG, Nico

viegener

Zitat von: ocin4 am 17 Juli 2023, 15:03:14
Zitat von: viegener am 17 Juli 2023, 13:58:52Wenn Du den String in quotes/einfache Anführungszeichen also ' setzt sollte es auch ohne Dopplung gehen.
Ja, aber dann werden die Variablen im String nicht mehr geparst, müsste ich dann mit . aufteilen und zusammenfügen. Weiß jetzt nicht, was besser ist. Danke aber trotzdem, evtl brauch ich das andermal, man lernt ja nie aus.

VG, Nico

Ja natürlich, der Text muss dann natürlich auch zerteilt werden:

Statt

fhem("set myTelegramBot message $msg <pre>Wäscheboden\\s\\s $tempWB\nArbeitszimmer $tempAZ   ...
dann so

fhem("set myTelegramBot message ".$msg.' <pre>Wäscheboden\s\s '.$tempWB.'\nArbeitszimmer '.$tempAZ   ...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

claudio

@viegener

Hi, I use telegrambot for quiet some time now, mostly to receive alerts on my phone, this worked perfectly fine for months and now I don't receive messages anymore. Sometimes, there is one or two messages that reach me, but in general, I receive nothing at all. At contrario, if I send a message from by bot (on the phone), I receive the message each time without issues. I didn't change my fhem's telegrambot config, just done regulars fhem updates

I don't know if it help but
sentMsgResult (Internals) is showing : WAITING

Any clues of what could be wrong ?

Woody14623

Zitat von: andies am 31 Januar 2020, 08:28:22Jetzt kommen wir der Sache schon näher, ich habe die Datei mal genauer angeschaut. Es finden sich unzählige Einträge der Form
uniqueID:uswusfuswusf...

aber eben auch 1079 (!) Einträge mit
FB_CALLLIST-TelefonListe:compressed:undhierstehtdannimmerdiegleicheIDdrin_uswusf
und vierzehn Mal der Token, da habe ich mir einen Screenshot mit einem Ausschnitt erlaubt.

Sorry for the reply in English, but my German is at best childhood level.  Happily my tech is at a high enough level to run FHEM with just Google Translate to handle the documentation.

I had the same errors/issue you saw, but figured out the root cause thanks to your post.  It was the same problem with the "uniqueID" file being truncated after resetting my MQTT access user/password.  On doing that, the file went from having entries for MQTT, alexa, google, and telegram plugins, to having only the new MQTT entry.  The alexa module reverted to asking for a resync, and the Google module somehow fixed itself. But Telegram was silently failing into the log.  No indicator on the service that every poll request failed and no outbound bot messages were making it out.

There should be some consideration that if the polling fails more than a few times in a row to set an indicator to show the service is having issues.

After restoring the uniqueID file from backup, everything returned to normal without further resets.

andies

Well, since you cited me: The main reason for the problem you mentioned was a mistake I made in programming FHEM. Instead of crashing the Programm filled the file with more and more uniqueID and filled went north. It took me some time and also some help from the king himself to solve the issue.
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

claudio

Zitat von: claudio am 20 August 2023, 02:35:12@viegener

Hi, I use telegrambot for quiet some time now, mostly to receive alerts on my phone, this worked perfectly fine for months and now I don't receive messages anymore. Sometimes, there is one or two messages that reach me, but in general, I receive nothing at all. At contrario, if I send a message from by bot (on the phone), I receive the message each time without issues. I didn't change my fhem's telegrambot config, just done regulars fhem updates

I don't know if it help but
sentMsgResult (Internals) is showing : WAITING

Any clues of what could be wrong ?


I respond to myself to keep track of the issue, but this message is meant for Viegener

After multiple try, I've discovered a possibly strange behavior : when pollingTimeout is set to 0, messages sending from fhem TelegramBot to a peer works unreliably. I could send a few messages with success and after a certain period of time, sending doesn't work anymore, sentMsgResult value is stuck on WAITING instead of SUCCESS, each new messages is queued but nether reach the peer. if I set "reset", messages are send again for a random period of time until it's stuck back to WAITING

Now, with pollingTimeout activated (value 20), I've received messages the whole day, without issues. My understanding was that pollingTimeout is for receiving messages (from peer client back to fhem) not the other way ? is this a bug or a requirement of the module ? (in which case it should be mentionned in the doc that pollingTimeout SHOULD NOT be 0, else nothing works, you can't receive messages and you can't send reliably either)

viegener

Zitat von: claudio am 25 August 2023, 23:54:00
Zitat von: claudio am 20 August 2023, 02:35:12@viegener

Hi, I use telegrambot for quiet some time now, mostly to receive alerts on my phone, this worked perfectly fine for months and now I don't receive messages anymore. Sometimes, there is one or two messages that reach me, but in general, I receive nothing at all. At contrario, if I send a message from by bot (on the phone), I receive the message each time without issues. I didn't change my fhem's telegrambot config, just done regulars fhem updates

I don't know if it help but
sentMsgResult (Internals) is showing : WAITING

Any clues of what could be wrong ?


I respond to myself to keep track of the issue, but this message is meant for Viegener

After multiple try, I've discovered a possibly strange behavior : when pollingTimeout is set to 0, messages sending from fhem TelegramBot to a peer works unreliably. I could send a few messages with success and after a certain period of time, sending doesn't work anymore, sentMsgResult value is stuck on WAITING instead of SUCCESS, each new messages is queued but nether reach the peer. if I set "reset", messages are send again for a random period of time until it's stuck back to WAITING

Now, with pollingTimeout activated (value 20), I've received messages the whole day, without issues. My understanding was that pollingTimeout is for receiving messages (from peer client back to fhem) not the other way ? is this a bug or a requirement of the module ? (in which case it should be mentionned in the doc that pollingTimeout SHOULD NOT be 0, else nothing works, you can't receive messages and you can't send reliably either)

It seems that this behavior is probably since the bot api will not work endlessly if you do not receive also messages from the server.

As an explanation - pollingtimeout 0 was never considered for NOT retrieving messages, but for the case where you manually invoke "get update" on the device to retrieve messages. I can make this clearer in the documentation, since I never considered the case where the bot is used only in one direction with sending messages, while never retrieving the messages send to the bot.

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

SmartJunkie

#2757
Hallo FHEM-Gemeinde,

ich habe meinen FHEM Server von einem Pi2 mit OS jessie auf einen Pi3 mit OS bookworm umgezogen. Das hat mich etwas Schweiß gekostet, aber alles läuft wieder prima, bis auf den TelegramBot. Den bekomme ich nicht wieder zum laufen. Fummle da seit mehreren Tagen rum und versuche in diversen Foren den Brotkrumen durch den Hasenbau zu folgen habe aber kein tieferes Hintergrundwissen.

Der TelegramBot bekommt die Verbindung nicht aufgebaut. Die ID vom Bot habe ich beim Bot-Father auch noch einmal kontrolliert, ist in Ordnung.
fhem-log:
2023.10.19 06:27:58 3: TelegramBot_Define teleBot: called 
2023.10.19 06:27:58 2: TelegramBot_DoUrlCommand teleBot: FAILED http access returned error :https://api.telegram.org/xxxxxx/getMe: Can't connect(1) to https://api.telegram.org:443: IO::Socket::INET: connect: Network is unreachable:

2023.10.19 06:28:00 3: TelegramBot_SendIt teleBot: Failed with :FAILED peer not found :#FHEM_Messages::
2023.10.19 06:28:00 3: TelegramBot_Callback teleBot: resulted in NonBlockingGet: returned FAILED peer not found :#FHEM_Messages: from SendIt
2023.10.19 06:28:00 3: FHEMStart return value: FAILED peer not found :#FHEM_Messages:

Wenn ich auf dem RPi einen "ping api.telegram.org" ausführe kommt der Ping durch.

Habe versucht sämtliche Perl Bibliotheken die in Forenbeiträgen benannt waren nach zu installieren bzw. zu updaten, bisher waren aber alle bereits installiert und aktuell.

Im FHEMWiki https://wiki.fhem.de/wiki/TelegramBot bin ich dann auf eine Fehlermeldungen bei veralteter SSL-Version gestoßen. Dort sollte man im cpan ein upgrade net::SSLeay ausführen. Die Rückmeldung ist

cpan[1]> upgrade net::SSLeay

Reading '/root/.cpan/Metadata'

  Database was generated on Wed, 18 Oct 2023 12:17:01 GMT

No modules found for net::SSLeay

Eine Installation in cpan mit "install net::SSLeay" sowie "upgrade" dauern grauenhaft lange, auch mit gestopptem FHEM. Beide Versuchen enden in cpan mit der Zeile "getötet". Ich vermute das ist ein Abbruch der Aktion.

Ist das mein Problem, weiß jemand Rat?

Ergänzung-----------------------------------------------------------------------------------------------------------------------------

Habe gerade erst auf das Release von bookworm geschaut. Das was gerade erst vor 9 Tagen (10.10.2023). Hat hier schon jemand das Modul TelegramBot am laufen?

Weitere Ergänzung--------------------------------------------------------------------------------------------------------------------

Habe als sudo im cpan den Befehl  upgrade net::SSLeay statt Net::SSLeay verwendet. Mache ich es richtig erhalte die Information, in aktueller Version vorhanden.
cpan[1]> install Net::SSLeay
Reading '/root/.cpan/Metadata'
  Database was generated on Sat, 21 Oct 2023 02:17:02 GMT
Net::SSLeay is up to date (1.92).

cpan[2]>

Wenn ich jedoch im cpan "r" ausführe taucht Nert:SSLeay dort nicht auf...
cpan[1]> r
Reading '/root/.cpan/Metadata'
  Database was generated on Sat, 21 Oct 2023 02:17:02 GMT

Package namespace         installed    latest  in CPAN file
Archive::Tar                   2.36      3.02  BINGOS/Archive-Tar-3.02.tar.gz
Authen::SASL                   2.16    2.1700  EHUELS/Authen-SASL-2.1700.tar.gz
CGI                            4.51      4.59  LEEJO/CGI-4.59.tar.gz
CGI::Fast                      2.15      2.16  LEEJO/CGI-Fast-2.16.tar.gz
CPAN                           2.27      2.36  ANDK/CPAN-2.36.tar.gz
CPAN::Meta::Requirements      2.140     2.143  RJBS/CPAN-Meta-Requirements-2.143.tar.gz
Clone                          0.45      0.46  GARU/Clone-0.46.tar.gz
Compress::Raw::Bzip2          2.093     2.206  PMQS/Compress-Raw-Bzip2-2.206.tar.gz
Compress::Raw::Zlib           2.093     2.206  PMQS/Compress-Raw-Zlib-2.206.tar.gz
Config::Perl::V                0.32      0.36  HMBRAND/Config-Perl-V-0.36.tgz
Crypt::CBC                     2.33      3.04  LDS/Crypt-CBC-3.04.tar.gz
Crypt::Rijndael                1.15      1.16  LEONT/Crypt-Rijndael-1.16.tar.gz
CryptX                        0.069     0.080  MIK/CryptX-0.080.tar.gz
DBD::SQLite                    1.66      1.74  ISHIGAKI/DBD-SQLite-1.74.tar.gz
DB_File                       1.853     1.859  PMQS/DB_File-1.859.tar.gz
Data::Dump                     1.23      1.25  GARU/Data-Dump-1.25.tar.gz
Data::Dumper               2.174_01     2.183  NWCLARK/Data-Dumper-2.183.tar.gz
Data::UUID                   1.0602     1.226  RJBS/Data-UUID-1.226.tar.gz
Devel::PPPort                  3.57      3.68  ATOOMIC/Devel-PPPort-3.68.tar.gz
Digest                      1.17_01      1.20  TODDR/Digest-1.20.tar.gz
Digest::MD5                 2.55_01      2.58  TODDR/Digest-MD5-2.58.tar.gz
Digest::SHA                    6.02      6.04  MSHELOR/Digest-SHA-6.04.tar.gz
Encode                         3.06      3.19  DANKOGAI/Encode-3.19.tar.gz
Exporter                       5.74      5.77  TODDR/Exporter-5.77.tar.gz
ExtUtils::CBuilder         0.280234  0.280236  AMBS/ExtUtils-CBuilder-0.280236.tar.gz
ExtUtils::Install              2.14      2.22  BINGOS/ExtUtils-Install-2.22.tar.gz
ExtUtils::MakeMaker            7.44      7.70  BINGOS/ExtUtils-MakeMaker-7.70.tar.gz
ExtUtils::Manifest             1.72      1.75  ETHER/ExtUtils-Manifest-1.75.tar.gz
ExtUtils::ParseXS              3.40      3.51  LEONT/ExtUtils-ParseXS-3.51.tar.gz
FCGI                           0.79      0.82  ETHER/FCGI-0.82.tar.gz
File::Fetch                    0.56      1.04  BINGOS/File-Fetch-1.04.tar.gz
File::Listing                  6.14      6.16  PLICEASE/File-Listing-6.16.tar.gz
File::Path                     2.16      2.18  JKEENAN/File-Path-2.18.tar.gz
File::Temp                   0.2309    0.2311  ETHER/File-Temp-0.2311.tar.gz
FindBin                        1.51      1.53  TODDR/FindBin-1.53.tar.gz
Getopt::Long                   2.51      2.54  JV/Getopt-Long-2.54.tar.gz
Git                            0.01      0.42  MSOUTH/Git-0.42.tar.gz
HTML::Form                     6.07      6.11  SIMBABQUE/HTML-Form-6.11.tar.gz
HTML::Formatter                2.12      2.16  NIGELM/HTML-Formatter-2.16.tar.gz
HTML::Parser                   3.75      3.81  OALDERS/HTML-Parser-3.81.tar.gz
HTTP::Daemon                   6.12      6.16  OALDERS/HTTP-Daemon-6.16.tar.gz
HTTP::Date                     6.05      6.06  OALDERS/HTTP-Date-6.06.tar.gz
HTTP::Message                  6.28      6.45  OALDERS/HTTP-Message-6.45.tar.gz
HTTP::Tiny                    0.076     0.088  DAGOLDEN/HTTP-Tiny-0.088.tar.gz
IO                             1.43      1.51  TODDR/IO-1.51.tar.gz
IO::Socket::IP                 0.39      0.42  PEVANS/IO-Socket-IP-0.42.tar.gz
IO::Socket::SSL               2.069     2.083  SULLR/IO-Socket-SSL-2.083.tar.gz
IO::Stringy                   2.111     2.113  CAPOEIRAB/IO-Stringy-2.113.tar.gz
IO::Zlib                       1.10      1.14  TOMHUGHES/IO-Zlib-1.14.tar.gz
IPC::SysV                      2.07      2.09  MHX/IPC-SysV-2.09.tar.gz
JSON                           4.03      4.10  ISHIGAKI/JSON-4.10.tar.gz
JSON::PP                       4.04      4.16  ISHIGAKI/JSON-PP-4.16.tar.gz
LWP::Protocol::https           6.10      6.11  OALDERS/LWP-Protocol-https-6.11.tar.gz
Locale::Maketext               1.29      1.32  TODDR/Locale-Maketext-1.32.tar.gz
MIME::Base64                   3.15      3.16  CAPOEIRAB/MIME-Base64-3.16.tar.gz
Math::BigInt               1.999818  1.999842  PJACKLAM/Math-BigInt-1.999842.tar.gz
Math::BigInt::FastCalc       0.5009    0.5015  PJACKLAM/Math-BigInt-FastCalc-0.5015.tar.gz
Math::BigRat                 0.2614    0.2624  PJACKLAM/Math-BigRat-0.2624.tar.gz
Memoize                     1.03_01      1.16  ARISTOTLE/Memoize-1.16.tar.gz
Module::CoreList          5.20210123 5.20230920  BINGOS/Module-CoreList-5.20230920.tar.gz
Module::Load                   0.34      0.36  BINGOS/Module-Load-0.36.tar.gz
Module::Load::Conditional      0.70      0.74  BINGOS/Module-Load-Conditional-0.74.tar.gz
Module::Metadata           1.000037  1.000038  ETHER/Module-Metadata-1.000038.tar.gz
NEXT                        0.67_01      0.69  NEILB/NEXT-0.69.tar.gz
Net::HTTP                      6.20      6.23  OALDERS/Net-HTTP-6.23.tar.gz
Net::Ping                      2.72      2.75  RURBAN/Net-Ping-2.75.tar.gz
PerlIO::via::QuotedPrint       0.08      0.10  SHAY/PerlIO-via-QuotedPrint-0.10.tar.gz
Pod::Checker                   1.73      1.75  MAREKR/Pod-Checker-1.75.tar.gz
Pod::Simple                    3.40      3.45  KHW/Pod-Simple-3.45.tar.gz
Pod::Usage                     1.69      2.03  MAREKR/Pod-Usage-2.03.tar.gz
Socket                        2.029     2.037  PEVANS/Socket-2.037.tar.gz
Storable                       3.21      3.25  NWCLARK/Storable-3.25.tar.gz
Term::Cap                      1.17      1.18  JSTOWE/Term-Cap-1.18.tar.gz
Test::Harness                  3.42      3.48  LEONT/Test-Harness-3.48.tar.gz
Test::Simple               1.302175  1.302195  EXODIST/Test-Simple-1.302195.tar.gz
Text::Balanced                 2.03      2.06  SHAY/Text-Balanced-2.06.tar.gz
Text::ParseWords               3.30      3.31  NEILB/Text-ParseWords-3.31.tar.gz
Tie::File                      1.06      1.07  TODDR/Tie-File-1.07.tar.gz
Tie::RefHash                   1.39      1.40  ETHER/Tie-RefHash-1.40.tar.gz
Time::Local                    1.28      1.35  DROLSKY/Time-Local-1.35.tar.gz
Try::Tiny                      0.30      0.31  ETHER/Try-Tiny-0.31.tar.gz
URI                            5.08      5.21  OALDERS/URI-5.21.tar.gz
Unicode::Collate               1.27      1.31  SADAHIRO/Unicode-Collate-1.31.tar.gz
XML::LibXML                  2.0134    2.0209  SHLOMIF/XML-LibXML-2.0209.tar.gz
autodie                        2.32      2.36  TODDR/autodie-2.36.tar.gz
bignum                         0.51      0.66  PJACKLAM/bignum-0.66.tar.gz
experimental                  0.020     0.031  LEONT/experimental-0.031.tar.gz
parent                        0.238     0.241  CORION/parent-0.241.tar.gz
perlfaq                   5.20200523 5.20230812  ETHER/perlfaq-5.20230812.tar.gz
version                      0.9924    0.9930  LEONT/version-0.9930.tar.gz
Apache::XMLRPC::Lite          0.717      1.01  PHRED/SOAP-Lite-1.01.tar.gz
B                              1.80      1.88  RJBS/perl-5.38.0.tar.gz
Compress::Zlib                2.093     2.206  PMQS/IO-Compress-2.206.tar.gz
Dpkg::Build::Info              1.01      1.02  GUILLEM/Dpkg-1.22.0.tar.gz
Filter::Util::Call             1.59      1.64  RURBAN/Filter-1.64.tar.gz
LWP                            6.52      6.72  OALDERS/libwww-perl-6.72.tar.gz
List::Util                     1.55      1.63  PEVANS/Scalar-List-Utils-1.63.tar.gz
MIME::Body                    5.509     5.510  DSKOLL/MIME-tools-5.510.tar.gz
Net::Cmd                       3.11      3.15  SHAY/libnet-3.15.tar.gz
Pod::Man                       4.14      5.01  RRA/podlators-5.01.tar.gz
Text::Tabs                2013.0523 2023.0511  ARISTOTLE/Text-Tabs+Wrap-2023.0511.tar.gz
Types::Serialiser::Error      undef      1.01  MLEHMANN/Types-Serialiser-1.01.tar.gz
59 installed modules have no parsable version number
(use 'o conf show_unparsable_versions 1' to show them)

viegener

@SmartJunkie: Ich vermute das Telegram-Modul deckt hier nur ein Problem auf, dass möglicherweise tiefer liegt. Ich vermute jetzt auch nicht ein Problem hinter der Neuheit des Systems liegt.

Ein paar Fragen:
- Hast Du andere Module, die von FHEM ins Internet gehen?
- Ist der Ping mit demselben Benutzer gemacht unter dem auch FHEM läuft?
- Ist in FHEM ein globaler DNS-Server gesetzt?
- Wenn nicht - kannst Du den temporär deaktivieren? / Wenn ja - dann kannst Du mal einen setzen?
- Benutzt Du ein gemischtes IPV6/V4 Netz in dem der PI3 steht?

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

SmartJunkie

#2759
Hallo Viegener,
danke für die Hinweise, ich geh mal die Spiegelstriche durch.

- Ich habe andere Module die auf das Internet und https zugreifen. Zum Beispiel das Modul calender als Abfallkalender und den HTTPMOD auf Clever Tanken, außerdem Rasen- und Saugroboter sowie Wetterdaten von Proplanta.

- Den Ping habe ich auf dem Pi tatsächlich nicht mit dem User FHEM ausgeführt, habe aber im Forum diese Zeile gefunden 
{ my $p = `ping -c 3 api.telegram.org`;; return $p }
die in FHEM den Ping ausführt und liefert drei saubere Antworten.

- In meiner fhem.cfg ist kein attr global dnsServer eingetragen. Soweit ich erstmal in Erfahrung bringen konnte bedeutet das, dass Betriebssystem nutzt eigene blockier Routinen (inet_aton bzw gethostbyname). Da muss ich mich morgen mal schlau lesen.

- Der Pi3 hatte beim Abruf Eintragungen für IP v4 und v6. Habe diese abgeschaltet indem in der /etc/sysctl.conf folgende Zeile eingefügt wurde:
net.ipv6.conf.all.disable_ipv6 = 1
und aktiviert mit
sudo sysctl -p
Danach war nur noch die IP v4 Adresse eingetragen. 
Habe fhem neu gestartet. Hat leider das Problem nicht gelöst.

Ergänzung ------------------------------------------------------------------------------

Habe gestern Abend versucht dem DNS Thema auf den Grund zu gehen. Dummerweise vorher kein Image gemacht, das übt...
Dabei meine ich bewusst nur über die fhem Console und Config Änderungen vorgenommen zu haben aber danach ging weder ein Ping aus der Console noch vom Pi aus ins Internet. Damit habe ich gefummelt:
attr global dnsServer 8.8.8.8
attr global dnsServer 8.8.4.4
deleteattr global dnsServer
{ HttpUtils_gethostbyname({timeout=>4}, "api.telegram.org", 1,sub(){my($h,$e,$a)=@_;; Log 1, $e ? "ERR:$e": ("IP:".ip2str($a)) }) }
{ my $p = `ping -c 3 api.telegram.org`;; return $p }

Weil ich keine Lust hatte das irgendwie entstandene Problem zu suchen habe ich das Image eingespielt und meine letzten paar Änderungen auf dem Pi nachvollzogen. Den Telegramm Bot definiert. Und plötzlich funktionierte er?!? Ich weiß aber nicht woran das lag. ¯\_ (ツ)_/¯

Danke für den Lösungsansatz, hat irgendwie geholfen   ;D