NEWS
hilfe bei request durch httpget ersetzen
-
Hallo #zsmmn,
ich brauche Hilfe da ich in js nicht so fit bin
Bei folgendem script müsste request durch httpget ersetzt werden:createState('javascript.0.Visu.Bild_des_Tages', ""); createState('javascript.0.Visu.Bild_des_Tages_Titel', ""); BilddesTages(); function BilddesTages(){ var url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE'; request(url, function (err, state, body){ if (body) { body = JSON.parse(body); var bild = "https://bing.com/" + body.images[0].url; var title = body.images[0].title; setState("javascript.0.Visu.Bild_des_Tages", bild); setState("javascript.0.Visu.Bild_des_Tages_Titel", title); } else { } }); } schedule("5 0 * * *" , function(){ BilddesTages(); });
Kann mir jemand helfen?
-
@quinti sagte in hilfe bei request durch httpget ersetzen:
createState('javascript.0.Visu.Bild_des_Tages', "");
createState('javascript.0.Visu.Bild_des_Tages', ""); createState('javascript.0.Visu.Bild_des_Tages_Titel', ""); BilddesTages(); function BilddesTages() { var url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE'; // Verwenden von http.get, um die HTTP-Anfrage zu machen httpget(url, function (err, body) { if (body) { try { body = JSON.parse(body); var bild = "https://bing.com/" + body.images[0].url; var title = body.images[0].title; setState("javascript.0.Visu.Bild_des_Tages", bild); setState("javascript.0.Visu.Bild_des_Tages_Titel", title); } catch (e) { console.error('Fehler beim Verarbeiten der Antwort:', e); } } else { console.error('Fehler: Keine Antwort erhalten.'); } }); } schedule("5 0 * * *", function () { BilddesTages(); });
-
@haselchen
wirft leider error und states werden nicht gesetzthost.iobroker 2025-04-04 16:46:01.573 error cannot call visUtils: Cannot read properties of undefined (reading 'trim') host.iobroker 2025-04-04 16:45:54.460 error cannot call visUtils: Cannot read properties of undefined (reading 'trim') javascript.0 2025-04-04 16:45:33.320 error script.js.Skripte.Visu.Bild_des_Tages: Fehler beim Verarbeiten der Antwort:
-
@quinti sagte in hilfe bei request durch httpget ersetzen:
error cannot call visUtils: Cannot read properties of undefined (reading 'trim')
createState('javascript.0.Visu.Bild_des_Tages', ""); createState('javascript.0.Visu.Bild_des_Tages_Titel', ""); BilddesTages(); function BilddesTages() { var url = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE'; // HTTP-Anfrage ausführen httpget(url, function (err, body) { // Fehlerbehandlung, wenn der body undefined oder leer ist if (err) { console.error('Fehler bei der Anfrage:', err); return; } // Sicherstellen, dass der Body nicht undefined oder leer ist if (!body || body.trim() === "") { console.error('Die Antwort ist leer oder ungültig.'); return; } try { // Die Antwort in JSON umwandeln body = JSON.parse(body); // Überprüfen, ob die benötigten Felder im Body vorhanden sind if (body.images && body.images[0] && body.images[0].url) { var bild = "https://bing.com/" + body.images[0].url; var title = body.images[0].title; setState("javascript.0.Visu.Bild_des_Tages", bild); setState("javascript.0.Visu.Bild_des_Tages_Titel", title); } else { console.error('Fehlende Bilddaten in der Antwort.'); } } catch (e) { console.error('Fehler beim Verarbeiten der Antwort:', e); } }); } schedule("5 0 * * *", function () { BilddesTages(); });
-
@quinti sagte: Kann mir jemand helfen?
-
leider nun folgender Fehler bei der zeile 19 "console.error('Die Antwort ist leer oder ungültig.');"
javascript.0 17:19:25.876 error at Object.<anonymous> (script.js.Skripte.Visu.Bild_des_Tages:19:27)
-
function BilddesTages(){ httpGet('https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE', { timeout: 6000 }, (error, response) => { if (!error && response.statusCode == 200) { var body = JSON.parse(response.data); var bild = "https://bing.com/" + body.images[0].url; var title = body.images[0].title; setState("javascript.0.Visu.Bild_des_Tages", bild); setState("javascript.0.Visu.Bild_des_Tages_Titel", title); } body = ''; }); }
Versuche es mal so.
Ro75
-
@ro75
DANKE!!!