Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.8k Beiträge

NEWS

  • Schreiben erlauben per javascript

    11
    0 Stimmen
    11 Beiträge
    2k Aufrufe
    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 Stimmen
    8 Beiträge
    453 Aufrufe
    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 Stimmen
    6 Beiträge
    528 Aufrufe
    AlCalzoneA
    @liv-in-sky Ah, ok das lässt sich ändern. Müsste aber so funktionieren.
  • Fehlerhaften Messwert eliminieren

    blockly
    4
    2
    0 Stimmen
    4 Beiträge
    286 Aufrufe
    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 Stimmen
    3 Beiträge
    618 Aufrufe
    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 Stimmen
    4 Beiträge
    356 Aufrufe
    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 Stimmen
    7 Beiträge
    442 Aufrufe
    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 Stimmen
    3 Beiträge
    641 Aufrufe
    S
    @AlCalzone ah, danke für die Info. Scheint zu funktionieren!
  • Vergangene Zeit seit lastchanged

    5
    0 Stimmen
    5 Beiträge
    473 Aufrufe
    CrunkFXC
    @paul53 So wird ein schuh draus, vielen Dank euch beiden.
  • Erstellen eines eigenen Objekt

    Verschoben
    8
    2
    0 Stimmen
    8 Beiträge
    488 Aufrufe
    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 Stimmen
    3 Beiträge
    463 Aufrufe
    X
    @Dutchman Bester MANN!!! Das wars! DANKE!!
  • Split is not a Function;Ölpreisskript

    javascript
    2
    0 Stimmen
    2 Beiträge
    389 Aufrufe
    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 Stimmen
    4 Beiträge
    414 Aufrufe
    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 Stimmen
    13 Beiträge
    1k Aufrufe
    PeoplesP
    Hab das nochmal als neuen Thread aufgemacht
  • Warnung Java Script HILFE

    2
    0 Stimmen
    2 Beiträge
    233 Aufrufe
    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 Stimmen
    4 Beiträge
    456 Aufrufe
    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 Stimmen
    10 Beiträge
    671 Aufrufe
    M
    @Thomas-Braun Ja, der Asterisk hat sich jetzt auch installieren lassen. Nochmal Danke!
  • Mehrere SetState schalten nicht

    6
    0 Stimmen
    6 Beiträge
    425 Aufrufe
    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)); });
  • noble restart scan in JS nur nach Instanz-Restart

    javascript
    3
    0 Stimmen
    3 Beiträge
    378 Aufrufe
    G
    @AlCalzone Okay, war felsenfest davon überzeugt, ich würde was vergessen. Danke für die Rückmeldung, werde das mit der eigenen Instanz in Betracht ziehen :+1:
  • Astrokonfiguration - keine Wirkung

    6
    0 Stimmen
    6 Beiträge
    512 Aufrufe
    paul53P
    @HauWi112 sagte: dayTimeSchedules() hab ich nicht zur Verfügung. Das ist wahrscheinlich eine interne Funktion des Javascript-Adapters. Mein Eindruck ist, dass die Konfigurationsdaten "Tageszeiteinstellungen" noch nicht im Script ausgewertet können.

730

Online

32.6k

Benutzer

82.1k

Themen

1.3m

Beiträge