Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 49.1k Beiträge

NEWS

  • ioBroker Prozess- & Gesundheitsmonitor + Grafana Dashboard

    javascript monitoring
    28
    4
    3 Stimmen
    28 Beiträge
    439 Aufrufe
    R
    Hallo, habe erstmal das Infinity Plugin installiert. Was muss ich da alles angeben bei add data source?
  • Skript aufteilen möglich?

    17
    0 Stimmen
    17 Beiträge
    343 Aufrufe
    arteckA
    @BananaJoe nenen da steht damals ging es noch nicht. das rauf bezog sich meine Antwort ausserdem.. wiso ging es nach seiner Aussage nicht ? das will ich wissen wo kein Script da keine ..na du weisst schon
  • [TypeSkript] Wetter.com Forecast/Vorhersage

    62
    4 Stimmen
    62 Beiträge
    2k Aufrufe
    nik82N
    @schimi So sorry, da hät ich natürlich selber drauf kommen können das ich den Datenpunkt auf 0 setze. Jetzt gehts wieder. Danke dir. :-)
  • Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro)

    231
    9 Stimmen
    231 Beiträge
    15k Aufrufe
    maxclaudiM
    @cbrocker sagte in Zendure SmartMode:1 SolarFlow2400 AC SolarFlow800 ( u. Pro): Ich habe mal mit KI ein Script erstellen lassen, das mir den Tagesertrag anhand der laufenden PV-Produktion berechnet, aber der Wert stimmt nicht ganz mit dem in der App überein. Nachtrag: Du kannst davon ausgehen, dass Dein Script genauer ist als die App-Anzeige. Anders macht das Zendure auch nicht. Es gibt mehrere keys: xxx_PowerXCycle mit entsprechenden Werten. u. a. auch für aktuelle PV-Leistung z.B.: solarPower1Cycle mit xW für MPPT1 etc. Der Mittel-Wert solarPower1Cycle dient der Aggregation von Daten für Statistiken und Diagramme Während solarPower1 (ca. Echtzeitwert) für offizielle, lokale Anbindung übertragen wird, wird solarPower1Cycle (Zykluswert/Mittelwert) ca alle 60 sek aktualisiert und nur zur Cloud übertragen. (Solange Wert-Änderungen kommen, habe ich Intervalle von 58~61 sek. geloggt.) solarPower1Cycle ist also der gemittelte oder kumulierte Wert über 60 sek. Die Zendure-Cloud nutzt diese Cycle-Werte, um die Datenbanklast zu reduzieren. Statt tausende Einzelwerte pro Tag zu speichern, werden diese 1-Minuten-Pakete genutzt, um Tages-, Monats- und Jahreserträge zu berechnen und in den App-Diagrammen darzustellen. solarPower1Cycle und andere Cycle-Werte werden (bisher) nicht bei offizieller lokaler Anbindung in properties übertragen. Nur wenn man Cloud-DNS auf lokale IP umprogrammiert oder umleitet.
  • [Vorlage] Denon HEOS Script

    Verschoben javascript template
    359
    1
    1 Stimmen
    359 Beiträge
    87k Aufrufe
    S
    Hi zusammen! Ich nutze einen Denon und mir fehlt der Ordner heos.0.sources.1028... Demnach kann ich die Favoriten auch nicht ansteuern. Mit dem Adapter soll das Skript aus dem ersten Post doch überflüssig sein, oder?
  • E3DC Hauskraftwerk steuern

    4k
    1
    3 Stimmen
    4k Beiträge
    2m Aufrufe
    A
    @azzkikrboy sagte in E3DC Hauskraftwerk steuern: Jetzt stelle ich mir die Frage wie die beiden zusammen Arbeiten, besonders wenn es um die Batterieladung geht. Die beiden arbeiten nicht zusammen. Wenn du schnellladen aktivierst wird das Skript CC deaktiviert um EVCC nicht in die querer zu kommen. Bei allen anderen Ladeeinstellungen hat das Skript CC Vorrang, bedeutet Ladeschwelle hat Prio.
  • [Skript] Absolute Feuchte berechnen

    Verschoben
    741
    1
    2 Stimmen
    741 Beiträge
    241k Aufrufe
    C
    Ich bin grade total begeistert, hab die Version 0.6.8 grade kopiert, meine Werte eingefügt, und es läuft auf Anhieb! Alles was ich brauche :-) Hab in der Mietwohnung unten nach neuen Fenstern an den Kältebrücken leichte Schimmelprobleme, um dem zu begegnen gibt es jetzt a) eine Lüftungsanlage und b) in den Gefährdeten Bereichen eine kleine Heizung im Putz um die Temperatur dort über dem Taupunkt zu halten. Das Script liefert mir nun alle Werte die ich brauche, Mega!! Wem Schuld ich denn nun den Kaffee, ich mein... an dem Script schreiben mehrere?
  • [TypeSkript] Zendure SolarFlow 2400 AC - EVCC Steuerung

    65
    1 Stimmen
    65 Beiträge
    4k Aufrufe
    portyP
    Guten Morgen @schimi wie bereits im EDIT erwähnt funktionierte es ab dem nächsten Morgen doch. HEMS war deaktivert und auch die anderen Settings (SmartMode Off etc ) waren so eingestellt wie du es mal in irgend einem Post mal erwähnt hattest. Device ID etc war natürlich drin, sieht man in meinem Bild schlecht da schwarz auf schwarz ausgeblendet :) wir waren unterwegs an dem Tag und ich hatte es nur in der App gesehen das der Modus auf "Standby" stand obwohl wir zu dem Zeitpunkt einen Verbrauch von ca. 450W hatten. Habe dann in der App auf "Netzausgangsmodus" gestellt. Am nächsten Morgen dann das Script gestoppt, den Modus von Hand über den MQTT-Datenpunkt geändert was auch funktionierte. Was ich nicht drin hatte da es als "optional" eingetragen war, war der Datenpunkt "evccModus: "0_userdata.0.zendure.EVCC_Modus", diesen hatte ich noch hinzugefügt. Danach mal das Script von @maxclaudi gestartet und den Modus darüber ungestellt, auch erfolgreich. Gestern hat es mit deinem Script jedenfalls wunderbar funkioniert, wobei ich auch schon überlegt habe nich auf 0 sondern eher auf Minimalbezug zu stellen. Habe den Aktuellen Stromverbrauch mal auf meine Ulanzi TC001 gelegt und das springt nicht schlecht :) Danke fürs Update von deinem Script, schaue ich mir nachher Zuhause mal an.
  • Json für SourceAnalytics

    83
    1
    4 Stimmen
    83 Beiträge
    10k Aufrufe
    H
    @crunchip Passt, vielen Dank...
  • Skript zur Darstellung Position Sonne / Mond mit Schatten

    3
    0 Stimmen
    3 Beiträge
    100 Aufrufe
    bahnuhrB
    @MarkA sagte in Skript zur Darstellung Position Sonne / Mond mit Schatten: Kann das auch für IOBroker implementiert werden? Mir fehlen da leider die Programmierfähigkeiten... Dann musste mal die Suche benutzen. Scripte diesbezüglich wurden hier schon mehrfach kundgetan. Und in VIS dann z.B. so: [image: 1773248490490-cbdbeb92-2725-4b5a-860f-caf7ac2b2265-image.png]
  • Omlet Hühnerstall webhook API

    34
    0 Stimmen
    34 Beiträge
    286 Aufrufe
    J
    Dank dir. Werde ich in den nächsten Tagen testen.
  • Script für Formel 1 - Kalender, Ergebnisse und Wertungen

    40
    7
    5 Stimmen
    40 Beiträge
    5k Aufrufe
    da_WoodyD
    @stenmic sagte in Script für Formel 1 - Kalender, Ergebnisse und Wertungen: Eigentlich sollte alles fehlerfrei funktionieren aber eventuell muss ich nächste Saison nachbessern falls er zu Fehlermeldungen wegen dem Jahr kommt. Dass kann ich jetzt noch nicht wirklich alles prüfen. tja, neues jahr, neues glück. ;) rennkalender 2026 klappt. rennen 1 sieht etwas dubios aus. fahrer und konstrukteur wertung klapp nicht mehr...
  • ABRP API

    13
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    C
    so läuft bei jetzt auch bei mir wer es als js haben will: /*************************************************************** * VW → ABRP Telemetry Script * für ioBroker Javascript Adapter * * Funktionen: * 1. Sendet Fahrzeugdaten alle 5 Minuten an ABRP * 2. Sendet sofort wenn sich der SOC ändert * * Gesendete Daten: * - SOC (Batteriestand) * - GPS Position * - Odometer * - Batteriekapazität * - Timestamp * * API: * https://api.iternio.com/1/tlm/send ***************************************************************/ const apiKey = "API-KEY-von-iternio.com"; const token = "Token-aus-der-APP"; const vin = "VIN-des-Autos"; /*********************** * Datenpunkte ***********************/ const dp_soc = "vw-connect.0." + vin + ".status.charging.status.battery.stateOfChargeInPercent"; const dp_odometer = "vw-connect.0." + vin + ".mqtt.events.charging-completed.data.odometer"; const dp_lat = "vw-connect.0." + vin + ".status.position.parkingPosition.gpsCoordinates.latitude"; const dp_lon = "vw-connect.0." + vin + ".status.position.parkingPosition.gpsCoordinates.longitude"; /*********************** * Funktion zum Senden ***********************/ function sendToABRP(trigger) { const soc = getState(dp_soc).val; const odometer = getState(dp_odometer).val; const lat = getState(dp_lat).val; const lon = getState(dp_lon).val; // Prüfen ob wichtige Daten vorhanden sind if (soc === null || lat === null || lon === null) { log("ABRP: Daten fehlen → kein Versand", "warn"); return; } const utc = Math.round(Date.now() / 1000); const tlm = { utc: utc, soc: soc, capacity: 85, odometer: odometer, lat: lat, lon: lon }; const url = "https://api.iternio.com/1/tlm/send?api_key=" + apiKey + "&token=" + token + "&tlm=" + encodeURIComponent(JSON.stringify(tlm)); httpGet(url, { timeout: 2000 }, function (err, response) { if (err) { log("ABRP Fehler: " + err, "error"); } else { log("ABRP gesendet (" + trigger + "): " + JSON.stringify(tlm), "info"); } }); } /*********************** * 1️⃣ Alle 5 Minuten senden ***********************/ schedule("*/5 * * * *", function () { sendToABRP("Timer"); }); /*********************** * 2️⃣ Senden wenn SOC sich ändert ***********************/ on({ id: dp_soc, change: "ne" }, function (obj) { log("SOC Änderung erkannt: " + obj.state.val + "%", "info"); sendToABRP("SOC Änderung"); });
  • [Gelöst] setState in "Binding"

    6
    0 Stimmen
    6 Beiträge
    115 Aufrufe
    bahnuhrB
    @Asgothian Für mich ist das nicht logisch. Warum schreibt er nicht gleich den DP rein, wo es hin soll.
  • JS zum senden über "Dockerized Signal Messenger REST API"

    15
    0 Stimmen
    15 Beiträge
    952 Aufrufe
    K
    Hui, da muß ich das Thema nochmal aufwärmen oder eher erweitern. Kann ich denn auch verschwindende Nachrichten generieren ? Ich habe was vom Parameter "expired_time" gehört aber noch kein funktionierendes Script gefunden. Wie geht das? MfG
  • ecoflow-connector-Script zur dynamischen Leistungsanpassung

    Verschoben
    2k
    3
    7 Stimmen
    2k Beiträge
    788k Aufrufe
    G
    @Waly_de da fehlt der Anfang irgendwie ;-) Schaue ich mir wie gesagt man an. Was nutzt Du sonst als "Entwicklungsumgebung"? Testest Du direkt in iobroker mit debug-Ausgaben oder gibt's da noch einen anderen Weg? ("echtes" debugging?)
  • SQL-Abfrage aus Script an MariaDB

    8
    0 Stimmen
    8 Beiträge
    178 Aufrufe
    Norwegen60N
    @fuzzy1955 Ja, das hatte ich auch, aber ich dachte ich müsse hier auch in String wandeln und hatte let strSQL = "SELECT ioBroker.fn_energy('" + Mode + "', " + String(ID) + ", " + String(Offset) + ") AS energy;" // Und ich hatte es mit let sSQL5 = `SELECT ioBroker.fn_energy('${Mode}', ${ID}, ${Offset}) AS energy`; versucht, dort aber die falschen quotes verwendet. mit den nach rechts gekippten hat auch das funktioniert Das hier funktioniert jetzt incl. zurück holen des Wertes in Datapoint let sSQL0 = "SELECT ioBroker.fn_energy('" + Mode + "', " + ID + ", " + Offset + ") AS energy"; sendTo('sql.0', 'query', sSQL0, function (result) { let energy = result.result[0].energy; setState(DataPoint, {val: Number(energy), ack: true}); log('GetEnergy: ' + energy + ' -> ' + DataPoint, 'info'); }); Danke für die Unterstützung
  • Script für open meteo weather

    Verschoben
    6
    1
    3 Stimmen
    6 Beiträge
    228 Aufrufe
    R
    hier noch etwas überarbeitet und ohne Warnungen // version: 0.2.6 ////////////////////////////////////////////////// const locationName = 'wo auch immer'; ////////////////////////////////////////////////// // Schriftgrößen-Konfiguration const fontSizeCurrentLabel = '1.3rem'; const fontSizeTempBig = '3.8rem'; const fontSizeDescription = '1.1rem'; const fontSizeInfoGrid = '0.85rem'; const fontSizeSunMoon = '0.8rem'; const fontSizeHourly = '0.75rem'; const fontSizeHourlyRain = '0.65rem'; const fontSizeForecastDay = '0.75rem'; const fontSizeForecastText = '0.65rem'; const fontSizeForecastTempMax = '1rem'; const fontSizeForecastTempMin = '0.85rem'; const fontSizeForecastDetails = '0.65rem'; const version = '0.2.6'; const dpBase = 'open-meteo-weather.0.' + locationName + '.weather'; const forecast = dpBase + '.forecast'; const targetDP = '0_userdata.0.Wetter_Widget_HTML'; // Sprach-Check let sysLang = 'de'; try { const systemConfig = getObject("system.config"); sysLang = systemConfig.common.language || 'de'; } catch (e) { sysLang = 'de'; } const i18n = { de: { current: "Aktuell" }, en: { current: "Current" } }; const lang = i18n[sysLang] || i18n['en']; // DP anlegen falls nicht vorhanden if (!existsState(targetDP)) { createState(targetDP, '', { name: 'Weather Widget for VIS', type: 'string', role: 'html' }); } // ------------------------------------------------------------ // Hilfsfunktionen // ------------------------------------------------------------ // HEUTE aus JavaScript, kompakt function getToday() { const d = new Date(); const day = String(d.getDate()).padStart(2, "0"); const month = String(d.getMonth() + 1).padStart(2, "0"); const year = d.getFullYear(); return `${day}.${month}.${year}`; } function getVal(id, unit = "") { if (!existsState(id)) return "--" + unit; let state = getState(id); if (!state || state.val === null || state.val === undefined) return "--" + unit; return state.val + unit; } function getImg(id, size = "20px") { if (!existsState(id)) return ""; let state = getState(id); if (!state || !state.val) return ""; return `<img src="${state.val}" style="width:${size}; height:${size}; object-fit:contain;">`; } function getNum(id) { let s = getState(id); return (!s || s.val === null || s.val === undefined) ? null : Number(s.val); } function getSunHours(id) { let sec = getNum(id); if (sec === null) return "--h"; return (sec / 3600).toFixed(1) + "h"; } // ------------------------------------------------------------ // Hauptfunktion // ------------------------------------------------------------ function updateWeatherWidget() { // ⭐ AB HIER: ALLES UNVERÄNDERT GELASSEN let html = ` <style> @keyframes moonGlow { 0% { filter: drop-shadow(0 0 2px #fbbf24); opacity: 0.85; } 50% { filter: drop-shadow(0 0 6px #fbbf24); opacity: 1; } 100% { filter: drop-shadow(0 0 2px #fbbf24); opacity: 0.85; } } .moon-anim { animation: moonGlow 3.5s ease-in-out infinite; } .w-container { font-family: 'Segoe UI', sans-serif; background: linear-gradient(160deg, #1e293b 0%, #0f172a 100%); color: #f1f5f9; padding: 10px; border-radius: 20px; border: 1px solid #334155; box-shadow: 0 10px 30px rgba(0,0,0,0.5); } .w-header { display: grid; grid-template-columns: 1.2fr 1.5fr 1fr; gap: 10px; background: rgba(255,255,255,0.05); padding: 10px; border-radius: 10px; margin-bottom: 10px; border: 1px solid rgba(255,255,255,0.1); } .w-temp-big { font-size: ${fontSizeTempBig}; font-weight: 900; color: #fbbf24; line-height: 1; } .w-desc { font-size: ${fontSizeDescription}; color: #38bdf8; font-weight: 600; } .w-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; font-size: ${fontSizeInfoGrid}; margin-top: 10px; } .w-info-item { background: rgba(0,0,0,0.2); padding: 6px 10px; border-radius: 10px; display: flex; align-items: center; gap: 5px; } .w-sun-moon { font-size: ${fontSizeSunMoon}; line-height: 1.6; border-left: 1px solid rgba(255,255,255,0.1); padding-left: 15px; } .w-hourly { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-bottom: 10px; background: rgba(0,0,0,0.15); padding: 10px; border-radius: 15px; } .w-h-item { text-align: center; font-size: ${fontSizeHourly}; } .w-h-time { font-weight: bold; color: #38bdf8; } .w-h-temp { font-weight: bold; color: #fbbf24; display: block; } .w-h-rain { font-size: ${fontSizeHourlyRain}; color: #94a3b8; } .w-forecast { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; } .w-fc-day { background: rgba(255,255,255,0.03); padding: 12px 8px; border-radius: 18px; text-align: center; border: 1px solid rgba(255,255,255,0.05); display: flex; flex-direction: column; justify-content: space-between; } .w-fc-name { font-weight: bold; color: #38bdf8; font-size: ${fontSizeForecastDay}; text-transform: uppercase; margin-bottom: 2px; } .w-fc-text { font-size: ${fontSizeForecastText}; color: #94a3b8; min-height: 2.2em; display: flex; align-items: center; justify-content: center; text-align: center; margin-bottom: 5px; } .w-fc-temp-max { color: #f87171; font-weight: bold; font-size: ${fontSizeForecastTempMax}; display: block; text-align: center; } .w-fc-temp-min { color: #60a5fa; font-size: ${fontSizeForecastTempMin}; display: block; margin-bottom: 5px; text-align: center; } .w-fc-day img { margin: 2px 0 4px 0; } .w-fc-details { font-size: ${fontSizeForecastDetails}; color: #94a3b8; border-top: 1px solid rgba(255,255,255,0.05); margin-top: 8px; padding-top: 8px; } </style> <div class="w-container"> <div class="w-header"> <div style="text-align: center;"> <div style="font-size:${fontSizeCurrentLabel}; font-weight:bold;"> ${lang.current} / ${getVal(forecast + '.day0.name_day')} </div> <div style="font-size:0.75rem; color:#94a3b8; margin-top:0;"> ${getToday()} </div> ${getImg(dpBase + '.current.icon_url', "80px")} <div class="w-desc">${getVal(dpBase + '.current.weather_text')}</div> </div> <div> <div class="w-temp-big">${getVal(dpBase + '.current.temperature_2m', " °C")}</div> <div style="font-weight:bold; margin-bottom:10px;"> <span style="color:#f87171">${getVal(forecast + '.day0.temperature_2m_max', " °C")}</span> | <span style="color:#60a5fa">${getVal(forecast + '.day0.temperature_2m_min', " °C")}</span> </div> <div class="w-info-grid"> <div class="w-info-item">💧 ${getVal(dpBase + '.current.relative_humidity_2m', "%")}</div> <div class="w-info-item">🌧️ ${getVal(forecast + '.day0.precipitation_sum', "mm")}</div> <div class="w-info-item">☀️ ${getSunHours(forecast + '.day0.sunshine_duration')}</div> <div class="w-info-item">☁️ ${getVal(dpBase + '.current.cloud_cover', "%")}</div> <div class="w-info-item">💨 Wind ${getVal(dpBase + '.current.wind_speed_10m', " km/h")}</div> <div class="w-info-item">🌬️ Böen ${getVal(dpBase + '.current.wind_gusts_10m', " km/h")}</div> </div> </div> <div class="w-sun-moon" style="position:relative;"> 🌅 ${getVal(forecast + '.day0.sunrise')}<br> 🌇 ${getVal(forecast + '.day0.sunset')}<br> 🌙 ${getVal(forecast + '.day0.moonrise')}<br> 🌘 ${getVal(forecast + '.day0.moonset')}<br> <div style="margin-top:6px;"> ${getImg(forecast + '.day0.moon_phase_icon', "34px")} <div class="moon-anim" style="font-size:0.75rem; color:#cbd5e1;"> ${getVal(forecast + '.day0.moon_phase_text')} </div> </div> <div style="margin-top:10px;"> 💨 Richtung: ${getVal(dpBase + '.current.wind_direction_text')}<br> ${getImg(dpBase + '.current.wind_direction_icon', "30px")} </div> <div style="position:absolute; bottom:-10px; right:0; font-size:0.6rem; color:#475569; opacity:0.8;"> Script Version ${version} </div> </div> </div> <div class="w-hourly"> `; // Stunden – mit Wind + Mond for (let h = 0; h <= 5; h++) { let hPath = forecast + '.hourly.next_hours.hour' + h; let isNight = getNum(hPath + '.is_day') === 0; html += ` <div class="w-h-item"> <div class="w-h-time">${getVal(hPath + '.time')}</div> ${getImg(hPath + '.icon_url', "30px")} <span class="w-h-temp">${getVal(hPath + '.temperature_2m', " °C")}</span> <span class="w-h-rain"> 🌧️${getVal(hPath + '.precipitation_probability', "%")} / ${getVal(hPath + '.precipitation', "mm")} </span> <div style="margin-top:4px; font-size:0.7rem; color:#cbd5e1;"> 💨 ${getVal(hPath + '.wind_speed_10m', " km/h")} 🌬️ ${getVal(hPath + '.wind_gusts_10m', " km/h")} </div> <div style="margin-top:2px;"> ${getImg(hPath + '.wind_direction_icon', "32px")} <span style="font-size:0.7rem; color:#94a3b8;"> ${getVal(hPath + '.wind_direction_text')} </span> </div> ${ isNight ? ` <div style="margin-top:4px;"> ${getImg(hPath + '.moon_phase_icon', "24px")} <div style="font-size:0.65rem; color:#cbd5e1;"> ${getVal(hPath + '.moon_phase_text')} </div> </div> ` : "" } </div> `; } html += ` </div> <div class="w-forecast"> `; // 6-Tage-Vorhersage for (let i = 1; i <= 6; i++) { let d = forecast + '.day' + i; html += ` <div class="w-fc-day"> <div> <div class="w-fc-name">${getVal(d + '.name_day')}</div> <div class="w-fc-text">${getVal(d + '.weather_text')}</div> ${getImg(d + '.icon_url', "50px")} <span class="w-fc-temp-max">${getVal(d + '.temperature_2m_max', " °C")}</span> <span class="w-fc-temp-min">${getVal(d + '.temperature_2m_min', " °C")}</span> </div> <div class="w-fc-details"> 🌧️ ${getVal(d + '.precipitation_sum', "mm")} (${getVal(d + '.precipitation_probability_max', "%")})<br> 💧 ${getVal(d + '.relative_humidity_2m_mean', "%")}<br> 💨 Wind ${getVal(d + '.wind_speed_10m_max', " km/h")}<br> 🌬️ Böen ${getVal(d + '.wind_gusts_10m_max', " km/h")}<br> ${getVal(d + '.wind_direction_text')}<br> ${getImg(d + '.wind_direction_icon', "32px")}<br> ${getImg(d + '.wind_gust_icon', "24px")}<br> ☀️ ${getSunHours(d + '.sunshine_duration')} </div> </div> `; } html += `</div></div>`; setState(targetDP, html, true); console.log("Weather widget: HTML successfully generated (v0.2.6-XYZ-SUN-CLOUD-C-DATE-COMPACT)."); } // Trigger updateWeatherWidget(); schedule("*/5 * * * *", updateWeatherWidget); on({id: dpBase + '.current.temperature_2m', change: 'any'}, updateWeatherWidget); on({id: forecast + '.hourly.next_hours.hour0.time', change: 'any'}, updateWeatherWidget); [image: 1770566801260-43377c6a-c836-4580-8f67-56ca3bac553b-image.png]
  • Javascript Adapter startet nicht mehr

    15
    0 Stimmen
    15 Beiträge
    353 Aufrufe
    W
    Nachdem ich Typescript neu installiert habe funktioniert es jetzt
  • Plötzlich ReferenceError: request is not defined

    79
    1
    0 Stimmen
    79 Beiträge
    13k Aufrufe
    haus-automatisierungH
    @bitwicht sagte in Plötzlich ReferenceError: request is not defined: Den Schedule habe ich zum Test gesetzt da ich mir auf die Schnelle nicht zu helfen wusste :-) Wenn Du gar keinen Trigger drumherum baust, wird die gesamte Logik ja bei jedem Script-Start einmalig ausgeführt. Dann musst Du gar nicht warten.

667

Online

32.7k

Benutzer

82.5k

Themen

1.3m

Beiträge