[APP][Pro] OctoPrint

Control and monitor your 3D printer
image

With blessing of former developer jonkristian and Caseda, I took over “maintenance” of Octoprint.

Don’t expect any significant development please, rather then minor updates, hopefully fixing bugs, if any, etc. - that’s why maintenance.

Live version : Octoprint App for Homey | Homey
Test version : Octoprint | test

Source code is available here

Supported Languages:

  • English
  • Norwegian

With this app you can:

  • Send notifications once a print has finished, with snapshot from webcam configured in OctoPrint.
  • Pause, resume and cancel a print.
  • See current state, tool temperature, bed temperature, time estimate, completion percentage, print time and time left.
  • All sensors and states are available as tags and can be used in flows.
  • Shutdown / restart Raspberry and much more - see below

Caseda added following improvements :

  • Added: Target temperature for bed (0°C - 130°C) and tool (0°C - 300°C);
  • Added: Target and measured Temperatures for a chamber (0°C - 75°C) (enable in the device’s advanced settings);
  • Added lots and lots of Trigger (14 (total 18), Action (8), and Condition (3) flow cards;
  • Added: Current (selected) file name;
  • Added: Estimated end time (date and time);
  • Added: Emergency stop (double click mandatory, to stop accidental clicks);
  • Added: Send (any) G-Code (flow card);
  • Added: An error has occurred (trigger card);
  • Added: Bed or Tool cooled down (trigger card, threshold editable in the device’s advanced settings);
  • Added: Home printer/axis (flow card);
  • Added: Move axis to (flow card);
  • Added: Dutch translation;
  • Added: 3 Maintenance actions (restart Octoprint, reboot Raspberry Pi, shutdown Raspberry Pi);
  • Changed: Cancel button now also needs to be double clicked, to stop accidental clicks;
  • Changed: Heated bed can now be disabled (in the device’s settings), this will hide any heated bed capabilities and flow cards;
  • Changed: Settings page was removed, and all settings moved to the device’s (advanced) settings;
  • Changed: Many minor changes internally to make the code a bit more robust;

Please report issues or ideas at the issues section on Github

Credits to key devs participating on this project : jonkristian, Caseda :+1: :tophat:

If you like the app, you can donate here to keep my ChatGPT running :wink: :robot:

9 Likes

That’s actually really nice!!

Hello and thank you for the work. I do not understand what to install and or. I have feedback on my application, but I cannot control my printer.

I love the app, now the printer is part of my home automation. But if i send a snapshot i just get the Homey logo shown. Is there something else which needs to be configured for that functionality. My webcam and snapshot settings in Octoprint works fine.

Thanks for this app, but i can’t seem to get my octoprint added.

I keep getting “could not find that pair session”

Any hints are welcome.

Thanks

Edit: problem found i switch to the browser during adding of the device after re adding without switching it worked.

Hello :slight_smile:

1.0.8 is now available in test.

  • Fixed flow_token_already_exists error
  • Minor translation fixes

1.0.7

Snapshot is now a global tag so it can be used everywhere, also you can customize the snapshot url under advanced settings if you prefer, otherwise it defaults to octoprints webcam snapshot url.

There was an issue with on/off being triggered untimely, this should now be fixed. Also better handling of device setup if something goes wrong. Buttons are also operational, pause/resume cancel.

!! After update (breaking changes) !!
This is a big update. Please remove device and re-add, then update your flows to make sure everything is functioning. Sorry for the inconvenience.

Changelog

  • Homey SDK v3
  • Improved translations
  • Easier/Quicker setup
  • Snapshot config moved to advanced settings
  • Snapshot is now a global token (tag)
  • Buttons are now functional
  • Adds trigger card for print paused
  • Fixed off trigger when it shouldn’t
  • Adds homey community topic id
  • Adds loading overlay in setup

Issues
Any issues, feel free to report here.

2 Likes

1.0.8 is now live!

!! After update (breaking changes) !!
I want to point out once again that this has some breaking changes, so before reporting bugs any bugs, please make sure you remove and re-add your device(s) and update your flows.

Sorry for the inconvenience.

1 Like

Maybe a stupid question:
I use one Raspi Octoprint setup to serve two printers…is it possible to add both of them?
When I try to add the second one, i get a message “duplicate device” using different applications keys.
Adding the printer i get a “flowtoken_already_exists” error.

1.0.9 is now out in test!

Changelog

  • Fixed run listener init
  • Adds camera in-app

@Tequila329 Not a stupid question at all.

The reason you get duplicate is that it is a duplicate, one device equals one octoprint server. This should work fine with one device, but there is nowhere for you to select between printers in the app so that part has to be done inside octoprint for now. If you want to see such a feature please create a new feature request here. I’m not sure if this is a common thing, being you can’t run both at the same time so I’ll have to think about it. Maybe it can be added in somehow.

For the last part “flowtoken_already_exists” it should now be fixed in 1.0.9.

OK, migrating vom Repetier Server (which can handle multiple servers on one Raspberry) Octoprint seems only one printer per server.

No problem, i can use the existing Pi to setup a second instance :+1:

i was really waiting for an app like this. So i tried but i can;t get the flows to work no matter what i try.
so far i tried the following: https://homey.app/f/JKItHw/
https://homey.app/f/wTXtHw/
https://homey.app/f/GY2uHw/
https://homey.app/f/Aa7uHw/
https://homey.app/f/xbeuHw/

so the question is what am i doing wrong

Sorry for the late reply. Did you figure it out?
I think your second flow should work as long as your pushover integration is.
If you haven’t already, could you also please try to re-install and re-add the device just to make sure.
Which version are you using? If you’re not yet using 1.0.9 from test maybe try that instead.

hello,
yes i did however it stopped working after some days so i am going to test the new test version.

gr. frans

@Jumpingmushroom Johny, would it be possible to implement checking for M112, M108, M410, M412 eventually status from Octoprint INT4 ? Eg.I have condition When not printing at 01AM / 5AM etc. in the morning…start countdown to turn off printer via IKEA Tradfri power socket. But…now during 20 hours print somehow it stopped reporting Octoprint connection error… naturally it reported Not printing so during night and after 10 hours the printer powered off…it was quite hard to find layer it failed later on :wink:

Yes, I have also countdown for “Print finished” - but scenario above is for situation "Yeah, I will start printing when I got time…and printer stays powered on for 3 days without activity :wink:

2nd time it happened I had serial.log enabled :

2021-05-12 04:01:00,900 - Recv: INT4
2021-05-12 04:01:01,420 - Recv: UVLO - end 494
2021-05-12 04:01:32,279 - Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
2021-05-12 04:01:32,282 - Send: N952322 M105*26
2021-05-12 04:02:02,311 - Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
2021-05-12 04:02:02,314 - Send: N952323 M105*27
2021-05-12 04:02:32,344 - Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
2021-05-12 04:02:32,347 - Send: N952324 M105*28
2021-05-12 04:03:02,376 - Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
2021-05-12 04:03:02,378 - Send: N952325 M105*29
2021-05-12 04:03:32,408 - Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
2021-05-12 04:03:32,411 - Send: N952326 M105*30
2021-05-12 04:04:02,441 - No response from printer after 6 consecutive communication timeouts, considering it dead. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.

Just writing to give a heads up. This app will no longer be maintained, if you’d like to adopt the app, please let me know.

That’s a pity ;-(

:frowning: Yeah thats a pitty, hope it will continue to work in the future

I cant even add it. Put in the ip and API key but it cant pair

In the past several months I’ve been working on the code off and on (when I had some time, but couldn’t do anything while away from home anyway) for the Octoprint app, to add some additional functionality I missed in the app (mainly missing trigger cards).
In this time I also looked at some possible improvements and fixes that were requested here and the (original) github page as jon (sadly) abandoned the app.

There are some small breaking changes (see at the bottom for more information) making it harder (without re-pairing) to revert back to the stable/test version (the one in the app-store).
Update: v1.1.1 doesn’t have this breaking change anymore!
By just hiding the capabilities, instead of deleting them, this will keep the tags alive in old (already paired) devices (with still updating values), so no breaking changes anymore!

I have tested it very thoroughly.
If you however still find any issue(s) feel free to contact me in PM or on my github page (the issue page is open), and I’ll try to fix it in time.
If you have any requests, you can also send them in PM or on my github page, and I’ll see if I can add them.

In the end I might have gone a bit overboard, more then I expected at the start (LOL), adding lots(!) of additional features.

I wanted to share my fork of the app as more people are probably interested in at least some of the features.
You can find my fork on my github page. (click)
(How to install apps via CLI)

For now I probably won’t be taking over the app, as I just lack the (free) time for it, maybe in the future when life and work offers me more free time.
And the changes (most likely) won’t make it into the official app (app store), for now.

The changelog has become a bit long that it is kinda hard to post it here, so I’ll just summarize it here with most of the added features, you can still find the full changelog and all available flow cards (and their tags) etc. on my github page (in the readme).

Summarized changelog:

  • Added: Target temperature for bed (0°C - 130°C) and tool (0°C - 300°C);
  • Added: Target and measured Temperatures for a chamber (0°C - 75°C) (enable in the device’s advanced settings);
  • Added lots and lots of Trigger (14 (total 18), Action (8), and Condition (3) flow cards;
  • Added: Current (selected) file name;
  • Added: Estimated end time (date and time);
  • Added: Emergency stop (double click mandatory, to stop accidental clicks);
  • Added: Send (any) G-Code (flow card);
  • Added: An error has occurred (trigger card);
  • Added: Bed or Tool cooled down (trigger card, threshold editable in the device’s advanced settings);
  • Added: Home printer/axis (flow card);
  • Added: Move axis to (flow card);
  • Added: Dutch translation;
  • Added: 3 Maintenance actions (restart Octoprint, reboot Raspberry Pi, shutdown Raspberry Pi);
  • Changed: Cancel button now also needs to be double clicked, to stop accidental clicks;
  • Changed: Heated bed can now be disabled (in the device’s settings), this will hide any heated bed capabilities and flow cards;
  • Changed: Settings page was removed, and all settings moved to the device’s (advanced) settings;
  • Changed: Many minor changes internally to make the code a bit more robust;

And might have forgotten a few.

## Note: breaking changes
There are some small (for the better) breaking changes, also making it harder (without re-pairing) to revert back to the stable/test version (the one in the app-store).

2 Likes

Thank you Caseda, it’s a pity you are giving up just after reaching final line ! :wink: Yet very very much appreciated.
So far so good - installation, adding printer, measuring values, but more testing is required.