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

                              357

                              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