Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.6k Beiträge

NEWS

  • ..deleted

    2
    0 Stimmen
    2 Beiträge
    187 Aufrufe
    M
    ..deletes
  • linux lm-sensors json parsing

    1
    1 Stimmen
    1 Beiträge
    213 Aufrufe
    Niemand hat geantwortet
  • [gelöst]Problem bei Übergabe per Script !Anfänger!

    17
    0 Stimmen
    17 Beiträge
    664 Aufrufe
    A
    @paul53 said in [gelöst]Problem bei Übergabe per Script !Anfänger!: Eine innerhalb einer Funktion mit var deklarierte Variable ist nur innerhalb der Funktion gültig. Ja, das schon. Aber Beschränkung der Gültigkeit auf untergeordnete Blöcke wie Schleifen oder sonst alles, was in {Klammern} steht, geht mit var überhaupt nicht. Ok, um diese Off-Topic Diskussion nicht zu lange werden zu lassen: Danke für Eure Antworten, Ihr habt mich eigentlich in meiner Haltung bestätigt, weiterhin 'use strict' zu verwenden und 'var' zu vermeiden.
  • Selbst signiertes Zertifikat erlauben / trusten

    2
    -1 Stimmen
    2 Beiträge
    218 Aufrufe
    P
    @draycd Wenn du das Zertifikat speichern kannst, steht evtl. Hier eine Möglichkeit.
  • "Unsubscribe" Objekt von einem anderen Skript

    8
    0 Stimmen
    8 Beiträge
    740 Aufrufe
    T
    @czarnylewis Das geht so nicht. Globale Skripts werden jedem Skript vorangestellt in deinem Beispiel erzeugst du 2 on() die jeweils auf die Änderung von objetcID reagieren.
  • javaskript variablen monitoren

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    314 Aufrufe
    AlCalzoneA
    Hmm, dann macht doch bitte mal ein Issue in https://github.com/ioBroker/ioBroker.javascript auf, damit man sich das anschauen kann.
  • Script läuft nach Umzug auf anderen Server nicht mehr

    14
    0 Stimmen
    14 Beiträge
    604 Aufrufe
    R
    @paul53 danke für den Hinweis.
  • Funktionen nacheinander aufrufen

    javascript
    4
    0 Stimmen
    4 Beiträge
    352 Aufrufe
    XenonX
    du wirst dich mit asynchroner Programmierung befassen müssen
  • Korrekte Liste entgangener Anrufe mittels dem tr-064 Adapter

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    682 Aufrufe
    S
    @paul53 Suuper! Es funktioniert! Vielen Dank!
  • Telegram: Timeout bei "ask" konfigurieren

    7
    0 Stimmen
    7 Beiträge
    726 Aufrufe
    F
    @nokxs sagte in Telegram: Timeout bei "ask" konfigurieren: @fastfoot Ich hab jetzt deinen Vorschlag umgesetzt, die Zeile gepatcht und es funktioniert :+1: . Falls ich etwas Zeit finde baue ich die Konfiguration in die GUI ein und mache einen Pull Request :-) . Danke für die schnelle Hilfe. evtl ist es besser ein issue aufzumachen, hatte mir das mit der GUI auch überlegt, aber dann nicht gewusst wo das Setting eigentlich hin sollte :-)
  • HTML Tabelle für DP mit History Einträgen

    template
    22
    2
    4 Stimmen
    22 Beiträge
    3k Aufrufe
    S
    @liv-in-sky danke... der Datenpunkt passt! Über ein blockly kann ich so die bash schreiben. [image: 1625382535575-image-010.jpg] (kann man wahrscheinlich noch in dein Skript integrieren) Ergebnis: #!/bin/bash influx -execute 'delete from "Heizung.Badezimmer.Ventil" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Schlafzimmer.Ventil" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Kueche.Ventil" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Wohnzimmer.Ventil" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Buero.Ventil" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Flur.Ventil" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Esszimmer.Ventil" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Atelier.Ventil" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.Trockner.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.Geschirrspueler.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.Waschmaschine.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.TV.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Esszimmer.Temperatur.Soll" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.Server.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.TanjaPC.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.Luftbefeuchter.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.Kuehlschrank.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.Gefrierschrank.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.Rauchabzug.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Plugs.MichaPC.Power" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Luftdruck.Aussen" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Luftdruck.Aussen_max" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Luftdruck.Aussen_min" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Außen.MAX" where time < '\'`date +%Y-%m-%d -d "730 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Außen.MIN" where time < '\'`date +%Y-%m-%d -d "730 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Außen.Tagesdurchschnitt" where time < '\'`date +%Y-%m-%d -d "730 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Außen.Tagesdurchschnitt2" where time < '\'`date +%Y-%m-%d -d "730 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Außen.Tagesdurchschnitt3" where time < '\'`date +%Y-%m-%d -d "730 day ago"`\' -database="iobroker" influx -execute 'delete from "BMW_3er_Leasing.Tagesverbrauch.Liter_100km_History" where time < '\'`date +%Y-%m-%d -d "365 day ago"`\' -database="iobroker" influx -execute 'delete from "Leasing.Tagesverbrauch.Test-Tankfuellung" where time < '\'`date +%Y-%m-%d -d "365 day ago"`\' -database="iobroker" influx -execute 'delete from "Leasing.tanken.KM-APP" where time < '\'`date +%Y-%m-%d -d "365 day ago"`\' -database="iobroker" influx -execute 'delete from "Leasing.tanken.KM-Jahr-Leasing" where time < '\'`date +%Y-%m-%d -d "730 day ago"`\' -database="iobroker" influx -execute 'delete from "Leasing.tanken.Liter-100KM-Gesamt" where time < '\'`date +%Y-%m-%d -d "730 day ago"`\' -database="iobroker" influx -execute 'delete from "Leasing.tanken.Liter-100KM-Strecke" where time < '\'`date +%Y-%m-%d -d "730 day ago"`\' -database="iobroker" influx -execute 'delete from "bmw.0.WBA6K31010FK63788.dynamic.remaining_fuel" where time < '\'`date +%Y-%m-%d -d "92 day ago"`\' -database="iobroker" influx -execute 'delete from "Gasverbrauch.15min.Grenzwert" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Gasverbrauch.15min.Aktuell" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Gasverbrauch.Monat.Grenzwert" where time < '\'`date +%Y-%m-%d -d "365 day ago"`\' -database="iobroker" influx -execute 'delete from "Gasverbrauch.Tag.Grenzwert" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Gasverbrauch.Tag.Aktuell" where time < '\'`date +%Y-%m-%d -d "365 day ago"`\' -database="iobroker" influx -execute 'delete from "Sonne.Lux.Aktuell2" where time < '\'`date +%Y-%m-%d -d "365 day ago"`\' -database="iobroker" influx -execute 'delete from "Sonne.Lux.Max" where time < '\'`date +%Y-%m-%d -d "365 day ago"`\' -database="iobroker" influx -execute 'delete from "Sonne.Lux.Aktuell" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Luftdruck.Aussen_24h" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Kuehlschrank.24h" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "System.Master.Disk" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "System.Slave1.Disk" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "System.Slave1.RAM" where time < '\'`date +%Y-%m-%d -d "14 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Bad.Max" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Bad.Min" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Badezimmer.Temperatur.Soll" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Buegelzimmer.Max" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Buegelzimmer.Min" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Buegelzimmer.Temperatur.Soll" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Buero.Max" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Buero.Min" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Buero.Temperatur.Soll" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Dachboden.Max" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Dachboden.Min" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Flur.Max" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Flur.Min" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Flur.Temperatur.Soll" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Kueche.Max" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Temperaturen.Kueche.Min" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" influx -execute 'delete from "Heizung.Kueche.Temperatur.Soll" where time < '\'`date +%Y-%m-%d -d "31 day ago"`\' -database="iobroker" Danke dir!
  • Fehler bei konstanten Variablen

    7
    0 Stimmen
    7 Beiträge
    706 Aufrufe
    P
    @alcalzone Vielen lieben Dank dir!!
  • States Namen von vordefinierter Auswahl

    2
    1
    0 Stimmen
    2 Beiträge
    112 Aufrufe
    paul53P
    @mcu sagte: Wie kann man an den Wert kommen? Der Wert ist wahrscheinlich im Objekt unter common.states zu finden. const id = '0_userdata.0.jarvis.pollenflug.LandesKennung'; let Landeskenn = getObject(id).common.states[getState(id).val];
  • Objekt IDs in Skripten auf Konsistenz prüfen

    7
    0 Stimmen
    7 Beiträge
    435 Aufrufe
    C
    @paul53 Perfekt, das hat mir schon mal ordentlich weitergeholfen! Folgendes gibt jetzt die Skripte mit den zugehörigen Objekt IDs aus (wenn diese im Code mit einem Hochkomma eingeschlossen sind): const regex = new RegExp(`'[a-z]*\.0\.[a-zA-Z0-9.]*'`, `g`); const scripts = $('javascript.0.scriptEnabled.*'); scripts.each(function(id) { id = id.replace('javascript.0.scriptEnabled', 'script.js'); if(existsObject(id) && getObject(id).type == 'script') { var source = getObject(id).common.source; var matches = source.match(regex); if (matches != null) { matches.forEach(function (element) { log(id + ' --> ' + element); }); } } }); Gibt mir noch ein paar falsche Treffer, da muss sich noch ein wenig Feintuning betreiben, aber grob passt das so. Vielen Dank für Eure Hilfe! Jan
  • (gelöst) State-Änderung wird nicht mehr erkannt im JS

    3
    0 Stimmen
    3 Beiträge
    230 Aufrufe
    haselchenH
    @paul53 magst Du oben mal bitte über das Script gucken. Der Bewegungsmelder funktioniert jetzt, aber das Skript wird nicht abgearbeitet.
  • Javascript WLED

    6
    0 Stimmen
    6 Beiträge
    593 Aufrufe
    arteckA
    @iobroker-lover sagte in Javascript WLED: zu diesen global scripts global script bedeutet im iobroker dass dieser VOR jedem anderen script eingefügt wird.. nicht meher ersetze const axios = require('axios').default; durch const axios = require('axios'); axios.defaults.timeout = 5000; // timeout 5 sec ansonsten kannst den rest stehen lassen
  • Hilfe - Javaskript: Zahl bei Änderung senden

    8
    0 Stimmen
    8 Beiträge
    354 Aufrufe
    Martin SteinerM
    [image: 1624225554834-loxone.jpg]
  • Erstes Scipt reagiert nicht wie geplant

    javascript
    12
    0 Stimmen
    12 Beiträge
    512 Aufrufe
    R
    Das Problem mit dem Array habe ich gelöst. Vielleicht nicht die Eleganteste Lösung aber zumindest der Teil mit den Datenpunkten funktioniert. Nur leider bringt mir das mit meiner Situation im Habpanel nicht weiter. Aber trotzdem wollte ich mal mein Code zeigen, der mit Sicherheit nicht der eleganteste ist, aber er funktioniert. on({id: 'hm-rpc.0.PEQ0177610.1.PRESS_SHORT'/*Display Wz:1 PRESS SHORT*/}, function (obj) { var favoritenliste = getState("javascript.0.sonos.favTexte").val; var listederfavoriten = favoritenliste.split(";"); var aneueliste = ["a","b"]; var sneueliste = "a"; var elemente = listederfavoriten.length; console.log(elemente); for (var i = 0; i<elemente; i++) { aneueliste[i] = listederfavoriten[i] + "=" + listederfavoriten[i]; console.log(aneueliste[i]); } setState("javascript.0.sonos.favoriten", aneueliste.join(",")); }); Mein Plan war es eigentlich über meinen neu erzeugten Datenpunkt die Items des Auswahlwidgets zu erzeugen, nur leider klappt das nicht wie erhofft. Bei der Manuell erzeugten Liste, ändert das Auswahlwidget beim auswählen den Datenpunkt vom Sonos, welcher den aktuellen Favoriten in die Wiedergabe bringt. Also den Datenpunkt favorietes_set mit der Auswahl füllt. [image: 1623964361676-cf1a577c-0a77-4a30-bde7-82d3f2658639-grafik.png] Vielleicht hat von euch jemand eine Idee oder kennt eine Möglichkeit für mein Problem. Ich hoffe man versteht was ich machen möchte und wozu. Michael
  • Globale Skripte funktionieren nicht mehr

    2
    0 Stimmen
    2 Beiträge
    135 Aufrufe
    M
    @mhuhn Ich sehe gerade an der Logausgabe, dass das globale Skript offenbar schon in das andere Skript übernommen wird, da die Ausgabe von "LibTest" im Log ja von LibClientTest erfolgt ist. Allerdings funktioniert die Variable nicht.
  • Gartenbewässerung (später dann Dauer über Jarvis einstellen)

    6
    0 Stimmen
    6 Beiträge
    635 Aufrufe
    paul53P
    @luebke69 sagte: gegen 20:15 Uhr) nacheinander für eine bestimmte Zeit (20 Minuten und später dann über Jarvis einstellen...) laufen sollen. Dann soll je nach Regenmenge gestern und heute, aktuell Regen und starkem Wind die Sprenger aus- oder gar nicht erst angehen. Version mit gleicher Dauer für alle 6 Ventile und mit Datenpunkten für "genug Regen", "aktuell Regen" und "starkem Wind". const idDauer = '0_userdata.0.Garten.Bewaesserung.Dauer'; // Dauer pro Ventil in Minuten const idRegen = '...'; // es regnet const idFeucht = '0_userdata.0.Garten.Bewaesserung.Boden_feucht'; // heute, gestern war genug Regen const idSturm = '0_userdata.0.Garten.Bewaesserung.Sturm'; // Starker Wind const ids = [ '', // Platz für ID des gerade offenen Ventils 'id1', 'id2', 'id3', 'id5', 'id5', 'id6' ]; var ventil = 0; // kein Ventil offen var dauer = 60000 * getState(idDauer).val; on(idDauer, function(dp) { dauer = 60000 * dp.state.val; }); var timer = null; function ventile() { if(ids[0]) setState(ids[0], false); // Ventil schließt ventil++; if(ventil <= 6) { setState(ids[ventil], true); // Ventil öffnet ids[0] = ids[ventil]; timer = setTimeout(ventile, dauer); } else { ventil = 0; ids[0] = ''; timer = null; } } function abbruch() { if(timer) clearTimeout(timer); timer = null; if(ids[0]) setState(ids[0], false); ventil = 0; ids[0] = ''; } var regen = getState(idRegen).val; var feucht = getState(idFeucht).val; var sturm = getState(idSturm).val; on(idRegen, function(dp) { regen = dp.state.val; if(regen) abbruch(); }); on(idSturm, function(dp) { sturm = dp.state.val; if(sturm) abbruch(); }); on(idFeucht, function(dp) { feucht = dp.state.val; }); schedule('15 20 * * *', function() { if(!regen && !feucht && !sturm) ventile(); });

297

Online

32.5k

Benutzer

81.8k

Themen

1.3m

Beiträge