Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter OctoPrint

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Test Adapter OctoPrint

Scheduled Pinned Locked Moved Tester
adapter entwicklungadatper updatesdevelopertesten
461 Posts 49 Posters 97.4k Views 44 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • haus-automatisierungH haus-automatisierung

    @ralf_n sagte in Test Adapter OctoPrint:

    Ip Gateway (LAN) ist natürlich das richtige drin !?!?!

    Was erwartest Du jetzt von mir? 🙂 Da ist irgendwas bei der Kommunikation schief gelaufen. Ich würde mal in das OctoPrint-Log schauen (nicht das vom Adapter), ob der Prozess rund läuft.

    S Do not disturb
    S Do not disturb
    stenmic
    wrote on last edited by stenmic
    #181

    @haus-automatisierung
    hi, wäre es möglich das thumbnail vom aktuellen Printjob anzuzeigen? (ohne die Variable “Filename“)
    ich möchte dieses dann in VIS einblenden.

    haus-automatisierungH 1 Reply Last reply
    0
    • S stenmic

      @haus-automatisierung
      hi, wäre es möglich das thumbnail vom aktuellen Printjob anzuzeigen? (ohne die Variable “Filename“)
      ich möchte dieses dann in VIS einblenden.

      haus-automatisierungH Online
      haus-automatisierungH Online
      haus-automatisierung
      Developer Most Active
      wrote on last edited by
      #182

      @stenmic sagte in Test Adapter OctoPrint:

      hi, wäre es möglich das thumbnail vom aktuellen Printjob anzuzeigen? (ohne die Variable “Filename“)

      Ich bekomme im Printjob keine Angaben über das Thumbnail. Also aktuell geht es nur, wenn Du das aus den Files selbst raussuchst.

      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
      📚 Meine inoffizielle ioBroker Dokumentation

      NegaleinN 1 Reply Last reply
      0
      • haus-automatisierungH haus-automatisierung

        @stenmic sagte in Test Adapter OctoPrint:

        hi, wäre es möglich das thumbnail vom aktuellen Printjob anzuzeigen? (ohne die Variable “Filename“)

        Ich bekomme im Printjob keine Angaben über das Thumbnail. Also aktuell geht es nur, wenn Du das aus den Files selbst raussuchst.

        NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        wrote on last edited by
        #183

        @haus-automatisierung sagte in Test Adapter OctoPrint:

        Ich bekomme im Printjob keine Angaben über das Thumbnail

        Das ist schade, dass das nicht möglich ist.

        ° Node.js: 20.17.0 NPM: 10.8.2
        ° Proxmox, Ubuntu 22.04.3 LTS
        ° Fixer ---> iob fix

        LatziL joergeliJ 2 Replies Last reply
        0
        • NegaleinN Negalein

          @haus-automatisierung sagte in Test Adapter OctoPrint:

          Ich bekomme im Printjob keine Angaben über das Thumbnail

          Das ist schade, dass das nicht möglich ist.

          LatziL Online
          LatziL Online
          Latzi
          wrote on last edited by
          #184

          @negalein
          das lässt sich jedoch leicht mit einem script machen 😉

          NegaleinN 1 Reply Last reply
          0
          • LatziL Latzi

            @negalein
            das lässt sich jedoch leicht mit einem script machen 😉

            NegaleinN Offline
            NegaleinN Offline
            Negalein
            Global Moderator
            wrote on last edited by
            #185

            @latzi sagte in Test Adapter OctoPrint:

            das lässt sich jedoch leicht mit einem script machen

            wäre cool
            erstellst du eins? 😉

            ° Node.js: 20.17.0 NPM: 10.8.2
            ° Proxmox, Ubuntu 22.04.3 LTS
            ° Fixer ---> iob fix

            LatziL 1 Reply Last reply
            0
            • NegaleinN Negalein

              @latzi sagte in Test Adapter OctoPrint:

              das lässt sich jedoch leicht mit einem script machen

              wäre cool
              erstellst du eins? 😉

              LatziL Online
              LatziL Online
              Latzi
              wrote on last edited by Latzi
              #186

              @negalein
              bitte sehr ... (geht sicher noch eleganter, bin für jede Anregung dankbar)
              Die Datenpunkte unter javascript.0 händisch anlegen und los geht´s (ip vom octopi auch noch einfügen)!

              on({id: 'octoprint.0.printjob.file.name', change: "any"}, async function (obj) {
                 var octo_thumb='';
                 var thumb_file=''; 
                 if ((obj.state.val)!== null) {
                     thumb_file=getState("octoprint.0.printjob.file.origin").val +"_" + obj.state.val.replace(".gcode","");
                     if (existsState("octoprint.0.files." + thumb_file + ".thumbnail_url")) {
                        octo_thumb= getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val;
                     };
                 }; 
                 setState("javascript.0.3D-Drucker.dir_thumb", thumb_file, true);
                 setState("javascript.0.3D-Drucker.thumbnail", octo_thumb, true);
              }); 
              
              da_WoodyD NegaleinN 2 Replies Last reply
              0
              • Ralf_NR Offline
                Ralf_NR Offline
                Ralf_N
                wrote on last edited by
                #187

                Hallo zusammen.

                Hat schon jemand negative Erfahrungen mit dem Update in Bezug auf den Adapter gemacht ?

                https://octoprint.org/blog/2022/01/20/new-release-1.7.3/?utm_source=octoprint&utm_medium=announcements&utm_content=1.7.2

                Danke.

                Liebe Grüße,

                Ralf.

                1 Reply Last reply
                0
                • LatziL Latzi

                  @negalein
                  bitte sehr ... (geht sicher noch eleganter, bin für jede Anregung dankbar)
                  Die Datenpunkte unter javascript.0 händisch anlegen und los geht´s (ip vom octopi auch noch einfügen)!

                  on({id: 'octoprint.0.printjob.file.name', change: "any"}, async function (obj) {
                     var octo_thumb='';
                     var thumb_file=''; 
                     if ((obj.state.val)!== null) {
                         thumb_file=getState("octoprint.0.printjob.file.origin").val +"_" + obj.state.val.replace(".gcode","");
                         if (existsState("octoprint.0.files." + thumb_file + ".thumbnail_url")) {
                            octo_thumb= getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val;
                         };
                     }; 
                     setState("javascript.0.3D-Drucker.dir_thumb", thumb_file, true);
                     setState("javascript.0.3D-Drucker.thumbnail", octo_thumb, true);
                  }); 
                  
                  da_WoodyD Online
                  da_WoodyD Online
                  da_Woody
                  wrote on last edited by
                  #188

                  @latzi erstmal thnx! 👍
                  allerdings bekomm ich immer warn.

                  	warn	javascript.0 (615) at Object.<anonymous> (script.js.common.Diverses.Octothumb:6:45)
                  

                  script angepasst, IMHO richtig...

                  on({id: 'octoprint.0.printjob.file.name', change: "any"}, async function (obj) {
                     var octo_thumb='';
                     var thumb_file=''; 
                     if ((obj.state.val)!== null) {
                         thumb_file=getState("octoprint.0.printjob.file.origin").val +"_" + obj.state.val.replace(".gcode","");
                         octo_thumb= "http://192.168.2.59/" + getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val;
                         } 
                     setState("javascript.0.Octothumb.dir_thumb", thumb_file, true);
                     setState("javascript.0.Octothumb.thumbnail", octo_thumb, true);
                  }); 
                  
                  

                  DPs sind da:
                  e98d5964-7df6-465d-92a1-db1068216388-grafik.png
                  in thumbnail hab ich allerdings:

                  http://192.168.2.59/null
                  

                  verschluckt nach der IP alles...
                  zu bekloppt für JS...

                  gruß vom Woody
                  HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                  LatziL 1 Reply Last reply
                  0
                  • da_WoodyD da_Woody

                    @latzi erstmal thnx! 👍
                    allerdings bekomm ich immer warn.

                    	warn	javascript.0 (615) at Object.<anonymous> (script.js.common.Diverses.Octothumb:6:45)
                    

                    script angepasst, IMHO richtig...

                    on({id: 'octoprint.0.printjob.file.name', change: "any"}, async function (obj) {
                       var octo_thumb='';
                       var thumb_file=''; 
                       if ((obj.state.val)!== null) {
                           thumb_file=getState("octoprint.0.printjob.file.origin").val +"_" + obj.state.val.replace(".gcode","");
                           octo_thumb= "http://192.168.2.59/" + getState("octoprint.0.files." + thumb_file + ".thumbnail_url").val;
                           } 
                       setState("javascript.0.Octothumb.dir_thumb", thumb_file, true);
                       setState("javascript.0.Octothumb.thumbnail", octo_thumb, true);
                    }); 
                    
                    

                    DPs sind da:
                    e98d5964-7df6-465d-92a1-db1068216388-grafik.png
                    in thumbnail hab ich allerdings:

                    http://192.168.2.59/null
                    

                    verschluckt nach der IP alles...
                    zu bekloppt für JS...

                    LatziL Online
                    LatziL Online
                    Latzi
                    wrote on last edited by Latzi
                    #189

                    @da_woody
                    hast den DP octoprint.0.files.local_Düse.thumbnail_url?
                    Scheint, als ob der nicht existiert oder nichts Vernünftiges darin enthalten ist

                    da_WoodyD 1 Reply Last reply
                    0
                    • LatziL Latzi

                      @da_woody
                      hast den DP octoprint.0.files.local_Düse.thumbnail_url?
                      Scheint, als ob der nicht existiert oder nichts Vernünftiges darin enthalten ist

                      da_WoodyD Online
                      da_WoodyD Online
                      da_Woody
                      wrote on last edited by
                      #190

                      @latzi nope, der ist nicht vorhanden...
                      in octo seh ich das thumb aber... generiert wirds also. in cura ja auch aktiviert.
                      92162cc2-d83f-4c4d-b824-e829461739a0-grafik.png a795acc5-309e-4b6d-8147-846225c2abc8-grafik.png

                      gruß vom Woody
                      HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                      LatziL 1 Reply Last reply
                      0
                      • da_WoodyD da_Woody

                        @latzi nope, der ist nicht vorhanden...
                        in octo seh ich das thumb aber... generiert wirds also. in cura ja auch aktiviert.
                        92162cc2-d83f-4c4d-b824-e829461739a0-grafik.png a795acc5-309e-4b6d-8147-846225c2abc8-grafik.png

                        LatziL Online
                        LatziL Online
                        Latzi
                        wrote on last edited by
                        #191

                        @da_woody
                        sehr seltsam!
                        Ich traue mich fast nicht zu fragen - im Adapter hast du das Plugin angehakt?

                        @da_woody sagte in Test Adapter OctoPrint:

                        @latzi nope, der ist nicht vorhanden...

                        Das erklärt, warum nach der IP "null" kommt - er findet den Inhalt des nicht vorhanden DP´s nicht.

                        da_WoodyD 1 Reply Last reply
                        0
                        • LatziL Latzi

                          @da_woody
                          sehr seltsam!
                          Ich traue mich fast nicht zu fragen - im Adapter hast du das Plugin angehakt?

                          @da_woody sagte in Test Adapter OctoPrint:

                          @latzi nope, der ist nicht vorhanden...

                          Das erklärt, warum nach der IP "null" kommt - er findet den Inhalt des nicht vorhanden DP´s nicht.

                          da_WoodyD Online
                          da_WoodyD Online
                          da_Woody
                          wrote on last edited by
                          #192

                          @latzi sagte in Test Adapter OctoPrint:

                          Ich traue mich fast nicht zu fragen

                          bei mir depp musst du sowas fragen! 😄
                          auf die idea wär ich nicht gekommen...
                          allerdings ist das mit dem plugin auch seltsam. mit dem cura thumbnails gehts nicht. musste slicer thumbnails insten, dann hab ich den DP.

                          gruß vom Woody
                          HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                          NegaleinN LatziL 2 Replies Last reply
                          0
                          • da_WoodyD da_Woody

                            @latzi sagte in Test Adapter OctoPrint:

                            Ich traue mich fast nicht zu fragen

                            bei mir depp musst du sowas fragen! 😄
                            auf die idea wär ich nicht gekommen...
                            allerdings ist das mit dem plugin auch seltsam. mit dem cura thumbnails gehts nicht. musste slicer thumbnails insten, dann hab ich den DP.

                            NegaleinN Offline
                            NegaleinN Offline
                            Negalein
                            Global Moderator
                            wrote on last edited by
                            #193

                            @da_woody sagte in Test Adapter OctoPrint:

                            cura thumbnails gehts nicht

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

                            ° Node.js: 20.17.0 NPM: 10.8.2
                            ° Proxmox, Ubuntu 22.04.3 LTS
                            ° Fixer ---> iob fix

                            da_WoodyD 1 Reply Last reply
                            0
                            • da_WoodyD da_Woody

                              @latzi sagte in Test Adapter OctoPrint:

                              Ich traue mich fast nicht zu fragen

                              bei mir depp musst du sowas fragen! 😄
                              auf die idea wär ich nicht gekommen...
                              allerdings ist das mit dem plugin auch seltsam. mit dem cura thumbnails gehts nicht. musste slicer thumbnails insten, dann hab ich den DP.

                              LatziL Online
                              LatziL Online
                              Latzi
                              wrote on last edited by
                              #194

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

                              da_WoodyD 1 Reply Last reply
                              1
                              • NegaleinN Negalein

                                @haus-automatisierung sagte in Test Adapter OctoPrint:

                                Ich bekomme im Printjob keine Angaben über das Thumbnail

                                Das ist schade, dass das nicht möglich ist.

                                joergeliJ Online
                                joergeliJ Online
                                joergeli
                                wrote on last edited by
                                #195

                                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_WoodyD NegaleinN 3 Replies Last reply
                                3
                                • NegaleinN Negalein

                                  @da_woody sagte in Test Adapter OctoPrint:

                                  cura thumbnails gehts nicht

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

                                  da_WoodyD Online
                                  da_WoodyD Online
                                  da_Woody
                                  wrote on last edited by
                                  #196

                                  @negalein sagte in Test Adapter OctoPrint:

                                  War ja mein Wunsch

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

                                  gruß vom Woody
                                  HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                                  joergeliJ 1 Reply Last reply
                                  1
                                  • joergeliJ joergeli

                                    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_WoodyD Online
                                    da_WoodyD Online
                                    da_Woody
                                    wrote on last edited by
                                    #197

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

                                    gruß vom Woody
                                    HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                                    joergeliJ 1 Reply Last reply
                                    0
                                    • da_WoodyD da_Woody

                                      @negalein sagte in Test Adapter OctoPrint:

                                      War ja mein Wunsch

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

                                      joergeliJ Online
                                      joergeliJ Online
                                      joergeli
                                      wrote on last edited by
                                      #198

                                      @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
                                      0
                                      • joergeliJ joergeli

                                        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

                                        NegaleinN Offline
                                        NegaleinN Offline
                                        Negalein
                                        Global Moderator
                                        wrote on last edited by
                                        #199

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

                                        ° Node.js: 20.17.0 NPM: 10.8.2
                                        ° Proxmox, Ubuntu 22.04.3 LTS
                                        ° Fixer ---> iob fix

                                        joergeliJ 2 Replies Last reply
                                        0
                                        • da_WoodyD da_Woody

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

                                          joergeliJ Online
                                          joergeliJ Online
                                          joergeli
                                          wrote on last edited by
                                          #200

                                          @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_WoodyD NegaleinN 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          708

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe