Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.5k Posts

NEWS

  • Aufzählung - ein Teil funktioniert iwie nicht

    15
    0 Votes
    15 Posts
    813 Views
    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 Votes
    17 Posts
    598 Views
    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 Votes
    6 Posts
    298 Views
    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 Votes
    9 Posts
    631 Views
    BluefoxB
    adapter.getForeignObject("system.config", (error, obj) => { adapter.log.debug(Unit: ${obj.common.tempUnit}); })
  • [gelöst] $-Selektor: Triggern bei enum-Änderungen

    3
    2
    0 Votes
    3 Posts
    430 Views
    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!
  • Alle Mitglieder einer Aufzählung schalten (gelöst)

    Solved
    30
    0 Votes
    30 Posts
    3k Views
    smartboartS
    @smartboart sagte in Alle Mitglieder einer Aufzählung schalten (gelöst): Danke für deine Tests ....Das ist bei mir definitv leider nicht so... Also nach dem js-controller update und den latest updates der letzten Tage ist alles tutti. Nur der Vollständigkeithalber. In der Sache gab es laut changelog auch änderungen..Super!!!
  • Javascript spinnt

    blockly javascript
    38
    2
    0 Votes
    38 Posts
    2k Views
    AlCalzoneA
    @paul53 Danke für den Test. Kann sein, dass ich für JS noch was anders machen muss. Habs immer nur in TS getestet.
  • SetStateDelayed

    javascript
    14
    0 Votes
    14 Posts
    1k Views
    T
    Das hab ich jetzt echt nicht getestet. Denke aber das es so richtig ist. setState() schreibt den Wert ebenfalls nicht direkt sondern erst wenn der Skriptabschnitt durchlaufen ist..
  • Backup Datei auf USB-Stick verschieben

    javascript
    7
    3
    0 Votes
    7 Posts
    990 Views
    M
    @simatec Ich habe jetzt einen neuen Stick mit FAT32 formatiert. Hat leider auch nicht funktioniert...
  • $-Selektor und Funktion?

    9
    1
    0 Votes
    9 Posts
    1k Views
    GarfonsoG
    @ticaki Gut, das du schreibst. ;-) Der Fehler ist in 4.5.0 behoben (in latest jetzt). Der Fehler war so, dass sich die functions und rooms eine Objektes auf die höchsten Eltern übertragen haben. Und zwar immer nur die vom ersten betrachteten Objekt. Die haben die dann an alle ihre Kinder weitervererbt (was auch so gedacht ist). Besonders verwirrend war, das die Reihenfolge der Objekte dabei zufällig ist und der Fehler damit nicht immer auftritt (also er passiert schon immer, aber oft passiert halt nichts schlimmes -> der war schon recht lange da). Also aus meinem Screenshot am Anfang als Beispiel: Wenn der state "alias.0.plugs.Deko_Einfahrt.state" als erstes genommen wird, wird dabei auch das devices "alias.0.plugs.Deko_Einfahrt" betrachtet mit Funktion "Hintergrundbeleuchtung" und "Steckdose" und Raum "Innenhof". Diese drei Eigenschaften wurden dann falscherweise an "alias.0" vererbt -> für den Rest der Laufzeit haben alle Objekte in alias.0 diese Eigenschaften vererbt bekommen (die Vererbung nach unten, also von alias.0.plugs.Deko_Einfahrt auf alias.0.plugs.Deko_Einfahrt.state ist, wie im Admin angedeutet, so vorgesehen. Aber nach oben ist natürlich Quatsch). -> jedenfalls, wenn ein Objekt mit "Hintergrundbeleuchtung" als erstes angefasst wurde, hatten alle Objekte diese Funktion, wenn nicht, dann lief es richtig. Vermutlich tritt der Fehler sehr selten auf, wenn die meisten states auf einer Ebene keine Funktionen / Räume haben. Aber in meinem Fall trat es halt recht häufig auf. Und ja, Räume sind genauso betroffen gewesen. So, nun behoben. Gleichzeitig wurde auch das Cache Update verbessert -> wenn es sonst da keine Fehler gibt, sollten enum-Updates jetzt auch keinen Neustart vom javascript adapter mehr erfordern (habe ich aber nicht ausführlich getestet).
  • [gelöst] Socket Problem - uncaught exception bei connect

    2
    0 Votes
    2 Posts
    132 Views
    GaspodeG
    Ich antworte mir mal selbst. Nachdem ich gestern schon eine Weile nach einer Lösung gesucht hatte, ist mir jetzt klar geworden, was man tun muss. Nach dem Erstellen des Sockets muss einfach explizit eine Timeout Funktion angegeben werden. Zweckmäßigerweise kann man einfach destroy des Socket selbst angeben, also: var client = new net.Socket(); client.setTimeout(5000, () => client.destroy());
  • Array mit Funktionsreferenzen in Objekt speichern

    3
    1
    0 Votes
    3 Posts
    301 Views
    T
    Eine einfach Lösung wäre die Funktion als string zu übergeben und dann über switch(func){ case 'set1': set1(args); break; case 'get1': return get1(); break; } die entsprechende Funktion aufzurufen.
  • MPD-Client steuern mit Telegram

    11
    0 Votes
    11 Posts
    483 Views
    T
    @jwerlsdf Soweit ich weiß nicht direkt, dafür mußt du einen eigenen Datenpunkt erstellen und ein Blockly bauen das auf diesen Datenpunkt triggert und den Pause Datenpunkt umschaltet.
  • clearSchedule wird nicht ausgeführt...

    javascript
    3
    0 Votes
    3 Posts
    205 Views
    etvE
    @paul53 , danke dir - werd' ich gleich ändern.... Liebe Grüße Tom
  • 2 Votes
    18 Posts
    2k Views
    T
    Da ich durch umfangreiche Bearbeitung des initialen Postings das Layout so "zerstückelt" habe, ist leider dieser Thread unbrauchbar geworden. Das initiale Posting ist nicht mehr editierbar / nichtmal für die Admins. Ich habe daher ein neues Posting angelegt und bitte alle dort weiterzumachen: https://forum.iobroker.net/topic/32207/script-messagehandler-nachrichten-protokollieren-vis @Foren-Admins: Bitte diesen Thread schließen.
  • Etamon Skript Warnungen - woher? [gelöst]

    javascript
    1
    0 Votes
    1 Posts
    208 Views
    No one has replied
  • Corona-Daten nach MySQL importieren

    Moved communication
    22
    1 Votes
    22 Posts
    3k Views
    sissiwupS
    Um einfacher Abfragen zu können habe ich eine Tabelle: cor_datum angelegt, hier sind die vorhandenen Datumswerte markiert: cor_datum.sql grafana: ioBroker Corona-1586463967124.json Wenn ihr im json R_meldedatum durch R_refdatum ersetz, dann bekommt ihr die Kurven nach Erkrankungsdatum und nicht nach Meldedatum.
  • Ical - keine Erkennung vom Kalender [gelöst]

    98
    0 Votes
    98 Posts
    8k Views
    I
    @wendy2702 habe momentan das Skript am laufen
  • Userdata: States mit Javascript anlegen

    Moved javascript
    10
    0 Votes
    10 Posts
    2k Views
    G
    @FredF Danke!
  • State Ordner von zwei Lampen syncen

    13
    1
    0 Votes
    13 Posts
    1k Views
    J
    @Jan1 said in State Ordner von zwei Lampen syncen: Nö, weil ich von Java Script kein Plan habe und das mit Blockly, wie Du schon erkannt hast es der selbe Code ist und ich eben schneller klicke als tippe :-) Ich habs ja nicht umsonst in das JavaScript Forum und nicht ins Blockly Forum gepostet ;-) @paul53 Zu früh gefreut :-D Meine Bedside Lamp 2 oder der Yeelight Adapter hat einen Bug, den ich vorher nicht gesehen hatte. bslamp2 schaltet (warum auch immer) ab und an den value power auf false, geht aber nicht aus. Die zweite Lampe dann natürlich schon... Paar sec später geht der value dann wieder auf true und die zweite Lampe wieder an. Sehr weird das ganze und so für mich keine Lösung. Rot rechts ist die "from" Spalte. Kommt also nicht von JS sondern vom Adapter/ der Lampe... [image: 1586249284261-1268e427-91c1-45d4-b5cb-95dc283240bc-image.png]

858

Online

32.5k

Users

81.7k

Topics

1.3m

Posts