Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 49.0k Posts

NEWS

  • [Frage] javascript-code zum Auslesen von Ertragswerten

    javascript template
    21
    0 Votes
    21 Posts
    2k Views
    N
    @asgothian Habe es doch gerade ausprobiert. Gibt aber eine Fehlermeldung: javascript.0 19:32:52.547 info Stopping script script.js.smarthome_trost.neu_history_influxdb javascript.0 19:32:52.592 info Start JavaScript script.js.smarthome_trost.neu_history_influxdb (Javascript/js) javascript.0 19:32:52.595 info script.js.smarthome_trost.neu_history_influxdb: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 19:32:52.597 info script.js.smarthome_trost.neu_history_influxdb: Starting "energy-stats" logging to http://localhost:8086 into bucket "iobrokerdata" by org Trost javascript.0 19:32:52.598 error script.js.smarthome_trost.neu_history_influxdb: ReferenceError: loggingTemplate is not defined javascript.0 19:32:52.598 error at start (script.js.smarthome_trost.neu_history_influxdb:53:45) Kann man das reparieren?
  • Verbindung mit neuer Ecoflow Api

    17
    1 Votes
    17 Posts
    2k Views
    R
    @haus-automatisierung Eventuell hilft Dir das Beispiel von mir ja schon weiter Die Verbindung klappt sehr gut, alle Devices wurden in den Objektbaum eingetragen. Vielen Dank. Leider komme ich aber nicht weiter, wie die Werte aus der Powerstream ermittelt werden: pv1InputWatts pv2InputWatts pvToInvWatts permanentWatts Für weitere Hilfen bin ich daher sehr dankbar. Gruß Ralf Für eine
  • Adapter history.0 auswerten für 16 Datenpunkte und 12 Monate

    62
    0 Votes
    62 Posts
    7k Views
    L
    @paul53 Ich habe einen eingegrenzt und gefunden: [image: 1741475257828-fehler-in-den-daten.png] Ein Timestamp des DP war weder True noch False :astonished: In 12 betrachteten Monaten ist das 2 mal vorgekommen. Finale Version: [image: 1741478426540-09.03.script-final.png] var ed, obj, result, lastValue, onTime, i, value, ts; getHistory({ id: 'ID auswählen', start: getDateObject('2025-09-01 00:00').getTime(), end: getDateObject('2024-03-01 00:00').getTime(), aggregate: 'none', removeBorderValues: true, }, async (err, result) => { if (err) { console.error(err); } else { ed = 0; if (result.length > 0) { ((obj) => { if (typeof obj === 'object') { obj['val'] = false; } })((result.slice(-1)[0])); obj = result[0]; lastValue = getAttr(obj, 'val'); if (lastValue) { onTime = getAttr(obj, 'ts'); } var i_end = result.length; var i_inc = 1; if (2 > i_end) { i_inc = -i_inc; } for (i = 2; i_inc >= 0 ? i <= i_end : i >= i_end; i += i_inc) { obj = result[(i - 1)]; value = getAttr(obj, 'val'); ts = getAttr(obj, 'ts'); if ((typeof value == 'boolean') && (typeof ts == 'number') && (value != lastValue)) { lastValue = value; if (value) { onTime = ts; } else { ed = (typeof ed === 'number' ? ed : 0) + (ts - onTime); } } } } console.info((Math.round(ed / 360000) / 10)); } }); Für größere Zeiträume muss der Parameter limit von getHistory vergrößert werden. Im Standard liest getHistory 2000 Timestamps für den Datenpunkt ein. Die Erweiterung des Limits ist nicht im Skript darüber enthalten, sondern wurde im Objekt von getHistory eingetragen. Das Skript funktioniert nun einwandfrei! Ich möchte mich bei allen Herzlich bedanken für den Support! Insbesondere bei @paul53 und @David-G :heart:
  • onMessage aktuell auch ohne result async möglich?

    7
    0 Votes
    7 Posts
    365 Views
    haus-automatisierungH
    @ben1983 Kannst auch null setzen
  • Funktion mit unterschiedlicher Anzahl an paramtern

    13
    1
    0 Votes
    13 Posts
    572 Views
    Ben1983B
    @haus-automatisierung OK, danke. Nur folgendes: Wenn ich Bspw. so eine Funktion deklariere: const SendTelegram = { /** * @param Message message to send * @param Options Username, Visulog, SendInstanz */ alles: function (Message,Options){ ....... //code } } Die liegt in einem Globalen Skript, ist also überall verfügbar. Wenn ich sie innerhalb des Skripts aufrufe, dann wird mir das angezeigt: [image: 1740994454886-3a62fcb8-1ebd-4e11-95a4-e1c30c394e2b-image.png] in einem nicht globalen Skript, allerdings: [image: 1740994498201-f6aecbff-3a56-47af-8e40-b4bb143be1ed-image.png] Ich weiß nun, was die options sind, aber warum wird das nicht angezeigt? EDIT: !!!! Es geht doch.... nachdem die Fenster einmal geschlossen waren und wieder geöffnet wurde, wird es angezeigt. OK, ich gebs aus... fenster erneut geschlossen und geöffnet und es wird schon wieder nicht angezeigt
  • Wann ist ein nach der Erzeugung dp verfügbar?

    16
    0 Votes
    16 Posts
    823 Views
    mcm1957M
    @ben1983 OK - Für Javascript im Javascript Adapter gelten tw. andere Regeln. Wenn Unetrscheide allerdings eher verwirrend sind und aufwärtskompatibel anpassbar scheinen dann macht es ev. durchaus Sinn ein Issue zu erstellen. Bluefox migriert den Javascritp adapter meines Wissens nach z,Z zu Typescript. Da kann man ggF kompatible (!) Anpassungen durchaus vornehmen. Aber das müssen die Maintainer entscheiden.
  • [gelöst] History per script auslesen: Wie warten auf Daten?

    10
    0 Votes
    10 Posts
    890 Views
    D
    @ticaki Super. Das scheint zu funktionieren. Besten dank!
  • [gelöst] Einlesen eines Arrays in Javascript klappt nicht

    34
    0 Votes
    34 Posts
    3k Views
    T
    @ben1983 ich kannte \z nicht mal. Hab Chatgpt gefragt ohne Javascript zu erwähnen und der meint dazu [image: 1740782213318-bildschirmfoto-2025-02-28-um-23.36.48.png]
  • Wert einer URL auf eine URL von Shelly schreiben

    1
    0 Votes
    1 Posts
    176 Views
    No one has replied
  • Scrypt schaltet in Software aber nicht Physisch

    4
    0 Votes
    4 Posts
    355 Views
    P
    @geschild Oh ja Danke das funktioniert.
  • PAJ GPS abfragen

    127
    0 Votes
    127 Posts
    17k Views
    D
    @negalein gerne.. der Support ist äußerst Infomationsfreudig
  • controller.js frist Ram und javascript.X bei >90%

    14
    1
    0 Votes
    14 Posts
    1k Views
    CodierknechtC
    @tasuanetrukiat sagte in controller.js frist Ram und javascript.X bei >90%: da ich das mit den Blockly Skripten noch nicht vollständig verstanden habe Lesestoff: https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps Ganz wichtig: "Trigger in Trigger" - nicht machen, niemals, never ever!
  • [Skript] Atlantic Wärmepumpe über Cozytouch abfragen

    107
    3 Votes
    107 Posts
    21k Views
    Samson71S
    @ricki-1337 sagte in [Skript] Atlantic Wärmepumpe über Cozytouch abfragen: genannten Platine in HA einbinden. Falsches Forum? Wir sind hier bei ioBroker, nicht bei HA. Du solltest Dich mit der Fragestellung an das HA-Forum wenden und/oder ggf. auf GitHub nachfragen.
  • zig gleiche Einträge in JS-Protokollanzeige

    18
    3
    0 Votes
    18 Posts
    1k Views
    OliverIOO
    @ticaki ja, hab gerade ausprobiert. dann ist das relativ neu. das war früher nicht so. da gab es immer wieder fälle, das sich das aufmultipliziert hat
  • HttpGet Balkonkraftwerk => Nachts Errors in Protokoll

    14
    1
    0 Votes
    14 Posts
    1k Views
    O
    @fichtenmoped82 , bei einer ähnlichen Fragestellung habe ich den Radar Adapter zu Hilfe genommen. Damit können Geräte (der WR in Deinem Fall) auf Anwesenheit überwacht werden. Dann kannst Du die HTTP Abfrage gegen den WR nur ausführen, wenn Radar für den WR ein „true“ in den zugehörigen DP schreibt. In etwa so, wie @MartinP weiter oben schreibt, nur ohne Ping. Spart neben den Log Einträgen auch noch Rechenleistung -;) Gruß
  • Cannot redeclare block-scoped variable

    36
    0 Votes
    36 Posts
    4k Views
    H
    @oliverio hast Recht. Hätte gleich ein paar Hardcopys machen sollen.
  • [gelöst] Bug in Javascript?

    17
    1
    0 Votes
    17 Posts
    1k Views
    I
    @haus-automatisierung Nein, der Adapter kann nichts dafür, der DP ist string. Ich hab den mal gelöscht und beim wiedererstellen hab ich das offenbar nicht wieder auf bool geändert.
  • MS-SQL Daten in State schreiben

    13
    0 Votes
    13 Posts
    945 Views
    B
    @paul53 Try´n Error hats gebracht....Total simpel when man SQL Coden kann :grinning: ich kanns jedenfalls nicht. +1 Tag (+1 an der Stelle im Skript einfügen) 'use sag SELECT validfrom, comfortcode FROM dbo.tgcs WHERE DATEADD(DAY, 0, DATEDIFF(DAY, 0, validfrom)) = DATEADD(DAY, 0, DATEDIFF(DAY, 0, GETDATE()))+1', function (result) { 2 Tage 'use sag SELECT validfrom, comfortcode FROM dbo.tgcs WHERE DATEADD(DAY, 0, DATEDIFF(DAY, 0, validfrom)) = DATEADD(DAY, 0, DATEDIFF(DAY, 0, GETDATE()))+2', function (result) { Edit: Ich versuche gerade das Skript nach einem Zeitplan auszuführen, bekomme es aber irgenwie nicht hin. Habe oben rechts über die Uhr sowohl den Wizard, als auch Einfach versucht. Zum test auch jede Minute. Tut sich aber nichts. Ich hab auch versucht den javascript Adapter alle Minute neuzustarten....Das klappt ist aber nicht ganz Sinn der Sache. (Denke ich) Hat jemand eine Idee? '{"time":{"exactTime":true,"start":"01:00"},"period":{"days":1,"dows":"[1, 2, 3, 4, 5]"}}' sendTo('sql.0', 'query', 'use sag SELECT validfrom, comfortcode FROM dbo.tgcs WHERE DATEADD(DAY, 0, DATEDIFF(DAY, 0, validfrom)) = DATEADD(DAY, 0, DATEDIFF(DAY, 0, GETDATE()))', function (result) { if (result.error) { console.error(result.error); } else { // show result console.log('Rows: ' + JSON.stringify(result.result)); setState('0_userdata.0.heutiges_datum.validfrom', formatDate(result.result[0].validfrom, 'DD.MM.YY'), true); setState('0_userdata.0.heutiges_datum.comfortcode', result.result[0].comfortcode, true); } }); @paul53 hast du mir hier ein Tipp?
  • getIDs() Funktion nicht verfügbar

    12
    0 Votes
    12 Posts
    777 Views
    haus-automatisierungH
    @kamikaze Habs mal angepasst: https://github.com/ioBroker/ioBroker.javascript/pull/1829
  • Shellypw/ mqtt einstellungen ändern.

    1
    0 Votes
    1 Posts
    110 Views
    No one has replied

585

Online

32.7k

Users

82.5k

Topics

1.3m

Posts