Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Octoprint-script für thumbnail des aktuellen Drucks

NEWS

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

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

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

Octoprint-script für thumbnail des aktuellen Drucks

Scheduled Pinned Locked Moved JavaScript
javascript
100 Posts 9 Posters 9.5k Views 8 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.
  • LatziL Latzi

    Um die aktuelle thumbnail-URL herauszufinden, habe ich ein script erstellt.
    Voraussetzungen:

    • Listenpunktoctoprint-Adapter >= 3.0.0

    Einschränkungen:

    • Filename MUSS eindeutig sein und darf NICHT in anderen Verzeichnissen vorkommen!

    Möglicher Test

    Zum Test des scripts muss nicht unbedingt gedruckt werden, es reicht aus den bestehenden DP´s unter octoprint.x.files einen Druck auszuwählen (wo ein thumbnail_url existiert) und den Inhalt des DP name in octoprint.x.printjob.file.name eintragen (z.B.: Mein_Druck.gcode), danach sollte der DP, welcher im script konfiguriert ist mit der thumbnail_url belegt sein, sofern octoprint offline ist (sonst wird der DP unmittelbar durch den Adapter aktualisiert).

    Konfiguration:

    Es gibt 3 Parameter, welche befüllt werden müssen:

    • path_octo: Der "Pfad" zu octoprint (falls mehrere Instanzen)

    • path_DP_thumbnail: Dort wird ein DP Namens thumbnail erstellt und befüllt (Der DP wird erstellt falls er nicht existiert, die Struktur dorthin muss jedoch händisch erstellt werden.

    • debug: Log-Meldungen ein-/ausschalten

    // --- Konfiguration ---
    const path_octo = 'octoprint.0'; // Instanz zu octoprint
    const path_DP_thumbnail = 'javascript.0.3D-Drucker';  // Wo soll der DP liegen - dies muss angelegt sein/werden! Der DP selbst wird automatisch angelegt!
    var debug= true; // Log-Meldungen einschalten mit true, ausschalten mit false 
    
    //  -- nicht ändern ---
    //   Version 1.0.3 2022-02-03
    var sel_thumb = path_octo + '.files.*.thumbnail_url';
    on({id: path_octo + '.printjob.file.name', change: "ne"}, async function (obj) {
      var octo_thumb='';
      var thumb_file='';
      // await wait(10000); 
      var i = 0;
      // var j = 0;
      if (debug) console.log("Printjob-Name wurde auf >>" + obj.state.val + "<< geändert!");
      if ((obj.state.val)!== null) {
          thumb_file=obj.state.val.replace(".gcode","");
          thumb_file=thumb_file.replace("-","_");
          thumb_file=thumb_file.replace("(","");
          thumb_file=thumb_file.replace(")","");
          thumb_file=thumb_file.replace(" ","_");
          if (thumb_file.length > 0) thumb_file=thumb_file + ".thumbnail_url"; 
          $(sel_thumb).each(function(id) {
              if (id.search(thumb_file) > 0) {
                  i++;
                  octo_thumb = getState(id).val;
                  if (debug) console.log("Printjob-Name >>" + thumb_file + "<< gefunden in " + id + " !");
              } else {
                  if (id.search(thumb_file.substring(1,thumb_file.length-1)) > 0) {
                     // j++;
                     // octo_thumb = getState(id).val;
                     // if (debug) console.log("Printjob-Name >>" + thumb_file.substring(1,thumb_file.length-1) + "<< gefunden in " + id + " !");
                  };
              };    
          });
          if (debug) {
              // if (j>i) i=j;
              console.log(i + " File(s) mit Printjob-Namen " + obj.state.val + " gefunden!");
              if (i>1) console.log("ACHTUNG !!! Mehrere Fundstellen, Datenpunkt " + path_DP_thumbnail + ".thumbnail wurde mit letztem Fund befüllt");
          };    
      } else {
          if (debug) console.log("Printjob-Name ist (null)! Keinen File gefunden!!!");
      }; 
      // DP prüfen ob existent, sonst anlegen
      if (!existsState(path_DP_thumbnail + ".thumbnail")) {
          createState(path_DP_thumbnail + ".thumbnail", octo_thumb,  { name: 'thumbnail', desc: 'full path to thumbnail', type: 'string',   role: '',read: true, write: true });
          if (debug) console.log("Datenpunkt "+ path_DP_thumbnail + ".thumbnail wurde angelegt und mit >>"+ octo_thumb + "<< befüllt!");
      } else {
          setState(path_DP_thumbnail + ".thumbnail", octo_thumb, true);
          console.log("Datenpunkt " + path_DP_thumbnail + ".thumbnail wurde mit >>"+ octo_thumb + "<< befüllt!");
      };
      if (debug) console.log("Verarbeitung abgeschlossen!");
    }); 
    

    Viel Spaß damit!

    D Online
    D Online
    DarkDevil
    wrote on last edited by
    #2

    @latzi kannst du mal einen Screenshot von dem Ergebnis posten? Ist es quasi ein Bild vom Druck? Also Layer für Layer?

    LatziL da_WoodyD 2 Replies Last reply
    0
    • D DarkDevil

      @latzi kannst du mal einen Screenshot von dem Ergebnis posten? Ist es quasi ein Bild vom Druck? Also Layer für Layer?

      LatziL Offline
      LatziL Offline
      Latzi
      wrote on last edited by
      #3

      @darkdevil

      Nein, es ist nur eine Darstellung des zu druckenden Teils, z.B.:
      d1bfcc7a-27c0-4b6a-8452-d5fc265a047d-grafik.png
      Es wird eine URL zu der png-Grafik auf dem OctoPi bereitgestellt

      1 Reply Last reply
      0
      • D DarkDevil

        @latzi kannst du mal einen Screenshot von dem Ergebnis posten? Ist es quasi ein Bild vom Druck? Also Layer für Layer?

        da_WoodyD Offline
        da_WoodyD Offline
        da_Woody
        wrote on last edited by
        #4

        @darkdevil voraussetzung ist natürlich, daß du in deinem slicer das auch erstellen lässt!
        https://plugins.octoprint.org/plugins/prusaslicerthumbnails/

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

        1 Reply Last reply
        0
        • LatziL Latzi

          Um die aktuelle thumbnail-URL herauszufinden, habe ich ein script erstellt.
          Voraussetzungen:

          • Listenpunktoctoprint-Adapter >= 3.0.0

          Einschränkungen:

          • Filename MUSS eindeutig sein und darf NICHT in anderen Verzeichnissen vorkommen!

          Möglicher Test

          Zum Test des scripts muss nicht unbedingt gedruckt werden, es reicht aus den bestehenden DP´s unter octoprint.x.files einen Druck auszuwählen (wo ein thumbnail_url existiert) und den Inhalt des DP name in octoprint.x.printjob.file.name eintragen (z.B.: Mein_Druck.gcode), danach sollte der DP, welcher im script konfiguriert ist mit der thumbnail_url belegt sein, sofern octoprint offline ist (sonst wird der DP unmittelbar durch den Adapter aktualisiert).

          Konfiguration:

          Es gibt 3 Parameter, welche befüllt werden müssen:

          • path_octo: Der "Pfad" zu octoprint (falls mehrere Instanzen)

          • path_DP_thumbnail: Dort wird ein DP Namens thumbnail erstellt und befüllt (Der DP wird erstellt falls er nicht existiert, die Struktur dorthin muss jedoch händisch erstellt werden.

          • debug: Log-Meldungen ein-/ausschalten

          // --- Konfiguration ---
          const path_octo = 'octoprint.0'; // Instanz zu octoprint
          const path_DP_thumbnail = 'javascript.0.3D-Drucker';  // Wo soll der DP liegen - dies muss angelegt sein/werden! Der DP selbst wird automatisch angelegt!
          var debug= true; // Log-Meldungen einschalten mit true, ausschalten mit false 
          
          //  -- nicht ändern ---
          //   Version 1.0.3 2022-02-03
          var sel_thumb = path_octo + '.files.*.thumbnail_url';
          on({id: path_octo + '.printjob.file.name', change: "ne"}, async function (obj) {
            var octo_thumb='';
            var thumb_file='';
            // await wait(10000); 
            var i = 0;
            // var j = 0;
            if (debug) console.log("Printjob-Name wurde auf >>" + obj.state.val + "<< geändert!");
            if ((obj.state.val)!== null) {
                thumb_file=obj.state.val.replace(".gcode","");
                thumb_file=thumb_file.replace("-","_");
                thumb_file=thumb_file.replace("(","");
                thumb_file=thumb_file.replace(")","");
                thumb_file=thumb_file.replace(" ","_");
                if (thumb_file.length > 0) thumb_file=thumb_file + ".thumbnail_url"; 
                $(sel_thumb).each(function(id) {
                    if (id.search(thumb_file) > 0) {
                        i++;
                        octo_thumb = getState(id).val;
                        if (debug) console.log("Printjob-Name >>" + thumb_file + "<< gefunden in " + id + " !");
                    } else {
                        if (id.search(thumb_file.substring(1,thumb_file.length-1)) > 0) {
                           // j++;
                           // octo_thumb = getState(id).val;
                           // if (debug) console.log("Printjob-Name >>" + thumb_file.substring(1,thumb_file.length-1) + "<< gefunden in " + id + " !");
                        };
                    };    
                });
                if (debug) {
                    // if (j>i) i=j;
                    console.log(i + " File(s) mit Printjob-Namen " + obj.state.val + " gefunden!");
                    if (i>1) console.log("ACHTUNG !!! Mehrere Fundstellen, Datenpunkt " + path_DP_thumbnail + ".thumbnail wurde mit letztem Fund befüllt");
                };    
            } else {
                if (debug) console.log("Printjob-Name ist (null)! Keinen File gefunden!!!");
            }; 
            // DP prüfen ob existent, sonst anlegen
            if (!existsState(path_DP_thumbnail + ".thumbnail")) {
                createState(path_DP_thumbnail + ".thumbnail", octo_thumb,  { name: 'thumbnail', desc: 'full path to thumbnail', type: 'string',   role: '',read: true, write: true });
                if (debug) console.log("Datenpunkt "+ path_DP_thumbnail + ".thumbnail wurde angelegt und mit >>"+ octo_thumb + "<< befüllt!");
            } else {
                setState(path_DP_thumbnail + ".thumbnail", octo_thumb, true);
                console.log("Datenpunkt " + path_DP_thumbnail + ".thumbnail wurde mit >>"+ octo_thumb + "<< befüllt!");
            };
            if (debug) console.log("Verarbeitung abgeschlossen!");
          }); 
          

          Viel Spaß damit!

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

          @latzi sagte in Octoprint-script für thumbnail des aktuellen Drucks:

          Viel Spaß damit!

          Danke

          Komm leider erst morgen richtig zum testen.

          Offline funktionierts wie oben beschrieben mit dem kopieren vom Namen als Test.
          Sobald Octoprint online ist funktioniert der Test nicht.

          ° 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 Octoprint-script für thumbnail des aktuellen Drucks:

            Viel Spaß damit!

            Danke

            Komm leider erst morgen richtig zum testen.

            Offline funktionierts wie oben beschrieben mit dem kopieren vom Namen als Test.
            Sobald Octoprint online ist funktioniert der Test nicht.

            LatziL Offline
            LatziL Offline
            Latzi
            wrote on last edited by
            #6

            @negalein

            Danke für den Hinweis! Teste ich morgen mal.
            Bleibt der Name im DP printjob.file.name stehen oder wird er gelöscht?

            NegaleinN 1 Reply Last reply
            0
            • LatziL Latzi

              @negalein

              Danke für den Hinweis! Teste ich morgen mal.
              Bleibt der Name im DP printjob.file.name stehen oder wird er gelöscht?

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

              @latzi sagte in Octoprint-script für thumbnail des aktuellen Drucks:

              Bleibt der Name im DP printjob.file.name stehen oder wird er gelöscht?

              es wird durch [null] ersetzt.

              ° 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 Octoprint-script für thumbnail des aktuellen Drucks:

                Bleibt der Name im DP printjob.file.name stehen oder wird er gelöscht?

                es wird durch [null] ersetzt.

                LatziL Offline
                LatziL Offline
                Latzi
                wrote on last edited by
                #8

                @negalein
                Das hab ich befürchtet, ich bau morgen eine debug-Option ein, dann sieht man es im log was abgeht. Beim Druck sollte es aber funktionieren - da bleibt der name stehen.

                1 Reply Last reply
                1
                • LatziL Offline
                  LatziL Offline
                  Latzi
                  wrote on last edited by
                  #9

                  Script im 1. Beitrag geändert, neu ist:

                  • debug-Option hinzugekommen

                  • ".thumbnail_url" in Filesuche hinzugefügt, daher ist die Eindeutigkeit höher und die Gefahr der Fehlfunde sinkt - nun ist ein File "xyz" im Verzeichnis "xyz" möglich!

                  • Abfrageintervall von "jede" auf "ungleich" geändert

                  NegaleinN 1 Reply Last reply
                  0
                  • LatziL Latzi

                    Script im 1. Beitrag geändert, neu ist:

                    • debug-Option hinzugekommen

                    • ".thumbnail_url" in Filesuche hinzugefügt, daher ist die Eindeutigkeit höher und die Gefahr der Fehlfunde sinkt - nun ist ein File "xyz" im Verzeichnis "xyz" möglich!

                    • Abfrageintervall von "jede" auf "ungleich" geändert

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

                    @latzi sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                    Script im 1. Beitrag geändert, neu ist:

                    Merci

                    Es funktioniert :)

                    Wo hast du deine Kaffeekasse?

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

                    da_WoodyD LatziL 2 Replies Last reply
                    0
                    • NegaleinN Negalein

                      @latzi sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                      Script im 1. Beitrag geändert, neu ist:

                      Merci

                      Es funktioniert :)

                      Wo hast du deine Kaffeekasse?

                      da_WoodyD Offline
                      da_WoodyD Offline
                      da_Woody
                      wrote on last edited by
                      #11

                      @negalein jau, und seit meiner umstellung auf eine vis-view, klapperts bei mir auch in iQontrol...
                      85f7a840-4b7e-4ef3-a5e0-9cd4b604afd8-grafik.png

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

                      NegaleinN 1 Reply Last reply
                      0
                      • da_WoodyD da_Woody

                        @negalein jau, und seit meiner umstellung auf eine vis-view, klapperts bei mir auch in iQontrol...
                        85f7a840-4b7e-4ef3-a5e0-9cd4b604afd8-grafik.png

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

                        @da_woody sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                        und seit meiner umstellung auf eine vis-view, klapperts bei mir auch in iQontrol...

                        Thumbnail in VIS angelegt und dann in iQontrol eingebunden?
                        Musst mir zeigen. ;)

                        ° 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
                        • NegaleinN Negalein

                          @da_woody sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                          und seit meiner umstellung auf eine vis-view, klapperts bei mir auch in iQontrol...

                          Thumbnail in VIS angelegt und dann in iQontrol eingebunden?
                          Musst mir zeigen. ;)

                          da_WoodyD Offline
                          da_WoodyD Offline
                          da_Woody
                          wrote on last edited by
                          #13

                          @negalein wo is das prob? hab grad noch alles offen. komm rüber...

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

                          1 Reply Last reply
                          0
                          • NegaleinN Negalein

                            @latzi sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                            Script im 1. Beitrag geändert, neu ist:

                            Merci

                            Es funktioniert :)

                            Wo hast du deine Kaffeekasse?

                            LatziL Offline
                            LatziL Offline
                            Latzi
                            wrote on last edited by Latzi
                            #14

                            @negalein
                            das ist ganz lieb gemeint von dir, jedoch als waschechter Mühlviertler trinke ich viel lieber Bier als Kaffee ;-)
                            Scherz beiseite, für die paar Zeilen ist das wirklich nicht nötig. Ich würd´s nicht machen, wenn´s nicht aus eigenem Interesse wäre. Hier hab ich schon so viel gelernt und so viele Ratschläge und Hilfe bekommen, da ist es für mich selbstverständlich auch mal ein bisschen was zurückzugeben.
                            Freut mich wenn´s läuft, für Wünsche und Anregungen bin ich jederzeit zu haben.

                            NegaleinN 1 Reply Last reply
                            0
                            • LatziL Latzi

                              @negalein
                              das ist ganz lieb gemeint von dir, jedoch als waschechter Mühlviertler trinke ich viel lieber Bier als Kaffee ;-)
                              Scherz beiseite, für die paar Zeilen ist das wirklich nicht nötig. Ich würd´s nicht machen, wenn´s nicht aus eigenem Interesse wäre. Hier hab ich schon so viel gelernt und so viele Ratschläge und Hilfe bekommen, da ist es für mich selbstverständlich auch mal ein bisschen was zurückzugeben.
                              Freut mich wenn´s läuft, für Wünsche und Anregungen bin ich jederzeit zu haben.

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

                              @latzi sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                              Mühlviertler

                              dann sannma ja ned weit auseinand! :)
                              Bin ausn Innviertl (SD) :grin:

                              ° 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 Octoprint-script für thumbnail des aktuellen Drucks:

                                Mühlviertler

                                dann sannma ja ned weit auseinand! :)
                                Bin ausn Innviertl (SD) :grin:

                                LatziL Offline
                                LatziL Offline
                                Latzi
                                wrote on last edited by
                                #16

                                @negalein sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                                Bin ausn Innviertl (SD)

                                Praktisch Nachbarn (FR) - da ist @da_Woody ja meilenweit weg von dir, ich dachte wegen

                                @da_woody sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                                @negalein wo is das prob? hab grad noch alles offen. komm rüber...

                                du bist auch Burgenlandler ;-)

                                NegaleinN da_WoodyD 2 Replies Last reply
                                0
                                • LatziL Latzi

                                  @negalein sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                                  Bin ausn Innviertl (SD)

                                  Praktisch Nachbarn (FR) - da ist @da_Woody ja meilenweit weg von dir, ich dachte wegen

                                  @da_woody sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                                  @negalein wo is das prob? hab grad noch alles offen. komm rüber...

                                  du bist auch Burgenlandler ;-)

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

                                  @latzi sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                                  du bist auch Burgenlandler

                                  nö, da ists mir zu flach! :joy: :joy: :joy:

                                  ° 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 Offline
                                    NegaleinN Offline
                                    Negalein
                                    Global Moderator
                                    wrote on last edited by
                                    #18

                                    als Inspiration ;)

                                    in VIS
                                    0557b1e9-1781-49d0-a063-63c02c27e8e5-image.png

                                    in iQontrol (mit Hilfe vom Burgnlandla ;) )

                                    0bf4d187-b42a-46a2-8af7-f9e231e6303c-image.png

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

                                    1 Reply Last reply
                                    0
                                    • NegaleinN Negalein

                                      @latzi sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                                      du bist auch Burgenlandler

                                      nö, da ists mir zu flach! :joy: :joy: :joy:

                                      LatziL Offline
                                      LatziL Offline
                                      Latzi
                                      wrote on last edited by
                                      #19

                                      @negalein
                                      stimmt, und Bier haben's auch "koa gscheids", dafür erstklassigen Wein!

                                      1 Reply Last reply
                                      0
                                      • LatziL Latzi

                                        @negalein sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                                        Bin ausn Innviertl (SD)

                                        Praktisch Nachbarn (FR) - da ist @da_Woody ja meilenweit weg von dir, ich dachte wegen

                                        @da_woody sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                                        @negalein wo is das prob? hab grad noch alles offen. komm rüber...

                                        du bist auch Burgenlandler ;-)

                                        da_WoodyD Offline
                                        da_WoodyD Offline
                                        da_Woody
                                        wrote on last edited by
                                        #20

                                        @latzi sagte in Octoprint-script für thumbnail des aktuellen Drucks:

                                        du bist auch Burgenlandler

                                        sowas nehm ma do ned... :face_with_rolling_eyes:
                                        mit komm rüber war Anydesk gemeint... biggrin.gif
                                        machts euch keine sorgen wegen bier...
                                        976e4d7d-682b-48f7-bb8e-9984e555d08d-grafik.png

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

                                        1 Reply Last reply
                                        1
                                        • LatziL Latzi

                                          Um die aktuelle thumbnail-URL herauszufinden, habe ich ein script erstellt.
                                          Voraussetzungen:

                                          • Listenpunktoctoprint-Adapter >= 3.0.0

                                          Einschränkungen:

                                          • Filename MUSS eindeutig sein und darf NICHT in anderen Verzeichnissen vorkommen!

                                          Möglicher Test

                                          Zum Test des scripts muss nicht unbedingt gedruckt werden, es reicht aus den bestehenden DP´s unter octoprint.x.files einen Druck auszuwählen (wo ein thumbnail_url existiert) und den Inhalt des DP name in octoprint.x.printjob.file.name eintragen (z.B.: Mein_Druck.gcode), danach sollte der DP, welcher im script konfiguriert ist mit der thumbnail_url belegt sein, sofern octoprint offline ist (sonst wird der DP unmittelbar durch den Adapter aktualisiert).

                                          Konfiguration:

                                          Es gibt 3 Parameter, welche befüllt werden müssen:

                                          • path_octo: Der "Pfad" zu octoprint (falls mehrere Instanzen)

                                          • path_DP_thumbnail: Dort wird ein DP Namens thumbnail erstellt und befüllt (Der DP wird erstellt falls er nicht existiert, die Struktur dorthin muss jedoch händisch erstellt werden.

                                          • debug: Log-Meldungen ein-/ausschalten

                                          // --- Konfiguration ---
                                          const path_octo = 'octoprint.0'; // Instanz zu octoprint
                                          const path_DP_thumbnail = 'javascript.0.3D-Drucker';  // Wo soll der DP liegen - dies muss angelegt sein/werden! Der DP selbst wird automatisch angelegt!
                                          var debug= true; // Log-Meldungen einschalten mit true, ausschalten mit false 
                                          
                                          //  -- nicht ändern ---
                                          //   Version 1.0.3 2022-02-03
                                          var sel_thumb = path_octo + '.files.*.thumbnail_url';
                                          on({id: path_octo + '.printjob.file.name', change: "ne"}, async function (obj) {
                                            var octo_thumb='';
                                            var thumb_file='';
                                            // await wait(10000); 
                                            var i = 0;
                                            // var j = 0;
                                            if (debug) console.log("Printjob-Name wurde auf >>" + obj.state.val + "<< geändert!");
                                            if ((obj.state.val)!== null) {
                                                thumb_file=obj.state.val.replace(".gcode","");
                                                thumb_file=thumb_file.replace("-","_");
                                                thumb_file=thumb_file.replace("(","");
                                                thumb_file=thumb_file.replace(")","");
                                                thumb_file=thumb_file.replace(" ","_");
                                                if (thumb_file.length > 0) thumb_file=thumb_file + ".thumbnail_url"; 
                                                $(sel_thumb).each(function(id) {
                                                    if (id.search(thumb_file) > 0) {
                                                        i++;
                                                        octo_thumb = getState(id).val;
                                                        if (debug) console.log("Printjob-Name >>" + thumb_file + "<< gefunden in " + id + " !");
                                                    } else {
                                                        if (id.search(thumb_file.substring(1,thumb_file.length-1)) > 0) {
                                                           // j++;
                                                           // octo_thumb = getState(id).val;
                                                           // if (debug) console.log("Printjob-Name >>" + thumb_file.substring(1,thumb_file.length-1) + "<< gefunden in " + id + " !");
                                                        };
                                                    };    
                                                });
                                                if (debug) {
                                                    // if (j>i) i=j;
                                                    console.log(i + " File(s) mit Printjob-Namen " + obj.state.val + " gefunden!");
                                                    if (i>1) console.log("ACHTUNG !!! Mehrere Fundstellen, Datenpunkt " + path_DP_thumbnail + ".thumbnail wurde mit letztem Fund befüllt");
                                                };    
                                            } else {
                                                if (debug) console.log("Printjob-Name ist (null)! Keinen File gefunden!!!");
                                            }; 
                                            // DP prüfen ob existent, sonst anlegen
                                            if (!existsState(path_DP_thumbnail + ".thumbnail")) {
                                                createState(path_DP_thumbnail + ".thumbnail", octo_thumb,  { name: 'thumbnail', desc: 'full path to thumbnail', type: 'string',   role: '',read: true, write: true });
                                                if (debug) console.log("Datenpunkt "+ path_DP_thumbnail + ".thumbnail wurde angelegt und mit >>"+ octo_thumb + "<< befüllt!");
                                            } else {
                                                setState(path_DP_thumbnail + ".thumbnail", octo_thumb, true);
                                                console.log("Datenpunkt " + path_DP_thumbnail + ".thumbnail wurde mit >>"+ octo_thumb + "<< befüllt!");
                                            };
                                            if (debug) console.log("Verarbeitung abgeschlossen!");
                                          }); 
                                          

                                          Viel Spaß damit!

                                          K Offline
                                          K Offline
                                          Kuddel
                                          wrote on last edited by
                                          #21

                                          @latzi ich teste gerade mit deinem Skript.

                                          Der DPO wird korrekt erstellt, ist aber leer:

                                          724792a0-bef2-4037-8321-c2927d0360e6-grafik.png

                                          Skript:

                                          // --- Konfiguration ---
                                          const path_octo = 'octoprint.0'; // Instanz zu octoprint
                                          const path_DP_thumbnail = '0_userdata.0.3d_drucker.Vorlage';  // Wo soll der DP liegen - dies muss angelegt sein/werden! Der DP selbst wird automatisch angelegt!
                                          

                                          Octoprint-DPs
                                          33d4c81d-59a6-48b7-9463-0b23c011b0ec-grafik.png

                                          Mache ich etawas falsch?

                                          Im Octorpint wird das Bauteil korrekt angezeigt:
                                          d19463dc-3123-432b-9e2a-3dccc2137030-grafik.png

                                          NegaleinN LatziL da_WoodyD 4 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

                                          340

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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