FHEM 6.4 verbindet nicht zum broker - freebsd IPv6 Perl Modul Mosquitto MQTT

Begonnen von Hades, 26 Dezember 2025, 03:54:24

Vorheriges Thema - Nächstes Thema

Hades

Moin,
ich habe eine Freebsd Jail mit einem installiertem FHEM 6.4
Die Verbindung zum mosquitto MQTT Server funktioniert über IPv6 nicht.
Die Applikation sendet aus FHEM keine Daten via Perl aus der FHEM Instanz an mosquitto raus.
Der mosquitto Server ist mittels Console und mosquitto_sub erreichbar und funktioniert.

Wo der Fehler aktuell liegt weiss ich nicht


Benötigte Perl Module sind installiert.


Endpoints:
https://fhem2.089.at/fhem (Mit User Zertifikat geschützt)
mqtt://mqttext.089.at:1883 (mit User/Pazzword geschützt)

1) Verbindung OK über IPv6(console): mosquitto_sub -L mqtt://meinsecretuser:mein28StelligesPazzWordistGeheim@mqttext.089.at:1883/#
      Verbindung sichtbar in den Logfiles
2) FHEM selbst ist erreichbar und funktioniert - root@fhem:/opt/fhem # /opt/fhem/fhem.pl -d fhem.cfg
      auch hier viele Log Einträge
3) Fehlerbild im Logfile beim Aufruf des Connects zu MQTT :
     Origin: https://fhem2.089.at
     Sec-WebSocket-Version: 13
     Accept-Encoding: gzip, deflate, br, zstd
     Accept-Language: en-US,en;q=0.9,de-DE;q=0.8,de;q=0.7
     2025.12.26 02:04:28 5: HttpUtils url=http://mqttext.089.at:1883/ NonBlocking via http
     2025.12.26 02:04:28 4: HttpUtils: gethostbyname mqttext.089.at failed


Bereits gesetzt:  attr global useInet6 1
Bereits installiert mittels cpan -i <module>: Die Perl-Pakete IO::Socket::IP oder IO::Socket::INET6 müssen auf deinem Betriebssystem installiert sein

Service / Server natürlich auch neugestartet
Auszug aus FHEM:
     defmod MQTT24_Broker MQTT2_CLIENT mqttext.089.at:1883
     attr MQTT24_Broker clientId fhem2
     attr MQTT24_Broker room Pluffi
     attr MQTT24_Broker username meinsecretuser
     
     setstate MQTT24_Broker disconnected
     setstate MQTT24_Broker 2025-12-26 02:42:06 state disconnected

KI sagt:

Die von dir genutzte Funktion gethostbyname ist veraltet (deprecated). Sie stammt aus einer Zeit, als es nur IPv4 gab.

Der Fehler: gethostbyname kann konstruktionsbedingt nur IPv4-Adressen (A-Records) verarbeiten. Wenn dein Ziel mqttext.089.at jedoch über eine IPv6-Adresse (AAAA-Record) angesprochen werden soll oder dein System IPv6 bevorzugt, gibt die Funktion NULL zurück – die Auflösung schlägt fehl.

Die Ursache: Moderne Netzwerke nutzen getaddrinfo, das sowohl IPv4 als auch IPv6 versteht. Dein Perl-Modul (HttpUtils) nutzt im Hintergrund aber noch die alte Methode.

Neben Der Perl Version v5.42.0 sind weitere Module installiert:
Algorithm::Diff
Archive::Zip
CPAN::Requirements::Dynamic
Capture::Tiny
Compress::Raw::Bzip2
Compress::Raw::Zlib
DBD::MariaDB
DBI
Devel::CheckLib
Devel::Hide
ExtUtils::Config
ExtUtils::HasCompiler
ExtUtils::Helpers
ExtUtils::InstallPaths
ExtUtils::ParseXS
FFI::CheckLib
File::Fetch
File::HomeDir
File::Temp
File::Which
File::chdir
Filter::Util::Call
Git
HTTP::CookieJar
HTTP::Message
IO::Compress
LWP
List::Util
MIME::Charset
Math::BigInt
Mock::Config
Module::CoreList
Path::Tiny
Pod::Simple
Proc::ProcessTable
Socket6
Spiffy
Term::ReadKey
Term::ReadLine
Term::Size::Any
Term::Size::Perl
Term::Table
Test::Base
Test::Deep
Test::FailWarnings
Test::Fatal
Test::Harness
Test::LeakTrace
Test::MockRandom
Test::Needs
Test::Requires
Test::RequiresInternet
Test::Simple
Test::Warnings
Test::YAML
Text::Balanced
Text::Diff
Text::Glob
Time::Piece
URI
Unicode::LineBreak
Unicode::UTF8
YAML
experimental


betateilchen

Hast Du in der commandref schon die Beschreibung zum globalen Attribut "dnsserver" gelesen?
Vielleicht hilft das schon weiter.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Hades

Zitat von: betateilchen am 26 Dezember 2025, 10:09:46Hast Du in der commandref schon die Beschreibung zum globalen Attribut "dnsserver" gelesen?
Vielleicht hilft das schon weiter.

Hilft leider auch nicht