ich bräuchte etwas Hilfe bei meinem Widget (javascript String Bearbeitung)

Begonnen von dt2510, 21 März 2019, 09:54:16

Vorheriges Thema - Nächstes Thema

dt2510

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 ?

amenomade

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];
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

dt2510

danke, genau das hab' ich gestern dann auch versucht ;) hat funktioniert !