Guten Morgen,
ich habe vor kurzem meine FHEM-Umgebung um eine CCU3 erweitert.
Die Hinrichtung zur CCU3 funktioniert, leider bekomme ich keine aktuellen Daten zurück.
Ein Netzwerkmitschnitt zeigte, dass die CCU3 durchaus versucht, sich mir dem RPC-Server auf dem korrekten Port zu verbinden.
Diese Versuche werden jedoch vom Netzwerkstack sofort zurückgewiesen.
Der Grund scheint zu sein, dass der RPC-Server nur auf einem tcp6 socket horcht.
Pid 9760 ist der RPC-Server.
$ uname -a
FreeBSD **** 13.1-RELEASE-p3 FreeBSD 13.1-RELEASE-p3 GENERIC amd64
$ sockstat -4 -6 -l | grep fhem
fhem perl 9760 6 tcp6 *:7420 *:*
fhem perl 1204 6 tcp4 *:8083 *:*
fhem perl 1204 7 tcp4 *:8084 *:*
fhem perl 1204 8 tcp4 *:8085 *:*
fhem perl 1204 10 tcp4 *:7072 *:*
Weiß einer der perl GURUs möglicherweise Rat?
Tritt das vielleicht nur unter BSD-Unix auf?
Danke
Michael
Wie ist den HMCCU konfiguriert?
Was steht von HMCCU im Log?
Ist die Firewall der CCU in der WebUI angepasst/geöffnet?
Guten Morgen,
um meinen Verdacht zu erhärten, hatte ich testweise in der perl Klasse RPC::XML::Server IPv4 erzwungen:
http = HTTP::Daemon->new(
+ Family => 2,
ReuseAddr => 1,
($host ? (LocalHost => $host) : ()),[font=courier][/font]
($port ? (LocalPort => $port) : ()),
($queue ? (Listen => $queue) : ())
);
Die 2 bedeutet AF_INET, mir fehlte das perl Wissen, wie man die Konstante AF_INET nutzt, ohne einen Compiler-Fehler zu bekommen.
Damit funktionierten die RPC-Server sofort.
Als neues Problem ergab sich dann "Connection lost, trying a reconnect...".
Das Problem scheint ein Klassiker im Forum zu sein.
Im Forum findet man dann, dass man im WEB Device am longpoll Attribute drehen soll.
Tatsächlich verschwand der Fehler nach Umstellung von websocket auf 1.
Wäre schön zu wissen, warum...
Egal, damit bin ich erst einmal grün.
Falls es eine Möglichkeit gibt, über ein HMCCU Attribut, IPv4 zu erzwingen, wäre ich für eine Info dankbar.
Dann bräuchte ich die offizielle RPC::XML:Server Klasse nicht zu verpatchen.
Gruß
Michael
Native Installation oder Docker?
Kannst Du uns mehr über Dein System sagen?
Sei Vorsichtig mit der Aussage, "nur über v6". Es gibt socket, die werden nur bei v6 angezeigt, hören aber auf beides.
Hallo,
es handelt sich das aktuelle FreeBSD Release. Weder Docker noch jails sind im Spiel.
` `.....---.......--.``` -/ --------------
+o .--` /y:` +. OS: FreeBSD 13.1-RELEASE-p5 amd64
yo`:. :o `+- Uptime: 4 days, 18 hours
y/ -/` -o/ Packages: 693 (pkg)
.- ::/sy+:. Shell: sh
/ `-- / WM: Openbox
`: :` Theme: Adwaita [GTK3]
`: :` Icons: Adwaita [GTK3]
/ / Terminal: /dev/pts/0
.- -. CPU: AMD Ryzen 3 3200G (4) @ 3.600GHz
-- -. GPU: Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series]
`:` `:` Memory: 1523MiB / 14251MiB
Folgende perl Module wurden per pkg installiert:
perl5-5.32.1_3 Practical Extraction and Report Language
p5-Authen-NTLM-1.09_1 Perl5 NTLM authentication module
p5-Authen-SASL-2.16_1 Perl5 module for SASL authentication
p5-CGI-4.54 Handle Common Gateway Interface requests and responses
p5-Clone-0.45 Recursively copy Perl datatypes
p5-Device-SerialPort-1.040000_2 Perl5 module for simple serial port control
p5-Digest-HMAC-1.04 Perl5 interface to HMAC Message-Digest Algorithms
p5-Encode-Locale-1.05 Determine the locale encoding
p5-Error-0.17029 Error/exception handling in object-oriented programming style
p5-File-Listing-6.15 Parse directory listings
p5-GSSAPI-0.28_2 Perl extension providing access to the GSSAPIv2 library
p5-HTML-Parser-3.78 Perl5 module for parsing HTML documents
p5-HTML-Tagset-3.20_1 Some useful data table in parsing HTML
p5-HTTP-Cookies-6.10 HTTP Cookie jars
p5-HTTP-Daemon-6.14 Simple HTTP server class
p5-HTTP-Daemon-SSL-1.04_1 Simple http server class with SSL support
p5-HTTP-Date-6.05 Conversion routines for the HTTP protocol date formats
p5-HTTP-Message-6.37 Representation of HTTP style messages
p5-HTTP-Negotiate-6.01_1 Implementation of the HTTP content negotiation algorithm
p5-IO-HTML-1.004 Open an HTML file with automatic charset detection
p5-IO-Interface-1.09_1 Perl extension for access to network card configuration information
p5-IO-Socket-INET6-2.72_1 Perl module with object interface to AF_INET6 domain sockets
p5-IO-Socket-Multicast-1.12_2 Perl module to send and receive multicast messages
p5-IO-Socket-SSL-2.075 Perl5 interface to SSL sockets
p5-LWP-MediaTypes-6.04 Guess media type for a file or a URL
p5-LWP-Protocol-https-6.10 Provide https support for LWP::UserAgent
p5-Lchown-1.01_2 Perl5 module providing access to lchown(2)
p5-Mozilla-CA-20211001 Perl extension for Mozilla CA cert bundle in PEM format
p5-Net-HTTP-6.22 Low-level HTTP client
p5-Net-HTTPS-Any-0.12 Simple HTTPS class using whichever underlying SSL module is available
p5-Net-SSLeay-1.92 Perl5 interface to SSL
p5-RPC-XML-0.82 XML-RPC client and server library for Perl
p5-Socket6-0.29 IPv6 related part of the C socket.h defines and structure manipulators
p5-Term-ReadKey-2.38_1 Perl5 module for simple terminal control
p5-Tie-IxHash-1.23_1 Perl module implementing ordered in-memory associative arrays
p5-TimeDate-2.33,1 Perl5 module containing a better/faster date parser for absolute dates
p5-Try-Tiny-0.31 Minimal try/catch with proper localization of $@
p5-URI-5.12 Perl5 interface to Uniform Resource Identifier (URI) references
p5-WWW-RobotRules-6.02_1 Database of robots.txt-derived permissions
p5-XML-NamespaceSupport-1.12 Simple generic namespace support class
p5-XML-Parser-2.46 Perl extension interface to James Clark's XML parser, expat
p5-XML-SAX-1.02 Simple API for XML
p5-XML-SAX-Base-1.09 Base class SAX Drivers and Filters
p5-libwww-6.67 Perl5 library for WWW access
p5-subversion-1.14.2 Perl bindings for Version control system
Ohne meinen Patch in RPC::XML::Server sieht man per wireshark, dass der Stack per RST,ACK auf den Verbindungswunsch antwortet.
Gruß
Michael
O.K. FreeBSD <> Linux .. da kann ich nichts weiter dazu sagen...
Da hat also Info gefehlt ...
Setze mal das Attribut rpcserveraddr auf die v4 Adresse
Moin,
das hatte ich bereits versucht. Hatte nichts geändert.
Ich vermute, dass, wenn nicht explicit angegeben, der Linux-Default v4 ist, während die BSD Welt den Default irgendwann auf v6 geändert hat.
Falls jemand mit BSD-Unix und HMCCUPROC unterwegs ist und keine Probleme hat, würde mich die BSD-Version und die sockstat Ausgabe bei laufendem RPC-Server interessieren.
$ uname -a
$ sockstat -4 -6
Gruß
Michael
Du musst nach dem Setzen des Attributs die RPC Server anhalten und neu starten. Hast Du das gemacht?
Ich nehme an, netstat liefert ein ähnliches Bild:
netstat -an | grep LISTEN