Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 49.0k Posts

NEWS

  • Fehler im Script

    18
    0 Votes
    18 Posts
    1k 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
    995 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
    952 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
    1k 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
    546 Views
    D
    @homoran okay, danke für deine Hilfe
  • Hilfe bei Skripte von request auf httpGet umbauen

    132
    0 Votes
    132 Posts
    19k 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
    257 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
    366 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
    442 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
    226 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
    388 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
    296 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
    2k 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' }
  • ifan (tasmota) mit Alexa über iot-adapter steuern

    1
    0 Votes
    1 Posts
    177 Views
    No one has replied
  • 3 Skripte melden Fehler seit js 8.4.0

    21
    0 Votes
    21 Posts
    3k Views
    D
    @ilovegym ja alles gut, dann weiß ich das es nicht an mir liegt. danke
  • SSLstrict deaktivieren in httpPost

    5
    0 Votes
    5 Posts
    442 Views
    R
    @haus-automatisierung, vielen Dank für Deien Antwort. Ja, die Doku ist hier durchaus hilfreich und jetzt macht auch alles einen Sinn. Allerdings habe ich den Sourcecode schneller gefunden. Ich werde dann darauf warten, dass v8.4 offiziell in der GUI angeboten wird. Ich hoffe es wird nicht allzu lange dauern. Gruß Ralf
  • axios.get Abfrage

    15
    0 Votes
    15 Posts
    739 Views
    haus-automatisierungH
    @oliverio Die httpGet-Funktion nimmt intern die URL auseinander und setzt die Header richtig. Funktioniert also auch mit Credentials in der URL. https://github.com/ioBroker/ioBroker.javascript/blob/6162239596a4d4f5ca9001dc136aacf3061f4013/lib/tools.js#L150-L162
  • Umbau von request auf httpGet schickt nur den Pfad

    7
    0 Votes
    7 Posts
    678 Views
    Thomas HuberT
    @andre hat hier vielleicht eine Lösung, da das Script ursprünglich von seinem Blog ist :thinking_face:
  • Rechnen mit Timestamps und Datenpunkten

    4
    0 Votes
    4 Posts
    364 Views
    paul53P
    @warhammer73 sagte: liefert nur die Uhrzeit Dann nimm bei setState() new Date().toString() oder formatDate(new Date(), 'YYYY-MM-DD hh:mm:ss')

574

Online

32.7k

Users

82.4k

Topics

1.3m

Posts