Skip to content

JavaScript

2.5k Topics 49.9k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Wann async/await?

    7
    0 Votes
    7 Posts
    890 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
    605 Views
    T
    @haus-automatisierung danke!
  • Javascript E-Mail Anhang abrufen und Speichern

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

    javascript
    4
    0 Votes
    4 Posts
    398 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
  • Ordnerstruktur im Javascript Adapter

    7
    1
    0 Votes
    7 Posts
    678 Views
    D
    @homoran okay, danke für deine Hilfe
  • Hilfe bei Skripte von request auf httpGet umbauen

    132
    0 Votes
    132 Posts
    26k Views
    Ro75R
    @pefau Öffentliche IP, also dein Server oder irgendwo im Internet? Was sagt den der "response.statusCode"? Ro75.
  • JS Script Shelly3EM Pro MQTT Fehlermeldung

    3
    2
    0 Votes
    3 Posts
    342 Views
    H
    @mickym Danke für den Anstoß.... Habe schon die letzten Tage schauen wollen, was ich damals für einen Datentyp eingestellt habe. Bin immer daran hängen geblieben, daß ich nichts ändern konnte bzw. die Einstellungen nicht öffnen konnte. Habe gerade bemerkt, daß ich nicht im Expertenmodus war. So geht's wenn man nicht wirklich im Thema ist bzw. die Bedienung nicht intus hat. Scheint jetzt zu funktionieren ohne Fehlermeldung... Danke
  • [gelöst] Jetzt 2 Objecte, JavaScript (gelb) und scripte?

    4
    0 Votes
    4 Posts
    462 Views
    S
    @haus-automatisierung @paul53 dankeschön. Mir ist das heute zum ersten Mal aufgefallen.
  • Javascript v8.3.1 "on" Funktion immer mit "change: 'ne'"?

    4
    0 Votes
    4 Posts
    558 Views
    O
    @paul53 Vielen Dank, also hatte ich ja doch etwas falsch verstanden. Habe es nun ohne "id:{..}" eingebaut, wie du geschrieben hast und die Funktion wird auch ohne "change: 'ne'" nicht immer wieder ausgeführt. Vielen Dank für die schnelle Hilfe! Grüße, Olli
  • http post tagkeys und fieldkeys

    javascript communication
    5
    0 Votes
    5 Posts
    296 Views
    D
    @haus-automatisierung Ja, es funktioniert für meine Bedürfnisse hervorragend, da es große Flexibiliät beinhaltet. Es müssen nur im loggingTemplate die benötigten tags und fields eingetragen werden. Vielen Dank für Deine Unterstützung. Gruß DET
  • [SOLVED]Log wird von JS Script mit Meldungen geflutet

    4
    0 Votes
    4 Posts
    492 Views
    M
    Ich dachte es gäbe eine andere Möglichkeit... Danke für die Info.
  • [SOLVED] Warnmeldung bei mooncalc

    3
    0 Votes
    3 Posts
    373 Views
    M
    Mit der Änderung kommt keine Fehlermeldung mehr. var moontime = mooncalc.getMoonTimes(now, 50, 7); var tr = moontime.rise.getHours() + ':' + moontime.rise.getMinutes(); var ts = moontime.set.getHours() + ':' + moontime.set.getMinutes(); var state = "0"; if(p > 0.05) state = "1"; if(p > 0.2) state = "2"; if(p > 0.3) state = "3"; if(p > 0.45) state = "4"; if(p > 0.55) state = "5"; if(p > 0.7) state = "6"; if(p > 0.8) state = "7"; if(p > 0.95) state = "0"; setState("0_userdata.0.Astro.Mondstand.MondPhasenText",state); Danke.
  • [SOLVED] require request ersetzen durch httpPost in JS

    16
    0 Votes
    16 Posts
    3k Views
    D
    @paul53 Mit deiner Idee und dem Attribute "form" bekomme ich zwar keinen Timeout mehr, eine Sprachausgabe erfolgt aber nicht. Timeout Variable habe ich wieder rausgenommen, da 2000ms mehr als ausreichend sein sollte. httpPost('http://192.168.178.51:8765', { form: {sayit: 'Sprachausgabe' }}, (error, response) => { if (!error) { console.log(response.statusCode); console.log(response.data); console.log(response.headers); } else { console.error(error); } }); javascript.0 12:09:24.356 info script.js.common.Sayit: 200 javascript.0 12:09:24.356 info script.js.common.Sayit: <html><head><head><body><h1>Hello, World</h1></body>Header<br/>content-length : 29 remote-addr : 192.168.178.252 http-client-ip : 192.168.178.252 host : 192.168.178.51:8765 content-type : application/json connection : keep-alive accept-encoding : gzip, compress, deflate, br accept : application/json, text/plain, */* user-agent : Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/121.0 <br/>----<br/>method = POST<br/>uri = /<br/>Params<br/>NanoHttpd.QUERY_STRING : null<br/></html> javascript.0 12:09:24.356 info script.js.common.Sayit: Object [AxiosHeaders] { 'content-type': 'text/html', date: 'Sun, 23 Jun 2024 10:09:24 GMT', connection: 'keep-alive', 'content-length': '496' }

400

Online

33.1k

Users

83.7k

Topics

1.3m

Posts