Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.5k Posts

NEWS

  • Probleme getHistory im History Adapter v3.0.1- Invalid call

    Moved
    9
    0 Votes
    9 Posts
    615 Views
    G
    @paul53, @Homoran Kurzes Update: async function erstelleUndLoggeTestDatenpunkt() { const testDpId = '0_userdata.0.testVerlaufDp'; // Erstelle den Datenpunkt, falls er noch nicht existiert const existiert = await existsStateAsync(testDpId); if (!existiert) { await createStateAsync(testDpId, 0, { name: 'Test Verlauf Datenpunkt', type: 'number', role: 'state', read: true, write: true, }); log(`Datenpunkt ${testDpId} wurde erstellt.`); } // Protokolliere einige Werte mit Zeitstempeln const jetzt = Date.now(); await setStateAsync(testDpId, { val: 10, ack: false, ts: jetzt - 60000 }); // Protokolliere Wert 10 vor einer Minute await setStateAsync(testDpId, { val: 20, ack: false, ts: jetzt - 30000 }); // Protokolliere Wert 20 vor dreißig Sekunden await setStateAsync(testDpId, { val: 30, ack: true, ts: jetzt }); // Protokolliere Wert 30 jetzt log('Rufe leseTestVerlauf auf...'); // Versuchen wir nun, den Verlauf dieses Datenpunkts abzurufen await leseTestVerlauf(testDpId); } async function leseTestVerlauf(dpId) { log('Testausgabe leseTestVerlauf'); const historyInstanz = 'history.0'; const jetzt = Date.now(); const startZeit = jetzt - 120000; // Lese Verlauf der letzten zwei Minuten const endZeit = jetzt; const optionen = { start: startZeit, end: endZeit, aggregate: 'none', addId: true, returnNewestEntries: false, }; log(`Versuche Verlauf für ${dpId} abzurufen...`); log(`Sende an ${historyInstanz} 'getHistory' mit Optionen (verschachtelt): ${JSON.stringify({ id: dpId, options: optionen })}`); try { const verlaufsDaten = await sendToAsync(historyInstanz, 'getHistory', { id: dpId, options: { ...optionen } }); log(`Verlaufsdaten (raw) für ${dpId}: ${JSON.stringify(verlaufsDaten)}`); if (verlaufsDaten && verlaufsDaten.result) { log(`Verlaufsdaten für ${dpId}: ${JSON.stringify(verlaufsDaten.result)}`); } else { log(`Fehler beim Abrufen der Verlaufsdaten für ${dpId}: ${JSON.stringify(verlaufsDaten)}`, 'warn'); } } catch (e) { log(`Fehler beim Aufruf von getHistory für ${dpId}: ${e}`, 'error'); } } erstelleUndLoggeTestDatenpunkt(); Das Problem mit "Invalid call. No options for getHistory provided" ist gelöst! Der Schlüssel war, die Optionen für getHistory im sendToAsync-Aufruf unter der Eigenschaft options zu verschachteln. Dies funktioniert sowohl mit der direkten Übergabe des optionen-Objekts als auch mit dem Spread-Operator: await sendToAsync(historyInstanz, 'getHistory', { id: dpId, options: optionen }); oder await sendToAsync(historyInstanz, 'getHistory', { id: dpId, options: { ...optionen } }); Der History Adapter erwartet die Optionen in dieser Struktur. Die Abfrage funktioniert nun wie erwartet. Als Nächstes werde ich nun mein ursprüngliches Skript anpassen, um die getHistory-Aufrufe entsprechend zu gestalten. Danke für die Unterstützung!
  • txt2command generelle frage

    2
    0 Votes
    2 Posts
    188 Views
    A
    hi! die verarbeitung eigener "txt2command" befehle, geht anscheinend nur der weg über eine "Processor state ID". klappt auch soweit ganz gut, aber die vordefinierten regeln (per gui angelegt), werden nicht mehr verarbeitet. ist das so gedacht? entweder eigene verarbeitung oder interne? ich verstehe den beispielcode für die eigene verarbeitung so, dass im "else" fall, die vordefinierten/internen regeln verarbeitet werden - klappt aber bei mir nicht. hab ich was übersehen? gruß arno createState("textProcessor", '', function () { on({id: "javascript.0.textProcessor", ack: false, change: 'any'}, function (obj) { var task = JSON.parse(obj.state.val); if (task.command === 'switch light on') { // mach was, z.b. setState(...) } else { // let it process with predefined rules setState("javascript.0.textProcessor", '', true); } }); });
  • Verwendung des externen JS-Modules three.js

    6
    0 Votes
    6 Posts
    511 Views
    OliverIOO
    @exmatador Sieht gut aus. Fehler beim View Wechsel entstehen wahrscheinlich dadurch, das das javascript weiterläuft, aber die html Elemente wo reingemalt wird, dann nicht mehr ansprechbar sind (weil hidden). Man müsste das pausieren und bei Reaktivierung der View dann wieder einschalten. Hängt aber auch von der genauen Fehlermeldung ab.
  • gelöst-wie writeFile() in js script nutzen

    javascript
    117
    0 Votes
    117 Posts
    22k Views
    S
    @michihorn sagte in gelöst-wie writeFile() in js script nutzen: Was ist die Ursache? Ich würde die Bildauflösung mit im Link der Kamera dabei lassen, dann geht es schneller das Bild zu holen.
  • Tibber Pulse: Verbrauchsdaten lokal auslesen

    107
    1 Votes
    107 Posts
    26k Views
    Philipp FortenbacherP
    @waly_de leider wird mein Zähler noch nicht von deinem Script unterstützt. Könntest du mir weiterhelfen? Mein Zähler kommt von EBZ Typ DD3 2R06 und hat folgenden HEX dump: 2f45425a35444433325230364454415f3130370d0a312d303a302e302e302a323535283145425a30313032333439363433290d0a312d303a39362e312e302a323535283145425a30313032333439363433290d0a312d303a312e382e302a323535283030383238342e32363830363939382a6b5768290d0a312d303a312e382e312a323535283030333331332e3434312a6b5768290d0a312d303a312e382e322a323535283030343937302e3832362a6b5768290d0a312d303a322e382e302a323535283030303131312e34383334353034382a6b5768290d0a312d303a31362e372e302a323535283030303038352e37322a57290d0a312d303a33362e372e302a323535283030303038352e39312a57290d0a312d303a35362e372e302a323535282d3030303035372e32302a57290d0a312d303a37362e372e302a323535283030303035372e30312a57290d0a312d303a39362e352e302a323535283030314332313034290d0a302d303a39362e382e302a323535283032464245324344290d0a210d0a Vielen Dank dir schon einmal fürs Anschauen.
  • Änderungen aller Datenpunkte in einem Ordner überwachen

    6
    0 Votes
    6 Posts
    296 Views
    R
    @homoran MMmmm... muss ich mal drüber nachdenken. Ich könnte im Skript wo ich alle Werte in eine JSON-Tabelle packe noch die letzte Änderung mit aufnehmen, dann habe ich die Datenpunkte identifiziert. Aber ja, ich werde mal über den Schraubenschlüssel bei allen SQL aktivieren.
  • Bei höherer Temperatur und heating-Mermal Teleg. versenden

    6
    1
    0 Votes
    6 Posts
    403 Views
    paul53P
    @mitch sagte: ist ein ioBroker Standard? Ja, siehe Doku.
  • [Vorlage] Generisches Fensteroffenskript + Vis

    Moved javascript template monitoring
    768
    1
    13 Votes
    768 Posts
    223k Views
    crunchipC
    @crunchip sagte in [Vorlage] Generisches Fensteroffenskript + Vis: @crunchip kann hier vllt jemand Hilfestellung geben zum Beitrag https://forum.iobroker.net/post/1186197 das Script dazu siehe https://github.com/Pittini/iobroker-Fensterauswertung/blob/master/Fensterauswertung.js ich hole das Thema nochmals vor gibt es jemanden der ebenfalls damit Probleme hat? Edit die Fehlermeldung ist ursprünglich wie im Link, jedoch hab ich mittlerweile alle Datenpunkte, welche vom script angelegt wurden gelöscht, alle Türen - und Fensterkontakte nochmals geprüft. identische Fehlermeldung die durchs löschen der Datenpunkte nun erscheinen, dabei ist es egal ob alle Kontakte Raum und Funktion zugeordnet sind, oder auch nur ein einziger, oder auch gar keine Kontakte angelegt sind javascript.0 16:34:42.972 info Stopping script script.js.Benachrichtigung.FensterTür-Status javascript.0 16:34:43.075 info Start JavaScript script.js.Benachrichtigung.FensterTür-Status (Javascript/js) javascript.0 16:34:43.081 info starting Fensterskript, Version 1.6.15 javascript.0 16:34:43.081 info registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 16:34:43.083 warn at init (script.js.Benachrichtigung.FensterTür-Status:326:26) javascript.0 16:34:43.083 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 16:34:43.084 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 16:34:43.084 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 16:34:43.084 warn at init (script.js.Benachrichtigung.FensterTür-Status:327:35) javascript.0 16:34:43.084 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 16:34:43.084 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 16:34:43.084 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 16:34:43.084 warn at init (script.js.Benachrichtigung.FensterTür-Status:328:37) javascript.0 16:34:43.084 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 16:34:43.084 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 16:34:43.084 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 16:34:43.084 warn at init (script.js.Benachrichtigung.FensterTür-Status:329:32) javascript.0 16:34:43.084 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 16:34:43.084 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 16:34:43.084 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 16:34:43.084 warn at init (script.js.Benachrichtigung.FensterTür-Status:330:30) javascript.0 16:34:43.085 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 16:34:43.085 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 16:34:43.085 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 16:34:43.085 warn at init (script.js.Benachrichtigung.FensterTür-Status:342:27) javascript.0 16:34:43.085 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 16:34:43.085 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 16:34:43.085 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 16:34:43.085 error at CreateRoomsWithOpenDoorsList (script.js.Benachrichtigung.FensterTür-Status:867:45) javascript.0 16:34:43.086 error at main (script.js.Benachrichtigung.FensterTür-Status:352:5) javascript.0 16:34:43.086 error at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 16:34:43.086 error at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) Ausgabe im Log javascript.0 2025-04-23 16:34:43.086 error at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34) javascript.0 2025-04-23 16:34:43.086 error at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 2025-04-23 16:34:43.086 error at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 2025-04-23 16:34:43.086 error at main (script.js.Benachrichtigung.FensterTür-Status:352:5) javascript.0 2025-04-23 16:34:43.085 error at CreateRoomsWithOpenDoorsList (script.js.Benachrichtigung.FensterTür-Status:867:45) javascript.0 2025-04-23 16:34:43.085 error Error in callback: TypeError: Cannot set properties of undefined (setting '1') javascript.0 2025-04-23 16:34:43.085 warn at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34) javascript.0 2025-04-23 16:34:43.085 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 2025-04-23 16:34:43.085 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 2025-04-23 16:34:43.085 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 2025-04-23 16:34:43.085 warn at init (script.js.Benachrichtigung.FensterTür-Status:342:27) javascript.0 2025-04-23 16:34:43.085 warn getState "javascript.0.Benachrichtigung.FensterTuerUeberwachung..VentWarnTime" not found (3) javascript.0 2025-04-23 16:34:43.085 warn at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34) javascript.0 2025-04-23 16:34:43.085 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 2025-04-23 16:34:43.085 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 2025-04-23 16:34:43.085 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 2025-04-23 16:34:43.084 warn at init (script.js.Benachrichtigung.FensterTür-Status:330:30) javascript.0 2025-04-23 16:34:43.084 warn getState "javascript.0.Benachrichtigung.FensterTuerUeberwachung..SendDoorWarnMsg" not found (3) javascript.0 2025-04-23 16:34:43.084 warn at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34) javascript.0 2025-04-23 16:34:43.084 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 2025-04-23 16:34:43.084 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 2025-04-23 16:34:43.084 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 2025-04-23 16:34:43.084 warn at init (script.js.Benachrichtigung.FensterTür-Status:329:32) javascript.0 2025-04-23 16:34:43.084 warn getState "javascript.0.Benachrichtigung.FensterTuerUeberwachung..SendWindowWarnMsg" not found (3) javascript.0 2025-04-23 16:34:43.084 warn at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34) javascript.0 2025-04-23 16:34:43.084 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 2025-04-23 16:34:43.084 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 2025-04-23 16:34:43.084 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 2025-04-23 16:34:43.084 warn at init (script.js.Benachrichtigung.FensterTür-Status:328:37) javascript.0 2025-04-23 16:34:43.084 warn getState "javascript.0.Benachrichtigung.FensterTuerUeberwachung..SendWindowOpenCloseMsg" not found (3) javascript.0 2025-04-23 16:34:43.084 warn at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34) javascript.0 2025-04-23 16:34:43.084 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 2025-04-23 16:34:43.084 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 2025-04-23 16:34:43.084 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 2025-04-23 16:34:43.084 warn at init (script.js.Benachrichtigung.FensterTür-Status:327:35) javascript.0 2025-04-23 16:34:43.084 warn getState "javascript.0.Benachrichtigung.FensterTuerUeberwachung..SendDoorOpenCloseMsg" not found (3) javascript.0 2025-04-23 16:34:43.084 warn at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34) javascript.0 2025-04-23 16:34:43.084 warn at Object.<anonymous> (script.js.Benachrichtigung.FensterTür-Status:279:13) javascript.0 2025-04-23 16:34:43.084 warn at InitialSort (script.js.Benachrichtigung.FensterTür-Status:315:5) javascript.0 2025-04-23 16:34:43.083 warn at main (script.js.Benachrichtigung.FensterTür-Status:350:5) javascript.0 2025-04-23 16:34:43.083 warn at init (script.js.Benachrichtigung.FensterTür-Status:326:26) javascript.0 2025-04-23 16:34:43.083 warn getState "javascript.0.Benachrichtigung.FensterTuerUeberwachung..SendVentMsg" not found (3) javascript.0 2025-04-23 16:34:43.081 info script.js.Benachrichtigung.FensterTür-Status: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2025-04-23 16:34:43.081 info script.js.Benachrichtigung.FensterTür-Status: starting Fensterskript, Version 1.6.15 javascript.0 2025-04-23 16:34:43.075 info Start JavaScript script.js.Benachrichtigung.FensterTür-Status (Javascript/js) javascript.0 2025-04-23 16:34:42.972 info Stopping script script.js.Benachrichtigung.FensterTür-Status
  • Textvariablen mit & - wie trennen?

    29
    0 Votes
    29 Posts
    3k Views
    T
    @fastfoot Schön dass das Ratespielchen mal ein Ende hat. Du willst also sagen mein Vorschlag ein Zeichen unterschlägt, wo deine Lösung sich einfach aufhängt. Muss dir sagen, dass mich dein bla bla ärgert - thema und du erledigt.
  • Bildversand der Kamera per Pushover sehr unzuverlässig.

    11
    0 Votes
    11 Posts
    688 Views
    A
    @wendy2702 Ok, dann bleibt es wohl so... :-) Danke nochmals für eure Unterstützung :+1:
  • FF-Einsätze OÖ auswerten

    115
    0 Votes
    115 Posts
    13k Views
    OliverIOO
    @negalein sagte in FF-Einsätze OÖ auswerten: probier mal folgendes. ich habe das einfach nur mal nach chat gpt reingeworfen und als ergebnis kam folgendes heraus es wird dann die lautstärke genau auf diese eine bedingung auf 10 gesetzt function sendAlexa(text, lautstaerke) { // Aktuelles Datum und Uhrzeit ermitteln const jetzt = new Date(); const wochentag = jetzt.getDay(); // 0 = Sonntag, 1 = Montag, ..., 6 = Samstag const stunde = jetzt.getHours(); const minute = jetzt.getMinutes(); // Überprüfen, ob es Dienstag (wochentag 2) ist und die Uhrzeit zwischen 18:45 und 22:00 Uhr liegt if (wochentag === 2 && ((stunde === 18 && minute >= 45) || (stunde >= 19 && stunde < 22))) { lautstaerke = 10; // Lautstärke auf 10 setzen } // Lautstärke und Text an Alexa senden setState('alexa2.0.Echo-Devices.G2A0XL07022603EU.Commands.speak-volume', lautstaerke); setState('alexa2.0.Echo-Devices.G2A0XL07022603EU.Commands.speak', text); }
  • [gelöst] Datenpunkt MQTT-Client per Skript (de)aktivieren?

    12
    1
    0 Votes
    12 Posts
    654 Views
    BananaJoeB
    @ticaki Perfekt, danke!
  • hilfe bei request durch httpget ersetzen

    javascript
    8
    0 Votes
    8 Posts
    432 Views
    Q
    @ro75 DANKE!!!
  • Hilfe bei RSS-feed benötigt !

    426
    0 Votes
    426 Posts
    71k Views
    L
    @negalein Hi Bin wieder mal da, ja bei mir funktionierts. Kann dir aber leider nicht mehr weiterhelfen...sorry LG
  • JS für Überwachung der Luftfeuchtigkeit in Räumen

    19
    1 Votes
    19 Posts
    1k Views
    NashraN
    @homoran sagte in JS für Überwachung der Luftfeuchtigkeit in Räumen: @gismoh sagte in JS für Überwachung der Luftfeuchtigkeit in Räumen: Momentan füge ich noch den Taupunkt hinzu, um zu warnen, wann es zu Schimmel kommen kann - so zumindest die Idee. hast du den nicht schon in den Rechnungen drin? [image: 1742573064634-screenshot_20250321-170319_firefox.jpg] für die Werkstatt hab ich noch zusätzlich den "Taupunkt" für 80% und 70% Feuchte, da dies eigentlich schon die Grenzwerte für Schimmelbildung sind Hi, welches Widget hast Du für die Anzeige Ja/nein beim lüften genutzt. Bekomme es einfach nicht hin mit dem Text bzw finde wohl nicht das Richtige. EDIT: hat sich erledigt, habe es hinbekommen
  • Erstes oder letztes Datenpunkt-Objekt im Verzeichnis

    2
    0 Votes
    2 Posts
    189 Views
    paul53P
    @ralf-8 sagte: Da Arrays nullbasiert sind, ist die Anzahl length -1 Die Anzahl ist length, der Index des letzten Elements ist length - 1. Man sollte die komplexe Selektor-Funktion nur einmal aufrufen. const ids = $('0_userdata.0.zaehlerstand.2025.*'); // oder als Array // const ids = $('0_userdata.0.zaehlerstand.2025.*').toArray(); const anzahl = ids.length; const last_ele = ids[anzahl - 1];
  • 0 Votes
    4 Posts
    275 Views
    PlasmachefP
    @ticaki @mickym herzlichen Dank, das war der richtige Ansatz für mich weiterzukommen. Sorry für das Bild ... ich gelobe Besserung :-)
  • [gelöst] Json mit Variable in Datenpunkt schreiben

    7
    0 Votes
    7 Posts
    413 Views
    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 Votes
    5 Posts
    249 Views
    K
    @haselchen Super, vielen Dank!
  • Script für Formel 1 - Kalender, Ergebnisse und Wertungen

    39
    7
    5 Votes
    39 Posts
    5k Views
    da_WoodyD
    @stenmic nuja, kalender und ergebniss ja, fahrer und konstrukteur noch immer nicht...

394

Online

32.5k

Users

81.7k

Topics

1.3m

Posts