Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Umrechnung einer Variablen von Minuten in Stunden und Minuten

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Umrechnung einer Variablen von Minuten in Stunden und Minuten

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

      Hallo zusammen,

      ich versuche im Moment den Wert aus einer Variablen, die in Minuten angegeben ist, in eine Zeitangabe umzuwandeln, die man besser verstehen kann. Ich hab es mal so probiert, aber da bekomme ich als Antwort nur "ja"

      on({id: 'modbus.0.holdingRegisters.13012_HeatPumpeBetriebsdauer', change: "any"}, function (obj) {

      var value = obj.state.val;

      var oldValue = obj.oldState.val;

      getState("modbus.0.holdingRegisters.13012_HeatPumpeBetriebsdauer"/in Minuten/).val;

      exec(value/60);

      });

      Danke Michael

      1 Reply Last reply Reply Quote 0
      • Lenny.CB
        Lenny.CB Most Active last edited by

        versuche mal so:

        on({id: 'modbus.0.holdingRegisters.13012_HeatPumpeBetriebsdauer', change: "any"}, function (obj) {
          console.log((getState('modbus.0.holdingRegisters.13012_HeatPumpeBetriebsdauer').val)/60);
        });
        
        1 Reply Last reply Reply Quote 0
        • W
          walf last edited by

          Das war es leider nicht. Ich habe hier snips.ai laufen, das die Ansage eben passend umändern soll.

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

            Oder so:

            on({id: 'modbus.0.holdingRegisters.13012_HeatPumpeBetriebsdauer', change: "any"}, function (obj) {
                let dauer_minuten = obj.state.val;
                let stunden = Math.floor(dauer_minuten/60);
                let minuten = Math.floor(dauer_minuten%60);
                minuten = (minuten > 9) ? minuten : "0" + minuten; // Führende "0"
                console.log("Dauer: " + stunden + "Stunden " + minuten + " Minuten");
            });
            
            

            Für die Textansage kann man mit einer etwas diffenzierten If-Abfrage oder switch-Anweisung einen besseren Ansagetext generieren:

            Dauer 125 = "Zwei Stunden und fünf Minuten"

            Dauer 60 = "Eine Stunde" / "Genau eine Stunde"

            Dauer 15 = "15 Minuten" oder sogar "eine Viertelstunde"

            Gruß

            Pix

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

              Mit der Lösung krieg ich zwar die richtige Ausgabe auf die Konsole, schaff es aber nicht, das mir snips das ausgibt.

              Trotzdem danke

              Michael

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

                Hallo,

                was für einen Datenpunkt musst du denn für snips befüllen?

                So vielleicht?

                const idSnips = "IDDATENPUNKTSNIPSTEXTEINGABE"; // Hier die ID für Snips einstellen
                on({id: 'modbus.0.holdingRegisters.13012_HeatPumpeBetriebsdauer', change: "any"}, function (obj) {
                    let text = "";
                    let dauer_minuten = obj.state.val;
                    let stunden = Math.floor(dauer_minuten/60);
                    let minuten = Math.floor(dauer_minuten%60);
                    minuten = (minuten > 9) ? minuten : "0" + minuten; // Führende "0"
                    text = "Dauer: " + stunden + "Stunden " + minuten + " Minuten";
                    console.log(text);
                    setState(idSnips, text);
                });
                
                

                Konstante idSnips musst du mit dem Objekt für die Snips Texteingabe befüllen.

                Übrigens erfolgt dann beim obigen Skript die Ansage minütlich (oder zumindest, immer, wenn sich der Wert ändert).

                Gruß

                Pix

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

                  Ich wollte, wenn ich die Betriebsstunden über snips abfrage, das der Wert, der in der wago in Minuten eingetragen ist, umgerechnet ausgegeben wird.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  690
                  Online

                  31.9k
                  Users

                  80.2k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  2009
                  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