# \[APP\]\[Pro\] Moonraker for 3D printer running klipper

**URL:** <https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125>\
**Category:** Apps\
**Tags:** app, homey-pro\
**Created:** [June 28, 2024, 3:42pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125 "2024-06-28T15:42:17Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![DrFatalis](https://avatars.discourse-cdn.com/v4/letter/d/aca169/32.png) [@DrFatalis](https://community.homey.app/u/DrFatalis)\
**Post date:** [April 7, 2025, 3:08pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/21 "2025-04-07T15:08:34Z")

</div>

Hi,

Could you please test the following in any internet browser for me ?

Replace the printer ip and the 7125 port with your values.

http:// **printerip:7125** /printer/objects/query?print\_stats&extruder=target,temperature&heater\_bed=target,temperature

and

http:// **printerip:7125** /printer/objects/query?print\_stats&extruder=target,temperature&heater\_bed=target,temperature&temperature\_sensor

and

http:// **printerip:7125** /printer/objects/query?print\_stats&extruder=target,temperature&heater\_bed=target,temperature&temperature\_sensor=chamber\_temp

Thank you in advance 🙂

---

<div class="post-metadata">

**Author:** ![Darkness](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/darkness/32/5104_2.png) [@Darkness](https://community.homey.app/u/Darkness)\
**Post date:** [April 7, 2025, 3:36pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/22 "2025-04-07T15:36:10Z")

</div>

Pls find the answer to your queries as below:

http:// **printerip:7125** /printer/objects/query?print\_stats&extruder=target,temperature&heater\_bed=target,temperature

> {“result”: {“eventtime”: 7590.281844166, “status”: {“print\_stats”: {“filename”: “”, “total\_duration”: 0.0, “print\_duration”: 0.0, “filament\_used”: 0.0, “state”: “standby”, “message”: “”, “info”: {“total\_layer”: null, “current\_layer”: null}, “power\_loss”: 0, “z\_pos”: 6.0}, “extruder”: {“target”: 0.0, “temperature”: 30.7}, “heater\_bed”: {“target”: 0.0, “temperature”: 29.4}}}}

http:// **printerip:7125** /printer/objects/query?print\_stats&extruder=target,temperature&heater\_bed=target,temperature&temperature\_sensor

> {“result”: {“eventtime”: 7648.227234166, “status”: {“print\_stats”: {“filename”: “”, “total\_duration”: 0.0, “print\_duration”: 0.0, “filament\_used”: 0.0, “state”: “standby”, “message”: “”, “info”: {“total\_layer”: null, “current\_layer”: null}, “power\_loss”: 0, “z\_pos”: 6.0}, “extruder”: {“target”: 0.0, “temperature”: 30.71}, “heater\_bed”: {“target”: 0.0, “temperature”: 29.4}, “temperature\_sensor”: {}}}}

http:// **printerip:7125** /printer/objects/query?print\_stats&extruder=target,temperature&heater\_bed=target,temperature&temperature\_sensor=chamber\_temp

> {“result”: {“eventtime”: 7664.032165166, “status”: {“print\_stats”: {“filename”: “”, “total\_duration”: 0.0, “print\_duration”: 0.0, “filament\_used”: 0.0, “state”: “standby”, “message”: “”, “info”: {“total\_layer”: null, “current\_layer”: null}, “power\_loss”: 0, “z\_pos”: 6.0}, “extruder”: {“target”: 0.0, “temperature”: 30.73}, “heater\_bed”: {“target”: 0.0, “temperature”: 29.39}, “temperature\_sensor”: {“chamber\_temp”: null}}}}

However, i believe that the correct query that you are looking for is actually this:

> http:// **printerip:7125** /printer/objects/query?print\_stats&extruder=target,temperature&heater\_bed=target,temperature&temperature\_sensor+chamber\_temp=temperature

which returns this:

> {“result”: {“eventtime”: 7743.802509832, “status”: {“print\_stats”: {“filename”: “”, “total\_duration”: 0.0, “print\_duration”: 0.0, “filament\_used”: 0.0, “state”: “standby”, “message”: “”, “info”: {“total\_layer”: null, “current\_layer”: null}, “power\_loss”: 0, “z\_pos”: 6.0}, “extruder”: {“target”: 0.0, “temperature”: 30.73}, “heater\_bed”: {“target”: 0.0, “temperature”: 29.42}, “temperature\_sensor chamber\_temp”: {“temperature”: 29.04}}}}

---

<div class="post-metadata">

**Author:** ![DrFatalis](https://avatars.discourse-cdn.com/v4/letter/d/aca169/32.png) [@DrFatalis](https://community.homey.app/u/DrFatalis)\
**Post date:** [April 7, 2025, 6:16pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/23 "2025-04-07T18:16:47Z")

</div>

Great!! Thank you.  
I will implement that asap

👍

---

<div class="post-metadata">

**Author:** ![DrFatalis](https://avatars.discourse-cdn.com/v4/letter/d/aca169/32.png) [@DrFatalis](https://community.homey.app/u/DrFatalis)\
**Post date:** [April 8, 2025, 10:13am UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/24 "2025-04-08T10:13:55Z")

</div>

Hi all,

Latest patch should have fix the chamber temperature option as weel as the pairing process in the homey app. Feel free to share feedback if something is wrong.

---

<div class="post-metadata">

**Author:** ![Darkness](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/darkness/32/5104_2.png) [@Darkness](https://community.homey.app/u/Darkness)\
**Post date:** [April 8, 2025, 5:20pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/25 "2025-04-08T17:20:30Z")

</div>

I’m happy to report that the latest version works fine. The new icons for the chamber and bed temp looks pretty cool too!

 ![1000367343](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/b/8/b8cafd911a5f63abee004e6e266e723035487332.jpeg)

---

<div class="post-metadata">

**Author:** ![Darkness](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/darkness/32/5104_2.png) [@Darkness](https://community.homey.app/u/Darkness)\
**Post date:** [April 8, 2025, 7:34pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/26 "2025-04-08T19:34:03Z")

</div>

Another feedback: the layer and it’s completion time seems to be not updating, while the rest of the fields are updating correctly.

 ![1000367365](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/c/7/c7501a766bbf19c3d258a9a19426fb7fcb80bb4c.jpeg)

---

<div class="post-metadata">

**Author:** ![DrFatalis](https://avatars.discourse-cdn.com/v4/letter/d/aca169/32.png) [@DrFatalis](https://community.homey.app/u/DrFatalis)\
**Post date:** [April 8, 2025, 8:45pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/27 "2025-04-08T20:45:15Z")

</div>

would you mind sharing the output of this get request when a print in on going ?

http:// **printerip:7125** /printer/objects/query?print\_stats

The returned json should give the current layer and target one. This used to work. Your latest answer had null and null as i guess you prepared the printer but didn’t have any print on going.

This could mean that moonraker doesn’t have acces to thoses data anymore.

You can also try http:// **printerip:7125** /server/files/metadata?filename=xxx

With xxx being the filename from the previous query.

That would help a lot. I will be home in few days so i would be able to test that on my own printers if you don’t have the time 🙂

---

<div class="post-metadata">

**Author:** ![Darkness](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/darkness/32/5104_2.png) [@Darkness](https://community.homey.app/u/Darkness)\
**Post date:** [April 8, 2025, 9:27pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/28 "2025-04-08T21:27:52Z")

</div>

I checked the print\_stats again and you are right that the layers reported are indeed null:

> {“result”: {“eventtime”: 2254.171708499, “status”: {“print\_stats”: {“filename”: “motor bowden tube stabiliser\_0.2mm\_PETG\_Generic Klipper Printer\_22m25s.gcode”, “total\_duration”: 159.69761000000017, “print\_duration”: 16.823972666999907, “filament\_used”: 32.98481999999999, “state”: “printing”, “message”: “”, “info”: {“total\_layer”: null, “current\_layer”: null}, “power\_loss”: 0, “z\_pos”: 0.359625}}}}

I did a little digging on the net and it seems like it’s a problem with moonraker: [Moonraker widget layers · gethomepage/homepage · Discussion #3072 · GitHub](https://github.com/gethomepage/homepage/discussions/3072)

So I added the corresponding gcode to my slicer and now it seems to work fine!!

---

<div class="post-metadata">

**Author:** ![DrFatalis](https://avatars.discourse-cdn.com/v4/letter/d/aca169/32.png) [@DrFatalis](https://community.homey.app/u/DrFatalis)\
**Post date:** [April 10, 2025, 4:02pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/29 "2025-04-10T16:02:58Z")

</div>

In case anyone wondering what needs to be added in your slicer

#### 

Layer Count

To have Slicer layer counts, you have to add these two G-codes in your custom G-codes in your slicer:

Start G-code (before your start G-code):

```auto
SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]

```

End G-code (at the last line):

```auto
; total layers count = [total_layer_count]

```

After layer change G-code:

```auto
SET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}

```

---

<div class="post-metadata">

**Author:** ![Darkness](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/darkness/32/5104_2.png) [@Darkness](https://community.homey.app/u/Darkness)\
**Post date:** [April 13, 2025, 3:27am UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/30 "2025-04-13T03:27:39Z")

</div>

I have 2 more feature request:

- can you allow flows based on the temperature changes, in particular, the chamber temperature (so that i can control an external heater)
- are you able to add insights for the temperature (so that i can graph the temperatures)

Thanks!

---

<div class="post-metadata">

**Author:** ![DrFatalis](https://avatars.discourse-cdn.com/v4/letter/d/aca169/32.png) [@DrFatalis](https://community.homey.app/u/DrFatalis)\
**Post date:** [April 13, 2025, 3:39pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/31 "2025-04-13T15:39:53Z")

</div>

Hi,  
I fixed the existing triggers and added one on the chamber temperature.  
In addition to that, there should be insight trends on the bed, chamber & tool temp as well as trends for the previous layer number with the layer duration (i suggest then to lower the update period from 30 to maybe 10 seconds).

New 1.2.3 is being evaluated by homey team and should be available soon.

Feel free to share some feedback 🙂

---

<div class="post-metadata">

**Author:** ![Darkness](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/darkness/32/5104_2.png) [@Darkness](https://community.homey.app/u/Darkness)\
**Post date:** [April 15, 2025, 2:16pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/32 "2025-04-15T14:16:41Z")

</div>

Thanks for the updated version!! Are you able to include the logics for “above temp” and “below temp” instead of just “temp change”? What I am doing as a workaround in the meantime is to store the temp into a variable to trigger the desired logic. But the ability to use above or below temp would allow the logic to be used more conveniently without having to store the variable on all temp changes.

---

<div class="post-metadata">

**Author:** ![DrFatalis](https://avatars.discourse-cdn.com/v4/letter/d/aca169/32.png) [@DrFatalis](https://community.homey.app/u/DrFatalis)\
**Post date:** [April 15, 2025, 4:20pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/33 "2025-04-15T16:20:34Z")

</div>

The temperature is shared with the trigger so you should simply have to link a logic AND to the trigger as shown below

 ![image.png](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/8/8/88f69ef553cf110e14371d9bec24d6da0ba1e578.png)

---

<div class="post-metadata">

**Author:** ![Darkness](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/darkness/32/5104_2.png) [@Darkness](https://community.homey.app/u/Darkness)\
**Post date:** [April 15, 2025, 10:56pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/34 "2025-04-15T22:56:47Z")

</div>

Thanks!! I will give that a try!

---

<div class="post-metadata">

**Author:** ![Darkness](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/darkness/32/5104_2.png) [@Darkness](https://community.homey.app/u/Darkness)\
**Post date:** [April 17, 2025, 2:48pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/35 "2025-04-17T14:48:25Z")

</div>

DrFatalis, can i trouble u to add an additional feature regarding the chamber temp? While the chamber temp itself does not have a target temp, the temp is actually controlled via a chamber fan, which turns on when the target fan is reached (so that it cools the chamber down).

I would like to use this same target temp to control my external heater (so that i don’t need to manually define it within the homey flows). The fluidd interface for the target chamber temp looks like this:

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/2/4/2471740b89db59795dab0c5f2426c6d00d1ba4b2.png)

The parameter for the chamber target temp is “temperature\_fan chamber\_fan”. The moonraker query looks like this:

> [http://192.168.1.40:7125/printer/objects/query?temperature\_fan+chamber\_fan](http://192.168.1.40:7125/printer/objects/query?temperature_fan+chamber_fan)  
> {“result”: {“eventtime”: 1278.615322499, “status”: {“temperature\_fan chamber\_fan”: {“speed”: 0.0, “rpm”: null, “temperature”: 33.9, “target”: 50.0}}}}

Thank you so much for your help and sorry to trouble you!

---

<div class="post-metadata">

**Author:** ![DrFatalis](https://avatars.discourse-cdn.com/v4/letter/d/aca169/32.png) [@DrFatalis](https://community.homey.app/u/DrFatalis)\
**Post date:** [April 17, 2025, 3:56pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/36 "2025-04-17T15:56:03Z")

</div>

Hi,  
This should be accessible in the next release. The target value will be accessible from the trigger the same way it is with the temperature value.

When “Chamber temperature changed” AND “Logic Temperature flag \>= Target flag” THEN do something

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/5/f5aa8dcb52eb5641a7d51f7297efce94a3cc3960.png)

---

<div class="post-metadata">

**Author:** ![Sander\_Bakker](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sander_bakker/32/80078_2.png) [@Sander\_Bakker](https://community.homey.app/u/Sander_Bakker)\
**Post date:** [July 9, 2025, 5:23pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/37 "2025-07-09T17:23:02Z")

</div>

@DrFatalis thank you for your time to make this app! However I cannot get it to work. I get fault like in the picture, already tried lots of things. Am I doing something wrong?

 ![1000130723](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/e/7/e716c8c1c2639323c48cb248779d7a067e3903fd.png)

---

<div class="post-metadata">

**Author:** ![Cyril](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/cyril/32/13111_2.png) [@Cyril](https://community.homey.app/u/Cyril)\
**Post date:** [August 25, 2025, 8:05am UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/38 "2025-08-25T08:05:01Z")

</div>

Hi,  
Thanks a lot for this app !

Is it possible to add a “then” card to “shutdown” ?  
I would like to properly shutdown Klipper before the printer plug when print finished.

Thanks again

---

<div class="post-metadata">

**Author:** ![Simon\_Kai](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/simon_kai/32/79941_2.png) [@Simon\_Kai](https://community.homey.app/u/Simon_Kai)\
**Post date:** [September 2, 2025, 8:17pm UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/39 "2025-09-02T20:17:16Z")

</div>

Hello, this app sounds very exciting. Is it also compatible with Elegoo printers? As far as I know, Klipper also runs on these. I would appreciate any help.

---

<div class="post-metadata">

**Author:** ![Sander\_Bakker](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sander_bakker/32/80078_2.png) [@Sander\_Bakker](https://community.homey.app/u/Sander_Bakker)\
**Post date:** [September 3, 2025, 6:06am UTC](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125/40 "2025-09-03T06:06:20Z")

</div>

I did a workaround for this.

When I shutdown the Pi running klipper, a webhook triggers. That webhook is shutting down the plug.

[Previous page](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125.md?page=1)

[Next page](https://community.homey.app/t/app-pro-moonraker-for-3d-printer-running-klipper/112125.md?page=3)
