Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.9k Posts

NEWS

  • einfacher Matrix Chat Client

    3
    1 Votes
    3 Posts
    899 Views
    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 Votes
    7 Posts
    346 Views
    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 Votes
    2 Posts
    117 Views
    ?
    @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 Votes
    2 Posts
    218 Views
    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 Votes
    27 Posts
    2k Views
    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 Votes
    6 Posts
    615 Views
    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 Votes
    6 Posts
    620 Views
    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 Votes
    1 Posts
    147 Views
    No one has replied
  • getIdByName gibt nach Update Dubletten zurück

    8
    0 Votes
    8 Posts
    565 Views
    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 Votes
    9 Posts
    698 Views
    T
    @australien Wenn was fehlt kannst du auf Github mir was hinterlassen, ich sehe es mir dann an.
  • schedule zu unterschiedlichen Zeiten

    6
    0 Votes
    6 Posts
    542 Views
    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 Votes
    2k Posts
    591k Views
    T
    https://forum.iobroker.net/topic/68595/test-adapter-weather-warnings
  • ExtendetObject is not allowed to use it

    3
    0 Votes
    3 Posts
    437 Views
    H
    @paul53 Danke das war es. Vielen Dank!
  • JSON String mit Punkt im Objektnamen

    5
    0 Votes
    5 Posts
    251 Views
    Duffy82D
    @paul53 Perfekt!! jetzt läufts. Danke vielmals!
  • Host + Port auf Erreichbarkeit prüfen

    12
    0 Votes
    12 Posts
    653 Views
    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 Votes
    5 Posts
    461 Views
    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 Votes
    1 Posts
    181 Views
    No one has replied
  • Nur Datenpunkte mit bestimmtem Wert selektieren

    3
    0 Votes
    3 Posts
    263 Views
    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 Votes
    132 Posts
    23k Views
    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 Votes
    7 Posts
    372 Views
    CodierknechtC
    @haus-automatisierung By the way: Was macht Dein Speicher-Projekt? :sunglasses:

687

Online

32.6k

Users

82.2k

Topics

1.3m

Posts