Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.3k Beiträge

NEWS

  • [gelöst] Json mit Variable in Datenpunkt schreiben

    7
    0 Stimmen
    7 Beiträge
    386 Aufrufe
    T
    @ralf-8 sagte in [gelöst] Json mit Variable in Datenpunkt schreiben: @ticaki danke, aber es funktioniert leider auch ohne Klammer nicht. sry hatte nicht richtig gelesen, bin gerade mir Kontaktlinsen am angewöhnen :)
  • JS Adapter 5.2.13 -> 8.8.3 Update: Probleme?

    5
    0 Stimmen
    5 Beiträge
    243 Aufrufe
    K
    @haselchen Super, vielen Dank!
  • Script für Formel 1 - Kalender, Ergebnisse und Wertungen

    39
    7
    5 Stimmen
    39 Beiträge
    4k Aufrufe
    da_WoodyD
    @stenmic nuja, kalender und ergebniss ja, fahrer und konstrukteur noch immer nicht...
  • [gelöst Editor Problem] getState/ setState und extendState

    3
    0 Stimmen
    3 Beiträge
    230 Aufrufe
    Ben1983B
    @haus-automatisierung sorry. schreibfehler, aber nur hier im thread. Habe es verbessert Funktioniert übrigens, trotz dass es der Editor anmeckert.
  • [gelöst] Wie krieg ich "result" an Blockly übergeben

    12
    3
    0 Stimmen
    12 Beiträge
    733 Aufrufe
    metaxaM
    @codierknecht sagte in [gelöst] Wie krieg ich "result" an Blockly übergeben: Muss da wirklich mit 'nem Zeitplan gearbeitet werden? Leider ja, natürlich nicht jede Minute wie in meinem Beispiel, das war nur für die Dauer des Testes. Die alten MH bieten leider keinen DP der sich ändert wenn am Thermostat manuell der Modus verändert wird. [image: 1742210697168-6d4897f0-f033-4bd7-b14e-946cb28241f0-image.png] Nachdem ich 5 oder 6 Stk. abfragen muss, werde ich vermutlich auf einen Interval von 10 oder gar 30 Minuten gehen.
  • [gelöst] Reihenfolge der on() Aufrufe abfragen

    2
    0 Stimmen
    2 Beiträge
    185 Aufrufe
    haus-automatisierungH
    @ben1983 sagte in Reihenfolge der on() Aufrufe abfragen: kann kann man irgendwie voraussagen, welche zum Triggerzeitpunkt als erste aufgerufen wird? Nein, nicht zuverlässig. Wenn man Dinge voneinander abhängig machen möchte, muss man diese in den selben Trigger packen.
  • Hilfe bei der Verwendung von serialport

    14
    0 Stimmen
    14 Beiträge
    555 Aufrufe
    haus-automatisierungH
    @oliverio sagte in Hilfe bei der Verwendung von serialport: Nur die letzte Zeile im Skriptlog ist nicht immer ganz erklärend Ja, das Problem ist, dass das Log innerhalb der Scripts nach der Script ID sucht. Alles, wo nicht die Script ID enthalten ist, wird ausgeblendet. Dadurch fehlt meistens die (wichtige) erste Zeile des Logs und nur der Stack wird angezeigt.
  • blockly - javascribt - Objekte funkt nicht

    13
    0 Stimmen
    13 Beiträge
    685 Aufrufe
    HomoranH
    @mg99 sagte in blockly - javascribt - Objekte funkt nicht: Das Problem dürfte gelöst sein, letztlich war es der Cache. eher das debug log vom shelly das im Millisekunden takt ins log schrieb
  • Mysql Datenbank Daten in IOBoker

    15
    1
    0 Stimmen
    15 Beiträge
    883 Aufrufe
    R
    @ralf-2 Liebe Danke es funktioniert Hier die Funktionierende Abfrage sendTo('sql.0', 'query', 'SELECT (iobroker.ts_number.ts) , iobroker.ts_number.val FROM iobroker.ts_number WHERE iobroker.ts_number.id = 72 ', function (result) { if (result.error) { console.error('Fehler bei der Abfrage:', result.error); } else { let liste = new Array; let x = 0; for (var record of result.result) { let jsonRecord = { val: record.val, // Ersetze dies durch den tatsächlichen Wert ts: record.ts // Ersetze dies durch den tatsächlichen Zeitstempel }; liste[x] = jsonRecord; x++; // console.log('val :' + record.val); // console.log('ts :' + record.ts); } const jsonString = JSON.stringify(liste); setState('javascript.0.Meine_Variabeln.Temp1', jsonString); // console.log(jsonString); } }); Es gibt noch einen Warnung aber die Funktion ist gegeben. <<< at Object.<anonymous> (script.js.SQL_Lesen:21:9) DANKE !!!!!!!
  • [gelöst] timestamp eines DP als String ausgeben

    11
    0 Stimmen
    11 Beiträge
    437 Aufrufe
    MartinPM
    @paul53 sagte in [gelöst] timestamp eines DP als String ausgeben: @martinp sagte: ein wenig aufgeräumt... Die Zeile 2 ist unnötig, da ein DP ohne state nicht triggern kann. Ist Einleuchtend. Dann machst Du besseren Code, als Blockly. Dort wird im umgewandelten Code sogar zweimal über den ternary Operator ?: die Abfrage gemacht...
  • [Gelöst] iobroker Pfad auf neue Datenpunkte überwachen

    3
    0 Stimmen
    3 Beiträge
    225 Aufrufe
    boriswernerB
    @paul53 onObject und die Funktionssignatur hab ich in der Autovervollständigung vom Javascript Editor gefunden (hab einfach mal geschaut, was mir so vorgeschlagen wird). Dein Beispiel funktioniert, allerdings wird das on bei jeder Wertänderung eines beliebigen Datenpunktes in dem Pfad ausgelöst. Das ist eine andere Eventquelle als ich gehofft hatte (wie im ersten Post beschrieben wollte ich lieber auf das Event "Datenpunkt wurde erstellt" reagieren, statt "Datenpunktwert hat sich geändert"), das hilft mir aber auch, da ich das jetzt einfach noch auf den "name" Datenpunkt erweitern kann. Der ändert sich nie. Somit habe ich jetzt folgende Lösung für mein Problem (log ist natürlich nur Beispielhaft): on({id: /^octoprint\.0\.files\..+\.name/, change: "ne"}, function(dp) {log(dp.id);}); und ich bedanke mich vielmals bei dir. Manchmal denkt man einfach zu kompliziert :-)
  • basic-ftp - kopieren/verschieben dir synology

    javascript
    4
    0 Stimmen
    4 Beiträge
    207 Aufrufe
    bahnuhrB
    @asgothian Danke nochmal für die Anregung. Hätte ich auch selber drauf kommen können ;-) Habe auch schon mehrfach mit ssh2 gearbeitet. Und nun auch so gelöst. mfg Dieter
  • [gelöst] Fehler bei Verwendung des 'net' Modules

    5
    0 Stimmen
    5 Beiträge
    315 Aufrufe
    P
    @oliverio Vielen Dank für Deine Erklärung. Jetzt funktionieren beide Versionen des Scripts! Vielen Dank.
  • JS zum senden über "Dockerized Signal Messenger REST API"

    14
    0 Stimmen
    14 Beiträge
    705 Aufrufe
    K
    @codierknecht Geschafft. Jetzt geht es! Nochmal ei dickes Lob! MfG
  • Datums-Format YYYYMMDD

    15
    0 Stimmen
    15 Beiträge
    751 Aufrufe
    T
    @mickym hat funktioniert, super vielen Dank an Euch Allen. Wünsch Euch einen schönen Abend. [image: 1741638871424-67abdc67-1568-419c-8942-df8f336421d0-image.png]
  • [Frage] javascript-code zum Auslesen von Ertragswerten

    javascript template
    21
    0 Stimmen
    21 Beiträge
    2k Aufrufe
    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 Stimmen
    17 Beiträge
    2k Aufrufe
    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 Stimmen
    62 Beiträge
    6k Aufrufe
    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 Stimmen
    7 Beiträge
    355 Aufrufe
    haus-automatisierungH
    @ben1983 Kannst auch null setzen
  • Funktion mit unterschiedlicher Anzahl an paramtern

    13
    1
    0 Stimmen
    13 Beiträge
    541 Aufrufe
    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

330

Online

32.4k

Benutzer

81.5k

Themen

1.3m

Beiträge