Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Themen 48.9k Beiträge

NEWS

  • Verarbeiten von Promises - mit Fetch und API Adapter

    19
    0 Stimmen
    19 Beiträge
    2k Aufrufe
    Karel PuhliK
    @wal Hi Walter! Danke für Deine Antwort! Ist in beiden Zeilen drin!
  • Mehrere JS Instanzen und Globale files

    3
    0 Stimmen
    3 Beiträge
    321 Aufrufe
    L
    @haus-automatisierung Danke Dir, dann habe ich das Konzept jetzt verstanden.
  • Zigbee availability prüfen

    4
    0 Stimmen
    4 Beiträge
    246 Aufrufe
    planetkeaneP
    @dp20eic Klasse, genau das, wonach ich gesucht habe. Vielen Dank
  • Wochenschaltuhr über VIS

    1
    0 Stimmen
    1 Beiträge
    207 Aufrufe
    Niemand hat geantwortet
  • Selektor vs. Socketio getStates , getObjectView

    1
    0 Stimmen
    1 Beiträge
    232 Aufrufe
    Niemand hat geantwortet
  • S7 Adapter - auf Ereignis reagieren

    2
    0 Stimmen
    2 Beiträge
    102 Aufrufe
    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 Stimmen
    9 Beiträge
    999 Aufrufe
    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 Stimmen
    10 Beiträge
    1k Aufrufe
    J
    @derstecher gibt auch von mir einen daumen für die idee.
  • Rückgabe eines Wertes per return

    javascript
    6
    0 Stimmen
    6 Beiträge
    249 Aufrufe
    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 Stimmen
    1 Beiträge
    170 Aufrufe
    Niemand hat geantwortet
  • [gelöst] Aufzählungen Toggeln

    14
    0 Stimmen
    14 Beiträge
    970 Aufrufe
    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 Stimmen
    5 Beiträge
    586 Aufrufe
    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 Stimmen
    13 Beiträge
    1k Aufrufe
    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 Stimmen
    4 Beiträge
    454 Aufrufe
    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 Stimmen
    8 Beiträge
    184 Aufrufe
    OliverIOO
    @ben1983 Beispiel siehe maxVal Beispiel von fastfood
  • Farbe des basic Bars zum Wert des Datenpunktes ändern

    javascript
    5
    3
    0 Stimmen
    5 Beiträge
    334 Aufrufe
    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 Stimmen
    2 Beiträge
    262 Aufrufe
    M
    @maxpd Jemand einen Tipp?
  • Rückgabe body & error von request sind keine strings?

    5
    0 Stimmen
    5 Beiträge
    417 Aufrufe
    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 Stimmen
    18 Beiträge
    1k Aufrufe
    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 Stimmen
    4 Beiträge
    984 Aufrufe
    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

733

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge