also bei mir gewinnt immer .svg, wenn die .svg-Dateien überhaupt vorhanden sind. Das ist auch kein Wunder:
Das hier wird für alle Dateien aus dem jeweiligen Verzeichnis ausgeführt:
my $tag = $filename; # Add it without extension too
$tag =~ s/\.[^.]*$//;
$FW_icons{$dir}{$tag} = $filename;
Vorher werden die Dateien sortiert. Dadurch kommt cloudy.svg nach cloudy.png und überschreibt den Eintrag für cloudy.
Im Code von 01_FHEMWEB.pm wird ab Zeile 2937 per
sub FW_iconPath($) das erste Icon, dessen Name (ohne Dateierweiterung) trifft, zurückgeliefert. An Zeile 2871 werden in
sub FW_readIconsFrom($$) die Icons geladen und sortiert. Ich war der irrigen Meinung, dass das erste Icon (cloudy.png) gewinnt, aber es ist wie Du es schreibst so, dass das letzte Icon (cloudy.svg) alle anderen gleichen Namens überschreibt.
Aber das gilt natürlich nur, wenn es die .svg-Dateien auch gibt. Ich habe auch zwei Instanzen auf meiner Entwicklungskiste. Eine hat die .svg-Dateien, die andere nicht. Dadurch beobachte ich dasselbe Verhalten wie Du.
Grmpf. Du hast Recht. Auf dem anderen System, das mir wie gewünscht das PNG-Icon liefert, fehlen die SVG-Icons. Ich war der irrigen Meinung, dass alle drei Systeme, die ich warte, auf dem gleichen Stand sind... Aber das für mich funktionierende System ohne SVG-Icons habe ich wohl vor dem 18.02.2019 aufgesetzt, dem Datum an dem Wuppi68 die SVG-Icons hinzugefügt hat.
Was hat das eigentlich mit "Race Condition" zu tun?
... und dass eine Aufrufreihenfolge dafür verantwortlich ist, welche Icons zuerst in die Liste eingetragen werden. Ich habe falsch gedacht.
Muss mehr eigene Analysezeit in diese Themen stecken und weniger vorschnell vermuten (schäm).
Fazit:
- FHEM tut was es soll.
- Bei Icons, die sich nur in der Dateierweiterung unterscheiden, gewinnt das Icon mit dem höchsten Sortierwert.
- Gleichnamige Icons mit unterschiedlicher Dateierweiterung im selben Verzeichnis im Dateisystem ergeben keinen Sinn, es sei denn, ich übersehe eine Einstellmöglichkeit in FHEM, SVG-Icons herunterzuprorisieren.
Sofern es keine andere Einstellmöglichkeit als den iconPath gibt, schlage ich vor, die von Wuppi68 in
fhem/www/images/default/weather hinzugefügten SVG-Icons nach
fhem/www/images/fhemSVG/weather zu verschieben.
Viele Grüße
Boris