FTUI Widget Weather: Icon nicht darstellbar bei eigenem Reading

Begonnen von thuranga, 02 Januar 2019, 20:56:49

Vorheriges Thema - Nächstes Thema

thuranga

Hallo zusammen,
wenn ich das Icon über die Original-Zuweisung nutze

<div data-type="weather" data-device="WetterProplanta" data-get="fc0_weather06Icon" data-imageset="kleinklima" class="cell"></div>

dann wird es korrekt dargestellt.

Wenn ich das Reading auslese und unter einem neuen Reading speichere,


Ausschnitt:

$nextIcon1=ReadingsVal("WetterProplanta","fc0_weather06Icon",0);
:
fhem("setreading WetterProplanta nextIcon1 $nextIcon1");;


<div data-type="weather" data-device="WetterProplanta" data-get="nextIcon1" data-imageset="kleinklima" class="cell"></div>

dann kommt ein broken image...


Warum ist das so? Warum setzt FTUI (bzw. das Widget) das Icon korrekt um, wenn es mit "fcXX_" anfängt, aber nicht mit anderem Namen.

Viele Grüße
Brownlow


thuranga

#1
Ich habe mich mal ein wenig durch den JS Code des Widgets gewühlt (widget_weather.js) und es liegt wirklich an dem Syntax


                        if (par.match(/^fc\d+_weather(Day|Evening|Morning|Night|\d\d)(?:Icon)?$/)) {
                            device_type = 'PROPLANTA';
                        } else if (par.match(/^fc\d+_condition$/)) {
                            device_type = 'Weather';
                        } else if (par.match(/^fc\d+_weather\d*$/)) {
                            device_type = 'OPENWEATHER';
                        } else if (par.match(/^fc\d+_weatherCode\d*$/)) {
                            device_type = 'OPENWEATHER';
                        } else {
                            device_type = 'UNKNOWN';
                        }


Da mein Reading nicht dem Syntax ^fc\d+_weather(Day|Evening|Morning|Night|\d\d)(?:Icon)?$ entspricht (für Proplanta), erhält es den Typ "UNKNOWN" und daher kommen die broken images.

Für mich reicht der quick hack

                        } else {
                            device_type = 'PROPLANTA';
                        }


aber dies ist keine Lösung für alle