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.
    • 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

                            394
                            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