Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter OctoPrint

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Test Adapter OctoPrint

    This topic has been deleted. Only users with topic management privileges can see it.
    • Negalein
      Negalein Global Moderator @da_Woody last edited by

      @da_woody sagte in Test Adapter OctoPrint:

      cura thumbnails gehts nicht

      Ja, weil Slicer Thumbnail im Adapter ist 😉
      War ja mein Wunsch 😝

      da_Woody 1 Reply Last reply Reply Quote 0
      • Latzi
        Latzi @da_Woody last edited by

        @da_woody
        👍
        steht auch so in der Adpater-Beschreibung:
        bab11a6b-89d6-426e-83dc-83873fb3a1fb-image.png

        da_Woody 1 Reply Last reply Reply Quote 1
        • joergeli
          joergeli @Negalein last edited by

          An alle und speziell @Negalein 😉

          Ich habe hier ein JS-Script zusammengeschustert, welches die Octoprint-Zeiten in HH:MM:SS umsetzt,
          sowie die Gesamtdruckdauer und Fertigstellungszeit erstellt.
          (Fertigstellungszeit enthält auch das Datum, weil der Druckjob ja z.B. erst am nächsten Tag fertig werden könnte).

          Sieht in meinem VIS z.B. so aus:
          octo-zeiten.jpg

          Dazu werden unter javascript.0.OctoPi insges. 4 Datenpunkte (EndeZeit, Gesamtzeit, Printzeit, Restzeit) beim ersten Start des Scriptes angelegt, deren Inhalte (Strings) im VIS eingebunden werden können

          octo-datenpunkte.jpg

          evtl. kann das ja außer @Negalein noch jemand gebrauchen?

          //#####################################################################
          // Octoprint-Zeitberechnungen
          //#####################################################################
          
          // Variablen aus Octoprint-Adapter uebernehmen
          const anycubic_timedone     = 'octoprint.0.printjob.progress.printtime'
          const anycubic_timeleft     = 'octoprint.0.printjob.progress.printtime_left'
          const anycubic_completion   = 'octoprint.0.printjob.progress.completion'
          
          // Eigene Datenpunkte unter "javascript.0.OctoPi." erzeugen
          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.Gesamtzeit', {
              name: 'Gesamtzeit',
              desc: 'Gesamtdauer des Druckjobs',
              type: 'string',
          });
          
          createState( 'javascript.0.OctoPi.EndeZeit', {
              name: 'EndeZeit',
              desc: 'Uhrzeit Fertigstellung des Druckes',
              type: 'string'
          });
          
          //____________________________________________________________________________________________________
          
          // Umrechnung der Druckzeiten von Sekunden in HH:MM:SS
          //#####################################################
          
          function umrechnung() {
              var time_left = getState("octoprint.0.printjob.progress.printtime_left").val;
              var job_time  = getState('octoprint.0.printjob.progress.printtime').val;
              var duration = time_left + job_time;
          
              // Hours
              var hours_restzeit  =  Math.floor( time_left / 3600 );
              var hours_printzeit =  Math.floor( job_time  / 3600 );
              var hours_duration  =  Math.floor( duration  / 3600 );
              
              // Fuehrende 0 notwendig ?
              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)
              if ( hours_duration < 10 ){var std_duration= "0" + String(hours_duration); }
                  else var std_duration = String(hours_duration)
          
              // Minutes
              var minutes_restzeit  = Math.floor( (time_left%3600) / 60 );
              var minutes_printzeit = Math.floor( (job_time%3600)  / 60 );
              var minutes_duration  = Math.floor( (duration%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)
              if ( minutes_duration < 10 ){var min_duration= "0" + String(minutes_duration); }
                  else var min_duration = String(minutes_duration)
          
              // Seconds
              var seconds_restzeit  = Math.floor( time_left%60 );
              var seconds_printzeit = Math.floor( job_time%60  );
              var seconds_duration  = Math.floor( duration%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)
              if ( seconds_duration < 10 ){var sec_duration= "0" + String(seconds_duration); }
                  else var sec_duration = String(seconds_duration)
          
              // Zeiten in HH:MM:SS format
              var restzeit  = std_restzeit  + ':' + min_restzeit  + ':' + sec_restzeit;
              var printzeit = std_printzeit + ':' + min_printzeit + ':' + sec_printzeit;
              var dauer     = std_duration + ':' + min_duration + ':' + sec_duration;
          
          //console.log("Restzeit:" + restzeit + "__" + " Printzeit:" + printzeit + "__"  +" Dauer:" + dauer);
          
          if(time_left == null || time_left == 0 ){(setState("javascript.0.OctoPi.Restzeit",    "--:--:--", true)) }
          else setState("javascript.0.OctoPi.Restzeit", restzeit, true);
          
          if(time_left == null || time_left == 0 ){(setState("javascript.0.OctoPi.Printzeit",    "--:--:--", true)) }
          else setState("javascript.0.OctoPi.Printzeit", printzeit, true);
          
          if(time_left == null || time_left == 0 ){(setState("javascript.0.OctoPi.Gesamtzeit",    "--:--:--", true)) }
          else setState("javascript.0.OctoPi.Gesamtzeit", dauer, true);
          
          }
          
          //____________________________________________________________________________________________________
          
          // Druck-Ende Uhrzeit berechnen //
          //#################################
          
          function endezeit(){
          var time_left = getState("octoprint.0.printjob.progress.printtime_left").val;
          var sekunden_restzeit  = time_left; // Restzeit in Sekunden aus Octopi
          if(time_left == null || time_left == 0 ){ setState("javascript.0.OctoPi.EndeZeit", '---', true) };
          
          var Zeit = new Date();
          //log('jetzt: ' + Zeit);
          
          var z0_neu = Zeit.getSeconds()+ sekunden_restzeit;
          var z_neu = Zeit.setSeconds(z0_neu);
          var ZeitNeu = new Date(z_neu);
          //console.log('Endezeit: '  + ZeitNeu);
          
          var h_ende = ZeitNeu.getHours();
          var m_ende = ZeitNeu.getMinutes();
          var s_ende = ZeitNeu.getSeconds();
          var tag_ende = ZeitNeu.getDate();
          var months = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"];
          var monat_ende  = months[ZeitNeu.getMonth()];
          
          var EndeZeit = tag_ende + '.' + monat_ende + ' ' + h_ende + ':' + m_ende + ':' + s_ende;
          //console.log('EndeZeit: '  + EndeZeit);
          
              // Führende 0 hinzufügen und als String wandeln
              if ( tag_ende  < 10 ){var endtag = "0" + String(tag_ende);}
                  else var endtag = String(tag_ende)
              if ( h_ende  < 10 ){var endstunde = "0" + String(h_ende);}
                  else var endstunde = String(h_ende)
              if ( m_ende  < 10 ){var endminute = "0" + String(m_ende);}
                  else var endminute = String(m_ende)
              if ( s_ende  < 10 ){var endsekunde = "0" + String(s_ende);}
                  else var endsekunde = String(s_ende)
          
          var EndeZeit = endtag + '. ' + monat_ende + '  ' + endstunde + ':' + endminute + ':' + endsekunde;
          //console.log('EndeZeit: '  + EndeZeit);
          
          if(time_left == null || time_left == 0 ){(setState("javascript.0.OctoPi.EndeZeit",    "--:--:--", true)) }
          else setState("javascript.0.OctoPi.EndeZeit", EndeZeit, true);
          
          }   // end of function EndeZeit()
          
          //____________________________________________________________________________________________________
          
          //Druckfortschritt abfragen
          on({id: anycubic_timeleft , change: 'lt'}, function() {
              umrechnung()
              endezeit()
          });
          
          

          Gruß
          Jörg

          da_Woody Negalein 3 Replies Last reply Reply Quote 3
          • da_Woody
            da_Woody @Negalein last edited by

            @negalein sagte in Test Adapter OctoPrint:

            War ja mein Wunsch

            kloa, nur weil du jetzt mitm prusa werkelst... 😄 cura rulez!

            joergeli 1 Reply Last reply Reply Quote 1
            • da_Woody
              da_Woody @joergeli last edited by

              @joergeli oi! kaum eins zum laufen gebracht, kommst du um die ecke! 😄
              thnx auch dafür!
              wobei die letzten beiden ja eh vorhanden sind...

              joergeli 1 Reply Last reply Reply Quote 0
              • joergeli
                joergeli @da_Woody last edited by

                @da_woody sagte in Test Adapter OctoPrint:

                kloa, nur weil du jetzt mitm prusa werkelst... cura rulez!

                eieieiei - und ich Blödel habe im obigen script ein paar mal den Begiff "anycubic" verwendet .....
                Asche auf mein Haupt 😜

                1 Reply Last reply Reply Quote 0
                • Negalein
                  Negalein Global Moderator @joergeli last edited by

                  @joergeli sagte in Test Adapter OctoPrint:

                  Ich habe hier ein JS-Script zusammengeschustert, welches die Octoprint-Zeiten in HH:MM:SS umsetzt,

                  Merci!!!

                  PS: statt javascript.0 hätt ich es gerne in 0_userdate.0
                  Reicht es, wenn ich die createState auf 0_userdata ändere?

                  joergeli 2 Replies Last reply Reply Quote 0
                  • joergeli
                    joergeli @da_Woody last edited by

                    @da_woody sagte in Test Adapter OctoPrint:

                    wobei die letzten beiden ja eh vorhanden sind...

                    Ich dachte, die Zeiten würden immer noch nur in Sekunden und nicht in HH:MM:SS ausgegeben?

                    da_Woody Negalein 2 Replies Last reply Reply Quote 0
                    • da_Woody
                      da_Woody @joergeli last edited by

                      @joergeli jo, aber ich hab das im iQontrol umgerechnet... 😉

                      1 Reply Last reply Reply Quote 0
                      • joergeli
                        joergeli @Negalein last edited by

                        @negalein sagte in Test Adapter OctoPrint:

                        PS: statt javascript.0 hätt ich es gerne in 0_userdate.0
                        Reicht es, wenn ich die createState auf 0_userdata ändere?

                        Sollte theoretisch funktionieren ... bin mir aber nicht sicher.

                        1 Reply Last reply Reply Quote 1
                        • Negalein
                          Negalein Global Moderator @joergeli last edited by

                          @joergeli sagte in Test Adapter OctoPrint:

                          Ich dachte, die Zeiten würden immer noch nur in Sekunden und nicht in HH:MM:SS ausgegeben?

                          Ja, sind noch in Sekunden.
                          Manche Widgets könnens direkt umrechnen.

                          1 Reply Last reply Reply Quote 0
                          • joergeli
                            joergeli @Negalein last edited by

                            @negalein
                            Ich habe das Script eben noch mal überflogen:
                            Es reicht leider doch nicht! aus, nur die createState auf 0_userdata zu ändern.
                            Im Script selbst kommt javascript.0 auch noch diverse Male vor.

                            Kannst ja mal mit z.B. Notepad++ probieren, alle auf einen Schlag mit "suchen und ersetzen" umzubiegen

                            da_Woody Negalein 2 Replies Last reply Reply Quote 0
                            • da_Woody
                              da_Woody @Latzi last edited by

                              @latzi aaarrg! ich krieg die krise...
                              in der thumbnail_url steht ja die komplette adresse drinnen mit http.
                              in deiner zeile 6 wird nochmal http... + pfad + DP aufgerufen. führt bei mir dazu, daß mein DP

                              http://192.168.2.59/http://192.168.2.59:80/plugin/prusaslicerthumbnails/thumbnail/Düse.png?20220120133146
                              

                              anzeigt... bin ich echt schon so verblödet?
                              db66a989-0289-493a-b5e8-fd144ef2097d-grafik.png

                              Negalein Latzi 2 Replies Last reply Reply Quote 0
                              • da_Woody
                                da_Woody @joergeli last edited by

                                @joergeli sagte in Test Adapter OctoPrint:

                                Notepad++

                                so hab ich anycubic auf ender3v2 umgeschnitzt... 🙂

                                joergeli 1 Reply Last reply Reply Quote 0
                                • Negalein
                                  Negalein Global Moderator @joergeli last edited by

                                  @joergeli sagte in Test Adapter OctoPrint:

                                  Im Script selbst kommt javascript.0 auch noch diverse Male vor.

                                  habs gesehn und gleich mit dem createstate geändert. 🙂

                                  1 Reply Last reply Reply Quote 0
                                  • Negalein
                                    Negalein Global Moderator @da_Woody last edited by

                                    @da_woody sagte in Test Adapter OctoPrint:

                                    in deiner zeile 6 wird nochmal http... + pfad + DP aufgerufen. führt bei mir dazu, daß mein DP

                                    stimmt, war glaube ich wegen meinem Issue

                                    So schaut der Pfad in thumbnail_url aus
                                    http://10.0.1.182:80/plugin/prusaslicerthumbnails/thumbnail/Kinder/Gekko_einzeln.png?20220120081343

                                    1 Reply Last reply Reply Quote 0
                                    • joergeli
                                      joergeli @da_Woody last edited by

                                      @da_woody sagte in Test Adapter OctoPrint:

                                      so hab ich anycubic auf ender3v2 umgeschnitzt...

                                      ... du Böser du ......
                                      Nee, im Ernst:
                                      Letztendlich unterscheiden sich m.E. alle günstigen Filament-Brater nicht sonderlich.
                                      OK, der eine ist etwas lauter, der andere läßt sich leichter nivellieren, wieder ein anderer hat 'nen besseren Extruder, oder was weiß ich was sonst noch.
                                      Kann man im Hobby-Bereich doch durchaus mit Leben, oder?

                                      Das einzige was ich erfahren mußte, daß billiges Filament meistens nix taucht:
                                      Da hatte ich schon Rollen, wo der Filament-Durchmesser schwankte, wie ein Boa, die gerade ein Schwein vertilgt hat 😉

                                      Ich will jetzt hier aber bitte keine! Diskussion lostreten, welches Fabrikat besser/schlechter ist.

                                      da_Woody 1 Reply Last reply Reply Quote 1
                                      • Latzi
                                        Latzi @da_Woody last edited by

                                        @da_woody sagte in Test Adapter OctoPrint:

                                        http://192.168.2.59/http://192.168.2.59:80/plugin/prusaslicerthumbnails/thumbnail/Düse.png?20220120133146

                                        bei mit steht im thumbnail_url erst ab plugin/prusaslicerthumbnails.... drin, darum hab ich die ip hinzugefügt. Einfach aus dem script

                                        "http://192.168.2.59/" + 
                                        

                                        rauslöschen - dann wird´s nochmal einfacher.
                                        Welche Version des Adapters ist installiert? Ich hab 2.2.0 über latest installiert (nicht git).

                                        da_Woody 1 Reply Last reply Reply Quote 1
                                        • da_Woody
                                          da_Woody @Latzi last edited by

                                          @latzi 👍

                                          http://192.168.2.59:80/plugin/prusaslicerthumbnails/thumbnail/Düse.png?20220120133146
                                          

                                          im moment baschts... 😄
                                          ich bin schon auf der 3.0.0

                                          Latzi 1 Reply Last reply Reply Quote 0
                                          • Latzi
                                            Latzi @da_Woody last edited by

                                            @da_woody
                                            sehr gut!
                                            Da hat Matthias wohl am Inhalt von thumbnail_url in der 3.0.0 nachgebessert 😉

                                            haus-automatisierung da_Woody 2 Replies Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            540
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter entwicklung adatper updates developer testen
                                            49
                                            461
                                            63721
                                            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