Weiter zum Inhalt

JavaScript

2.5k Themen 49.7k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Zeilenangabe in Fehlermeldung / Debugging

    2
    0 Stimmen
    2 Beiträge
    383 Aufrufe
    paul53P
    @jsc sagte: In Zeile 206 im skript kellerenteuchung ist eine Leerzeile... Dann kann der Fehler auch in Zeile 205 sein, insbesondere dann, wenn eine schließende Klammer fehlt.
  • Antwort von blueprint/Routine erscheint nicht in summary

    1
    0 Stimmen
    1 Beiträge
    96 Aufrufe
    Niemand hat geantwortet
  • [gelöst] on{... , change: "any"} läuft immer 2x mal

    javascript
    19
    0 Stimmen
    19 Beiträge
    2k Aufrufe
    T
    Würde gerne noch etwas einbringen. Soweit ich sehe verwendest du obj.state.val nicht. Dann könntest du val:true benutzen. Ob das mit dem timer[obj.id] Sinn macht. Ja ist doch kaum Arbeit. Ich würde es dann aber eher so lösen: var devices = {}; on(...(obj)=> { devices[obj.id] = true; //hier entprellen setTimeout(meineFunktion,100); }) function meineFunktion() { for (let dev in devices){...} devices = {}; } Kann Syntaxfehler enthalten. :)
  • komme mit schedule nicht klar...

    javascript
    5
    0 Stimmen
    5 Beiträge
    815 Aufrufe
    Z
    @ELK Moin, ich stand vor der gleichen Herausforderung: Ich lasse mir im Script Einmalausführungstermine errechen und erstelle dann einen schedule. Beispiel: var scheduleEin = schedule(Minuten + " " + Stunde + " * * *", Funktion); Mit clearschedule(scheduleEin) lösche ich den schedule wieder (letzte Zeile der aufgerufenen Funktion).
  • Kamera-Snapshot: Verzögerung einbauen im Skript

    1
    0 Stimmen
    1 Beiträge
    341 Aufrufe
    Niemand hat geantwortet
  • [gelöst] Rechnen mit Datenpunkt --> NaN

    javascript
    7
    0 Stimmen
    7 Beiträge
    554 Aufrufe
    Lenny.CBL
    @paul53 Edit: Doch nicht. 1 - 1.8998/0.93 ist kleiner als -1 und kann mit Math.acos() nicht berechnet werden (Ergebnis: NaN). genau der entscheidende Punkt! Ich hatte mir Math.acos() und den Bereich von -1 bis 1 auch schon angesehen, da ich aber in den "manuellen DP" immer 180cm eingetragen hatte, passte die Rechnung. Zwischenzeitlich regnete es aber und die Zisterne füllte sich bin in den Dome rein. Daher ging es mit dem javascript-DP und mit dem mqtt-DP nicht. Was ist nun passiert: die Messung ergab 189cm Füllhöhe die von mqtt-DP abgebildet wurden. Der Durchmesser meines berechneten Zylinders (ohne Dome) beträgt 93cm. 93cm * 2 = 186cm. Wenn ich nun ein Volumen berechen will, welches mehr als den doppelten Radius als Füllhöhe hat, wird es immer mit NaN enden. @paul53 nochmal vielen Dank, das war wieder der richtig Tipp!
  • Gembird PM2 Lan Steckdose über Iobroker ansteuern

    1
    0 Stimmen
    1 Beiträge
    106 Aufrufe
    Niemand hat geantwortet
  • [gelöst] History Adapter - Werte löschen?

    javascript
    16
    0 Stimmen
    16 Beiträge
    2k Aufrufe
    HomoranH
    @HomeNet sagte in [gelöst] History Adapter - Werte löschen?: Ich vermute das es der "ts" Wert ist, ich verstehe den Wert aber nicht. korrekt. Der TimeStamp wird in Unixzeit allerdings in Millisekunden angegeben. Also bei Unixtime.de deinen gewünschten Wert berechnen lassen und 3 Nullen anhängen
  • [gelöst] Vis ChangeView funktioniert nicht mehr (bei mir)

    javascript
    8
    0 Stimmen
    8 Beiträge
    739 Aufrufe
    bahnuhrB
    @JohGre sagte in [gelöst] Vis ChangeView funktioniert nicht mehr (bei mir): Das wars, mein Trigger funktioniert nicht. Ich dachte, das hättest du schon gecheckt. Hast ja auch ein log eingebaut. Dieses muss dann ja auch nicht gekommen sein.
  • Javascript wird nicht mehr getriggert

    javascript
    1
    1
    0 Stimmen
    1 Beiträge
    188 Aufrufe
    Niemand hat geantwortet
  • setState() ohne auslösen von Ereignissen

    5
    0 Stimmen
    5 Beiträge
    235 Aufrufe
    N
    @paul53 said in setState() ohne auslösen von Ereignissen: @nr001 Wozu soll das gut sein ? Es gibt gewisse Situationen wo man das braucht :) @htrecksler said in setState() ohne auslösen von Ereignissen: @nr001 Link Text dort wird das behandelt Vielen Dank!!!!
  • Frage, was ist besser viele Kleine ein Großes Script?

    9
    0 Stimmen
    9 Beiträge
    812 Aufrufe
    A
    Danke für die Zahlreichen Antworten, Ich denke von jedem kann ich etwas mitnehmen. Bin auch angefangen ein bisschen in Ordner zu sortieren. OK, dann scheint es zumindest seitens ioBroker egal zu sein ob ein großes oder viele kleine, halt mit den Vor und Nachteilen... Ich glaube dann bin ich auf einen guten Weg, einige habe ich zusammengefasst in etwas größeren, und habe aber auch einiges einzeln gehalten. Das mit den mehreren Instanzen muss ich mal schauen ob es bei mir sinn macht. Danke Euch
  • Batterieabfrage mit Mailversand und VIS

    2
    2
    0 Stimmen
    2 Beiträge
    2k Aufrufe
    Dominik F.D
    @fastsonic Es gibt schon so ein Script. Vielleicht ist es ja genau das was du suchst, wenn du überhaupt noch suchst :D https://forum.iobroker.net/topic/31676/vorlage-generische-batteriestandsüberwachung-vis-ausgabe
  • Script läuft nach Auslösung 2x...

    javascript
    3
    0 Stimmen
    3 Beiträge
    263 Aufrufe
    etvE
    @paul53 ...Scham über mich und meine Nachkommen
  • Post JSON an Yamaha AV Receiver

    Verschoben javascript
    12
    1
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    S
    Das wäre sehr hilfreich. Danke für Deine Mühe. Gruß.
  • Aufzählung - ein Teil funktioniert iwie nicht

    15
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    Mrs-BM
    Huhu... Ich hab endlich wieder etwas Zeit gefunden um an meinem Script (siehe oben) weiter zu basteln... Hab da noch folgende Frage: Mit folgenden Zeilen lege ich ja fest wonach gesucht werden soll: var cacheSelectorSwitchNord = $('stateid=*.1'); var cacheSelectorSwitchOst = $('stateid=*.1'); Also hier für mein Beispiel nach Datenpunkten mit der ID "1" mit der jeweils zugewiesenen function... Nun hab ich aber noch ne Steckdosenleiste die mitgezählt werden soll ... Hier heißen die ID`s leider nicht "1" ... Kann man auch einfach nur nach den Datenpunkten suchen die die function zugewiesen haben? Also ohne Angabe der ID? Würde dann natürlich die entsprechende function auch nur den passenden Datenpunkten zuordnen... Geht das? Und wie müsste ich das anstellen?
  • [gelöst]Skript als Alternative zum Scenenadapter

    javascript
    17
    0 Stimmen
    17 Beiträge
    844 Aufrufe
    Dominik F.D
    Super, jetzt funktioniert wirklich alles :) Ich vermute das liegt daran, dass die states den Befehl mit leichter Verzögerung untereinander erhalten?
  • Sprachausgabe

    6
    0 Stimmen
    6 Beiträge
    456 Aufrufe
    T
    @Caveman2020 Ich schlage da vor das du eine Variable benutzt die du als erstes mit var mode = -1 initialisiert. Die enthält dann erstmal -1. Wenn jetzt der erstes Illuminance Fall zutrifft überprüfst du ob die Variable 0 enthält tut sie das nicht setzt du sie auf 0 und gibst innerhalb der Abfrage die Sprachausgabe aus. Diese Sprachausgabe wird dann solange nicht wiederholt wie nicht einer der anderen Fälle eingetreten ist. Das machst du in jedem "Fall" mit einem anderen Wert für Mode.
  • Auslesen von Systemeinstellungen

    9
    0 Stimmen
    9 Beiträge
    873 Aufrufe
    BluefoxB
    adapter.getForeignObject("system.config", (error, obj) => { adapter.log.debug(Unit: ${obj.common.tempUnit}); })
  • [gelöst] $-Selektor: Triggern bei enum-Änderungen

    3
    2
    0 Stimmen
    3 Beiträge
    566 Aufrufe
    FoodFighterF
    @paul53 said in $-Selektor: Triggern bei enum-Änderungen: Die ID lautet "enum.functions.TEST" (TEST groß geschrieben) ? Oh...wow...Danke :man-facepalming: Der Name war "TEST", die id natürlich "enum.functions.test" ... manchmal ist es dann doch so einfach. [image: 1587816966869-screenshot-2020-04-25-14.13.06.png] Der untere Teil des Scripts funktioniert jetzt. Wenn ich aber das Licht "WZ_Couch_Licht" einschalte und damit der Datenpunkt "POWER" von false auf true wechselt, sollte doch der obere Script eine Log-Ausgabe mit "####Dieser test wurde geändert: " + obj.id machen. Das funktioniert noch nicht. Dabei wäre genau das der Trigger, den ich bräuchte. Ich vermute hier noch einen ähnlichen Schusselfehler. [Edit:] So funktioniert es: $('state[id=*](functions=test)').on(function(obj) { console.log("####3###Dieser test wurde geändert: " + obj.id); });; Vielen Dank für deine Hilfe!

258

Online

33.0k

Benutzer

83.4k

Themen

1.3m

Beiträge