Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [gelöst] wie Blockly Script "schöner" machen ?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

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

Geplant Angeheftet Gesperrt Verschoben Blockly
20 Beiträge 3 Kommentatoren 1.0k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • HALH 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"
    }
    
    dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    schrieb am zuletzt editiert von dslraser
    #8

    @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 Antwort Letzte Antwort
    0
    • HALH Offline
      HALH Offline
      HAL
      schrieb am zuletzt editiert von
      #9

      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);
      }
       
      
      

      Alle Raspberry ( 5 ) gegen NUC (N100, 16GB Ram und 500GB M2 SSD, extern 2TB SSD ) mit Proxmox 8.3.3 gewechselt. Läuft absolut super !
      (Iobroker, Grafana, Teslalogger, Nextcloud, go2rtc, PiHole, IOB-VIS2, Teslamate, homeassistant nur als test)

      paul53P dslraserD 2 Antworten Letzte Antwort
      0
      • HALH HAL

        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);
        }
         
        
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #10

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

        Blockly_temp.JPG

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • HALH HAL

          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);
          }
           
          
          
          dslraserD Offline
          dslraserD Offline
          dslraser
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #11

          @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

          HALH 1 Antwort Letzte Antwort
          0
          • dslraserD dslraser

            @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

            HALH Offline
            HALH Offline
            HAL
            schrieb am zuletzt editiert von HAL
            #12

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

            Alle Raspberry ( 5 ) gegen NUC (N100, 16GB Ram und 500GB M2 SSD, extern 2TB SSD ) mit Proxmox 8.3.3 gewechselt. Läuft absolut super !
            (Iobroker, Grafana, Teslalogger, Nextcloud, go2rtc, PiHole, IOB-VIS2, Teslamate, homeassistant nur als test)

            paul53P dslraserD 2 Antworten Letzte Antwort
            0
            • HALH 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.

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #13

              @HAL sagte:

              bei mir sieht es so aus,

              Mein Vorschlag sieht auch anders aus.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              1
              • HALH 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.

                dslraserD Offline
                dslraserD Offline
                dslraser
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #14

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

                HALH 1 Antwort Letzte Antwort
                0
                • dslraserD dslraser

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

                  HALH Offline
                  HALH Offline
                  HAL
                  schrieb am zuletzt editiert von
                  #15

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

                  Alle Raspberry ( 5 ) gegen NUC (N100, 16GB Ram und 500GB M2 SSD, extern 2TB SSD ) mit Proxmox 8.3.3 gewechselt. Läuft absolut super !
                  (Iobroker, Grafana, Teslalogger, Nextcloud, go2rtc, PiHole, IOB-VIS2, Teslamate, homeassistant nur als test)

                  dslraserD 1 Antwort Letzte Antwort
                  0
                  • HALH HAL

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

                    dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #16

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

                    HALH 1 Antwort Letzte Antwort
                    0
                    • dslraserD dslraser

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

                      HALH Offline
                      HALH Offline
                      HAL
                      schrieb am zuletzt editiert von
                      #17

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

                      Alle Raspberry ( 5 ) gegen NUC (N100, 16GB Ram und 500GB M2 SSD, extern 2TB SSD ) mit Proxmox 8.3.3 gewechselt. Läuft absolut super !
                      (Iobroker, Grafana, Teslalogger, Nextcloud, go2rtc, PiHole, IOB-VIS2, Teslamate, homeassistant nur als test)

                      dslraserD 1 Antwort Letzte Antwort
                      0
                      • HALH HAL

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

                        dslraserD Offline
                        dslraserD Offline
                        dslraser
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #18

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

                        1 Antwort Letzte Antwort
                        1
                        • HALH Offline
                          HALH Offline
                          HAL
                          schrieb am zuletzt editiert von HAL
                          #19

                          @dslraser und @paul53,

                          vielen Dank für Eure Hilfe ! , es hat geklappt ! :-) :clap:

                          Alle Raspberry ( 5 ) gegen NUC (N100, 16GB Ram und 500GB M2 SSD, extern 2TB SSD ) mit Proxmox 8.3.3 gewechselt. Läuft absolut super !
                          (Iobroker, Grafana, Teslalogger, Nextcloud, go2rtc, PiHole, IOB-VIS2, Teslamate, homeassistant nur als test)

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • HALH HAL

                            @dslraser und @paul53,

                            vielen Dank für Eure Hilfe ! , es hat geklappt ! :-) :clap:

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #20

                            @HAL sagte:

                            es hat geklappt !

                            Bitte das Thema als [gelöst] markieren.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Antwort Letzte Antwort
                            0
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            615

                            Online

                            32.7k

                            Benutzer

                            82.4k

                            Themen

                            1.3m

                            Beiträge
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Anmelden

                            • Du hast noch kein Konto? Registrieren

                            • Anmelden oder registrieren, um zu suchen
                            • Erster Beitrag
                              Letzter Beitrag
                            0
                            • Home
                            • Aktuell
                            • Tags
                            • Ungelesen 0
                            • Kategorien
                            • Unreplied
                            • Beliebt
                            • GitHub
                            • Docu
                            • Hilfe