Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.3k Beiträge

NEWS

  • Mein erstes javascript .. ist das so ok ?

    4
    2
    0 Stimmen
    4 Beiträge
    38 Aufrufe
    M
    @Armilar Werde ich morgen machen. Danke für Dein feedback.
  • Zendure SolarFlow2400 AC (EVCC, Tibber und PV-Forecast)

    30
    1 Stimmen
    30 Beiträge
    664 Aufrufe
    S
    ich bin gerade komplett im flow und habe jetzt eine Prognose auf basis der letzten 14 tage (taggenau)... wonach entschieden wird ob aus dem netz geladen wird oder nicht.... Um das aber nun zu testen, muss ich erstmal daten sammeln also denke ich, nen update wird nicht vor Weihnachten kommen.... (aktuell Version 2.22) Ich habe langsam die "angst" das es zuviel ist.... als Backup habe ich ja das Script vor der PV-Prognose... damit war ich eigentlich schon sehr zufrieden
  • Projekt: Javascript Klassen Bibliothek

    3
    0 Stimmen
    3 Beiträge
    31 Aufrufe
    OliverIOO
    ist halt eine weitere abstraktionsebene auf iobroker bei der sich jemand gut damit auskennen muss. wenn es jemand hilft, dann ist es gut
  • [Gelöst] FoxESS Cloud Javascript Warnmeldungen

    10
    0 Stimmen
    10 Beiträge
    561 Aufrufe
    MartinPM
    Ich habe das Script etwas angepasst - ich habe nur einen Micro-Inverter von FoxEss (Balkonkraftwerk, keine Batterie (deshalb SOC unnötig, und auch keine Lastmessung deshalb Load unnötig) Da der kleine Wechselrichter auch die Erzeugung in kW ausgibt, habe ich das Round angepasst - es kommen dadurch "glatte" Wattwerte (nicht kW) ohne Komma in den Datenpunkt [image: 1763375763629-14b37deb-eed3-4e1f-abd2-b94db89a25c7-grafik.png] /* Dieses Script ruft alle 2 Minuten die FoxESS Cloud über eine RestAPI auf und speichert die aufgerufenen Informationen an die entsprechenden Objekte im IO-Broker. */ const https = require("https") const crypto = require('crypto') const token = "...."; /* Hier muss der API-Key aus der FoxESS Cloud eingefügt werden */ const sn = "...."; /* Hier muss die Seriennummer vom Inverter aus der FoxESS Cloud eingefügt werden */ schedule("*/2 * * * * ", async function () { try { const data = JSON.stringify({ "sn": sn, "variables": [ "pvPower" /*, "generationPower", "SoC", "loadsPower" */ ] }); const path = "/op/v0/device/real/query"; const milliseconds = new Date().getTime(); const signature = crypto.createHash('md5').update(path + "\\r\\n" + token + "\\r\\n" + milliseconds).digest("hex"); const options = { headers: { "Content-Type": "application/json", "token": token, "timestamp": milliseconds, "signature": signature, "lang": "en" }, hostname: "www.foxesscloud.com", method: "POST", path: path, port: 443 } const request = https.request(options, response => { console.log('STATUS: ' + response.statusCode); //response.setEncoding('utf8'); response.on("data", function (res) { // console.log(res); const datas = JSON.parse(res).result[0].datas; console.log(datas[0]); setState("0_userdata.0.FoxEss.PVPower", Math.round(datas[0].value * 1000), true); //setState("0_userdata.0.FoxEss.SOC", datas[2].value, true); //setState("0_userdata.0.FoxEss.Load", Math.round(datas[3].value * 1000) / 1000, true); }); }); request.write(data); request.end(); } catch (e) { console.error(e); } }); Meine Planungen für weitere Ergänzungen am Script: Tagesbudget an Queries sparsamer einsetzen a) zwischen Dämmerungsende und Dämmerungsbeginn keine Werte über die API abfragen (da kann es keine Erträge geben). b) bei niedrigen Erträgen ggfs. auch den Leserhythmus abschwächen. Ertrag Vortag einmalig am Folgetag abfragen Ertrag Vormonat einmalig am ersten Tag des Folgemonats abfragen.
  • E3DC Hauskraftwerk steuern

    3k
    1
    3 Stimmen
    3k Beiträge
    2m Aufrufe
    A
    @MaLei said in E3DC Hauskraftwerk steuern: Die Steuerung müsste bei mir z. B. jetzt im Winter immer zwischen 0 und 4 Uhr den Batteriespeicher und ggf. das Auto laden ... Wenn dann der Strompreis inklusive der Netzentgelte am günstigsten ist, wird das ja auch gemacht. Aber ich (bzw. die Steuerung) muss die Zeiten berücksichtigen. Das macht ja nicht Tibber (oder welcher Stromanbieter auch immer). Indirekt ja, indem der Strompreis dann ja günstiger sein müsste.
  • [Gelöst] Javascript - existierende Scheduler beenden/löschen

    5
    0 Stimmen
    5 Beiträge
    55 Aufrufe
    bahnuhrB
    Na siehste. Alles wird gut.
  • Skript zur dynamischen Generierung Batterie/Akku Symbol

    javascript monitoring
    49
    5
    7 Stimmen
    49 Beiträge
    1k Aufrufe
    OliverIOO
    @ro75 sagte in Skript zur dynamischen Generierung Batterie/Akku Symbol: wenn ich dann den korrigierten und erweiterten Code einstelle, passt du dann dein Beispiel an? Dafür muss sich auch jemand interessieren. Für mich reicht der aktuelle usecase erstmal aus.
  • Error in callback: TypeError: axios is not a function

    12
    0 Stimmen
    12 Beiträge
    187 Aufrufe
    T
    @cash sagte in Error in callback: TypeError: axios is not a function: Mit der Stable Version ist alles fein. Dann hoffe ich mal das die Beta so niemals zur Stable wird. Bei mir läuft axios mit jeder Version - hab es nicht in den zusätzlichen NPM stehen, macht der Javascript-Adapter AFAIK ja von sich aus.
  • [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.

    474
    2 Stimmen
    474 Beiträge
    96k Aufrufe
    crunchipC
    @siggi0904 sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.: Leider alles ohne aktuelle Werte. @crunchip sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.: Sensordaten werden allerdings nicht ausgelesen
  • Tagesschau warn Meldung

    16
    0 Stimmen
    16 Beiträge
    381 Aufrufe
    bahnuhrB
    @kanumouse https://forum.iobroker.net/topic/79047/test-adapter-tagesschau-0-6-x
  • syntax von createState für "custom"

    11
    0 Stimmen
    11 Beiträge
    282 Aufrufe
    F
    @paul53 das war ein wichtiger Hinweis, hatte ich zwar anders gehofft, aber das ist dann eben so. Das setzen der Werte im custom-Bereich hat wunderbar funktioniert, ich konnte auch eine zweite Definition für die History-Instanz mit einsetzen. Genau das habe ich gesucht, vielen Dank, Dein Hinweis hat mir viel Zeit gespart.... Gruß Fritz
  • Script vor dem stoppen aufräumen

    3
    0 Stimmen
    3 Beiträge
    80 Aufrufe
    M
    @oliverio Danke, klar die Beschreibung zum Adapter. Wie blind ist man manchmal?
  • Skript für Mondphase, Mondauf- und Untergang

    54
    4
    3 Stimmen
    54 Beiträge
    2k Aufrufe
    Ro75R
    @meister-mopper Adapter sind schön, aber ich versuche da so sparsam wie möglich zu sein. Man muss nicht für alles einen separaten Adapter installieren - Thema Pflege, Update, Fehlerbehandlung, etc. Ich setze auf meinen Universal-Adapter, dem JS-Adapter. Kann man viel machen. Ro75.
  • IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox

    Verschoben
    209
    5
    5 Stimmen
    209 Beiträge
    41k Aufrufe
    FriedhofsblondF
    @friedhofsblond OK läuft habs hinbekommen.
  • Via flot.0 alle Charts abfragen

    javascript
    5
    0 Stimmen
    5 Beiträge
    97 Aufrufe
    E
    @mcu Danke, das funktioniert super. Jetzt brauche ich noch alle vorhandenen Namen in einem Array. Dann kann ich in einer Schleife alle durchgehen und etwas damit machen.
  • Wled Grafiganzeige auf state

    3
    0 Stimmen
    3 Beiträge
    120 Aufrufe
    matze55M
    @mcu Den oben geposteten Code habe ich nicht mehr in Nutzung. Ich habe aus einem Beitrag von hier den View auf die Datenpunkte vom Adapter ,,wled,, abgestimmt. Ich wollte es versuchen Grafiken auf die ID der Effekte die man auswählen kann zu definieren. Das hat auch mit dem Widget Image 8 gut funktioniert , aber ein aussehen in der View sah nicht so gut aus deshalb habe ich das weg gelassen. Aber danke noch mal für deine Antwort...lg matze
  • ( gelöst ) Ordnernamen auslesen und in Datenpunkt schreiben

    3
    0 Stimmen
    3 Beiträge
    111 Aufrufe
    P
    @oliverio sagte in Ordnernamen auslesen und in Datenpunkt schreiben: let prefix = '0_userdata.0.Gasanbieter.'; let dp=$(prefix+"*"); console.log(dp); Hallo so der Hinweis hat mich zumindest auf einige Fehler noch in meinen Datenpunktnamen gebracht. Damit konnte ich dann den Fehler immer weiter eingrenzen, so das es jetzt klappt Danke
  • Problem mit 2 Klassen und Callback

    6
    0 Stimmen
    6 Beiträge
    72 Aufrufe
    M
    @ticaki Klasse, das geht. Sieht man ja sogar öfter wenn Funktionen übergeben werden.
  • [Vorlage] Denon HEOS Script

    Verschoben javascript template
    357
    1
    1 Stimmen
    357 Beiträge
    76k Aufrufe
    W
    @bobbruni Hast du mal den Player neu gestartet? Bei einem "Response timed out" hat der Adapter offenbar nicht in der passenden Zeit eine Antwort von Heos erhalten.
  • Adapter pvforecast.0.summary.power.hoursToday

    2
    0 Stimmen
    2 Beiträge
    39 Aufrufe
    M
    @netfritz Muss 5 sein const ids = $('pvforecast.0.summary.power.hoursToday.*'); // das ist der Selector var devices = []; ids.each(function(id, i) { console.log("id= " + id + " " + i); let dev0 = id.split('.')[0]; let dev6 = id.split('.')[5]; console.log("test= " + dev0 + " = " + dev6); var Status = getState("pvforecast.0.summary.power.hoursToday.12:00:00").val; }); LOG javascript.0 17:59:50.188 info id= pvforecast.0.summary.power.hoursToday.21:00:00 16 javascript.0 17:59:50.188 info test= pvforecast = 21:00:00 ID pvforecast.0.summary.power.hoursToday.* 0 1 2 3 4 5

356

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge