FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Wettermodule => Thema gestartet von: Torxgewinde am 27 August 2023, 16:40:12

Titel: Proplanta: HTTP / HTTPS Proxy wird nicht beachtet
Beitrag von: Torxgewinde am 27 August 2023, 16:40:12
Hallo,
Proplanta scheint den Proxy (attr global proxy IP:Port) nicht zu beachten. Richtet man ein Proplante-Device ein und startet ein Update der Readings, so wird der Proxy gar nicht erst kontaktiert. Testweise habe ich die Firewall konfiguriert eine IP (hier und heute: 151.106.67.104) zu der Domain www.proplanta.de zuzulassen, dann klappt es mit dieser direkten Verbindung.

Da in den Sourcen scheinbar LWP::UserAgent genutzt wird habe ich auch in die Doku geschaut: https://metacpan.org/pod/LWP::UserAgent#env_proxy (https://metacpan.org/pod/LWP::UserAgent#env_proxy) Allerdings sind diese Umgebungsvariablen "http_proxy=IP:port und https_proxy=IP:port" auch bereits gesetzt.

Wenn ich "von Hand" in 59_PROPLANTA.pm (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/59_PROPLANTA.pm#L582) folgendes einbaue, wird der Proxy genutzt und es klappt:
   ...
   my $agent    = LWP::UserAgent->new( env_proxy => 1, keep_alive => 1, protocols_allowed => ['http', 'https'], timeout => 10
                                       , agent => "Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0;  rv:11.0) like Gecko" );
   $agent->proxy(['http', 'https'], 'http://mein_proxy.box:1234/');
   my $request   = HTTP::Request->new( GET => $URL );
   ...

Wie ist der richtige Weg, oder ist das ein Bug?
Titel: Aw: Proplanta: HTTP / HTTPS Proxy wird nicht beachtet
Beitrag von: Torxgewinde am 27 August 2023, 17:42:33
Es scheint auch zu klappen, wenn man auf der Konsole:

{$ENV{https_proxy} = 'http://mein_proxy:1234'}
{$ENV{http_proxy} = 'http://mein_proxy:1234'}
eingibt.

Prüfen kann man es, wenn man "env" in die Konsole eingibt und dann im Logfile nachschaut ob die Variablen gesetzt sind.

Damit man das automatisiert machen kann, könnte man ein DOIF machen:
defmod di_Startup DOIF (0) ## Startup Befehle\
{Log(0, "🐞 di_Startup startet")}\
{$ENV{https_proxy} = 'http://mein_proxy:1234'}\
{$ENV{http_proxy} = 'http://mein_proxy:1234'}\
{Log(0, "🐞 di_Startup beendet")}
attr di_Startup do always
attr di_Startup room Global
attr di_Startup startup set $SELF cmd_1

Die Frage bleibt: Ist das der "normale" Weg, oder wäre es nicht besser wenn PROPLANTA einfach das global-Attribut für den Proxy beachtet?
Titel: Aw: Proplanta: HTTP / HTTPS Proxy wird nicht beachtet
Beitrag von: Torxgewinde am 14 September 2023, 07:30:47
*bump*