Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.9k Posts

NEWS

  • Verarbeiten von Promises - mit Fetch und API Adapter

    19
    0 Votes
    19 Posts
    2k Views
    Karel PuhliK
    @wal Hi Walter! Danke für Deine Antwort! Ist in beiden Zeilen drin!
  • Mehrere JS Instanzen und Globale files

    3
    0 Votes
    3 Posts
    321 Views
    L
    @haus-automatisierung Danke Dir, dann habe ich das Konzept jetzt verstanden.
  • Zigbee availability prüfen

    4
    0 Votes
    4 Posts
    246 Views
    planetkeaneP
    @dp20eic Klasse, genau das, wonach ich gesucht habe. Vielen Dank
  • Wochenschaltuhr über VIS

    1
    0 Votes
    1 Posts
    207 Views
    No one has replied
  • Selektor vs. Socketio getStates , getObjectView

    1
    0 Votes
    1 Posts
    232 Views
    No one has replied
  • S7 Adapter - auf Ereignis reagieren

    2
    0 Votes
    2 Posts
    102 Views
    M
    @kor // ObjectID -> eintragen on({id: '0_userdata.0.test', change: "any"}, function (obj){ let value = obj.state.val; // wenn sich der Wert also ändert oder aktualisiert wird , dann mache was }); Falls man es eingrenzen möchte -> change any - Trigger wird immer ausgeführt, wenn sich der Wert ändert oder aktualisiert wird, eq - Der neue Wert muss gleich dem Alten sein, ge - neuer Wert muss größer oder gleich groß sein, gt - neuer Wert muss größer als der alte Wert sein le - neuer Wert muss kleiner oder gleich groß sein lt - neuer Wert muss kleiner als der alte sein ne - neuer Wert muss nicht gleich dem Alten sein
  • [Gelöst] - Vis 1 Editor Skript: setzen eines Objekt-Wertes?

    9
    0 Votes
    9 Posts
    999 Views
    liv-in-skyL
    @andreas-s in den daten punten oben gibt es instance dp - der sagt das aus du kannst das da ablesen und sogar setzen und die tablets wechsel die seite mach die vis editor seite auf, auf dem tablet, dass du nutzt und gehe im viseditor unter tools - dort kannst du die instanz setzen [image: 1681984601047-image-062.png] einziges problem - wenn du den cache des browser löscht, ist die instanz auch weg und muss neu gesetzt werden
  • Import Statement

    10
    0 Votes
    10 Posts
    1k Views
    J
    @derstecher gibt auch von mir einen daumen für die idee.
  • Rückgabe eines Wertes per return

    javascript
    6
    0 Votes
    6 Posts
    249 Views
    bahnuhrB
    @fastfoot Danke auch dir. Ich schau es mir an. Mit diesem await, promise, then steh ich noch ein bisschen auf Kriegsfuß.
  • rpi2 adapter - GPIOS programmtechnisch aktivieren

    1
    0 Votes
    1 Posts
    170 Views
    No one has replied
  • [gelöst] Aufzählungen Toggeln

    14
    0 Votes
    14 Posts
    970 Views
    HomoranH
    @ben1983 sagte in [gelöst] Aufzählungen Toggeln: die stat dem setstae ein toggleState macht. wir drehen uns im Kreis! du willst anscheinend nicht toggeln, weil @homoran sagte in [gelöst] Aufzählungen Toggeln: hast du z.b. drei Lampen, von denen 2 AN sind, würde toggeln dazu führen, dass anschließend 2 Lampen AUS und eine AN sind.
  • on id change subscription mit mehreren Variablen

    5
    0 Votes
    5 Posts
    586 Views
    OliverIOO
    @neueklasse Das ist eine neuere Form der Funktion, diengegenüber der bisherigen in bestimmten Situationen Vorteile hat. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions?retiredLocale=de
  • GO-e und API V2

    13
    0 Votes
    13 Posts
    1k Views
    HomoranH
    @randyandy sagte in GO-e und API V2: Bist DU der Entwickler der App ? Wenn ja, dann kann ich wahrscheinlich lange auf das Feature warten ! bitte einen vernünftigen Umgangston
  • JPG Bild von Webcam um 90° drehen

    4
    0 Votes
    4 Posts
    454 Views
    crunchipC
    @flexer du kannst im blockly je javascript Funktion einbauen [image: 1681469774846-533e44b4-16c0-4cc0-9645-696d833bb9a6-image.png]
  • [gelöst] key mit größten Wert in Struktur herausfinden

    8
    0 Votes
    8 Posts
    184 Views
    OliverIOO
    @ben1983 Beispiel siehe maxVal Beispiel von fastfood
  • Farbe des basic Bars zum Wert des Datenpunktes ändern

    javascript
    5
    3
    0 Votes
    5 Posts
    334 Views
    I
    @mcu Danke, an so Kleinigkeiten kann man verzweifeln. NACHTRAG: hatte noch einen Fehler in der Formel, durch copy and paste stimmte der Pfad zu dem Wert nicht :angry: {n:alias.0.Bezug_Leistung_total;n< -0.3 ?"green":n> 0.3 ?"red":"yellow"} jetzt funktioniert es :blush: Grün bei Einspeisung, Gelb ein kleiner Bereich von + - 0,3 kWh wenn wenig Strom fließt und Rot bei Bezug.
  • Google Fotos API Authentifizierung

    2
    0 Votes
    2 Posts
    262 Views
    M
    @maxpd Jemand einen Tipp?
  • Rückgabe body & error von request sind keine strings?

    5
    0 Votes
    5 Posts
    417 Views
    OliverIOO
    @gutgut30 said in Rückgabe body & error von request sind keine strings?: Ich war von groovy irgendwie mit error.toString auf dem Holzweg. Läuft jetzt fast richtig. error.toString() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString?retiredLocale=de aber bei den meisten Objekten kommt dann halt nur '[object Object]' raus. die wenigsten überlagern die Methode der Object-Klasse mit einer eigenen toString() Methode
  • Zykl. getState-Aufrufe vs. eigenes "Cache-Dictionary"

    18
    0 Votes
    18 Posts
    1k Views
    F
    Ich bin selbst leicht "erstaunt", das es funktioniert, weil eigentlich darf die gecachte Instanz nur die default 1000 setState pro Minute triggern, aber der callback in den subscriptions läßt sich evtl. nicht auf die zurückverfolgen, oder ist so schnell rum, das noch kein Limiter anspricht? Und weil ich es in meiner "leeren" Instanz.1 getestet habe, läuft da auch sonst gar nix "use strict"; const loops=5000; let start=0; let end=0; async function test_asyncStartPingPong() { // short delay, to let everything register... await new Promise(r => setTimeout(r, 2000)); console.log("Start "+loops+".loops PingPong now!"); start=Date.now(); // start ping pong await setStateAsync('0_userdata.0.test1',loops); } on({id: '0_userdata.0.test1', change:'any'}, function (obj) { setState('0_userdata.0.test2', obj.state.val-1); }); on({id: '0_userdata.0.test2', change:'any'}, function (obj) { if (obj.state.val>0) setState('0_userdata.0.test1', obj.state.val-1); else { end=Date.now(); console.log(loops+".loops PingPong, received .val "+obj.state.val+" in " + obj.id + ", delta " + (end-start) + "ms"); } }); test_asyncStartPingPong(); Ohne "Caching" geht gar nix, obwohl in meinem Script keine getStates sind, werden welche angemosert, und globale/common Files habe ich keine expliziten in Instanz.1. Und die Werte schwanken "stark", der erste Wert ist direkt nach dem ich die Instanz neu gestartet habe, da ist die aber im Hintergrund evtl. noch dabei, den Cache zu füllen, nach 5 min Wartezeit ist das ganze 10x schneller, dann sogar nochmal etwas schneller, und dann ist es deutlich langsamer, da kann halt auch noch sonstwas auf dem ioBroker los sein, oder auch die anderen VMs auf dem esxi könnten "sonstwas" treiben... 21:59:15.800 info javascript.1 (327919) Start javascript script.js.TestInstanz1.PerformanceTests 21:59:15.813 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: registered 4 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 21:59:17.813 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: Start 5000.loops PingPong now! 22:00:00.194 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: 5000.loops PingPong, received .val -1 in 0_userdata.0.test2, delta 42380ms 22:05:12.407 info javascript.0 (327870) Stop script script.js.TestInstanz1.PerformanceTests 22:05:12.413 info javascript.1 (327919) Stop script script.js.TestInstanz1.PerformanceTests 22:05:12.416 info javascript.1 (327919) Start javascript script.js.TestInstanz1.PerformanceTests 22:05:12.422 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: registered 4 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 22:05:14.422 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: Start 5000.loops PingPong now! 22:05:19.332 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: 5000.loops PingPong, received .val -1 in 0_userdata.0.test2, delta 4910ms 22:05:42.881 info javascript.0 (327870) Stop script script.js.TestInstanz1.PerformanceTests 22:05:42.885 info javascript.1 (327919) Stop script script.js.TestInstanz1.PerformanceTests 22:05:42.931 info javascript.1 (327919) Start javascript script.js.TestInstanz1.PerformanceTests 22:05:42.934 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: registered 4 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 22:05:44.934 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: Start 5000.loops PingPong now! 22:05:49.415 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: 5000.loops PingPong, received .val -1 in 0_userdata.0.test2, delta 4481ms 22:06:04.647 info javascript.1 (327919) Stop script script.js.TestInstanz1.PerformanceTests 22:06:04.646 info javascript.0 (327870) Stop script script.js.TestInstanz1.PerformanceTests 22:06:04.650 info javascript.1 (327919) Start javascript script.js.TestInstanz1.PerformanceTests 22:06:04.653 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: registered 4 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 22:06:06.653 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: Start 5000.loops PingPong now! 22:06:17.941 info javascript.1 (327919) script.js.TestInstanz1.PerformanceTests: 5000.loops PingPong, received .val -1 in 0_userdata.0.test2, delta 11287ms Ich danke, man kann so eine ungefähre Aussage zur RoundTrip-Zeit machen, im Optimalfall ist es ca. 1 ms, die es vom setState bis zur Ankunft im subscribe-Callback braucht (auf meinem 3,7GHz-Xeon). Christian
  • WARN deprecated npm "Bitte um Hilfe"

    4
    0 Votes
    4 Posts
    984 Views
    OliverIOO
    @pat Zur Information warum request deprecated ist kannst du hier lesen https://github.com/request/request/issues/3142 Grundsätzlich ist Request immer noch eine hervorragende Bibliothek, welche durch Iobroker ebenfalls noch verwendet wird. Daher musst du eigentlich nichts umstellen. Wenn dich diese Warnmeldungen wirklich stören, musst du die verwendete Bibliothek von Request auf beispielsweise Axios umstellen https://www.npmjs.com/package/axios

572

Online

32.6k

Users

82.2k

Topics

1.3m

Posts