Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.3k Posts

NEWS

  • Javascript wird nicht mehr getriggert

    javascript
    1
    1
    0 Votes
    1 Posts
    171 Views
    No one has replied
  • setState() ohne auslösen von Ereignissen

    5
    0 Votes
    5 Posts
    186 Views
    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 Votes
    9 Posts
    540 Views
    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 Votes
    2 Posts
    2k Views
    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 Votes
    3 Posts
    210 Views
    etvE
    @paul53 ...Scham über mich und meine Nachkommen :anguished: :astonished: :baby:
  • Post JSON an Yamaha AV Receiver

    Moved javascript
    12
    1
    0 Votes
    12 Posts
    830 Views
    S
    Das wäre sehr hilfreich. Danke für Deine Mühe. Gruß.
  • Aufzählung - ein Teil funktioniert iwie nicht

    15
    0 Votes
    15 Posts
    783 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
    595 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
    295 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
    572 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
    412 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
    975 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
    988 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
    125 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
    293 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
    482 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
    202 Views
    etvE
    @paul53 , danke dir - werd' ich gleich ändern.... Liebe Grüße Tom

282

Online

32.4k

Users

81.4k

Topics

1.3m

Posts