Skip to content
  • 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
  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.1k

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

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

Octoprint-script für thumbnail des aktuellen Drucks

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
100 Beiträge 9 Kommentatoren 9.4k Aufrufe 8 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.
  • 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 Offline
    D Offline
    DarkDevil
    schrieb am zuletzt editiert von
    #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 Antworten Letzte Antwort
    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 Online
      LatziL Online
      Latzi
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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 Online
            LatziL Online
            Latzi
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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 Online
                LatziL Online
                Latzi
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                1
                • LatziL Online
                  LatziL Online
                  Latzi
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antworten Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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 Online
                            LatziL Online
                            Latzi
                            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #15

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

                              Mühlviertler

                              dann sannma ja ned weit auseinand! 🙂
                              Bin ausn Innviertl (SD) 😁

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

                                Mühlviertler

                                dann sannma ja ned weit auseinand! 🙂
                                Bin ausn Innviertl (SD) 😁

                                LatziL Online
                                LatziL Online
                                Latzi
                                schrieb am zuletzt editiert von
                                #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 Antworten Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #17

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

                                  du bist auch Burgenlandler

                                  nö, da ists mir zu flach! 😂 😂 😂

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

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

                                      du bist auch Burgenlandler

                                      nö, da ists mir zu flach! 😂 😂 😂

                                      LatziL Online
                                      LatziL Online
                                      Latzi
                                      schrieb am zuletzt editiert von
                                      #19

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

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

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

                                        du bist auch Burgenlandler

                                        sowas nehm ma do ned... 🙄
                                        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 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von
                                          #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 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

                                          733

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe