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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Octoprint-script für thumbnail des aktuellen Drucks

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

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

      ich hatte display layer progress abgehakt, slicer thumbnail angehakt, nach dem update auf 3.0.0 ist das umgekehrt???
      das kanns doch nicht sein! da hätte ich nie reingeschaut!

      im Zweifel alles aktivieren 😄

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

        @sevenup zuwu? dann wäre jetzt beides abgehakt gewesen. wenns beim update entweder intertiert wird?

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

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

          dann wäre jetzt beides abgehakt gewesen

          trat bei mir nicht auf!
          Ich sags ja, das war Frau Wau! 😉

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

            @negalein frech.gif
            dafür hab ich gerade was anderes gefindet... noch nicht getestet, aber vllt ist das die lösung, warum nicht nur ich, probleme mit dem thumbnail aufruf direkt in iQontrol hatte und den umweg über vis machen musste...
            5306ee2f-6f40-49c5-bf96-3512bbd65a90-grafik.png
            liest sich stark danach...
            jo, it works! zwar nur mini, aber es kann direkt der DP vom script abgerufen werden!
            rechts der erste test!
            1b6bf298-9e54-47d1-9bd4-0db70faa4e9e-grafik.png

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

              @da_woody zo, weiterer test.
              in cura: 314170cb-df1e-430d-8914-ce1645b63365-grafik.png
              in iQontrol: 03417a89-83a6-425d-b4fc-f77cc3172377-grafik.png
              ergebniss (rechts wieder der test am PC):
              0cc50252-2771-4107-b855-96f402b4bfeb-grafik.png
              allerdings nur in firefox. chrome weigert sich... und wie immer, auf jedem gerät siehts anders aus...

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

                Nun funktioniert es bei mir wieder nicht...

                • DP mit Druckjobnamen wird richtig befüllt.
                • DP mit File-Eigenschaften ist auch da und sieht korrekt aus
                • Skript wird ausgelöst, findet aber nichts...

                ????

                Screenshot:


                2022-02-01 22_08_27-objects - iobroker.png

                Log:

                javascript.0 2022-02-01 22:02:44.241	info	script.js.Sonstiges.3D_Drucker__Thumbnail: Verarbeitung abgeschlossen!
                javascript.0 2022-02-01 22:02:44.241	info	script.js.Sonstiges.3D_Drucker__Thumbnail: Datenpunkt 0_userdata.0.3d-drucker.thumbnail wurde mit >><< befüllt!
                javascript.0 2022-02-01 22:02:44.241	info	script.js.Sonstiges.3D_Drucker__Thumbnail: 0 File(s) mit Printjob-Namen CE3_Hex_NoSocket_FullBack_Loose (3).gcode gefunden!
                javascript.0 2022-02-01 22:02:44.236	info	script.js.Sonstiges.3D_Drucker__Thumbnail: Printjob-Name wurde auf >>CE3_Hex_NoSocket_FullBack_Loose (3).gcode<< geändert!
                

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

                  @sevenup
                  Das liegt vermutlich an dem " "-Zeichen im Filenamen (...Loose (3).gcode), bitte zeig mal den vollständigen Namen von
                  9fb16a71-3c69-43a0-a994-eeb9d54f6e26-image.png
                  Ich rate dazu, Sonderzeichen wie " ", "(", ")", "+", .. zu vermeiden 😉

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

                    @latzi nicht umsonst sind auf thingiverse fast alle .stl mit _ in den namen. selten mit - 😉

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

                      Bei mir funktioniert die Anzeige jetzt auch

                      27cea153-0201-48b4-a888-45b806945d0b-grafik.png

                      8fbf8028-d972-403e-b664-b732732f6b92-grafik.png

                      da_Woody 1 Reply Last reply Reply Quote 1
                      • da_Woody
                        da_Woody @Kuddel last edited by

                        @kuddel bissl in die ecke geklemmt...
                        ich bleib bei der vis-view im iQontrol. dort passt das immer in meine kachel. in vis selber müsst ihr schauen wie ihr das passend reinbringt...

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

                          @da_woody ist nur zum Test.

                          Die finale Postion kommt, wenn die Kamera angeklemmt ist und ich in der VIS ein Livebild habe

                          da_Woody 1 Reply Last reply Reply Quote 0
                          • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            858
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            9
                                            100
                                            6004
                                            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