Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.8k Beiträge

NEWS

  • [gelöst]Skript als Alternative zum Scenenadapter

    javascript
    17
    0 Stimmen
    17 Beiträge
    632 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
    307 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
    640 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
    439 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!
  • Alle Mitglieder einer Aufzählung schalten (gelöst)

    Gelöst
    30
    0 Stimmen
    30 Beiträge
    3k Aufrufe
    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 Stimmen
    38 Beiträge
    2k Aufrufe
    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 Stimmen
    14 Beiträge
    1k Aufrufe
    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 Stimmen
    7 Beiträge
    1k Aufrufe
    M
    @simatec Ich habe jetzt einen neuen Stick mit FAT32 formatiert. Hat leider auch nicht funktioniert...
  • $-Selektor und Funktion?

    9
    1
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    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 Stimmen
    2 Beiträge
    138 Aufrufe
    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 Stimmen
    3 Beiträge
    318 Aufrufe
    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 Stimmen
    11 Beiträge
    483 Aufrufe
    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 Stimmen
    3 Beiträge
    210 Aufrufe
    etvE
    @paul53 , danke dir - werd' ich gleich ändern.... Liebe Grüße Tom
  • [Script] MessageHandler: Nachrichten protokollieren +Widget

    Gesperrt javascript template monitoring
    18
    2
    2 Stimmen
    18 Beiträge
    2k Aufrufe
    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 Stimmen
    1 Beiträge
    213 Aufrufe
    Niemand hat geantwortet
  • Corona-Daten nach MySQL importieren

    Verschoben communication
    22
    1 Stimmen
    22 Beiträge
    3k Aufrufe
    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 Stimmen
    98 Beiträge
    9k Aufrufe
    I
    @wendy2702 habe momentan das Skript am laufen
  • Userdata: States mit Javascript anlegen

    Verschoben javascript
    10
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    G
    @FredF Danke!
  • State Ordner von zwei Lampen syncen

    13
    1
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    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]
  • Frage zu schedule/clearSchedule

    2
    0 Stimmen
    2 Beiträge
    155 Aufrufe
    T
    @joerg55 Bei einem gestoppten Script werden die beendet. Bei einem Script das einfach durchgelaufen ist, laufen die weiter. Soweit ich weiß kann man sich Zeitpläne nicht ansehen.

843

Online

32.6k

Benutzer

82.1k

Themen

1.3m

Beiträge