Skip to content

JavaScript

2.5k Topics 49.7k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

  • setStateDelayed - Fragen zur Funktion

    16
    0 Votes
    16 Posts
    642 Views
    paul53P
    @laser sagte: Unterbrechen von JS- Abarbeitung für die timeout-Zeit? Nein, setTimeout() wird asynchron ausgeführt.
  • JS Adapter 8.7.0 und suncalc

    6
    1
    0 Votes
    6 Posts
    584 Views
    Thomas MaulT
    Das mit dem require habe ich wohl auch nicht ganz verstanden und deswegen nicht im Code gehabt. Amateur halt ;-)
  • [Gelöst] Was wird bei einem .on alles zurückgeliefert?

    3
    0 Votes
    3 Posts
    190 Views
    Ben1983B
    @paul53 sagte in Was wird bei einem Selector.on alles zurückgeliefert?: @ben1983 sagte: Wo erkenne ich denn, was wirklich alles geliefert wird? obj.name gibt es nicht, sondern obj.common.name. Das gilt nicht nur für ein Selektor.on(), sondern generell für on(). Kann wohl sein, aber es wird mir 1. hier angeboten: [image: 1721037212494-87d81e88-a5e3-4d5b-80e2-3d146d808bad-image.png] kommt bei der Verwendung auch dort der Name aus obj.common.name raus Aber danke für die Info. Hätte ich mir ja denken können :-)
  • scripte analyse - welches script sendet viele änderungen

    9
    0 Votes
    9 Posts
    688 Views
    haus-automatisierungH
    @paul53 sagte in scripte analyse - welches script sendet viele änderungen: Anscheinend werden diese dann per if(script) ausgefiltert. Ja genau, weil state.c dann undefined ist.
  • (erledigt)Runden in Js

    12
    0 Votes
    12 Posts
    962 Views
    OliverIOO
    @ubecker geht mit prepend und append auch dort auch
  • Übergabe von Werten von Smartmeter an cFos Wallbox

    42
    0 Votes
    42 Posts
    12k Views
    S
    @berlinerbolle Das läuft seit jahren hier schon in einer Modbus, HTTP kombination.... für MQTT müsste ich mal alles zurücksetzen und neu machen.... (damals gab es noch kein MQTT in der Wallbox).... Vielleicht wird es mal zeit dafür.....
  • getSchedules() liefert keine Astro-Schedules?

    javascript
    2
    0 Votes
    2 Posts
    329 Views
    M
    @mcu Schon gefunden Returns the list of all CRON jobs and schedules (except astro). Argument must be true if you want to get the list for every running script.
  • JavaScript funktioniert nicht wie gewünscht! Bitte Hilfe.

    95
    0 Votes
    95 Posts
    14k Views
    S
    @paul53 ich habe jetzt ausführlich getestet. Das ging gut, weil linux bei mir unter einer VM (Orcacle Virtualbox) läuft. So konnte ich auch auf "alte" Zustände zurückgreifen. Ich habe das upgrade von nodejs einmal via "iob nodejs-update 20" und einmal manuel über apt, wie hier beschrieben "Diskussion zum HowTo nodejs-Installation und upgrade" auf die 20 durchgeführt. Ergebnisse: Im Verhalten führen beide upgrade Varianten zu gleichen Ergebnissen (was schon mal gut ist) unter der Version 18 laufen meine Scripte komplett fehlerfrei durch unter der 20er Version entsteht der Fehler "socket hang up" es ist bemerkenswert, dass das Script fehlerfrei, also ohne "socket hang up", durchläuft, wenn ich es nach ca. 20 Sekunden erneut auslöse (wir sprechen noch immer von den Scripten, die ich am 1.Juni umd 10:23 hier gepostet habe). Dieses Verhalten ist reproduzierbar, ebenso die Tatsache, daß es beim ersten Auslösen stets die Fehlermeldung bringt. Hat irgendwer eine Idee, was ich testen, wo ich ansetzen könnte, um den bug (falls es überhaupt einer ist) zu finden, einzugrenzen oder zu eliminieren? Oder mit wem ich dieses Problem diskutieren resp. in welchem threat ich es melden sollte?
  • fs.appendFileSync in Pi-Folder geht nicht mehr

    3
    0 Votes
    3 Posts
    383 Views
    S
    @thomas-braun Habe ich jetzt auch so gemacht und per crontab einen Kopierjob eingerichtet, der mir die Dateien dann ins richtige Verzeichnis und aufs NAS schiebt. Danke!
  • Wann async/await?

    7
    0 Votes
    7 Posts
    874 Views
    S
    @paul53 danke, Paul, also: synchron!
  • httpGet entfernt "?" am Ende der Url

    11
    0 Votes
    11 Posts
    1k Views
    N
    @peterfido Ich hatte 2 Fragezeichen zuvor schon mal direkt bei der Ökofen Peletronic probiert - und dann zeigt die wieder die Dokumentation an. Immer wenn ein ungültiger Request kommt, dann wird die Dokumentation angezeigt. Ich habe es jetzt nochmals mit httpGet probiert: es scheint, dass Axios dann nix wegschneidet. D.h. die beiden Fragezeichen weiterleitet, weil die Peletronic dann auch die Dokumentation liefert. Frustrierend
  • [gelöst] Beste Vorgehensweise???

    15
    0 Votes
    15 Posts
    1k Views
    amg_666A
    @codierknecht Mein Post oben war auch etwas komprimiert :-) Ich frage auch ab ob z.B. Schulferien sind, dann gehen Rolläde in den Kinderzimmern später hoch. Gleitzeit/Schicht etc kann man ja in einem (google) Kalender eintragen und den dann abfragen
  • Fehler: Bild via Telegram verschicken

    6
    0 Votes
    6 Posts
    592 Views
    T
    @haus-automatisierung danke!
  • Javascript E-Mail Anhang abrufen und Speichern

    4
    1
    0 Votes
    4 Posts
    445 Views
    Sebastian MöllerS
    Ich danke euch beiden. Hat Funktioniert.
  • Schedule - Spezial Frage

    javascript
    4
    0 Votes
    4 Posts
    389 Views
    OliverIOO
    @bahnuhr das funktioniert grundsätzlich. allerdings, wenn während der an-phase der javascript adapter neugestartet wird oder iobroker neu gestartet wird, dann gibt es den timout nicht mehr. da du aber sehr kleinteilig schaltets, wird ja beim nächsten mal an, der timer wieder gestartet
  • Fehler im Script

    18
    0 Votes
    18 Posts
    2k Views
    paul53P
    @chaot sagte: Kann ich das dann einfach ersetzen? Keine Ahnung. Ich habe die Funktion writeFile() noch nicht benutzt.
  • (erledigt!) More than 100 subscriptions registered

    4
    0 Votes
    4 Posts
    1k Views
    U
    @oliverio Danke schön!! Ja, ich mache es bewusst und sind ca. 150 subscriptions. Der Rechner ist performant.
  • API-Zugriff (hier: Reolink API)

    9
    2
    0 Votes
    9 Posts
    2k Views
    P
    @oliverio danke für den Tipp, habs so umgesetzt. Hier mal für alle die ähnliches vorhaben zusätzlich der Code mit dem dann auf Grundlage des ermittelten Tokens die Steuerbefehle abgesetzt werden. Auch in dem Code gibt es sicher Optimierungsmöglichkeiten, aber er funktioniert :) 'use strict' // Token für Kamera 3 ermitteln aund speichern schedule("*/30 * * * *", async () => { httpPost('http://192.168.22.42/api.cgi?cmd=Login', '[{ "cmd":"Login", "param":{ "User":{ "Version": 0, "userName":"XXX", "password":"YYY"}}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => { let ergebnis = JSON.parse(response.data); let Token = ergebnis.find(el=>el.cmd=="Login").value.Token.name setState('0_userdata.0.Token_Kamera3', Token, true); }); }); // Kamara Links on({id: '0_userdata.0.Kamera3_Links', change: 'gt'}, function(obj) { let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val; httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Left", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => { }); }); on({id: '0_userdata.0.Kamera3_Links', change: 'lt'}, function(obj) { let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val; httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => { }); }); // Kamara Rechts on({id: '0_userdata.0.Kamera3_Rechts', change: 'gt'}, function(obj) { let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val; httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Right", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => { }); }); on({id: '0_userdata.0.Kamera3_Rechts', change: 'lt'}, function(obj) { let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val; httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => { }); }); // Kamara Auf on({id: '0_userdata.0.Kamera3_Auf', change: 'gt'}, function(obj) { let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val; httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Up", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => { }); }); on({id: '0_userdata.0.Kamera3_Auf', change: 'lt'}, function(obj) { let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val; httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => { }); }); // Kamara Ab on({id: '0_userdata.0.Kamera3_Ab', change: 'gt'}, function(obj) { let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val; httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Down", "speed":16}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => { }); }); on({id: '0_userdata.0.Kamera3_Ab', change: 'lt'}, function(obj) { let Adresse= 'http://192.168.22.42/api.cgi?cmd=PtzCtrl&token=' + getState("0_userdata.0.Token_Kamera3").val; httpPost(Adresse, '[{ "cmd":"PtzCtrl", "param":{ "channel":0, "op":"Stop"}}]', { timeout: 3000, responseType: 'arraybuffer' }, async (err, response) => { }); });
  • Klingelbild via Telegram versenden klappt nicht mehr

    13
    1
    0 Votes
    13 Posts
    1k Views
    HomoranH
    @bahnuhr sagte in Klingelbild via Telegram versenden klappt nicht mehr: Wieso ist er jetzt wieder drin ? weil ich ihn wiederhergestellt habe, da sonst der Zusammenhang zerstört wäre. @bahnuhr sagte in Klingelbild via Telegram versenden klappt nicht mehr: Ich hatte oben meinen Beitrag gelöscht. ... Das ist nicht ok.
  • request package is deprecated - please use httpGet ...

    18
    0 Votes
    18 Posts
    2k Views
    HomoranH
    @thomas-braun sagte in request package is deprecated - please use httpGet ...: Ohne @... Danke! Hab's verbessert

446

Online

33.0k

Users

83.4k

Topics

1.3m

Posts