Weiter zum Inhalt

JavaScript

2.5k Themen 49.2k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Zugriff auf VIS Website triggert Datenpunktänderung

    javascript
    3
    0 Stimmen
    3 Beiträge
    286 Aufrufe
    M
    @codierknecht Danke. Das funktioniert.
  • Countdown Adapter html Table sortieren

    5
    0 Stimmen
    5 Beiträge
    520 Aufrufe
    A
    @codierknecht Sorry ich wusste nicht, dass man das in anderen Tools anders lösen kann. Soweit ich es verstehe, wird bei Lovelace die Html tabelle als Datenpunkt dargestellt und alle Anpassungen müssen über JS im vorhinein erledigt werden.
  • [gelöst] on() mit Vergleich und erst nach X Sekunden

    5
    0 Stimmen
    5 Beiträge
    404 Aufrufe
    F
    Falls jemand Interesse an der kompletten Lösung hat (Verbesserungsvorschläge willkommen). Aufgabe: Sende jede Minute eine Nachricht wenn bestimmte Fenster länger als X Minuten offen ist und die Aussentemperatur kleiner als "activeTemp" ist. Das hilft meiner vergesslichen Familie viel Heizenergie zu sparen :-) const aFenster = [ { "id": "hm-rpc.0.KEQ0006299.6.SENSOR", "descr": "in der Küche Richtung Garten" }, { "id": "hm-rpc.0.KEQ0006287.1.SENSOR", "descr": "im HWR" }, { "id": "hm-rpc.0.KEQ0006287.6.SENSOR", "descr": "im Wohnzimmer links" }, { "id": "hm-rpc.0.KEQ0006287.12.SENSOR", "descr": "im Wohnzimmer rechts" } ]; const idTemp = 'hm-rpc.1.NEQ0773998.1.TEMPERATURE'; // Aussentemperatur const activeTemp = 15; const delay = 5; // Minuten solange im Intervall unten 60000 steht var interval = null; aFenster.forEach(Fenster => on(Fenster.id, function (dp) { if (getState(dp.id).val) { console.log("Fenster " + Fenster.descr + " geoeffnet"); let cnt = 0; interval = setInterval(function () { cnt++; // wenn Counter größer als delay && Aussentemperatur kleiner als activeTemp if (cnt >= delay && getState(idTemp).val < activeTemp) { var duration = Math.round((Date.now() - dp.state.lc) / 60000) // sende Nachricht ins Log, oder via telegram, oder lass Alexa schimpfen.. console.log("Das Fenster " + Fenster.descr + " ist schon " + duration + " Minuten offen."); } }, 60000); } else { // Fenster schließt clearInterval(interval); console.log("Fenster " + Fenster.descr + " geschlossen"); } })); Danke noch mal @paul53!
  • [gelöst] gefühlte Temperatur

    45
    0 Stimmen
    45 Beiträge
    3k Aufrufe
    CodierknechtC
    @Peter666666 @paul53 sagte in gefühlte Temperatur: @peter666666 sagte: Es funktioniert. Dann setze bitte das Thema in der Überschrift des ersten Beitrags auf [gelöst]. Und eröffne für Dein Cloud-Problem einen neuen Thread.
  • Axios: Fail to parse JSON data','code':-1

    6
    0 Stimmen
    6 Beiträge
    434 Aufrufe
    cashC
    @issi sehr cool. Danke für den Hinweis. Bleibe aber vorerst bei meinen Script da ich von meinen 3 elgatos nur eine steuern möchte und ich den Status auch nur Mo-Fr. von 7:00 - 16:00 abfrage. Somit vermeide ich unnötige Abfragen in meinen Netz. Falls mein Script dann mal wieder nicht läuft steige ich aber wahrscheinlich um.
  • [Tester gesucht] Roborock-API

    81
    14 Stimmen
    81 Beiträge
    29k Aufrufe
    wendy2702W
    @oxident OK. Hatte nicht mitbekommen das @Meistertr hier nicht mehr aktiv ist
  • Globales Skript in anderem globalen Skript verwenden

    1
    0 Stimmen
    1 Beiträge
    195 Aufrufe
    Niemand hat geantwortet
  • Wie Script ändern damit neuster Eintrag als erstes ist?

    2
    0 Stimmen
    2 Beiträge
    181 Aufrufe
    paul53P
    @chris76e sagte: neuste Eintrag als erstes Zeilen 32, 33 table.unshift(obj); if(table.length > 100) table.pop();
  • [gelöst] Zeichen in String einfügen

    13
    0 Stimmen
    13 Beiträge
    1k Aufrufe
    paul53P
    @delamaris sagte: es funktioniert. Dann setze bitte das Thema in der Überschrift des ersten Beitrags auf [gelöst].
  • Gelöst: Bild von Motioneye nach VIS kopieren mit JavaScript

    javascript
    24
    0 Stimmen
    24 Beiträge
    2k Aufrufe
    I
    @michihorn das verstehe ich schon. nur ich brauche den Pfad von Motioneye zum zuletzt aufgenommen Bild
  • [gelöst] function in function

    9
    0 Stimmen
    9 Beiträge
    618 Aufrufe
    CodierknechtC
    @ptr sagte in [gelöst] function in function: Es geht um das Thema: https://forum.iobroker.net/topic/62228/multitimeout-wie-function-übergeben-von-blockly-in-js Hatte ich schon gelesen und antworte daher dort ...
  • on({id: ....mit timer kombiniert? Mehrfacher Aufruf??

    10
    0 Stimmen
    10 Beiträge
    709 Aufrufe
    CodierknechtC
    @paul53 Cool - das wandelnde Programmierhandbuch hat wieder zugeschlagen
  • Löschen von Objekten in Aufzählungen [solved]

    7
    0 Stimmen
    7 Beiträge
    655 Aufrufe
    cengC
    Danke @paul53 Danke für den Support @paul53 Mittlerweile bin ich nach rumprobieren da... if(existsObject('enum.rooms.' + RaumnameAmDevice)) { console.log('Raum ' + RaumnameAmDevice + ' vorhanden'); let obj = getObject('enum.rooms.' + RaumnameAmDevice) if(obj.common.members.includes(DP_Selected)) { console.log('DP ist in Raumaufzählung vorhanden. Obj ' + JSON.stringify(obj)); let idx = obj.common.members.indexOf(DP_Selected); console.log(DP_Selected + ' ist in der Aufzählung für ' + RaumnameAmDevice + ' an Stelle ' + idx); if(idx > -1) { console.warn('Lösche ' + DP_Selected + ' ID:' + idx); obj.common.members.splice(idx, 1); setObject('enum.rooms.' + RaumnameAmDevice, obj, function (err) { if (err) console.error('Fehler: Lösche ID ' + idx + ' | DP ' + DP_Selected + ' aus Aufzählung ' + String(RaumnameAmDevice) + ' fehlgeschlagen. Error=' + err, 'error'); }); if (getState('0_userdata.0.Global.Debug').val == true) { console.log(('Raumzuweisung für DP_Selected: ' + DP_Selected + ' | RaumAmDevice: ' + RaumnameAmDevice + ' RaumAmDP '+ RaumnameAmDP + ' gelöscht')); } } } else { console.log(DP_Selected + ' ist nicht Aufzählung vorhanden'); } } else { if (getState('0_userdata.0.Global.Debug').val == true) { console.log(('Raum ' + RaumnameAmDevice + ' ist nicht in Aufzählung vorhanden. DP Selected:' + DP_Selected)); } }
  • [gelöst] kein Log in JS-Scripten möglich

    22
    0 Stimmen
    22 Beiträge
    2k Aufrufe
    L
    @mrjeschke Ja, das war es! 1000 Dank! Was mich aber brutal ärgert: ich war der Meinung, dass ich hätte das schon ausprobiert bzw. umgestellt .... . Es ist halt wie so häufig: das Problem sitzt vor der Tastatur und sieht den Wald vor lauter Bäumen nicht ....
  • Durchfluss Liter/Min aus Zählerstand

    19
    0 Stimmen
    19 Beiträge
    1k Aufrufe
    K
    Bei meinen zyklischen Daten (Wasserzähler, früher auch S0 Stromzähler) habe ich den Zyklus durch die Sensoren vorgeben lassen. Diese senden jede Minute neue Daten (Gesamtsumme). Dann kann man auf die Datenpunkte triggern und "old" funktioniert auch wieder. Das Ursprungsskript von @paul53 passt dann, wenn man den timeout block raus nimmt.
  • Time-triggerd Skript wird nicht ausgelöst

    11
    0 Stimmen
    11 Beiträge
    606 Aufrufe
    CodierknechtC
    @chco sagte in Time-triggerd Skript wird nicht ausgelöst: Perfekt, danke! Naja - perfekt würde ich das nicht nennen. Ich jedenfalls finde die Logik dahinter mindestens "fragwürdig". Du willst also zwischen 04:00 und 06:00 Uhr schauen, ob das Handy zu 80 oder mehr % geladen ist und dann die dazu verwendete Dose abschalten? Was passiert, wenn Dein Handy um 05:59 Uhr zu 79% geladen ist und die 80% um 06:01 Uhr erreicht werden? Eben - nix! Sowas löst man üblicherweise mit einem Trigger und nicht über einen Zeitplan. on({id: "0_userdata.0.iPhone_battery", change: "ne"}, async function (obj) { if (obj.state.val >= 80) { // Steckdose wird ausgeschaltet setState("shelly.0.SHPLG-S#BCFF4D5B7B27#1.Relay0.Switch",false); // eine WhatsApp Benachrichtung senden sendTo('whatsapp-cmb.0', 'send', { text: 'Batteriestatus hat 80% überstiegen. Laden wird beendet.', /*hier fehlt noch etwas, oder?*/ // Text der WhatsApp Nachricht }); } });
  • Lampe jede Minute 10% heller

    3
    0 Stimmen
    3 Beiträge
    251 Aufrufe
    liv-in-skyL
    @chco setInterval mit 10 minuten wenn du die 100% hast : stoppe interval
  • Shelly Plug einschalten ioBroker geht nicht

    8
    0 Stimmen
    8 Beiträge
    623 Aufrufe
    S
    @chco wie ist der Shelly verbunden. Falls COAP Peer Multicast, mal auf Unicast umstellen.
  • JS Glühbirne einschalten, Farbe ändern und blinken lassen

    5
    0 Stimmen
    5 Beiträge
    500 Aufrufe
    AsgothianA
    @chco Versuch mal ein setState("shelly.0.SHCB-1#3494546B325A#1.lights.effect",0); vor dem ausschalten zu senden.
  • [gelöst] Aktuelle Wetterlage abfragen

    16
    0 Stimmen
    16 Beiträge
    593 Aufrufe
    DJMarc75D
    @wszene sagte in Aktuelle Wetterlage abfragen: Icons bei weatherunderground auszutauschen? Ich nutze den Adapter nicht produktiv aber hab mir den mal angesehen und da kann man wohl ein benutzerdefiniertes Iconset definieren. Anscheinend ist die URL welche die vordefinierten Iconsets beinhaltet (https://icons.wxug.com/i/c/k/11.svg) tot.

337

Online

32.8k

Benutzer

82.7k

Themen

1.3m

Beiträge