NEWS


  • Huhu,

    ich habe hier einige Probleme mit Datenpunkten die ich als Schalter benutze.

    Egal ob ich Blockly, JS oder NodeRed benutze. Wenn ich den Datenpunkt "auf Aktualisierung" prüfe wird 3 mal getriggert.

    Dies führt natürlich dazu dass die nachfolgenden Befehle im Script auch 3 mal ausgeführt werden.

    Wenn ich "auf Änderung" prüfe gibt es diese Probleme nicht.

    Hier mal die Debug-Ausgabe, geschaltet aus Vis On/Off.

    15.1.2019, 12:24:39.257 [info ]: javascript.0 Stop script script.js.Schalter.SZ_Beamer
    15.1.2019, 12:24:41.804 [info ]: javascript.0 Start javascript script.js.Schalter.SZ_Beamer
    15.1.2019, 12:24:41.808 [info ]: javascript.0 script.js.Schalter.SZ_Beamer: registered 1 subscription and 0 schedules
    15.1.2019, 12:24:48.028 [info ]: javascript.0 script.js.Schalter.SZ_Beamer: true
    15.1.2019, 12:24:48.061 [info ]: javascript.0 script.js.Schalter.SZ_Beamer: true
    15.1.2019, 12:24:49.025 [info ]: javascript.0 script.js.Schalter.SZ_Beamer: true
    15.1.2019, 12:24:54.160 [info ]: javascript.0 script.js.Schalter.SZ_Beamer: false
    15.1.2019, 12:24:54.198 [info ]: javascript.0 script.js.Schalter.SZ_Beamer: false
    15.1.2019, 12:24:55.173 [info ]: javascript.0 script.js.Schalter.SZ_Beamer: false
    

    Gibt es eine Möglichkeit dies zu entprellen ??

    Grüsse

    Ingo


  • So…

    zum Beispiel:

    Entpreller ist eine Variable

    Anstatt debug deine eigentlichen Befehle ausführen

    Timeout nach Bedarf anpassen.

    7554_entpreller.png



  • Super, funktioniert.

    Vielen Dank.

    Grüsse

    Ingo


  • @ingod:

    funktioniert. `
    Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].


  • Noch ne kurze Info dazu.

    "falls Entpreller = 0" hat nicht funktioniert habe stattdessen "falls Entpreller ≠ 1" genommen, das klappt.

    Grüsse

    Ingo


  • Das liegt daran, dass die Variable beim Skriptstart nicht mit 0 initialisiert wird und somit "undefined" zurückgibt. Wenn außerhalb des Triggers (also oben dran verbunden) die Variable auf 0 gesetzt wird funktioniert es auch mit dem Vergleich auf 0 😉


  • @ingod:

    habe stattdessen "falls Entpreller ≠ 1" genommen, das klappt. `
    Das funktioniert nicht.

    Was auch nach Skriptstart funktioniert: falls nicht Entpreller


  • OK, die Variable vorher zu setzen ist wahrscheinlich die sauberste Lösung.

    Danke

    Grüsse

    Ingo


  • Ich habe das in der Praxis anstatt mit Variable mit Datenpunkt gelöst und nur für das Beispiel geändert.

    Das Problem ist mir dabei nicht aufgefallen.

    Also sorry, war mein Fehler.


  • Hallo, ich hänge mich mal hier dran.

    So wirklich gelöst ist das Problem ja nicht, es wurde ja auch ein Github dazu erstellt:

    https://github.com/ioBroker/ioBroker.ja … issues/288

    Ich verwende bei mir mehrere GHoma-Steckdosen mit Leistungsmessung. Damit will ich u.a. Trockner/Waschmaschine überwachen.

    Im Log bekommen ich jetzt jedes Update mehrfach angezeigt, teilweise auch von die Leistungswerten von andere Steckdosen obwohl die korrekte ausgewählt wurden. (Trockner hat ~ 500W)

    code Aus Blockly

    on({id: new RegExp('g-homa\\.0\\.4FEC24\\.power' + "|" + 'vis\\.0\\.datapoints\\.WM_Meldung_Aus'), change: "ne"}, function (obj) {
        CrtPower = getState("g-homa.0.4FEC24.power").val;
        console.log((['Trockner Leistung:',(obj.state ? obj.state.val : ""),' W, Status: ',WM_Status].join('')));
        ..
    

    Log

    13:37:12.958	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:475.94 W, Status: 2
    13:37:12.959	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:475.94 W, Status: 2
    13:37:12.959	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:475.94 W, Status: 2
    13:37:13.401	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:0.93 W, Status: 2
    13:37:13.402	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:0.93 W, Status: 2
    13:37:13.403	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:0.93 W, Status: 2
    13:38:27.978	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:475.28 W, Status: 2
    13:38:27.979	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:475.28 W, Status: 2
    13:38:27.979	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:475.28 W, Status: 2
    13:38:51.831	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:484.22 W, Status: 2
    13:38:51.832	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:484.22 W, Status: 2
    13:38:51.832	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:484.22 W, Status: 2
    13:38:52.337	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:0.94 W, Status: 2
    13:38:52.338	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:0.94 W, Status: 2
    13:38:52.338	info	javascript.0 script.js.GHoma.Trockner: Trockner Leistung:0.94 W, Status: 2
    

    Hier steht auch noch was dazu allerdings ohne Lösung:

    viewtopic.php?t=8821


  • Участник @Tottbeck написал в [gelöst] Entprellen von Schaltern:

    obj.state ? obj.state.val : ""

    Kannst du so was ausgeben: console.log('Leistung: ' + JSON.stringify(state)) ?


  • Hi,
    ich muss zum verständnis mal was nachfragen!

    entpreller.png

  • Developer

    @totocotonio
    Ohne selber ein Spezialist bei Blockly zu sein - hast du die Variable entpreller irgendwo mit 0 vorbelegt ? Wenn nein, dann rechne ich damit das er da nicht rein kommt.


  • @Asgothian Ok, wo muss dann mein eigentliches Blockly hin?

  • Developer

    @totocotonio
    setz mal ein Objekt Setze Entpreller auf 0 vor den Falls Objekt geändert block. Das wird dann nur einmal beim Aufruf des Blocklys aufgerufen


  • @Asgothian Auwei, ich verstehe nicht was du meinst.😖

  • Developer

    @totocotonio
    versuch das mal so:
    (Bild hab ich zusammen kopiert, kann aktuell nicht auf meinen iobroker)mockup.jpg
    Und ja, da wo du hin zeigst muss das rein was du ausführen willst.


  • @Asgothian Ahhh 🤔 ,
    jetzt weiß ich wie du es meintest und so habe auch ich es verstanden.

    Ich versuche es mal so.

    Danke.


  • @Asgothian Hi,
    ich habe so gemacht und es funktioniert scheinbar, ich muss es noch ausgiebig testen.
    entpreller.jpg

Suggested Topics

  • 6
  • 32
  • 10
  • 1
  • 6
  • 18
  • 1
  • 5

2.2k
Online

35.2k
Users

41.1k
Topics

566.1k
Posts