Weiter zum Inhalt

JavaScript

2.5k Themen 49.5k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Fehler in "if-Bedingung" / brauche mal Anfängerhilfe

    8
    0 Stimmen
    8 Beiträge
    531 Aufrufe
    S
    Muss mich korrigieren... es funktioniert. die ausgelassenen Werte werden allerdings als NULL ins JSON übernommen. Musst mein Blockly jetzt umbauen um die Nullwerte nicht zu übernehmen, nun klappt es...
  • Anfängerfrage

    4
    0 Stimmen
    4 Beiträge
    505 Aufrufe
    SchmakusS
    @janne16 du musst natürlich anstatt "null" bei den Values auch etwas eintragen! Schau dir die Beispiele im Script an. Un wieso postets du deine LightControl-Fragen nicht im passenden Thread? [Vorlage] LightControl
  • Datenpunkte in JSON aufbereiten [gelöst]

    26
    2
    0 Stimmen
    26 Beiträge
    3k Aufrufe
    MoppedmanM
    @liv-in-sky Deine Erklärung das du in der JS Funktion ein Objekt benötigst zusammen mit dem Hinweis von @paul53 das ich aus Blockly ein solches Objekt nicht direkt erzeugen kann hat "den Groschen Fallen lassen". Du hast auch richtig verstanden, dass ich die Werte monatlich schreiben möchte und daher ist dein Vorschlag direkt umsetztbar. Ich möchte nur einmalig die vorhandenen Datenpunkte der letzten 1,5 Jahre auslesen und diese ebenfalls in JSON übertragen. Danke für die Hilfe an alle. Mache mich jetzt and die Umsetzung.
  • (gelöst) clearSchedule Frage

    javascript
    16
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    ice987I
    @ticaki diese Lösung funktioniert perfekt! Vielen Dank für deine Hilfe!
  • Probleme mit Regex basiertem Trigger (gelöst)

    3
    0 Stimmen
    3 Beiträge
    268 Aufrufe
    F
    @olixatiobroker kann ich nicht nachvollziehen, obj enthält die zu erwartenden Werte: 0:30:51.281 info javascript.1 (489) script.js.testjs: {'id':'0_userdata.0.Test','newState':{'val':'4','ts':1637883051279,'ack':false,'lc':1637883051279,'from':'system.adapter.admin.0','q':0},'oldState':{'val':'3','ts':1637883033133,'ack':false,'lc':1637883033133,'from':'system.adapter.admin.0','q':0},'state':{'val':'4','ts':1637883051279,'ack':false,'lc':1637883051279,'from':'system.adapter.admin.0','q':0}}
  • Javascript zum umrechnen watt in kw/h täglich auf 0 setzten

    7
    0 Stimmen
    7 Beiträge
    907 Aufrufe
    AsgothianA
    @mmoeller53 sagte in Javascript zum umrechnen watt in kw/h täglich auf 0 setzten: @asgothian Verstehe die antwort nicht so ganz, also nach dem was ich von der quelle ablesen kann stimmt die berechnung (ausgerechnete kwh vom wechelrichter im vergleich zum skript) nun möchte ich aber das der errechnete wert im script täglich zurück auf 0 gesetzt wird und weiß nicht so recht wie. Der trick ist nicht um 0 Uhr auf 0 zurück zu setzen sondern bei der ersten Änderung nach 0 Uhr den Wert seit 0 Uhr zu berechnen. Dann sparst Du dir den ganzen Zeit-Krams mit cron job und Überscheidungen von Skripten um Mitternacht. A.
  • cron / schedule Zeitpunkte

    21
    0 Stimmen
    21 Beiträge
    1k Aufrufe
    mickymM
    @fastfoot sagte in cron / schedule Zeitpunkte: @mickym was bitte hat Oracle mit iobroker zu tun? und was der unix-cron? iobroker verwendet node-schedule welches nur angelehnt an den original cron ist. Und selbst beim 'Original' gibt es verschiedene Derivate OK - dann sind das halt andere Derivate und dann sind es eben 6 Felder im iobroker. Habe damit kein Problem. Wusste nicht, dass es da unterschiedliche Implementierungen gibt, sorry. :(
  • Problem mit schalten eines 2. Ereignisses mit Telegrammenü

    3
    3
    0 Stimmen
    3 Beiträge
    407 Aufrufe
    N
    @elsmarto Leider bisher nicht. Tut mir leid
  • Vereinfachung Anfäger Script - Variable [gelöst]

    javascript
    3
    0 Stimmen
    3 Beiträge
    272 Aufrufe
    Johannes BauerstatterJ
    @paul53 Vielen Dank!!
  • Tuya Doorbell Script

    communication javascript multimedia
    4
    0 Stimmen
    4 Beiträge
    371 Aufrufe
    GlasfaserG
    @ilovegym Hast du mal mein Script genutzt !?
  • Javascript neuer Ordner und Datei erstellen

    10
    0 Stimmen
    10 Beiträge
    769 Aufrufe
    HomoranH
    @rene75 sagte in Javascript neuer Ordner und Datei erstellen: Also kann ich nur unter vorhandene Ordner einen neuen Ordner anlegen. wo sonst? Aber dein Problem liegt im Verständnis der Struktur. Das ist nicht einfach eine "Ordner" Struktur, das sind festgelegte Objekte (zumindest in den ersten beiden Hierarcheiebenen). Dann kann man natürlich auch keine Datenpunkte in Datenpunkten anlegen usw.
  • [Gelöst] Astro-Zeiten unterschiedlich

    22
    0 Stimmen
    22 Beiträge
    2k Aufrufe
    F
    @mickym, @diwoma zur Ergänzung: getAstroDate() akzeptiert als 2ten Parameter entweder ein Datum oder einen timestamp, also die millisekunden seit 1.1.1970. Das Datum wird unterkringelt weil es in der Funktionsdefinition nicht angegeben ist. Just gestern habe ich einen PR erstellt welcher u.a. diesen 'Fehler' behebt, welcher aber eher kosmetisch ist. Fehlt der 2te Parameter, so nimmt getAstroDate() den laufenden Tag. Die o.g. Astro Settings in der Instanz wirken sich nicht auf die Berechnung aus, die Koordinaten aber natürlich schon. Es empfiehlt sich im Datum die Mittagszeit mit anzugeben sonst erhält man u.U. die Daten des Vortages. let tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); tomorrow.setHours(12, 0, 0, 0); log(tomorrow) let sunrise = getAstroDate('sunrise', tomorrow) log(sunrise)
  • Anzahl Datenpunkte geändert - wie Trigger anpassen?

    8
    0 Stimmen
    8 Beiträge
    242 Aufrufe
    T
    @bananajoe Hallo, war gestern etwas zu müde. Ich hatte zuerst vorgeschlagen das du mit einem schedule überprüft ob sich $(dp_myplaces + ".*.*.isPresent") verändert und wenn ja, das Skript neu startest. var oldDps = $(dp_myplaces + ".*.*.isPresent"); schedule('*/5 * * * *', function() { if (JSON.stringify(oldDps) != JSON.stringify($(dp_myplaces + ".*.*.isPresent"))) restartScript(); }) Dann gesehen das RegEx neue Datenpunkt erfasst, und weil du mit dem /\ durcheinanderkommst. dir meine Funktion hier rein kopiert die jeden Punkt in einem Datenpunkt gegen \. tauscht. RegEx findet keine gelöschten Datenpunkte soweit mir bekannt, sondern nur neue.
  • Javascript: Multischalter / Datenpunkt

    5
    0 Stimmen
    5 Beiträge
    547 Aufrufe
    K
    @asgothian Vielen Danke. Bei state.val.from ist immer undefiniert, aber in state.from steht system.web.0 beim vis drin. So funktioniert es jetzt: //Weihnachtsbeleuchtung Gruppe var Weihnachten = ['hm-rpc.0.000B9BE98C3FC5.4.STATE', 'shelly.0.SHSW-25#C45BBE5F9833#1.Relay0.Switch','shelly.0.SHSW-25#C45BBE5F9833#1.Relay1.Switch']; on('javascript.0.Weihnachtsbeleuchtung', function(obj) { if (obj.state.from != "system.adapter.javascript.0") { Weihnachten.forEach(function(wobj){ setState(wobj, obj.state.val); }); } }); on(Weihnachten, function(obj) { var lightson = false; setTimeout(function() { Weihnachten.forEach(function(wobj) { if (getState(wobj).val == true) { lightson = true; } }); if (getState('javascript.0.Weihnachtsbeleuchtung').val != lightson) { } }, 2000); });
  • Remote Raspberry herunterfahren

    16
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    ChaotC
    @mickym Er muss ja eigentlich nur die Zeile 7 ändern. Aber deine Methode funktioniert auch recht interessant.
  • Variablen Beständigkeit

    7
    0 Stimmen
    7 Beiträge
    236 Aufrufe
    D
    Fehler gefunden und läuft wie gewünscht. Bei einer Funktion war noch die Variable "state" vorhanden, welche wohl das ganze Script durcheinander gebracht hat. Namen geändert und fertig wie @arteck vermutet hat. Sorry und Vielen dank schon mal!
  • Alle Objekte mit einer Rolle

    javascript
    12
    0 Stimmen
    12 Beiträge
    1k Aufrufe
    M
    @paul53 said in Alle Objekte mit einer Rolle: iert, dann funktioniert DAnke. Es klappt mit : var reedContacts = $('state[id=*.SENSOR][role=sensor.window]');
  • MaterialDesign Table Fritzbox Missed calls best. Nummer

    template
    29
    2
    3 Stimmen
    29 Beiträge
    3k Aufrufe
    svenomattS
    @liv-in-sky Vielen Dank, jetzt hat es geklappt, ich traue mich nicht mal zu sagen woran es lag. Scheinbar war durch ein Fritzbox-update der Port für den Call monitor gesperrt. Vielen Dank für deine anhaltend Hilfe, ist mehr als selten. Gruss
  • [gelöst] schedule bringt Fehler

    javascript
    3
    0 Stimmen
    3 Beiträge
    220 Aufrufe
    falke69F
    @asgothian Danke! Das hatte ich leider bei meiner Suche nicht gefunden.
  • Skript, JSON und mein Problem

    javascript
    6
    2
    0 Stimmen
    6 Beiträge
    469 Aufrufe
    T
    @langer Das ist falsch. Ich versuche mal eine Erklärung in deinem ursprünglichen Skript gibts du der DB 31 mal den Auftrag Werte zu ermitteln und in einem Array zu sichern. Jedoch bearbeitest du das Array lange bevor die DB Zeit hatte das Array überhaupt zu beschreiben. Im 2. Versuch sicherst du die Werte erst nach 3 Sekunden was falsch ist. Da nachfolgenden Durchläufen den Timer beenden und dann keine Werte gesichert werden. Nimm das Skript vom Anfang und füge meine Code dort ein, wo ich beschrieben haben. die Lösung ist: Du beschreibst das Tage Array wie in deinem ersten Versuch. Jedoch nutzt du den Timeout wie ich in dir gezeigt habe um das komplette Tage Array als Json zu sichern. Wenn das nicht vollständig ist, erhöhst du die 3000 (das steht für 3 Sekunden)

563

Online

32.9k

Benutzer

83.0k

Themen

1.3m

Beiträge