Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] wie Blockly Script "schöner" machen ?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] wie Blockly Script "schöner" machen ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • dslraser
      dslraser Forum Testing Most Active @HAL last edited by dslraser

      @HAL
      das ist tatsächlich vom Typ string. Ich habe es gerade mit einer Zahl probiert, da kommt die Ansage wie sie soll.
      Steht dan z.B. bei den Minuten/Stunden 08 ?

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

        Ja, genua , da steht jeweils die Stunden und Minuten zweistellig und wenn weniger als 10 Stunden oder 10 Minuten mit führender 0.

        Das dazugehörige Java Script:

        //************ Umrechnung der Druckzeiten von Sekunden nach HH:MM:SS********************* */
        createState('javascript.0.OctoPi.Printzeit', {
            name: 'Druckdauer',
            desc: 'Druckdauer',
            type: 'string'
        });
         
        createState('javascript.0.OctoPi.Restzeit', {
            name: 'Restzeit',
            desc: 'Restzeit',
            type: 'string'
        });
         
        createState('javascript.0.OctoPi.Reststunden', {
            name: 'Reststunden',
            desc: 'Reststunden',
            type: 'string'
        });
        
        createState('javascript.0.OctoPi.Restminuten', {
            name: 'Restminuten',
            desc: 'Restminuten',
            type: 'string'
        });
        
        const restdauer  = 'octoprint.0.printjob.progress.printtime_left'
        const druckdauer = 'octoprint.0.printjob.progress.printtime'
         
        // Triggern, wenn sich Restzeit verkleinert
        on({id: [restdauer], change: "lt"} , function (obj) {
            umrechnung();
        });
         
        //_________________________________________________________________________
         
        function umrechnung() {
            var time_left = getState("octoprint.0.printjob.progress.printtime_left").val;
            var job_time  = getState('octoprint.0.printjob.progress.printtime').val;
         
            // Hours
            var hours_restzeit  =  Math.floor( time_left / 3600 );
            var hours_printzeit =  Math.floor( job_time  / 3600 );
            if ( hours_restzeit  < 10 ){var std_restzeit = "0" + String(hours_restzeit);}
                else var std_restzeit = String(hours_restzeit)
            if ( hours_printzeit < 10 ){var std_printzeit= "0" + String(hours_printzeit); }
                else var std_printzeit = String(hours_printzeit)
         
        
        
            // Minutes
            var minutes_restzeit  = Math.floor( (time_left%3600) / 60 );
            var minutes_printzeit = Math.floor( (job_time%3600)  / 60 );
            if ( minutes_restzeit  < 10 ){var min_restzeit = "0" + String(minutes_restzeit);}
                else var min_restzeit = String(minutes_restzeit)
            if ( minutes_printzeit < 10 ){var min_printzeit= "0" + String(minutes_printzeit); }
                 else var min_printzeit = String(minutes_printzeit)
         
                  
        
            // Seconds
            var seconds_restzeit  = Math.floor( time_left%60 );
            var seconds_printzeit = Math.floor( job_time%60  );
            if ( seconds_restzeit  < 10 ){var sec_restzeit = "0" + String(seconds_restzeit);}
                else var sec_restzeit = String(seconds_restzeit)
            if ( seconds_printzeit < 10 ){var sec_printzeit= "0" + String(seconds_printzeit); }
                else var sec_printzeit = String(seconds_printzeit)
         
            // Zeit in HH:MM:SS format
            var restzeit  = std_restzeit  + ':' + min_restzeit  + ':' + sec_restzeit;
            var printzeit = std_printzeit + ':' + min_printzeit + ':' + sec_printzeit;
         
            console.log("Java Restzeit: " + restzeit);
            console.log("Java Printzeit: " + printzeit);
            console.log("Java Reststunden: " + std_restzeit);
            console.log("Java Restminuten: " + min_restzeit);
         
            setState("javascript.0.OctoPi.Restzeit", restzeit, true);
            setState('javascript.0.OctoPi.Printzeit', printzeit, true);
            setState('javascript.0.OctoPi.Reststunden', std_restzeit, true);
              setState('javascript.0.OctoPi.Restminuten', min_restzeit, true);
        }
         
        
        
        paul53 dslraser 2 Replies Last reply Reply Quote 0
        • paul53
          paul53 @HAL last edited by

          @HAL
          Wandlung "nach Zahl" entfernt führende Nullen.

          Blockly_temp.JPG

          1 Reply Last reply Reply Quote 0
          • dslraser
            dslraser Forum Testing Most Active @HAL last edited by

            @HAL
            ich habe mir gerade mal so einen DP als Sting angelegt. Funktioniert bei mir genau wie von @paul53 vorgeschlagen. Ohne Wandlung nach Zahl kommt die Ansage mit null neun Minuten, mit Wandlung kommt neun Minuten.

            Bildschirmfoto 2020-01-09 um 19.31.16.png

            Bildschirmfoto 2020-01-09 um 19.34.19.png

            HAL 1 Reply Last reply Reply Quote 0
            • HAL
              HAL @dslraser last edited by HAL

              @dslraser
              bei mir sieht es so aus, aber es kommen immer noch die führenden "nullen"
              Wandlung.JPG

              ich werde mal die Wandlung in die ausgabe packen.

              paul53 dslraser 2 Replies Last reply Reply Quote 0
              • paul53
                paul53 @HAL last edited by

                @HAL sagte:

                bei mir sieht es so aus,

                Mein Vorschlag sieht auch anders aus.

                1 Reply Last reply Reply Quote 1
                • dslraser
                  dslraser Forum Testing Most Active @HAL last edited by

                  @HAL sagte in wie Blockly Script "schöner" machen ?:

                  ich werde mal die Wandlung in die ausgabe packen.

                  die soll ja auch angesagt werden und @paul53 hatte es auch so.

                  HAL 1 Reply Last reply Reply Quote 0
                  • HAL
                    HAL @dslraser last edited by

                    @dslraser ,
                    so, jetzt muss ich nur warten, bis der Drucker im einstelligen Minuten Bereich ist 😉
                    (noch 18 Minuten....)
                    wandlung2.JPG

                    dslraser 1 Reply Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active @HAL last edited by

                      @HAL
                      dann sag mal Bescheid. Hättest aber auch einmal manuell den DP ändern können...

                      HAL 1 Reply Last reply Reply Quote 0
                      • HAL
                        HAL @dslraser last edited by

                        @dslraser
                        Jaein, ich nutze den DP auch für VIS und da ist die führende Null optisch besser

                        dslraser 1 Reply Last reply Reply Quote 0
                        • dslraser
                          dslraser Forum Testing Most Active @HAL last edited by

                          @HAL
                          ich meinte ja nur ein mal manuell auf 09 ändern...(für die Ansage)

                          1 Reply Last reply Reply Quote 1
                          • HAL
                            HAL last edited by HAL

                            @dslraser und @paul53,

                            vielen Dank für Eure Hilfe ! , es hat geklappt ! 🙂 👏

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @HAL last edited by

                              @HAL sagte:

                              es hat geklappt !

                              Bitte das Thema als [gelöst] markieren.

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              772
                              Online

                              31.9k
                              Users

                              80.3k
                              Topics

                              1.3m
                              Posts

                              3
                              20
                              867
                              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