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 @dslraser last edited by HAL

      @dslraser

      vom Adapter Octoprint

      {
        "from": "system.adapter.javascript.0",
        "user": "system.user.admin",
        "ts": 1578317499727,
        "common": {
          "name": "Reststunden",
          "desc": "Reststunden",
          "type": "string",
          "role": "state"
        },
        "native": {},
        "acl": {
          "object": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator",
          "state": 1636
        },
        "_id": "javascript.0.OctoPi.Reststunden",
        "type": "state"
      }
      
      dslraser 1 Reply Last reply Reply Quote 0
      • 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

                                779
                                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