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 ?
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];
danke, genau das hab' ich gestern dann auch versucht ;) hat funktioniert !