Weiter zum Inhalt

JavaScript

2.5k Themen 49.7k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • error: schedule callback missing

    4
    0 Stimmen
    4 Beiträge
    516 Aufrufe
    A
    @paul53 Vielen Dank für den Hinweis. Tatsächlich hatte ich ein Skript in Global laufen welches den Fehler produziert hat. Da hatte ich ein falsches schedule drin. Das Skript sollte sowieso nicht da drin sein :D Vielen Dank
  • Telegram gesendetes Bild ändern

    2
    0 Stimmen
    2 Beiträge
    370 Aufrufe
    M
    @xyolyp editMessageMedia wird zurzeit nicht unterstützt, soweit ich es gesehen habe. Leg doch ein Issue an: https://github.com/iobroker-community-adapters/ioBroker.telegram/issues
  • Telegram Bot Nachrichten löschen

    4
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    N
    @agreen ich würde versuchen den bot erstmal als admin in der gruppe zu erzeugen : [image: 1619435199869-5d7c413d-0e3f-49ae-b830-ffa1652e4834-image.png] und danach musst du wohl oder übel den passwortschutz entfernen (iobroker)
  • Wie erkenne ich ob ein SetState erfolgreich war?

    9
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    KodijackK
    @fastfoot Danke auch dir! Das ist wohl tatsächlich die einzige Möglichkeit.
  • Typescript Zugriff auf enum members

    3
    0 Stimmen
    3 Beiträge
    135 Aufrufe
    A
    @paul53 Vielen Dank für die schnelle Antwort. In Javascript funktioniert der Zugriff auch wie Du vorgeschlagen hast: getObject("enum.status.alarm").common.members; Aber in Typescript bekomme ich leider einen Compiler Fehler: javascript.0 (7963) script.js.benachrichtigungen.Alarm: TypeScript compilation failed: getObject("enum.status.alarm").common.members; ^ ERROR: Property 'members' does not exist on type 'StateCommon | ObjectCommon | ChannelCommon | OtherCommon'. Property 'members' does not exist on type 'StateCommon'.
  • JSON Post

    3
    1
    0 Stimmen
    3 Beiträge
    301 Aufrufe
    OliverIOO
    @ente34 sagte in JSON Post: var request = require('request'); on({id: "javascript.0.Devices.Tdarr.Worker", change: 'any'}, function (obj) { const myObj = { "nodeID": "local", "process": "increase", "workerType": "transcodecpu" }; const options = { url: 'http://192.168.1.214:8102/api/v2/alter-worker-limit', method: 'POST', body:myObj, json:true }; request(options,function (error, response, body){ error && console.log('error:'+error); response && console.log('response:'+response); body && console.log('body:'+body); }); }); Rtfm Gemäß der doku muss es body und json heißen. Hab den Code angepasst https://github.com/request/request#requestoptions-callback
  • const Deklaration nicht auffindbar

    4
    3
    0 Stimmen
    4 Beiträge
    476 Aufrufe
    tseroT
    Ahhh ... der Expertenmodus muss her! Jetzt sehe ich ein Verzeichnis 'global' und da drinnen gibt es ein Script 'Konstante' mit der Deklaration! Tja, man sollte sich keine längeren Pausen gönnen ... Danke für den Tipp!!
  • Dieses Thema wurde gelöscht!

    4
    0 Stimmen
    4 Beiträge
    12 Aufrufe
  • Globale Funktion in Blockly

    8
    3
    0 Stimmen
    8 Beiträge
    542 Aufrufe
    paul53P
    @peterk34 sagte was meinst mit man wird sie nicht mehr los ? Die Log-Ausgaben nutzt man zum Debuggen. Wenn ein Debugging nicht mehr nötig ist, will man sich nicht das Log zumüllen. Deshalb würde ich die Log-Ausgaben nicht innerhalb von häufig verwendeten globalen Funktionen platzieren. EDIT: Du kannst "erstelle Text aus ..." als Rückgabewert verwenden. Dann kann im aufrufenden Skript die Log-Ausgabe damit erfolgen oder auch nicht.
  • Sinnvolles Logging

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    cashC
    @ofbeqnpolkkl6mby5e13 dann hätte ich hunderte von Datenpunkten. Das wäre mir zu Mühsam. Eigentlich weiß ich meist auch unter welchen Konstelationen das Problem auftritt und kann es nachstellen. Wenn nicht ist es so ein Sonderfall da kann ich auch gerne warten bis das Problem ein zeites mal Auftritt. Hatte ich bisher aber noch nicht. Wenn ich ein Script schreibe steht debugging erstmal auf true bis das es läuft. Meine Lösung hat mir bisher immer gereicht. Aber ja viele Wege führen nach Rom.
  • [gelöst]socket problem

    javascript
    3
    0 Stimmen
    3 Beiträge
    265 Aufrufe
    S
    @asgothian Ohhh, kannte ich noch nicht...wieder was gelernt Vielen Dank, funktioniert
  • (gelöst) Influxdb Query Zeitraum

    javascript
    3
    0 Stimmen
    3 Beiträge
    361 Aufrufe
    L
    @ente34 Vielen Dank, funktioniert! MfG Wastl
  • Memory Heap Error bei einfacher Schleife

    7
    0 Stimmen
    7 Beiträge
    452 Aufrufe
    D
    @dilldappe-io Bei mir hat das Script mit der Verzögerung nicht funktioniert. Aber ich habe an meinem Shelly RGBW2 dann die App-Einstellung gefunden, ihn immer blinken zu lassen. Nun schallte ich ihn vom ioBroker nur mit der Farbe und ein/aus.
  • Javascript - async function - wie ist die Reihenfolge

    12
    1
    0 Stimmen
    12 Beiträge
    2k Aufrufe
    paul53P
    @atifan sagte: jede Zeile durch einen eigenen Cron, jeweils immer mit 5 Sekunden Verzögerung zum vorherigen Cron getriggert wird. Unnötige Ressourcen-Verschwendung! Liest Du auch mal Antworten?
  • JS variablen lieber lokal als global

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    857 Aufrufe
    apollon77A
    @crycode naja der Editor kann nicht wissen das später bei der Ausführung andere globale Skripte davor sind und daher Variablen verfügbar sind die sonst nicht da sind.
  • [gelöst] Alexa Devices Generisch Durchlaufen

    Verschoben
    15
    0 Stimmen
    15 Beiträge
    608 Aufrufe
    Ben1983B
    @grrfield Heute hat es komischerweise funktioniert. Habe es jetzt so gelöst um alle Geräte aus zu geben, welche Sprache wiedergeben können und auch online sind. let AlexaDeviceId = ""; let Devices = $(IdAlexaDevices + ".*." + IdAlexaSprachausgabe); Ausgabe = ""; Devices.each(SendDeviceNames); SendMessage(Ausgabe,UserName); function SendDeviceNames(id,i) { // Da das Ende bekannt sind, kann durch Substring die ID erstellt werden. AlexaDeviceId = id.toString().substring(0,id.length - IdAlexaSprachausgabe.length - 1); // Abfragen, ob das Gerät online ist (Nur online erreichbare Geräte sollen aufgelistet werden) if(getState(AlexaDeviceId + IdSuffixOnline).val == true) { if(Ausgabe =="") { Ausgabe = Ausgabe + getObject(AlexaDeviceId).common.name; } else { Ausgabe = Ausgabe + "\n" + getObject(AlexaDeviceId).common.name; } } } Ps. Bis ein Gerät als offline angezeigt wird, dauert es allerdings ewig. Ich habe nun schon 5min eine Alexa vom Strom getrennt und sie wird immer noch als online angezeigt.
  • CPU Temperatur Skript

    5
    1
    0 Stimmen
    5 Beiträge
    543 Aufrufe
    paul53P
    @schotter sagte: Mit der Korrektur bleibt das Skript stumm? Ich kann nirgends ein log(text) finden. Mit pushover kenne ich mich nicht aus.
  • Erzeugen von DP mit Array.forEach() funktioniert nicht

    3
    0 Stimmen
    3 Beiträge
    501 Aufrufe
    F
    @crycode sagte in Erzeugen von DP mit Array.forEach() funktioniert nicht: @fastfoot Ich denke das Problem hier ist, dass .forEach für jedes Element im Array die angegebene Callback-Funktion aufruft, aber nicht auf die asynchrone Fertigstellung wartet. was mich verwundert, die create-Funktion wird ja aufgerufen, dennoch wird immer nur das letzte Element erzeugt. Du kannst dein Array einfach mit for (let key of statesToCreate) { ... } durchlaufen. Dann sollte es klappen. jein :-) Die States werden jetzt erzeugt, aber nicht mit dem default Wert belegt :-( Verstehe das wer kann... Edit: Nach Neustart des Systems werden die Werte jetzt angezeigt! Ich habe es jetzt mit einer normalen for(let i=0;i < array.length; i++) Schleife gelöst, da scheint es so wie mit dem Objekt zu funktionieren. Vielen Dank für deinen Beitrag, key of Array hatte ich gar nicht auf dem Schirm, wenigstens habe ich noch etwas gelernt :-)
  • [gelöst] Schalten verzögert und mit bestimmter Dauer

    security
    9
    0 Stimmen
    9 Beiträge
    599 Aufrufe
    S
    tärrää So gehts, wenn ich zwei Timeouts verschachtel, läuft es wie geschmiert. var timeoutisv var timeoutisd on({id: "javascript.0.alarmgeber.innensirene", change: "ne"}, function (obj) { if (obj.state.val === true) { timeoutisv = setTimeout(function () { setState("zwave.0.NODE12.SWITCH_BINARY.Instance_2:_Switch_2", true); timeoutisd = setTimeout(function () { setState("zwave.0.NODE12.SWITCH_BINARY.Instance_2:_Switch_2", false); setState("javascript.0.alarmgeber.innensirene", false); }, getState("javascript.0.alarmgeber.alarmInnerSirenDuration").val*1000); }, getState("javascript.0.alarmgeber.alarmInnerSirenDelay").val*1000); } }); @ahnungsbefreit Danke für deine Unterstützung
  • [gelöst]Script per Schedule neustarten

    5
    0 Stimmen
    5 Beiträge
    174 Aufrufe
    M
    @liv-in-sky Ohje, na vielen Dank für den Tipp.

567

Online

33.0k

Benutzer

83.3k

Themen

1.3m

Beiträge