Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.5k Posts

NEWS

  • Hilfe bei der Verwendung von serialport

    14
    0 Votes
    14 Posts
    586 Views
    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 Votes
    13 Posts
    740 Views
    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 Votes
    15 Posts
    924 Views
    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 Votes
    11 Posts
    442 Views
    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 Votes
    3 Posts
    234 Views
    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 Votes
    4 Posts
    215 Views
    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 Votes
    5 Posts
    318 Views
    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 Votes
    14 Posts
    733 Views
    K
    @codierknecht Geschafft. Jetzt geht es! Nochmal ei dickes Lob! MfG
  • Datums-Format YYYYMMDD

    15
    0 Votes
    15 Posts
    828 Views
    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 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
    356 Views
    haus-automatisierungH
    @ben1983 Kannst auch null setzen
  • Funktion mit unterschiedlicher Anzahl an paramtern

    13
    1
    0 Votes
    13 Posts
    542 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
    801 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
    804 Views
    D
    @ticaki Super. Das scheint zu funktionieren. Besten dank!
  • [gelöst] Einlesen eines Arrays in Javascript klappt nicht

    34
    0 Votes
    34 Posts
    2k 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
    157 Views
    No one has replied
  • Scrypt schaltet in Software aber nicht Physisch

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

    127
    0 Votes
    127 Posts
    16k Views
    D
    @negalein gerne.. der Support ist äußerst Infomationsfreudig

611

Online

32.5k

Users

81.6k

Topics

1.3m

Posts