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

  • 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

    @paul53 Hat leider auch nichts gebracht. "Restdruckzeit ist 0 1 Stunden und 0 6 Minuten".

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

    @HAL
    Wie sehen denn die Datenpunkte "Reststunden" und "Restminuten" im RAW aus ? Kommen die von einem Adapter ?

    HALH 1 Antwort Letzte Antwort
    0
    • dslraserD dslraser

      @HAL
      Wie sehen denn die Datenpunkte "Reststunden" und "Restminuten" im RAW aus ? Kommen die von einem Adapter ?

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

      @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"
      }
      

      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

        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

                                726

                                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