Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.9k Beiträge

NEWS

  • einfacher Matrix Chat Client

    3
    1 Stimmen
    3 Beiträge
    899 Aufrufe
    D
    Hallo, da ich diesen Artikel merhmals bei Google gefunden habe, wollte ich an dieser Stelle fragen. Gibt es einen ausgereiften MatrixChat Adapter? Weil dann würde ich auf Telegram verzichten und mir Nachrichten vom SmartHome selber darüber senden. Ich frage hier, weil dann vermutlich viele andere das ebenfalls über Google finden werden und noch besser weiterwissen. PS: Naja, wer Matrix im Adapter Fenster reingibt, findet sofort: =D [image: 1696535049656-bildschirmfoto-2023-10-05-um-21.43.23.png]
  • Funktion bei Trigger und zeitgesteuert ausführen

    7
    0 Stimmen
    7 Beiträge
    346 Aufrufe
    haus-automatisierungH
    Ich würde aber die Reihenfolge der Parameter ändern und die Callback-Funktion nach hinten packen. So ist es ja bei on und schedule z.B. auch. Dann kann man das schöner formatieren. z.B. function FunctionSubscrAndPeriodic(id2Subscribe, minutesVar, callback, changeVar = 'any') { on ({ id: id2Subscribe, change: changeVar }, callback); schedule(`*/${minutesVar} * * * *`, callback); } function Addition(a, b) { setState('0_userdata.0.example_state', a + b); } FunctionSubscrAndPeriodic('0_userdata.0.kPreCtrl', 1, () => { Addition(1, 2); });
  • Shelly EM reset_total aus script

    2
    0 Stimmen
    2 Beiträge
    117 Aufrufe
    ?
    @klausi-0 Ich bin es selber nochmal. Bin ja immer noch am suchen. Kann es sein, das zusätzlich zum Shelly Adapter auch noch ein Mqtt Client und/oder Broker benötigt wird? Javascript meldet ja immer ein fehlendes mqtt Modul. Ist leider alles absolutes Neuland für mich.
  • tablejson - require() of ES Module ... not supported

    2
    0 Stimmen
    2 Beiträge
    218 Aufrufe
    Jey CeeJ
    @fvp du kannst probieren require auf import zu ändern, aber ich glaube auch der Javascript Adapter Unterstützt das noch nicht. Wenn dem so ist musst du eine alte Version verwenden.
  • POST Request an Pushcut

    27
    0 Stimmen
    27 Beiträge
    2k Aufrufe
    Martin SchlenderM
    @ticaki aaaalso - so einfach scheint es nicht zu klappen. Ich hab schon die beiden überflüssigen "," entfernt (innerhalb von headers nach dem Content-Type und nach bode: strBody. Aber es funktioniert trotzdem noch nicht und der Fehler ist nicht gerade sprechend: const axios = require('axios'); const strBody = '{"token":"xxxxxx","user":"yyyyyy","title":"' + strTitle + '","text":"' + strText + '" ,"subtext":"' + strSubtext + '"}'; log('body: ' + strBody); let strErg; try { const result = await axios( { timeout: 5000, method: 'POST', headers: { 'Content-Type': 'application/json' }, url: 'https://api.pushover.net/1/glances.json', body: strBody } ); log('body:' + result.data); setState('0_userdata.0.PostRequest',body,true); } catch(error) { log(JSON.stringify(error.toJSON())); } return ''; Hier der Fehler: { "message": "Request failed with status code 400", "name": "AxiosError", "stack": "AxiosError: Request failed with status code 400\n at settle (/opt/iobroker/node_modules/iobroker.javascript/node_modules/axios/lib/core/settle.js:19:12)\n at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/iobroker.javascript/node_modules/axios/lib/adapters/http.js:570:11)\n at IncomingMessage.emit (node:events:526:35)\n at IncomingMessage.emit (node:domain:489:12)\n at endReadableNT (node:internal/streams/readable:1359:12)\n at processTicksAndRejections (node:internal/process/task_queues:82:21)", "config": { "transitional": { "silentJSONParsing": true, "forcedJSONParsing": true, "clarifyTimeoutError": false }, "adapter": [ "xhr", "http" ], "transformRequest": [ null ], "transformResponse": [ null ], "timeout": 5000, "xsrfCookieName": "XSRF-TOKEN", "xsrfHeaderName": "X-XSRF-TOKEN", "maxContentLength": -1, "maxBodyLength": -1, "env": {}, "headers": { "Accept": "application/json, text/plain, */*", "Content-Type": "application/json", "User-Agent": "axios/1.4.0", "Accept-Encoding": "gzip, compress, deflate, br" }, "method": "post", "url": "https://api.pushover.net/1/glances.json", "body": "{\"token\":\"xxxx\",\"user\":\"yyyy\",\"title\":\"12.9 °C\",\"text\":\"12.9\" ,\"subtext\":\"17:25\"}" }, "code": "ERR_BAD_REQUEST", "status": 400 }
  • String (ASCII Zeichen) an USB-Gerät senden

    6
    0 Stimmen
    6 Beiträge
    621 Aufrufe
    A
    @mickym exec('echo "#ZL 1,1 Test" > /dev/ttyACM0'); SUPER !!! PERFEKT !!! Funktioniert tadellos..., nochmal DANKE dafür. Nur zum Verständnis, muss ich zwingend über "exec('echo "IRGENDWAS" > /dev/ttyACM0')" arbeiten? Geht da nichts über 'usb' ? Schönen Gruß ATARI (Peter)
  • Bits to Word / Word to Bits

    6
    0 Stimmen
    6 Beiträge
    628 Aufrufe
    paul53P
    @kev-0 sagte: Anregungen und Verbesserungen gerne gewünscht. Die vielen Konstanten benötigt man nicht. Ich verwende 3 globale Funktionen für Bitoperationen: function checkBit(val, bit) { return !!(val >> bit & 1); } function setBit(val, bit) { return val | (1 << bit); } function resetBit(val, bit) { return val & ~(1 << bit); } Das Objekt für die Zuordnung von Bit-Position zu Datenpunkt-IDs könnte so aussehen: const bits = { '0_userdata.0.Test.MyBool': 0, '0_userdata.0.Test.MyBool2': 2 };
  • Alexa Einkaufsliste löschen

    1
    0 Stimmen
    1 Beiträge
    147 Aufrufe
    Niemand hat geantwortet
  • getIdByName gibt nach Update Dubletten zurück

    8
    0 Stimmen
    8 Beiträge
    570 Aufrufe
    paul53P
    @watakan sagte: kann man dem näher auf den Grund gehen? Mit "top" und dann mit "Shift m" (großes M) nach RAM-Verbrauch sortieren. Tritt der Effekt nach Neustart der Javascript-Instanz weiterhin auf? Falls ja, auch nach ioBroker Neustart?
  • Abfallkalender Farbe ändern

    9
    0 Stimmen
    9 Beiträge
    699 Aufrufe
    T
    @australien Wenn was fehlt kannst du auf Github mir was hinterlassen, ich sehe es mir dann an.
  • schedule zu unterschiedlichen Zeiten

    6
    0 Stimmen
    6 Beiträge
    542 Aufrufe
    Thomas BraunT
    @fenriswolf sagte in schedule zu unterschiedlichen Zeiten: nun würde ich das eine Script gerne jede Stunde um halb laufen lassen und das andere Script zu jeder vollen Stunde. Zu den Zeiten tummeln sich auch noch andere auf den Servern. Nimm für sowas 'krumme' Uhrzeiten her.
  • [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten

    2k
    12 Stimmen
    2k Beiträge
    591k Aufrufe
    T
    https://forum.iobroker.net/topic/68595/test-adapter-weather-warnings
  • ExtendetObject is not allowed to use it

    3
    0 Stimmen
    3 Beiträge
    442 Aufrufe
    H
    @paul53 Danke das war es. Vielen Dank!
  • JSON String mit Punkt im Objektnamen

    5
    0 Stimmen
    5 Beiträge
    251 Aufrufe
    Duffy82D
    @paul53 Perfekt!! jetzt läufts. Danke vielmals!
  • Host + Port auf Erreichbarkeit prüfen

    12
    0 Stimmen
    12 Beiträge
    653 Aufrufe
    CodierknechtC
    @ticaki sagte in Host + Port auf Erreichbarkeit prüfen: ist für mich normal das man darauf auch awaiten muss Das ist wohl der entscheidende Unterschied zwischen Windows und Node/JS ;-)
  • Frage zu Jsonata

    5
    0 Stimmen
    5 Beiträge
    464 Aufrufe
    T
    @oliverio Danke - keine Ahnung wieso ich das nicht schon im ersten Lesedurchlauf verstanden habe. War wohl zu fixiert auf Arrays. $lookup({'minor':1, 'moderate':2, 'severe':3, 'extreme':4},$lowercase(properties.SEVERITY))
  • WASM-Binary Aufruf friert Javascript-Instanz ein

    1
    0 Stimmen
    1 Beiträge
    181 Aufrufe
    Niemand hat geantwortet
  • Nur Datenpunkte mit bestimmtem Wert selektieren

    3
    0 Stimmen
    3 Beiträge
    263 Aufrufe
    C
    @paul53 Danke für die schnelle Rückmeldung und den Code. Was ich eigentlich will ist, alle Geräte die nicht auf "MANUAL" stehen auf "MANUAL" umzuschalten. Ich möchte jedoch gerne ein 10sek delay haben. Dafür hatte ich ursprünglich dieses Script: const devices = $('hmip.*.groups.*.controlMode'); devices.each(function (id, i){ setTimeout(function() { if(getState(id).val != 'MANUAL') { setState(id, 'MANUAL'); } }, i * 10000); }); Jetzt sind allerdings die meistens meiner Geräte bereits auf MANUAL und nur noch die 1-2 die hinzugekommen sind, seit dem letzten Scriptaufruf, müssen umgestellt werden. Dadurch läuft das Script ewig, weil es bei den ganzen bereits auf MANUAL gestellten auch die 10sek wartet. Wie würdest du das lösen?
  • Grünbeck SC18 Daten mit JS auslesen

    132
    2
    1 Stimmen
    132 Beiträge
    23k Aufrufe
    PreslP
    Ich bräuchte eure Hilfe - ich kann via IOBroker die Daten nicht auslesen -> wird überall null angezeigt. Mache ich hier etwas falsch? Folgendes sehe ich im Log: [image: 1694676032471-f433fd7e-1560-41f3-9606-af6af455b549-image.png] [image: 1694676059700-c66f9518-77ca-438a-a7a6-be6c8c832aba-image-resized.png]
  • [gelöst]: signal-rest-api: Nachricht mit Bild senden

    7
    0 Stimmen
    7 Beiträge
    372 Aufrufe
    CodierknechtC
    @haus-automatisierung By the way: Was macht Dein Speicher-Projekt? :sunglasses:

789

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge