Hallo,
wenn folgender Teil meines DOIF ausgeführt wird, blockiert FHEM.
signal_command {
if ( [?signal:msgText] =~ /^rss$/) {
qx"wget --quiet --no-check-certificate https://fhem.intranet:8083/fhem/rss/rssFeed.png -O /opt/fhem/fhem_png_plots/rss.png";
qx"wget --quiet --no-check-certificate https://fhem.intranet:8083/fhem/rss/rssFeedS10.png -O /opt/fhem/fhem_png_plots/rssS10.png";
set_Exec("send_rss_info",5,'fhem_set("signal send &/opt/fhem/fhem_png_plots/rss.png &/opt/fhem/fhem_png_plots/rssS10.png")');
}
}
Rufe ich die URL zu dem PNG direkt auf, wird mir das Bild korrekt angezeigt.
Direkt auf der Shell wird das Bild mit dem folgenden Kommando korrekt gespeichert.
sudo -u fhem wget --quiet --no-check-certificate https://fhem.intranet:8083/fhem/rss/rssFeed.png -O /opt/fhem/fhem_png_plots/rss.png
Starte ich das Kommando über die Weboberfläche von FHEM, blockiert das Kommando FHEM.
{qx"wget --quiet --no-check-certificate https://fhem.intranet:8083/fhem/rss/rssFeed.png -O /opt/fhem/fhem_png_plots/rss.png"}
Die Datei wird zwar auf dem Filesystem erzeugt, ist aber 0 Byte groß.
Im Log bekomme ich bei Ausführung innerhalb von FHEM (DOIF oder WebGui) bis zur Blockierung folgendes angezeigt.
--2022-05-05 16:00:11-- https://fhem.intranet:8083/fhem/rss/rssFeed.png
Auflösen des Hostnamens fhem.intranet (fhem.intranet)… 192.168.1.159
Verbindungsaufbau zu fhem.intranet (fhem.intranet)|192.168.1.159|:8083 … verbunden.
Es ist dann ein Prozess sichtbar, den ich erst beenden muss, bevor FHEM wieder reagiert.
fhem 25235 19586 0 16:39 ? 00:00:00 wget --quiet --no-check-certificate https://fhem.intranet:8083/fhem/rss/rssFeed.png -O /opt/fhem/fhem_png_plots/rss.png
Führe ich das Kommando direkt auf der Shell aus, bekomme ich diesen Output und alles arbeitet wie gewünscht.
pi@fhem:/opt/fhem/fhem_png_plots $ sudo -u fhem wget --no-check-certificate https://fhem.intranet:8083/fhem/rss/rssFeed.png -O /opt/fhem/fhem_png_plots/rss.png
--2022-05-05 15:51:10-- https://fhem.intranet:8083/fhem/rss/rssFeed.png
Auflösen des Hostnamens fhem.intranet (fhem.intranet)… 192.168.1.159
Verbindungsaufbau zu fhem.intranet (fhem.intranet)|192.168.1.159|:8083 … verbunden.
WARNUNG: Dem Zertifikat von »fhem.intranet« wird nicht vertraut.
WARNUNG: Das Zertifikat von »»fhem.intranet«« hat keinen bekannten Austeller.
Der Zertifikat-Eigentümer passt nicht zum Hostname »fhem.intranet«.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 101632 (99K) [image/png]
Wird in »/opt/fhem/fhem_png_plots/rss.png« gespeichert.
/opt/fhem/fhem_png_plots/rss.png 100%[======================================================================================================================>] 99,25K 599KB/s in 0,2s
2022-05-05 15:51:13 (599 KB/s) - »/opt/fhem/fhem_png_plots/rss.png« gespeichert [101632/101632]
Zu diesem Problem kommt es, nachdem ich mein DOIF auf Perl umgestellt habe. Als ich noch im "DOIF-Modus" unterwegs war, funktionierte alles mit der folgenden Zeile.
DOELSEIF ( [signal:msgText] =~ /^rss$/)
("wget --quiet --no-check-certificate https://fhem.intranet:8083/fhem/rss/rssFeed.png -O /opt/fhem/fhem_png_plots/rss.png")
Die Owner der Files für /opt/fhem stehen alle korrekt auf fhem:dialout. Hoffentlich konnte ich alle Infos sinnvoll liefern, um von euch ein paar Hinweise zur Lösung des Problems in meinem DOIF zu erhalten. ;-) Vielen Dank!