Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Adapter Klipper-Moonraker

    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

    Adapter Klipper-Moonraker

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Kammi_ @Merlin123 last edited by Kammi_

      @merlin123

      Moin und Frohe Weihnachten euch allen. Ich habe das am anfang bei mir eingefügt

      # QIDI Plus4 V1.6.0
      #20241102 
      #1. 起始代码腔室加热将在调平后开启
      #2. 腔室加热开启必须带着热床升温
      #3. M141和M191宏定义修改,热床低于70会开启热床加热
      #4. 
      ## eigener code anfang
      
      [gcode_macro M73]
      rename_existing: M990073
      #variable_R: 0
      #variable_P: 0
      #default_parameter_P: 0
      #default_parameter_R: 0
      gcode:
      #SET_GCODE_VARIABLE MACRO=M73 VARIABLE=R TYPE=int VALUE={params.R}
      #SET_GCODE_VARIABLE MACRO=M73 VARIABLE=P TYPE=int VALUE={params.P}
          M990073 P{ params.P|int} 
          M117 { "%02d%02d" % (params.R|int // 60, (params.R|int) % 60) } 
      
      
      ## Eigener code ende
      [gcode_macro _CG28]
      gcode:
      

      mit dieser adresse kannst du dir alles anzeigen lassen

      http://192.168.0.84:7125/printer/objects/list
      

      würde dann so aussehen wenn du daten abrufen willst

      http://192.168.0.84:7125/printer/objects/query?display_status&heaters&print_stats
      

      die 00-22 sind in minuten du kannst die zeile auch so ändern

      M117 { "%02d:%02d" % (params.R|int // 60, (params.R|int) % 60) } Minuten
      

      dann wäre die Ausgabe 00:22 Minuten oder was du auch immer dahinter schreibst. Wie ich das anders Formatiere hab ich keine Ahnung gcode is ne andere Welt für mich.

      bei mir sieht das dann so aus in der übersicht was mich allerdings nicht stört

      M117-qidi.png

      Merlin123 1 Reply Last reply Reply Quote 0
      • Merlin123
        Merlin123 @Kammi_ last edited by Merlin123

        @kammi_ ok. Danke. Muss ich mir mal anschauen, werd aber erst morgen dazu kommen. Sind das dann stunden:Minuten?

        K 1 Reply Last reply Reply Quote 0
        • K
          Kammi_ @Merlin123 last edited by Kammi_

          @merlin123

          Ja ist es, muss jetzt nur noch nen weg finden, wie ich das in blockly umsetz das ich die aktuelle Zeit + die druck Zeit zusammen zähle und die mir ausgeben lasse so das ich se dann wiederum mit der api abrufen kann.

          //edit
          was ich festgestellt habe ist das es sich bei der Zeit wo ausgegeben wir um reine durck Zeit handelt. Also ohne aufheizen und was sonst noch vor dem eigentlichen druck passiert.

          1Topf 1 Reply Last reply Reply Quote 1
          • 1Topf
            1Topf @Kammi_ last edited by

            @kammi_

            So. Ich bekomme die Zeit in den Objekten angezeigt, wenn ich in CURA das Script "Display Info on LCD" hinzufüge. Natürlich betrifft das nur die reine Druckzeit, hochheizen ist da nicht dabei.

            cura script 01.jpg

            Leider wird auch die Endzeit "Fertig um ..." nicht mit übermittelt.

            druck01.jpg

            Aber es gibt genug Datenpunkte, um den Drucker per smarter Steckdose auszuschalten, z.B. die Temperatur vom Druckbett.
            Was momentan wirklich stört ist, daß der Adapter den Fehlerspeicher von ioB füllt, sobald die Verbindung zum Drucker weg ist. Und auch, daß der Adapter mit jedem neuen Druck einen Neustart benötigt.

            Sonst hab ich nix zu meckern. 😀

            S V Diginix 3 Replies Last reply Reply Quote 0
            • S
              stenmic @1Topf last edited by stenmic

              @1topf schau dir mal die mqtt Funktion von moonraker an. Hab vor langer Zeit darauf umgestellt. Damit hast du die Probleme nicht.

              hier kannst dir meine vis dazu anschauen https://forum.iobroker.net/topic/77997/meine-vis-mit-76-seiten?_=1735153770056

              1 Reply Last reply Reply Quote 0
              • 1Topf
                1Topf last edited by Homoran

                @stenmic Über mqtt bin ich heute beim Lesen auch schon gestolpert. Wie hast Du das "aktiviert"? Offiziell gibt es da ja keine Einstellungen, zumindest seh ich nix.
                Ich habe mir dann dieses MQTT-Plugin: (https://github.com/SuperKohl/Moonraker-MQTT-plugin) installiert, aber ich bekomme keine Verbindung. Hab jetzt gerade auch keine Lust mehr ... 😑
                Ich probiere es später nochmal.

                S 1 Reply Last reply Reply Quote 0
                • S
                  stenmic @1Topf last edited by

                  @1topf das ist das falsche Plugin, du brauchst dieses.
                  IMG_0962.jpeg

                  in den Einstellungen einen Benutzer und Passwort vergeben.
                  IMG_0963.jpeg

                  dann in der Moonraker.conf den Bereich mqtt aktivieren.
                  Bei den status_objects musst du testen welche du benötigst.
                  Die Werte werden dann alle 2 Sekunden an den ioBroker gesendet.
                  Aber nur wenn sie sich ändern.
                  Zu finden unter mqtt.
                  IMG_0964.png

                  1Topf Merlin123 2 Replies Last reply Reply Quote 0
                  • K
                    Kammi_ last edited by Kammi_

                    dank @paul53 seiner hilfe bin ich fertig damit

                    qudi-fertig.png

                    1 Reply Last reply Reply Quote 0
                    • 1Topf
                      1Topf @stenmic last edited by

                      @stenmic

                      Den MQTT-Adapter für ioB hab ich natürlich. Das Plugin von oben hab ich direkt auf dem Drucker installiert. Habe aber gestern abend unabhängig davon auch die Änderungen direkt in der moonraker.conf gemacht, dort nur die falsche IP reingeschrieben 🤦‍♂️ . Mittlerweile taucht der Drucker in den mqtt-Objekten auch auf.

                      @Kammi_

                      Mehr Infos gönnst Du uns wohl nicht? 🤷‍♂️

                      K 1 Reply Last reply Reply Quote 0
                      • K
                        Kammi_ @1Topf last edited by Kammi_

                        @1topf

                        was möchtest du den wissen ? Ich benutze nicht das Dashboard von iobroker is für mich zu mächtig. Ich benutze das Dashboard

                        https://gethomepage.dev/

                        is für meine zwecke einfacher ich hole mir die infos was ich brauch über iob Datenpunkte mit simpleapi in das Dashboard

                        hab jetzt meine 3 drucker drin war zwar bisschen fummelig mit der endzeit da klipper nich so is wie prusa aber geht jetzt auch

                        1Topf 1 Reply Last reply Reply Quote 0
                        • Merlin123
                          Merlin123 @stenmic last edited by Merlin123

                          @stenmic Könntest Du die Status Objekte bitte mal als Text posten? Danke schonmal 🙂

                          Grundsätzlich klappt es aber 🙂
                          Weißt zu zufällig, in welchem Format die Eventtime übermittelt wird?

                          {"eventtime": 5520.038950165, "value": 18.43}
                          

                          Hier mal die Temperatur als Beispiel.

                          Gibt es ne Liste der möglichen Status Objekte? Sind das die: Printer Objects

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            stenmic @Merlin123 last edited by

                            @merlin123 hier sind meine… die werden nicht alle bei dir funktionieren

                            
                            status_objects:
                              firmware_retraction
                              save_variables
                              temperature_sensor beacon_coil
                              heater_bed
                              extruder
                              print_stats
                              toolhead
                              display_status
                              virtual_sdcard
                              heater_fan Hotend
                              fan
                              fan_generic Filter
                              temperature_host PI4
                              temperature_sensor PI4
                              temperature_sensor Unterboden
                              temperature_sensor Netzteil_Drucker
                              temperature_sensor Druckraum
                              motion_report
                              neopixel _Druckraum
                              neopixel _Druckkopf
                              pause_resume
                              temperature_sensor EBB
                              fan_generic Druckraum
                              webhooks
                              controller_fan Octopus_Pro
                              screws_tilt_adjust
                              gcode_move
                              temperature_sensor Octopus
                              temperature_sensor Netzteil_Heizung
                              bed_mesh
                              z_tilt
                            
                            
                            Merlin123 1 Reply Last reply Reply Quote 0
                            • Merlin123
                              Merlin123 @stenmic last edited by

                              @stenmic Danke! Ih schau einfach mal, welche was liefern 🙂

                              1 Reply Last reply Reply Quote 0
                              • 1Topf
                                1Topf @Kammi_ last edited by

                                @kammi_ sagte in Adapter Klipper-Moonraker:

                                @1topf

                                was möchtest du den wissen ?

                                Wie bekommst Du die Endzeit (... ist der Druck fertig") angezeigt? Gibt es dafür einen Objektstatus? Wenn ja, wie sieht der aus? Oder ist das per Script selbst berechnet?

                                K 1 Reply Last reply Reply Quote 0
                                • K
                                  Kammi_ @1Topf last edited by

                                  @1topf hier bitte schön

                                  https://forum.iobroker.net/topic/78822/hilfe-blockly-2-uhrzeiten-in-objekt-ausgeben/8

                                  1 Reply Last reply Reply Quote 1
                                  • Merlin123
                                    Merlin123 last edited by

                                    Kennt jemand ne gute Methode, das Thumbnail des aktuellen Drucks abzurufen bzw. in der VIS anzuzeigen?

                                    S 1 Reply Last reply Reply Quote 0
                                    • S
                                      stenmic @Merlin123 last edited by stenmic

                                      @merlin123
                                      so mach ich es

                                      IMG_0967.jpeg

                                      IMG_0966.jpeg
                                      (ip vom Drucker anpassen)

                                      
                                      <block xmlns="https://developers.google.com/blockly/xml" type="on" id="/Z2O}ZB#,a]kn33Dz4F$" x="116" y="2253">
                                       <field name="OID">mqtt.0.Mainsail.klipper.state.print_stats.filename</field>
                                       <field name="CONDITION">ne</field>
                                       <field name="ACK_CONDITION"></field>
                                       <statement name="STATEMENT">
                                         <block type="variables_set" id="y[Oc#E_92,_2BKo4(5~[">
                                           <field name="VAR" id="BXYL{xhaLkN~v2Ldl!%!">text</field>
                                           <value name="VALUE">
                                             <block type="get_attr" id="XXR]WqWt.=HMLUr3gR}@">
                                               <value name="PATH">
                                                 <shadow type="text" id="rrx*$IEHd@w{;*~Z+8`n">
                                                   <field name="TEXT">value</field>
                                                 </shadow>
                                               </value>
                                               <value name="OBJECT">
                                                 <shadow type="get_object" id="^cMzi*_aj{`Pl0P725m~">
                                                   <field name="OID">Object ID</field>
                                                 </shadow>
                                                 <block type="on_source" id="pgo{+7GzQz;]qj)e34}A">
                                                   <field name="ATTR">state.val</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="update" id="bIOV@RC*Q+u,j_l+cDZ,">
                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                               <field name="OID">0_userdata.0.Klipper.API.Printjob.Name</field>
                                               <field name="WITH_DELAY">FALSE</field>
                                               <value name="VALUE">
                                                 <block type="text_getSubstring" id=";P~^,bl^VhcaeFBrn4B7">
                                                   <mutation at1="false" at2="true"></mutation>
                                                   <field name="WHERE1">FIRST</field>
                                                   <field name="WHERE2">FROM_START</field>
                                                   <value name="STRING">
                                                     <block type="variables_get" id=".)~:q(Mh|eeSdPJRu*2!">
                                                       <field name="VAR" id="BXYL{xhaLkN~v2Ldl!%!">text</field>
                                                     </block>
                                                   </value>
                                                   <value name="AT2">
                                                     <block type="math_arithmetic" id="~]oa3qPRWU)spG%YB1]]">
                                                       <field name="OP">MINUS</field>
                                                       <value name="A">
                                                         <shadow type="math_number" id="PqrA)w7#cW-.+R7[s$Ut">
                                                           <field name="NUM">1</field>
                                                         </shadow>
                                                         <block type="text_indexOf" id="r51`DlwiN)v*}8k4q}5p">
                                                           <field name="END">FIRST</field>
                                                           <value name="VALUE">
                                                             <block type="variables_get" id="sqPwTzw6?t1]F1dwmj|P">
                                                               <field name="VAR" id="BXYL{xhaLkN~v2Ldl!%!">text</field>
                                                             </block>
                                                           </value>
                                                           <value name="FIND">
                                                             <shadow type="text" id="NN88q$[rF?qy3R1S,=Fk">
                                                               <field name="TEXT">.gcode</field>
                                                             </shadow>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <shadow type="math_number" id="Gp.#K1A?Y{{b4u]f,mK_">
                                                           <field name="NUM">1</field>
                                                         </shadow>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="update" id="v~`h#IPc]?2X#3=M{X[a">
                                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                   <field name="OID">0_userdata.0.Klipper.API.Printjob.Thumbnail</field>
                                                   <field name="WITH_DELAY">FALSE</field>
                                                   <value name="VALUE">
                                                     <block type="text_join" id="=uC)c{XD(`=yL3+qnM$/">
                                                       <mutation items="3"></mutation>
                                                       <value name="ADD0">
                                                         <block type="text" id="+hu6Z]DDV49vxZEG3^KI">
                                                           <field name="TEXT">http://192.168.178.113/server/files/gcodes/.thumbs/</field>
                                                         </block>
                                                       </value>
                                                       <value name="ADD1">
                                                         <block type="text_getSubstring" id=".jX}L{b`]tqX[lP+wIR2">
                                                           <mutation at1="false" at2="true"></mutation>
                                                           <field name="WHERE1">FIRST</field>
                                                           <field name="WHERE2">FROM_START</field>
                                                           <value name="STRING">
                                                             <block type="variables_get" id="ZUXf!~C]B[?oTqjrU3mF">
                                                               <field name="VAR" id="BXYL{xhaLkN~v2Ldl!%!">text</field>
                                                             </block>
                                                           </value>
                                                           <value name="AT2">
                                                             <block type="math_arithmetic" id="rArUrH5JD`!U0PI6`=Lt">
                                                               <field name="OP">MINUS</field>
                                                               <value name="A">
                                                                 <shadow type="math_number" id="PqrA)w7#cW-.+R7[s$Ut">
                                                                   <field name="NUM">1</field>
                                                                 </shadow>
                                                                 <block type="text_indexOf" id="Gji4dA%oP(rS[%9W%X(m">
                                                                   <field name="END">FIRST</field>
                                                                   <value name="VALUE">
                                                                     <block type="variables_get" id="i=BXKzmS]z$x=!47DA!B">
                                                                       <field name="VAR" id="BXYL{xhaLkN~v2Ldl!%!">text</field>
                                                                     </block>
                                                                   </value>
                                                                   <value name="FIND">
                                                                     <shadow type="text" id="nTgAoKx?A/?1e#g9JTXQ">
                                                                       <field name="TEXT">.gcode</field>
                                                                     </shadow>
                                                                   </value>
                                                                 </block>
                                                               </value>
                                                               <value name="B">
                                                                 <shadow type="math_number" id="u3_-Ii7/U+4%YQw8Az@I">
                                                                   <field name="NUM">1</field>
                                                                 </shadow>
                                                               </value>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <value name="ADD2">
                                                         <block type="text" id="sn3+k)T(}R(KvqNhQ6;v">
                                                           <field name="TEXT">.png</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </statement>
                                      </block>
                                      
                                      

                                      Merlin123 1 Reply Last reply Reply Quote 0
                                      • Merlin123
                                        Merlin123 @stenmic last edited by

                                        @stenmic Erstmal danke für das Script 🙂
                                        Die URL baut er richtig zusammen, aber unter der Adresse liefert mein Drucker kein Bild:

                                        http://192.168.0.252/server/files/gcodes/.thumbs/Plate%201%20-%20Charcoal%20Black_0.15mm_PLA_Generic%20Klipper%20Printer_6h52m.png
                                        

                                        Bei mir liegt das Thumbnail unter

                                        /usr/data/printer_data/gcodes/.thumbs/Plate 1 - Charcoal Black_0.15mm_PLA_Generic Klipper Printer_6h52m-100x100.png
                                        

                                        Weißt Du, was ich machen muss, damit der Drucker das via HTML ausliefert?

                                        K S 2 Replies Last reply Reply Quote 0
                                        • K
                                          Kammi_ @Merlin123 last edited by Kammi_

                                          @merlin123

                                          öffne deinen drucker im browser bei mir wäre das http://192.168.0.84 rechts klick auf das tumbnail -> Grafik im neuen tab öffnen und du hast deine Adresse wo du brauchst

                                          http://192.168.0.84/server/files/gcodes/.cache/.thumbs/Calibration%20Cube_PETG_22m3s-272x272.png?date=1735204837
                                          

                                          wäre es bei mir also genau das gleiche du musst nur deine ip austauschen

                                          Merlin123 1 Reply Last reply Reply Quote 0
                                          • S
                                            stenmic @Merlin123 last edited by

                                            @merlin123 mach mal bitte zum test einen Druck mit einem einfachen Dateinamen und ohne Lehrzeichen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            581
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter update klipper moonraker
                                            22
                                            120
                                            11380
                                            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