FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: dt2510 am 21 März 2019, 09:54:16

Titel: ich bräuchte etwas Hilfe bei meinem Widget (javascript String Bearbeitung)
Beitrag von: dt2510 am 21 März 2019, 09:54:16
Ich habe bisher die Yahoo Wettercodes genutzt um einen Wetterhintergrund anzuzeigen. Da ja leider das API eingestellt wurde, nutze ich jetzt PROPLANTA.
Dort gibt es allerdings keinen Wettercode, sondern nur den Text oder den Namen des Icons (z.B. https://www.proplanta.de/wetterdaten/images/symbole/t2.gif).

Hier mal der Code zu meinem Widget
var Modul_weatherbackground = function () {

    function init() {

        me.elements = $('div[data-type="' + me.widgetname + '"]', me.area);
        me.elements.each(function (index) {
            var elem = $(this); 
            elem.initData('get', 'STATE');
            me.addReading(elem, 'get');
        });
    }

    function update(device, reading) {     

        me.elements.filterDeviceReading('get', device, reading)
        .each(function (index) {
           var elem = $(this);
           var value = elem.getReading('get').val;
           if (value) {
               document.body.style.backgroundImage = "url(weatherimages/" + value + ".jpg)";
           }
        });
}

    var me = $.extend(new Modul_widget(), {
        widgetname: 'weatherbackground',
        init: init,
        update: update,
    });

    return me;
};


Bisher wurde z.B. "weatherimages/10.jpg" bei Code 10 geladen. Stattdessen würde ich jetzt gerne "weatherimages/t2.jpg" laden.
Wie extrahiere ich aber den Dateinamen ohne .gif aus der URL ?
Titel: Antw:ich bräuchte etwas Hilfe bei meinem Widget (javascript String Bearbeitung)
Beitrag von: amenomade am 21 März 2019, 18:24:12
Warum nutzt Du nicht das weather Widget?

https://forum.fhem.de/index.php?topic=96954.0

EDIT: ah ok... als Backgroundimage... Aber guck mal doch was der Entwickler im Widget macht:
                        var matches = val.match('^https://www\.proplanta\.de/wetterdaten/images/symbole/([tn][0-9]+)\.gif');
                        if (matches) {
                            val = matches[1];
Titel: Antw:ich bräuchte etwas Hilfe bei meinem Widget (javascript String Bearbeitung)
Beitrag von: dt2510 am 22 März 2019, 11:06:27
danke, genau das hab' ich gestern dann auch versucht ;) hat funktioniert !