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

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

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

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

Test Adapter OctoPrint

Geplant Angeheftet Gesperrt Verschoben Tester
adapter entwicklungadatper updatesdevelopertesten
461 Beiträge 49 Kommentatoren 98.0k Aufrufe 44 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.
  • Ralf_NR Ralf_N

    @haus-automatisierung
    Matthias ! Ich erwarte Garnichts von dir ;-)

    War nur eine Frage in die Runde, wo ich mal sinnvoller weise nachschauen sollte.
    Und ob das überhaupt etwas ( negatives ) mit dem Adapter zu tun hat.

    Das hast Du mir ja nun beantwortet :-)

    Danke dafür ;-)

    da_WoodyD Online
    da_WoodyD Online
    da_Woody
    schrieb am zuletzt editiert von
    #180

    @ralf_n google nach 502 Bad Gateway zeigt das an:

    Was bedeutet „502 Bad Gateway“? Der HTTP-Fehlercode „502 Bad Gateway“ zeigt an, dass der Server keine Antwort von der angeforderten URL bekommt, weil das Gateway nicht funktioniert. Dadurch ist kein Datenaustausch möglich und die gewünschte Webseite ist für den Nutzer nicht erreichbar.

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

    1 Antwort Letzte Antwort
    0
    • 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 Nicht stören
      S Nicht stören
      stenmic
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      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 Offline
        haus-automatisierungH Offline
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antworten Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #184

            @negalein
            das lässt sich jedoch leicht mit einem script machen ;-)

            NegaleinN 1 Antwort Letzte Antwort
            0
            • LatziL Latzi

              @negalein
              das lässt sich jedoch leicht mit einem script machen ;-)

              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                0
                • Ralf_NR Offline
                  Ralf_NR Offline
                  Ralf_N
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #188

                    @latzi erstmal thnx! :+1:
                    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 Antwort Letzte Antwort
                    0
                    • da_WoodyD da_Woody

                      @latzi erstmal thnx! :+1:
                      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
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #192

                            @latzi sagte in Test Adapter OctoPrint:

                            Ich traue mich fast nicht zu fragen

                            bei mir depp musst du sowas fragen! :D
                            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 Antworten Letzte Antwort
                            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! :D
                              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
                              schrieb am zuletzt editiert von
                              #193

                              @da_woody sagte in Test Adapter OctoPrint:

                              cura thumbnails gehts nicht

                              Ja, weil Slicer Thumbnail im Adapter ist ;)
                              War ja mein Wunsch :stuck_out_tongue_closed_eyes:

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

                              da_WoodyD 1 Antwort Letzte Antwort
                              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! :D
                                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
                                schrieb am zuletzt editiert von
                                #194

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

                                da_WoodyD 1 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #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 Antworten Letzte Antwort
                                  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 :stuck_out_tongue_closed_eyes:

                                    da_WoodyD Online
                                    da_WoodyD Online
                                    da_Woody
                                    schrieb am zuletzt editiert von
                                    #196

                                    @negalein sagte in Test Adapter OctoPrint:

                                    War ja mein Wunsch

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

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

                                    joergeliJ 1 Antwort Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von
                                      #197

                                      @joergeli oi! kaum eins zum laufen gebracht, kommst du um die ecke! :D
                                      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 Antwort Letzte Antwort
                                      0
                                      • da_WoodyD da_Woody

                                        @negalein sagte in Test Adapter OctoPrint:

                                        War ja mein Wunsch

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

                                        joergeliJ Online
                                        joergeliJ Online
                                        joergeli
                                        schrieb am zuletzt editiert von
                                        #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 :stuck_out_tongue_winking_eye:

                                        1 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von
                                          #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 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          350

                                          Online

                                          32.4k

                                          Benutzer

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