Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 49.1k Posts

NEWS

  • [gelöst] Xiaomi Vacuum schedule Skript um Sauglevel erweitern

    Moved
    6
    0 Votes
    6 Posts
    1k Views
    cvidalC
    @Jey-Cee Danke
  • [Gelöst] RegEx - Parser - Wetter ZAMG

    Moved javascript
    15
    0 Votes
    15 Posts
    2k Views
    HomoranH
    @MyzerAT Nö, die geht nicht. da ist ein Skript drin: <script> var updateServiceWorker = function (callback) { return callback(); }; if ('serviceWorker' in navigator) { // Use the window load event to keep the page load performant window.addEventListener('load', function() { updateServiceWorker = function(callback) { navigator.serviceWorker.getRegistrations().then(function(registrations) { registrations.forEach(function(registration) { registration.update().then( setTimeout(function() { callback() }, 30000) ); }); }); }; navigator.serviceWorker.register('sw.js?'+window.__version).then(function(registration) { }); }); } </script> Die Daten stehen NICHT auf der eigentlichen Seite.
  • 0 Votes
    6 Posts
    581 Views
    paul53P
    @robson sagte in [Frage] Unterbinden von Skriptausführung nach Neustart des HM-Rega Adapters: Ich habe übrigens viele Boolsche Systemvariablen, die true oder false als Zustand haben ...die sicherlich auch ihren Zustand zwischen true und false ändern und nicht nur den Zeitstempel aktualisierern. @robson sagte in [Frage] Unterbinden von Skriptausführung nach Neustart des HM-Rega Adapters: Jetzt funktioniert es, wie es soll. Dann ersetze bitte [Frage] durch [gelöst] im Betreff des ersten Beitrags.
  • eqiva Bluetooth-Türschloss per Skript steuern (exec-Befehl)

    2
    0 Votes
    2 Posts
    772 Views
    B
    Kommando zurück: Ich habe soeben mal versucht, was denn passiert, wenn ich den Befehl über den Terminal-Adapter eintippe. Dabei habe ich festgestellt, dass die vom ioBroker erreichbare Instanz von keyble nicht in der Lage war, auf das Modul "bluetooth-hci-socket" zuzugreifen, da es unter "/home/pi/npm/lib/node_modules/" lag. Also fix rüberkopiert nach "/usr/lib/node_modules/", noch einmal getestet, festgestellt, dass "sudo" notwendig zu sein scheint, angepasst, und Erfolg gehabt! Ich bin mir ziemlich sicher, dass ich hier mit meiner Bastelei gegen diverse Regeln einer geordneten Installation verstoße, aber die Hauptsache für mich: Es funktioniert nun! Ich kann per Datenpunkt meine Tür sowohl abschließen (false) als auch öffnen (true).
  • Chromecast mit Inaktivismodus starten

    Moved javascript
    1
    0 Votes
    1 Posts
    351 Views
    No one has replied
  • Script im Vis scrollto()

    Moved javascript
    2
    0 Votes
    2 Posts
    351 Views
    Schuko80S
    Keiner eine Idee oder einen Ansatz? Es scheitert im Vis schon daran, das ich keinen Plan habe, wie ich z.B. auf den Druck eines Buttons reagiere. Per Datenpunkt ist das kein Problem, aber mir fehlt der Ansatz diekt im Vis :white_frowning_face:
  • Script Schedule/clearSchedule läuft nicht

    Moved javascript
    8
    0 Votes
    8 Posts
    529 Views
    apollon77A
    Ok, dann ja wenn Du TimerEin zurück gibst und dann immer wieder als input hast dann sollte es tun
  • Javascript Adapter stellt für einen kurzen Moment den Dienst ein

    javascript
    3
    0 Votes
    3 Posts
    514 Views
    D
    Guten Morgen Ingo, vielen Dank!! Das deckt sich mit meiner Erkenntnis von heute Morgen - aktuell ist das Verhalten nicht im Log zu finden --> Morgen, kleines Logfile. Ich gebe die Info mal an den Entwickler des Skripts weiter, ggf. kann da ja optimiert werden. Grüße und ein schönes WE, Thorsten
  • 0 Votes
    1 Posts
    287 Views
    No one has replied
  • Farbwert setzen bei Betätigung des Tasters

    Moved javascript
    1
    3
    0 Votes
    1 Posts
    295 Views
    No one has replied
  • JSON als Datenpunkt/mqtt

    Moved javascript
    5
    0 Votes
    5 Posts
    1k Views
    Z
    So, der Hinweis von BuZZy konnte mein Problem lösen! Nochmals herzlichen Dank! lg
  • [gelöst]timer und countdown

    Moved javascript
    4
    0 Votes
    4 Posts
    839 Views
    M
    danke - funktioniert
  • 0 Votes
    1 Posts
    619 Views
    No one has replied
  • Variable in request-Aufruf

    Moved javascript
    11
    0 Votes
    11 Posts
    650 Views
    a200A
    @paul53 sagte in Variable in request-Aufruf: @a200 sagte in Variable in request-Aufruf: und b) die jeweiligen urls der Dateien. url2 ist also nicht konstant, sondern bei jedem neuen Aufruf anders ? Dann versuche es etwa so: Super, Danke. Jetzt geht es. Das Ergebnis kann hier: https://forum.iobroker.net/post/228883 gesehen werden.
  • [gelöst] Datenpunkt ändert selbständig seinen Wert

    Moved javascript
    6
    0 Votes
    6 Posts
    574 Views
    ?
    @Jukabroker Die Sonoff's Status sind nach einem Update öfter von "true" auf "false" gegangen, obwohl sie eingeschaltet geblieben sind. Habe ich endlich in den logs gefunden. Sonoff's zurückgegradet und schon ist alles wie es soll. Danke Jukabroker
  • 0 Votes
    1 Posts
    312 Views
    No one has replied
  • 0 Votes
    12 Posts
    2k Views
    SegwayS
    @Schweiz Naja, ich schreib mal hin ob die mehr zulassen als diese drei. Ansonsten beschreite ich den anderen Weg.
  • [gelöst]Script funktioniert nicht mehr auf neuem System

    Moved javascript
    5
    0 Votes
    5 Posts
    420 Views
    T
    OK, der Fehler liegt woanders. Habe gerade festgestellt, dass meine Objekte von iCal leer sind. Nur weiss ich nicht warum? Dann kann hier geschlossen werden und ich stelle mein Problem in einem anderen Teil.
  • Heizung Winter/Sommer Betrieb

    Moved javascript
    10
    0 Votes
    10 Posts
    1k Views
    N
    Wenn ich das so ändere, dann geht die Pumpe nicht aus //createState('javascript.0.Heizen Wintergarten.Sommerbutton', false); const idSommer = 'javascript.0.Heizen Wintergarten.Sommerbutton'; // ID eintragen const idPumpe = 'hm-rpc.0.xxxx.1.STATE'; const idsAuto = $('*.AUTO_MODE'); const idsManu = $('*.MANU_MODE'); const idsManuIP = $('hm-rpc.2*.CONTROL_MODE'); const idsAutoIP = $('hm-rpc.2*.CONTROL_MODE'); var sommer = getState(idSommer).val; function setManu() { idsManu.each(function(id, i) { setState(id, 15); // 15 °C }); } function setManuIP() { idsManuIP.each(function(id, i) { setState(id, 1); // Control_Mode auf 1 }); } function setAuto() { idsAuto.each(function(id,i) { setState(id, true); // Auto }); } function setAutoIP() { idsManuIP.each(function(id, i) { setState(id, 0); // Control_Mode auf 0 }); } on(idSommer, function(dp) { sommer = dp.state.val; if(sommer){ setManu(); setManuIP(); } else { setAuto(); setAutoIP(); } }); schedule('0 8 * * *', function() { // täglich 8:00 Uhr if(sommer) { setState(idPumpe, true); setState(idPumpe, false, 600000); // 10 Minuten } }); // 2-Punkt-Regler Raumheizung // halbe Hysterese in K var hh = 0.1; var xid = ("hm-rpc.0.xxxx.2.ACTUAL_TEMPERATURE"); var wid = ("hm-rpc.0.xxxx.2.SET_TEMPERATURE"); var yid = ("hm-rpc.0.xxxx.1.STATE"); var x = getState(xid).val; // Istwert in °C var w = getState(wid).val; // Sollwert in °C SET_POINT /*function hys() { if (x <= w - hh) setState(yid, true); else if (x >= w + hh) setState(yid, false); } if(sommer) // ; else{ hys(); // Script start on(xid, function(dp) { x = dp.state.val; hys(); }); on(wid, function(dp) { w = dp.state.val; hys(); }); }*/ var ventil = getState(yid).val; function hys() { if(sommer) { if(ventil) setState(yid, false); } else { if (x <= w - hh && !ventil) setState(yid, true); else if (x >= w + hh && ventil) setState(yid, false); } } on(yid, function(dp) { ventil = dp.state.val; });
  • [gelöst]js-skript zeitspanne Objekt-State "true" erfassen

    Moved
    13
    0 Votes
    13 Posts
    2k Views
    ?
    @sveni_lee sagte in [gelöst]js-skript zeitspanne Objekt-State "true" erfassen: okay… das starten des Intervals funktioniert: on({id: 'hm-rpc.0.OEQ0207710.5.STATE', change: "ne"}, function (obj) { if (obj.state.val) { //wenn Gerät EIN setState("javascript.0.Bewässerung.Ventil1.Timestamp_ON"/*Timestamp_ON*/, formatDate(new Date(), "TT.MM.JJJJ SS:mm"), true); setInterval(function(){ setState("javascript.0.Bewässerung.Ventil1.Laufzeit_last_ON"/*Laufzeit_last_ON*/, Math.round((Date.now() - obj.state.lc)/60000) + " Minuten", true); }, 10000); } else if (!obj.state.val) { // wenn Gerät AUS clearInterval(timer); setState("javascript.0.Bewässerung.Ventil1.Laufzeit_last_ON"/*Laufzeit_last_ON*/, Math.round((obj.state.lc - obj.oldState.lc)/60000) + " Minuten", true); setState("javascript.0.Bewässerung.Ventil1.Menge_last_ON"/*Laufzeit_last_ON*/, Math.round((obj.state.lc - obj.oldState.lc)/60000/60*4000) + " Liter", true); } }); aber das mit cearInterval(timer) habe ich noch nicht ganz verstanden EDIT: ich denke ich habs herausgefunden: var intervalId = null; on({id: 'hm-rpc.0.OEQ0207710.5.STATE', change: "ne"}, function (obj) { if (obj.state.val) { //wenn Gerät EIN setState("javascript.0.Bewässerung.Ventil1.Timestamp_ON"/*Timestamp_ON*/, formatDate(new Date(), "TT.MM.JJJJ SS:mm"), true); intervalId = setInterval(function(){ setState("javascript.0.Bewässerung.Ventil1.Laufzeit_last_ON"/*Laufzeit_last_ON*/, Math.round((Date.now() - obj.state.lc)/60000) + " Minuten", true); }, 10000); } else if (!obj.state.val) { // wenn Gerät AUS clearInterval(intervalId); setState("javascript.0.Bewässerung.Ventil1.Laufzeit_last_ON"/*Laufzeit_last_ON*/, Math.round((obj.state.lc - obj.oldState.lc)/60000) + " Minuten", true); setState("javascript.0.Bewässerung.Ventil1.Menge_last_ON"/*Laufzeit_last_ON*/, Math.round((obj.state.lc - obj.oldState.lc)/60000/60*4000) + " Liter", true); } }); Hallo sveni_lee ich habe das Script zufällig gefunden und mal nachgebaut, es funktioniert auch, aber nach einiger Zeit ändert sich ohne zutun der Timestamp_ON ??? dann fängt der Timer auch wieder neu an zu zählen. Kannst du da ev. helfen? Jukabroker

456

Online

32.7k

Users

82.5k

Topics

1.3m

Posts