Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.5k Posts

NEWS

  • Javascript Frage zum Wert eines Objektes

    javascript
    4
    0 Votes
    4 Posts
    296 Views
    paul53P
    @klaus88 sagte: Muss ich auf "NaN" abfragen oder auf "" oder auf NULL oder auf die Zahl 0 ? Kein Wert bedeutet undefined. Es kann aber sein, dass der Javascript-Adapter bei getState(id).val daraus null macht.
  • Handler wenn Skript gestoppt wird

    5
    0 Votes
    5 Posts
    368 Views
    D
    Hi, danke! onStop() funktioniert wie erwartet. // close connection if script stopped onStop(function (callback) { if (connected) { console.log('Closing Port'); port.close(); } callback(); }, 2000 /*ms*/);
  • Schreiben erlauben per javascript

    11
    0 Votes
    11 Posts
    2k Views
    G
    Dank Dutchman konnte ich mein Problem lösen indem ich != genommen habe und er mir immer mein Widget anzeigt wenn nicht 2 genommen wird. Danke nochmal
  • Problem beim Vergleichen

    8
    0 Votes
    8 Posts
    437 Views
    paul53P
    @mrFenyx sagte: Das ganze ist ein Teil eines Skriptes wo dieses Wert auch leer gelassen sein könnte. Dann kann die ID aber nicht als Konstante deklariert sein. Übrigens stört sich der Compiler nicht an dem sinnlosen Vergleich, sondern führt den Code richtig aus. [image: 1599053793860-js_temp.jpg]
  • hilfe - javascript- axios, await - pause bei abruf von daten

    javascript
    6
    0 Votes
    6 Posts
    518 Views
    AlCalzoneA
    @liv-in-sky Ah, ok das lässt sich ändern. Müsste aber so funktionieren.
  • Fehlerhaften Messwert eliminieren

    blockly
    4
    2
    0 Votes
    4 Posts
    279 Views
    docadamsD
    @paul53 Vielen Dank für den Tipp. Ich habe jetzt den Entprellwert von 1000 auf 2000ms gesetzt und beobachte das. Vielleicht war es das schon. Wenn nicht, werde ich es zunächst mit 3000ms versuchen, und dann mit deinem Skript.
  • Mit "new Date()" im Script arbeiten?

    3
    0 Votes
    3 Posts
    599 Views
    DutchmanD
    @IdleBit sagte in Mit "new Date()" im Script arbeiten?: Logisch wenn ich nur bei erstellen die Funktion aufrufe .... :blush: manchmal hilft es Einfach mal laut nach zu denken :) Aber genau, du lädst die zeit in einer variable beim script starten, mja danach ist sie drin. Tip : var ist alte Schreibweise, besser const und let https://medium.com/@josephcardillo/the-difference-between-var-let-and-const-in-javascript-part-2-60fa568d0a0 Dan harttest du beim deklarieren direct gemerkt, uhm ich mache ne const .... warte mal Zeiten ändern sich doch :blush:
  • Javascript VIS/Widgets vs ioBroker/Blockly

    4
    0 Votes
    4 Posts
    349 Views
    S
    @rokket Entschuldigung. Du willst ja mit dem Button zwei unterschiedliche Datenpunkte nutzen: Dann brauchst du einen selbst erstellten Datenpunkt welchen du als ObjektID in das VisWidget einsetzt. Dazu ein Blockly wie oben von dir geschrieben. In VIS brauchst du KEIN weiteres Script
  • simples Script treibt Leistung durch die Decke[solved]

    7
    0 Votes
    7 Posts
    406 Views
    paul53P
    @Johannes-Bauerstatter sagte: war es einfach ein Fehler von mir? Ja. Mit Objekt-Klammern wird auf jede Zustandsaktualisierung (Zeitstempel) getriggert. Die richtige Schreibweise wäre gewesen: on({id: chg}, function (obj) {
  • Eigene SQLite-DB anbinden

    3
    0 Votes
    3 Posts
    627 Views
    S
    @AlCalzone ah, danke für die Info. Scheint zu funktionieren!
  • Vergangene Zeit seit lastchanged

    5
    0 Votes
    5 Posts
    459 Views
    CrunkFXC
    @paul53 So wird ein schuh draus, vielen Dank euch beiden.
  • Erstellen eines eigenen Objekt

    Moved
    8
    2
    0 Votes
    8 Posts
    468 Views
    paul53P
    @Oskar sagte: das habe ich leider noch nicht verstanden Kopiere das Script aus dem Forum in den Javascript-Editor und passe die IDs für idOrigin und idAlias an. Danach starte das Script (kann anschließend wieder gestoppt werden) und der Alias-Datenpunkt wird erstellt. Alternativ kann man Alias-Datenpunkte auch manuell erstellen, was aber viel mehr Kenntnisse voraussetzt.
  • javascript Import Fehler INSTANZ IST DEAKTIVIERT (gelöst)

    javascript
    3
    0 Votes
    3 Posts
    440 Views
    X
    @Dutchman Bester MANN!!! Das wars! DANKE!!
  • Split is not a Function;Ölpreisskript

    javascript
    2
    0 Votes
    2 Posts
    377 Views
    M
    @Adnim wenn du das Logging aktivierst siehst du das es daran liegt, dass das Datum nicht korrekt ermittelt werden kann (Zeile 89).
  • [gelöst] Über Datenpunkte iterieren und Inhalte auswerten

    javascript
    4
    1
    0 Votes
    4 Posts
    394 Views
    HiltexH
    Falls das noch jemand gebrauchen kann - hier der Code, der ansich funktioniert. Muss nur jeder für sich schauen, ob er andere Datenpunkte für die Auswertung heranziehen will, beispielsweise is_online. Da teste ich gerade noch, was besser passt. Im Moment frage ich ab, ob der jeweilige Client zuletzt mit dem Gast-WLAN verbunden war und in den letzten 2 Minuten gesehen wurde... In den Adaptereinstellungen kann man das Offset für is_online einstellen. Setzt man diesen Wert auf 0 ist der Wert nach ca. 2 Minuten false, wenn der Client das WLAN verlassen hat. Das Prinzip der Abfrage dürfte mit diesem Script klar werden. schedule("*/10 * * * * *", function () { var GuestClients = 0; //WLAN-Clients holen mit Datenpunkt, der immer vorhanden ist let Clients = $('unifi.0.default.clients.*.is_online'); //Clients auswerten Clients.each(function(id, i) { //Datenpunkt abschneiden (Client erzeugen) var Client = id.split('.is_online')[0]; var ClientESSID = Client + '.essid' var ClientLastSeen = Client + '.last_seen_by_uap' //Netzwerknamen des Clients abfragen if (existsState(ClientESSID) && getState(ClientESSID).val == 'tremendous-Guest') { //Letzte Online-Zeit abfragen if (existsState(ClientLastSeen)) { var TimeLastSeen = getDateObject(getState(ClientLastSeen).val).getTime(); var TimeNow = new Date().getTime() //Wenn Client in den letzten 2 Minuten gesehen wurde... if (TimeNow - TimeLastSeen < 120000) { ++GuestClients; } } } }); setState('0_userdata.0.Netzwerk.WLAN.Anzahl_Gäste', GuestClients, true); //log('Gäste im WLAN: ' + GuestClients.toString()); });
  • [gelöst] createState überschreibt Daten?!

    13
    0 Votes
    13 Posts
    1k Views
    PeoplesP
    Hab das nochmal als neuen Thread aufgemacht
  • Warnung Java Script HILFE

    2
    0 Votes
    2 Posts
    226 Views
    paul53P
    @Jeba Ändere den Typ des Datenpunktes "javascript.0.scriptEnabled.Füllstand_Öltank.Abfrage_Heilölstand.Füllstand_in_%" in Zahl ("number").
  • createAlias, bitte Script überprüfen

    javascript
    4
    0 Votes
    4 Posts
    443 Views
    dslraserD
    @Berlon schau mal hier https://forum.iobroker.net/post/462078 und hier https://forum.iobroker.net/post/462092 und im ersten Beitrag ist ein kurzes Viedeo und Beispiele im Spoiler unter Vorlagen Alias und Vorlage Alias erstellen. https://forum.iobroker.net/post/273896
  • [Gelöst] Fehler bei Asterisk Installation

    10
    1 Votes
    10 Posts
    638 Views
    M
    @Thomas-Braun Ja, der Asterisk hat sich jetzt auch installieren lassen. Nochmal Danke!
  • Mehrere SetState schalten nicht

    6
    0 Votes
    6 Posts
    389 Views
    paul53P
    @CrunkFX sagte: Meinst du das so? Ja. schedule("59 23 * * *", function () { let end = getState(shelly_kwh).val; setState(end_str1, end); let diff = end - getState(start_str1).val; setState(dif_str1, diff); setState(kosten_tag_gestern, diff * preis_kwh)); });

474

Online

32.5k

Users

81.7k

Topics

1.3m

Posts