Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Frage] Dauer der Öffnung anzeigen (mit blockly?)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Frage] Dauer der Öffnung anzeigen (mit blockly?)

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      weimaraner last edited by

      Hallo zusammen,

      ich möchte gern in vis die Dauer eines aktuellen Zustandes anzeigen. Im Konkreten ist es ein TFK, dessen Status ich mir in Vis anzeigen lasse. Ist dieser auf "offen", möchte ich gerne die Zeit in Minuten anzeigen lassen, die der Kontakt schon offen ist. Wird der Kontakt geschlossen, soll die Messung stoppen (und die Anzeige in vis verschwinden). Der Wert muß nirgens gespeichert oder archiviert werden.

      Ich würde es gerne mittels blockly lösen, da ich mich damit mal langsam beschäftigen will (muß 😉 )

      Danke Euch und Grüße

      Andreas

      1 Reply Last reply Reply Quote 0
      • lobomau
        lobomau last edited by

        Dafür gibt es ein widget "basic timestamp" und "als Interval" auswählen. Darüber könnte man ein widget legen zum Verdecken des unteren widget bei nicht "offen".

        1 Reply Last reply Reply Quote 0
        • P
          pix last edited by

          Hallo,

          hier gibts es eine Skript Lösung und ganz unten auch eine http://forum.iobroker.net/viewtopic.php?f=23&t=737&start=40#p63514.

          http://forum.iobroker.net/viewtopic.php … =40#p43649

          Pix

          1 Reply Last reply Reply Quote 0
          • W
            weimaraner last edited by

            Hallo Pix,

            im angeführten fred geht es aber um countdown Zähler. Ich möchte allerdings nicht herunterzählen, sondern hochzählen. Also quasi: XX Minuten und XX Sekunden seit TFK offen.

            Oder verstehe ich hier was falsch?

            Das widget kann ich mir erst heute Abend anschauen. Timestamp klingt aber eher nach Uhrzeit, oder?

            Grüße Andreas

            1 Reply Last reply Reply Quote 0
            • lobomau
              lobomau last edited by

              @weimaraner:

              Hallo Pix,

              im angeführten fred geht es aber um countdown Zähler. Ich möchte allerdings nicht herunterzählen, sondern hochzählen. Also quasi: XX Minuten und XX Sekunden seit TFK offen.

              Oder verstehe ich hier was falsch? `
              Kannst es dir umbauen, dass es hochzählt.

              ` > Das widget kann ich mir erst heute Abend anschauen. Timestamp klingt aber eher nach Uhrzeit, oder?

              Grüße Andreas `
              Ja, normalerweise. Kannst im widget aber "Interval" anklicken, dann sieht es so aus:
              1146_unbenannt.jpg

              1 Reply Last reply Reply Quote 0
              • T
                tempestas last edited by

                so müsste es funktionieren (ohne Deckelung der Zeit):

                var idHM_trigger = "hm-rpc.0.MEQ01234567.1.STATE"; // Auslösender Aktor
                
                // ab hier nix mehr anpassen
                
                on(idHM_trigger, function(obj) {
                    if (obj.state.val) setState(countTrigger, true); 
                 });
                
                createState('countTrigger', false);
                
                    var minutes;
                    var seconds;
                    var sekunden = 0;
                    var zeit;
                    var m;
                    var s;
                    var timer;
                
                function count() {
                
                    sekunden = sekunden + 1;
                    zeit = setTimeout(function(){ count() }, 1000);
                    ausgabe();
                
                }
                
                function stop() {
                
                    clearTimeout(zeit);
                
                }
                
                function ausgabe() {
                
                    minutes = Math.floor(sekunden / 60);
                    seconds = sekunden % 60;
                
                    if( minutes < 10) { m = "0" + minutes} else { m = minutes}
                    if( seconds < 10) { s = "0" + seconds} else { s = seconds}
                
                    timer = m + ":" + s;	
                
                }
                
                on('countTrigger', function (obj) {
                    if (obj.newState.val === true || obj.newState.val === 'true' || obj.newState.val == 1) {
                    count();
                        }    
                });
                
                

                Das Stoppen und die Variable "timer" musst du dann an enen Button hängen bzw in einem entsprechendem Widget anzeigen lassen in VIS

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                451
                Online

                31.7k
                Users

                79.8k
                Topics

                1.3m
                Posts

                4
                6
                1735
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo