Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Octoprint-script für thumbnail des aktuellen Drucks

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Octoprint-script für thumbnail des aktuellen Drucks

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

      @kuddel axo, du willst das cambild und da drinnen das .png...
      na tögal, hauptsache es funzt.

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

        @latzi der komplette Name ist im Log und auch auf dem Screenshot zu sehen 🙂
        Aber warum soll es nun ein Problem sein? Wenn, dann eher am Skript und nicht am Adapter?
        Adapter zeigt beide Namen eigentlich gleich an...
        Und auf Dateinamen zu achten ist nicht wirklich Smart(home)

        EDIT:
        so wie ich dein Code verstehe, vergleichst du den Namen des Druckjobs (vor .gcode) mit dem Ordnernamen des DP unter Files (octoprint.0.files.*)?
        2022-02-02 23_24_14-objects - iobroker.png
        Und dort wird der Dateiname tatsächlich anders angezeigt (keine Leerzeichen, keine Klammern).

        Deshalb: wäre es möglich, dass im DP octoprint.0.files.*.name suchst? Dort muss es ja eine 100% Übereinstimmung geben.

        Latzi 3 Replies Last reply Reply Quote 0
        • Jabba_the_Hutt
          Jabba_the_Hutt last edited by

          Mir stellt sich immer wieder die Frage .... Wieso Cura und Octoprint?

          Es gibt doch den Prusa- bzw. Superslicer, die einfacher sind und wesentlich genaueren gcode erzeugen. Von den zusätzlichen Möglichkeiten rede ich jetzt einmal garnicht.

          Octoprint ist für mich ein rotes Tuch als Klipper/Moonraker/Mainsail/KlipperScreen user.

          Negalein da_Woody 2 Replies Last reply Reply Quote 0
          • Negalein
            Negalein Global Moderator @Jabba_the_Hutt last edited by

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

            Es gibt doch den Prusa

            ganz deiner Meinung.
            Hab mit Cura begonnen und bin jetzt zu 99% beim Prusaslicer gelandet.
            Werde mir mal den Superslicer anschaun, da es dort den Vasemode gibt.

            Von den zusätzlichen Möglichkeiten rede ich jetzt einmal garnicht.

            Welche?

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

              @negalein
              OT: Schau dir mal den Superslicer an. Der basiert auf dem Prusaslicer. Dann verstehst Du, was ich meine. Zum Vasenmodus ... den kann Cura auch, nur manche FW streikt dann ... vorallem Marlin oder StockFW.

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

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

                Aber warum soll es nun ein Problem sein? Wenn, dann eher am Skript und nicht am Adapter?
                Adapter zeigt beide Namen eigentlich gleich an...
                Und auf Dateinamen zu achten ist nicht wirklich Smart(home)

                Wie du erkennen kannst werden die Sonderzeichen und Umlaute außerhalb des Scripts "übersetzt" und das führt zu Schwierigkeiten. Da meine hellseherischen Fähigkeiten noch ausbaufähig sind, kann ich nur "raten" - und das geht meist schief. Darum die Frage nach dem "Foldernamen". Ich baue die Übersetzung ins Script ein, grundsätzlich sollte jedoch auf Sonderzeichen und ähnliches im Allgemeinen verzichtet werden (und das ist kein Scriptforderung sondern systembedingt)!
                Anpassung des Scripts bitte aus 1. Post entnehmen.

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

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

                  Deshalb: wäre es möglich, dass im DP octoprint.0.files.*.name suchst? Dort muss es ja eine 100% Übereinstimmung geben.

                  Ich versuch´s bei Zeiten, jedoch ist das eben auch keine 100%-ige Lösung. Einzig der DP thumbnail_url unter octoprint.0.printjob.file wäre eindeutig und "sicher". Wird vom Adapter leider noch nicht bereitgestellt - dann könnte das Script komplett entfallen.

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

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

                    Mir stellt sich immer wieder die Frage .... Wieso Cura und Octoprint?

                    nunja, weils für einsteiger halt einfach ist... 😉 cura kann inzwischen auch viel. wenn man sich da mal eingeschossen hat...
                    vor kurzem mal den prusa angeschaut. gleich mal gar nichts gefunden mit dem ich was anfangen könnte. in cura hab ich meine benutzerdefinierten einstellungen die für mich wichtig sind.
                    eigentlich versuche ich seit einiger zeit meinen sapphire pro zu klippern, scheitere aber immer wieder an der config. 😞

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

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

                      Deshalb: wäre es möglich, dass im DP octoprint.0.files.*.name suchst? Dort muss es ja eine 100% Übereinstimmung geben.

                      Hier die Version, bei der innerhalb octoprint.0.files.* nach dem DP name gesucht wird und der dort liegende DP thumbnail_url ausgelesen wird (falls er existiert und sofern er mit octoprint.0.printjob.file.name übereinstimmt).
                      Bitte testen.

                      // --- 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 mit Suche in Namen 1.0.0 2022-02-03
                      var sel_thumb = path_octo + '.files.*.name';
                      on({id: path_octo + '.printjob.file.name', change: "ne"}, async function (obj) {
                        var octo_thumb='';
                        var i = 0;
                        var j = '';
                        if (debug) console.log("Printjob-Name wurde auf >>" + obj.state.val + "<< geändert!");
                        if ((obj.state.val)!== null) {
                            $(sel_thumb).each(function(id) {
                                j = getState(id).val;
                                if (j == obj.state.val) {
                                     var t_id = id.replace('.name','')+'.thumbnail_url';
                                     if (!existsState(t_id)) {
                                        console.log('Thumbnail-DP existiert nicht unter ' + id.replace('.name','') + ' !')
                                     } else {
                                        i++;
                                        octo_thumb = getState(t_id).val; 
                                        if (debug) console.log("Printjob-Name >>" + obj.state.val + "<< gefunden in " + t_id + " !");
                                     };
                                 };    
                             });
                            if (debug) {
                                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!");
                      }); 
                      

                      1 Reply Last reply Reply Quote 1
                      • S
                        SevenUp @Latzi last edited by SevenUp

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

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

                        Aber warum soll es nun ein Problem sein? Wenn, dann eher am Skript und nicht am Adapter?
                        Adapter zeigt beide Namen eigentlich gleich an...
                        Und auf Dateinamen zu achten ist nicht wirklich Smart(home)

                        Wie du erkennen kannst werden die Sonderzeichen und Umlaute außerhalb des Scripts "übersetzt" und das führt zu Schwierigkeiten. Da meine hellseherischen Fähigkeiten noch ausbaufähig sind, kann ich nur "raten" - und das geht meist schief. Darum die Frage nach dem "Foldernamen". Ich baue die Übersetzung ins Script ein, grundsätzlich sollte jedoch auf Sonderzeichen und ähnliches im Allgemeinen verzichtet werden (und das ist kein Scriptforderung sondern systembedingt)!

                        Ich verstehe nicht, warum du dich hier angegriffen füllst? Ich habe lediglich (aus meiner Sicht) eine bessere Umsetzung vorgeschlagen, bei der eben nicht auf Sonderzeichen oder ähnliches geachtet werden soll 🙂

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

                        Hier die Version, bei der innerhalb octoprint.0.files.* nach dem DP name gesucht wird und der dort liegende DP thumbnail_url ausgelesen wird (falls er existiert und sofern er mit octoprint.0.printjob.file.name übereinstimmt).
                        Bitte testen.

                        Und das funktioniert nun prächtig. Vielen Dank!

                        19:44:33.473	info	javascript.0 (11905) script.js.3D_Drucker.Thumbnail_festlegen: Printjob-Name wurde auf >>CE3_Hex_NoSocket_FullBack_Loose (3).gcode<< geändert!
                        19:44:33.476	info	javascript.0 (11905) script.js.3D_Drucker.Thumbnail_festlegen: Printjob-Name >>CE3_Hex_NoSocket_FullBack_Loose (3).gcode<< gefunden in octoprint.0.files.local_CE3_Hex_NoSocket_FullBack_Loose_3.thumbnail_url !
                        19:44:33.476	info	javascript.0 (11905) script.js.3D_Drucker.Thumbnail_festlegen: 1 File(s) mit Printjob-Namen CE3_Hex_NoSocket_FullBack_Loose (3).gcode gefunden!
                        19:44:33.477	info	javascript.0 (11905) script.js.3D_Drucker.Thumbnail_festlegen: Datenpunkt userdata.0.3D-Drucker.thumbnail wurde mit >>http://192.168.1.37:80/plugin/prusaslicerthumbnails/thumbnail/CE3_Hex_NoSocket_FullBack_Loose (3).png?20220201192607<< befüllt!
                        19:44:33.477	info	javascript.0 (11905) script.js.3D_Drucker.Thumbnail_festlegen: Verarbeitung abgeschlossen!
                        

                        Negalein Latzi 2 Replies Last reply Reply Quote 0
                        • Negalein
                          Negalein Global Moderator @SevenUp last edited by

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

                          du dich hier angegriffen füllst

                          denke nicht dass sich @Latzi angegriffen fühlt!
                          Wir Österreicher sind nicht so pingelig wie manche Nachbarn! 😉

                          S 1 Reply Last reply Reply Quote 1
                          • S
                            SevenUp @Negalein last edited by

                            @negalein okay, das kann ich nicht beurteilen 🙂
                            Dann nehme ich meine Aussage zurück

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

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

                              Ich verstehe nicht, warum du dich hier angegriffen füllst?

                              Keine Angst, hab´s in keinster Weise als Angriff empfunden - dein Vorschlag mit dem ".name" zu verwenden hat natürlich auch seinen Charme, drum hab ich´s ja auch umgesetzt. Egal wie man´s dreht und wendet, Probleme sind in beiden Varianten zu erwarten, ich würde mir die Funktionalität im Adapter wünschen und soweit ich das mitbekommen hab, ist Matthias ja auch dran.

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

                              Und das funktioniert nun prächtig. Vielen Dank!

                              Sehr gut, freut mich - ich hab´s nicht sehr intensiv getestet.

                              Frage an alle:
                              Derzeit wird, sofern es mehrere Thumbnails mit gleichem Namen gibt, der zuletzt Gefundene in den DP geschrieben. Soll bei mehrfachem Fund ein JSON erzeugt werden, in dem alle Funde enthalten sind? Danach kann man nach eigenem Ermessen über die Visualisierung die Passende auswählen.

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

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

                                sofern es mehrere Thumbnails mit gleichem Namen gibt, der zuletzt Gefundene in den DP geschrieben

                                Das reicht vollkommen mMn.
                                Ich benenne zB alle Drucke eindeutig.

                                1 Reply Last reply Reply Quote 1
                                • Meistertr
                                  Meistertr Developer last edited by

                                  man kann es auch ganz schnell ohne script nur mit binding lösen

                                  http://octopi/plugin/UltimakerFormatPackage/thumbnail/{d:octoprint.0.printjob.file.name; d.split('.')[0]}.png
                                  

                                  Ergebins:

                                  2022-02-04_20h05_52.png

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

                                    @meistertr
                                    Das ist so richtig genial, vielen Dank! Darauf wäre ich niemals gekommen 👍

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

                                      @latzi gestern wieder mal kein thumbnail bekommen, heute fehler entdeckt:
                                      Shelly_Box_-Lid
                                      öffensichtlich hat das script sich an **
                                      -_** verschluckt.
                                      nach umbenennen Shelly_Box_Lid wars da.

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

                                        Guten Morgen @da_woody
                                        bitte kannst du printjob.file.name und files.xxx posten in der Original-Version. Da spuckt möglicherweise die Übersetzung rein

                                        Edit: Noch besser ist die Verwendung von @meistertr´s Ansatz

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

                                          @latzi strange...
                                          octoprint.0.printjob.file.name Shelly_Box_-_Lid.gcode
                                          octoprint.0.files.local_Shelly_Box_Lid als Name steht dort Shelly_Box_-_Lid.gcode
                                          kein .png in javascript.0.Octothumb.thumbnail

                                          http://octopi/plugin/UltimakerFormatPackage/thumbnail/{d:octoprint.0.printjob.file.name; d.split('.')[0]}.png 
                                          

                                          hab ich probiert mit

                                          http://192.168.2.59/plugin/UltimakerFormatPackage/thumbnail/{d:octoprint.0.printjob.file.name; d.split('.')[0]}.png 
                                          

                                          bekomm ich nur einen error 404...

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

                                            @da_Woody
                                            du musst aus einem bestehenden thumbnail den ersten Teil des Pfades rauskopieren, bei mir z.B.:

                                            http://10.0.0.213:80/plugin/prusaslicerthumbnails/thumbnail/
                                            

                                            und dahinter das Binding

                                            {d:octoprint.0.printjob.file.name; d.split('.')[0]}.png 
                                            

                                            einsetzen

                                            da_Woody 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            9
                                            100
                                            5253
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo