Weiter zum Inhalt

JavaScript

2.5k Themen 49.9k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Influx Datensatz in Funktion lesen

    4
    0 Stimmen
    4 Beiträge
    246 Aufrufe
    haus-automatisierungH
    @wolfgangfb sagte in Influx Datensatz in Funktion lesen: Heißt das, dass Methode 1 auf jeden Fall auch abgearbeitet wird, aber manchmal eben zum Zeitpunkt der Ausgabe noch nicht fertig ist? Dann fällt mir noch auf, dass "await"rot unterkringelt ist (Fehler), das ganze aber funktioniert. Warum wird await markiert? Als Hinweis bekomme ich: Naja logisch, auf die erste Ausführung wartest Du ja auch nicht (mit await). Ich kann hier jetzt keine JavaScript-Grundlagen erklären. Stichworte für Google für dich sind Promise, then/catch resolve/reject, await/async, try/catch. Ich habe Dir zwei verschiedene Varianten aufgezeigt. Einmal mit then und einmal mit await. Es kommt auf den Context an, in welchem Du dich bewegst. await kannst Du nur in asynchronen Funktionen verwenden. Methode1 wird asynchron ausgeführt. Ob alles danach schneller oder langsamer ist, ist reiner Zufall. Daher wäre für dich wahrscheinlich await besser (falls eine async function drumrum ist). var Methode2 = []; for (var i = 0; i < DP.length; i++) { try { Methode2.push(await readInflux(DP[i], 5)); } catch (err) { console.log(err); } } Da das bei dir aber nicht der Fall sein wird (steht da ja -> await nicht auf top level), kannst Du auch eine anonyme Funktion definieren, welche sofort ausgeführt wird: (async () => { var Methode2 = []; for (var i = 0; i < DP.length; i++) { try { Methode2.push(await readInflux(DP[i], 5)); } catch (err) { console.log(err); } } })(); Da man das meiste aber eh innerhalb von Triggern machen wird, kann man die Callbacks einfach asynchron definieren. z.B. schedule('0 0 * * *', async () => { var Methode2 = []; for (var i = 0; i < DP.length; i++) { try { Methode2.push(await readInflux(DP[i], 5)); } catch (err) { console.log(err); } } });
  • Syncrone exec Funktion?

    3
    0 Stimmen
    3 Beiträge
    376 Aufrufe
    haus-automatisierungH
    @tomtaz sagte in Syncrone exec Funktion?: Gibt es eine möglichkeit auf das ende des exec zu warten um dann das nächste zu starten? Klar, mit Promises: let pingArray = [ "localhost", "google.de", "debian.org" ]; async function ping(hostnamme) { return new Promise((resolve) => { console.log(`Test-Ping to ${hostnamme} startet...`); exec(`ping -c 10 ${hostnamme}`, (error, stdout, stderr) => { resolve(stdout); }); }); } (async () => { for (let host of pingArray) { await ping(host); console.log(`Ping ${host} done....`); } })();
  • Textformatierung aus exec

    3
    1
    0 Stimmen
    3 Beiträge
    310 Aufrufe
    fischi87F
    @mickym sorry für meine späte Antwort aber du hast recht, hab den adapter genommen, danke dir!!!
  • [Vorlage] Bewässerung mit Gardena 6-Fach Verteiler

    javascript
    1
    0 Stimmen
    1 Beiträge
    296 Aufrufe
    Niemand hat geantwortet
  • Wert wird nicht weitergegeben

    5
    0 Stimmen
    5 Beiträge
    419 Aufrufe
    V
    Okay, welches Skript auch immer jetzt funktioniert, es geht nach einer Weile :) Werd das noch genau herausfinden... Danke!
  • async, await mit selector oder schleife????

    19
    0 Stimmen
    19 Beiträge
    2k Aufrufe
    AlCalzoneA
    @ple sagte in async, await mit selector oder schleife????: geht man davon aus, dass es garantiert beschrieben werden kann. Nein, musst du selbst abfangen. Kann ich meine function Main irgendwie abbrechen, wenn ein error bei irgendein await auftritt? z.B, das die Metadaten nicht geschrieben werden können, weil der SQL nicht erreichbar ist? Dann sollte der Rest auch nicht mehr laufen. Ja, try-catch um jedes setStateAsync und im catch die Funktion mit return verlassen. (Wäre die Variante wo du am meisten Kontrolle hast). Ansonsten kannst du auch den ganzen Schreibprozess in ein try-catch packen. Dann wird automatisch ins catch gesprungen, sobald ein Versuch fehlschlägt.
  • Datenpunkt neu erstellen und gleich beschrieben

    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    W
    @paul53 Dann muss ich aber an jeder Stelle im Skript "setState" durch "if (existState()... else createstate(...)" ersetzen.
  • MariaDB 10 Werte manuell eintragen

    3
    0 Stimmen
    3 Beiträge
    377 Aufrufe
    F
    @oliverio Vielen Dank, funktioniert nun ...
  • InfluxDB mit Tages PV Vorhersage füllen

    16
    1
    0 Stimmen
    16 Beiträge
    4k Aufrufe
    moppel2810M
    Hallo Leute, ich versuche seit Tagen die Werte aus dem pv.forecast Adapter in grafana darzustellen und schaffe es nicht. Wie bekomm ich die Werte aus dem Adapter in grafana? Gibt es da ein Schritt für Schritt Anleitung?
  • Datenpunktlisten zusammenfassen

    4
    0 Stimmen
    4 Beiträge
    254 Aufrufe
    paul53P
    @wolfgangfb sagte: Ist Sensors quasi ein Array von Objekten während ids "nur" ein Array von Objektnamen ist? Sensors ist ein Objekt mit den Attributen 0, 1, ... , die IDs enthalten und dann am Ende length. ids ist ein Array von Datenpunkt-IDs und kann die IDs von Sensors und Switches enthalten.
  • Telegram Skript Anfängerproblem

    1
    0 Stimmen
    1 Beiträge
    223 Aufrufe
    Niemand hat geantwortet
  • Skript - Error Handling

    42
    0 Stimmen
    42 Beiträge
    4k Aufrufe
    HomoranH
    @andreas-5 sagte in Skript - Error Handling: ich war immer davon ausgegangen, dass das bei Bedarf von den anderen Scripten aufgerufen wird globale Skripte werden vor jedem Skript ausgeführt, nich bei "Bedarf" aufgerufen
  • SetTimeout Restlaufzeit anzeigen?

    5
    0 Stimmen
    5 Beiträge
    583 Aufrufe
    paul53P
    @oliverio sagte: könnten sich da mit der Zeit Differenzen aufsummieren. So lang sollte auch ein setTimeout() nicht dauern, dass die Abweichungen ins Gewicht fallen.
  • Licht vergessen funktioniert nicht mehr korrekt

    11
    0 Stimmen
    11 Beiträge
    987 Aufrufe
    F
    @paul53 said in Licht vergessen funktioniert nicht mehr korrekt: @fuchs1978 sagte: Mache ich das nicht? Ich habe ja die Trigger mit Val unterschieden. Nein. Wenn ein zweiter Trigger mit val: false kommt ohne vorherige Wertänderung? Also dort noch eine Abfrage rein If Timer und damit nicht auf zwei reagieren
  • Datenpunkt kürzen - einzeilige Lösung gesucht

    5
    0 Stimmen
    5 Beiträge
    480 Aufrufe
    haus-automatisierungH
    @wolfgangfb sagte in Datenpunkt kürzen - einzeilige Lösung gesucht: Hast Du vielleicht auch für diese Funktion einen Einzeiler für mich? Wenn Du selbst besser werden möchtest, schau Dir mal https://www.codewars.com/ an. Finde ich ein ziemlich cooles Projekt um etwas dazu zu lernen.
  • Wie bekommt man Änderung mit on function und Array mit?

    9
    0 Stimmen
    9 Beiträge
    478 Aufrufe
    M
    @paul53 Dann war bei mir irgendetwas nicht ok. Nach Neustart funktioniert es. Danke.
  • Wie in Vis einbinden?

    3
    0 Stimmen
    3 Beiträge
    536 Aufrufe
    M
    @chrunchy Danke dir, hat sofort geklappt!
  • Javascript Werte addieren

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    974 Aufrufe
    AndreiosA
    @hagst sagte in Javascript Werte addieren: Danke für Deine Antwort. @andreas-5 sagte in Javascript Werte addieren: Ergebnis = shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower - 9036,2 + 1000100 Das Problem dabei ist jetzt, dass ich zwar als Ergebnis 1009036,20 raus habe. Ist aber sehr unübersichtlich in VIS. Kann man das nicht mit javascript umrechnen lassen, dass als Ergebnis 1009,0362 rauskommt, also das Komma verschieben? Na, dsas Ergebnis durch 1000 teilen oder gleich den anderen Weg nehmen, solltest Du aber eigentlich selber können! Ergebnis = shelly.0.SHEM-3#C45BBE6BD432#1.Total.ConsumedPower / 1000 - 9,0362 + 1000,100
  • Array mit Namen als Index

    16
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    SKBS
    @oliverio Danke, aber das Map mag' ich nicht so :)
  • mqtt Payload von TNN zu IOBroker decoden

    8
    1
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    mickymM
    @flehmann1234 sagte in mqtt Payload von TNN zu IOBroker decoden: @mickym danke für den Hinweis, schaue ich mir mal in Ruhe an. Kein Problem - kam durch Dich auf die Idee - meine Node noch zu erweitern, damit ist sie noch universeller nutzbar und man kann damit automatisiert ganze Objektbäume erstellen. ;) Und wenn Du mit Deiner Lösung zufrieden bist, dann ist ja alles gut. :)

224

Online

33.1k

Benutzende

83.7k

Themen

1.3m

Beiträge