vitormhenrique / OctoPrint-Enclosure

OctoPrint Enclosure Plugin
GNU General Public License v3.0
397 stars 202 forks source link

The future of OctoPrint-Enclosure #435

Closed hbast closed 2 years ago

hbast commented 3 years ago

Hey @vitormhenrique, I'm currently building a case for my 3D printer and I found this plugin while putting together the software. I am confused about the status of the plugin. I don't see any real progress in development since some time. In the Octoprint plugin manager, version 4.13.1 is current; however, this does not appear to exist in this repository - or I'm blind ;). There is only 4.12. In addition, some pull requests are open with new features, such as connection of new sensors, or graphical functionalities, which are not processed / incorporated. I need the integration of BME688, which is interface compatible wiht BME680... I could help testing and integrating the PR.

For me, the question is whether it is worth using this plugin, or to realize the control of my 3D printer enclosure in another way. Where are there problems? How can the community contribute to revive and develop the plugin. What does the roadmap look like?

stephenfeather commented 3 years ago

Same here. With anything other than PLA, need to test AQ inside enclosures. Also adding a laser head which gives off contaminants as it burns.

@hbast maybe a fork is in order if you don't get an answer soon (its been a week)

6ffm70 commented 2 years ago

@hbast, I'm with @stephenfeather

foosel commented 2 years ago

Hi, project lead of OctoPrint here. I just got made aware of an issue of this plugin with the latest 1.7.0 release, and as far as I can see there appears to be an issue with a long deprecated and now removed property, as visible in #432.

@vitormhenrique I understand that a heavy injury caused you to have to step away from this and I totally understand this and hope you've since made a good recovery. It is totally fine when priorities shift and when projects like this one fall off the side as a consequence - just a normal thing in Open Source, absolutely no harm with it! You don't owe anyone anything and you should not feel obligated to keep something alive and going that you can't or even don't want to anymore.

Given the strong interest in this particular plugin in the community however (it IS quite helpful after all) and the demand visible in this thread, I'd like to figure out if it's time to declare it as abandoned and try to find a new maintainer for it (we have an established process for this in the plugin repository, it happens!) or if there's still hope.

If I don't hear anything back here within the next 14 days from you @vitormhenrique, again, absolutely no harm done, totally understandable, but I'll then mark the plugin as abandoned and launch a call for adoption. In any case, thank you for your work!

vitormhenrique commented 2 years ago

Hi @foosel and everyone else here!

@foosel to start, thanks for your amazing work on Octoprint...

I tried to get the ball rolling again few months ago: https://github.com/vitormhenrique/OctoPrint-Enclosure/pull/392#issuecomment-808422390

Unfortunately I could not find a single person that wanted to help with the code.

So when I started this project I had ZERO experience with python... this made this plugin be very very "hacky" it required installing and configuring a lot of external libraries and the user interface sucked, this caused me to spend a lot of hours every week helping people to get the settings just right and doing free software support over the internet for people all around the world, and I really enjoined doing so... But I just don't have time to do that anymore, so now that I have been working with python for a few years, I wanted to fix the core issues with the initial implementation. But I will need some help.

I started completely rewriting this to properly support python 3 few months ago, I hate the way that i wrote this on the first place, it's way to hacky and it was my first project on python. I started a new UI for the setting screen and it is much better, follows the other screens that octoprint has.

I also wanna move away for the manual installed libraries and including circuit python as standard on the plugin.

I have a lot of pull requests open, but most of them have conflicts and I can't stop to fix those and work on the new stuff...

So here is what I propose, some of I will need help

foosel commented 2 years ago

Hey, that sounds like a great roadmap. Do you want me to spread your request for help a bit wider? I could push a notification to people who have the plugin installed at the moment, and also share a link to your post on social media. Maybe that will get more attention and possible co-maintainers than a comment on a PR? :)

vitormhenrique commented 2 years ago

@foosel that would be great!

Any help that I can get would be very welcome.

I'm gonna create a discord server to get a little bit more organized if someone whats to volunteer.

https://discord.gg/sJQe9PmA

jneilliii commented 2 years ago

Maybe this is something that @Dak0r or some of the other PR submitters would be interested in helping with?

hbast commented 2 years ago

@foosel Thanks Gina for pushing the request. I agree with you that this plugin absolutely must live on.

@vitormhenrique I have already looked a little bit at the source code in the last weeks, especially the integration of the sensors. I would be happy if I could support you to revise the sensor connection and to standardize interfaces. I already have first ideas, which makes the integration of new sensors no longer directly dependent on octoprint-enclosure. A more generic approach would create a big advantage.

I could support you with the maintenance and migration. I've been programming with Python in my spare time for a few years and already have experience with frameworks like Django.

foosel commented 2 years ago

I've thrown up a notice and a tweet, let's see what happens.

vitormhenrique commented 2 years ago

@hbast I see that you joined the discord, I'll shoot you a message and we can discuss there, I also had ideas on how to improve the current code.

mynameisbrendan commented 2 years ago

First up - I am not a developer, so I offer no help here. Sorry!

I just happened to get the alert above in my octoprint UI at the same time as I was offered the OP update to 1.7.0. I just wanted to check if that is a coincidence, or if this thread has come about due to an incompatibility of the current version of Enclosure Plugin with OP 1.7.0?

jneilliii commented 2 years ago

There is currently an issue with the current release of the Enclosure plugin and OctoPrint 1.7.0. I've submitted a PR that I believe will resolve the issue, but awaiting verification from #432.

ni-aackerman commented 2 years ago

Maybe @wmonzel wants to help? He created a branch for Hardware PWM which is not working on master branch, and it works flawesly.

wmonzel commented 2 years ago

@foosel @vitormhenrique @ni-aackerman Sure, count me in! I'm happy to help in any way I can.

chartist1 commented 2 years ago

Hi I would be more than happy to help if I can, I am a software developer although C/C++ with a hardwire bent as well, I have a little experience with Python and am interested in this enclosure plugin, as I want to remotely control and monitor the printer and enclosure.

ni-aackerman commented 2 years ago

Me too as well @vitormhenrique im devops engineer with some python knowledge, but willing to help

Dylan-Gardner commented 2 years ago

@vitormhenrique I would also volunteer to help. I have some Python experience but JavaScript is what I do in my day job

spiff72 commented 2 years ago

I just wanted to chime in...as I use the plugin for monitoring my Lack enclosure and controlling an exhaust fan to keep temps consitent. I am glad I read this thread prior to clicking the upgrade to 1.7.0, and I will hold off on that upgrade...

I am unqualified to help out, but as I read through this thread, it is clearly a testament to the value of open source! Kudos to all of you that are stepping up to help with this one...

X10SIV commented 2 years ago

First off I want to thank you guys for making this possable for guys like me and many others. Im not very good with coding but can figure it out. Im hoping someone takes this on because I use the enclosure plugin to run my printer through my pi. So is there gonna be a new enclosure plugin?

2211kp commented 2 years ago

@foosel that would be great!

Any help that I can get would be very welcome.

I'm gonna create a discord server to get a little bit more organized if someone whats to volunteer.

https://discord.gg/sJQe9PmA

i currently have a working version

gdiciocco commented 2 years ago

I'm using the plugin on a chambered sidewinder x1, all working fine, bme280 sensors and triacs output board for heater. I'm also available for help in development (python, networking, linux, electronics, no js)

AlexDep commented 2 years ago

Hi, would love to help as your plugin is so useful. I will join your discord.

jsymonds commented 2 years ago

I have not yet set up this plugin with my enclosure hardware, but I wanted to thank all of you for keeping octoprint-enclosure going. I really appreciate the effort everyone is making to improve this project and keep it up to date!

MIIB1 commented 2 years ago

Hello,

i want ask can i control snapmaker 2 A350 enclosures ?

i can't find how do it ?

nfored commented 2 years ago

When upgraded to python 3 by running apt update and apt upgrade in the fresh install octopi 0.18 ds18b20 probes have this errror.

2021-10-29 12:09:15,377 - octoprint.plugins.enclosure - WARNING - An exception of type IndexError occurred on log_error. Arguments: ('list index out of range',) Traceback (most recent call last): File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_enclosure/init.py", line 986, in get_sensor_data temp = self.read_18b20_temp(sensor['ds18b20_serial']) File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_enclosure/init.py", line 1203, in read_18b20_temp lines = self.read_raw_18b20_temp(serial_number) File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_enclosure/init.py", line 1218, in read_raw_18b20_temp device_folder = glob.glob(base_dir + str(serial_number) + '*')[0] IndexError: list index out of range 2021-10-29 12:09:15,379 - octoprint.plugins.enclosure - WARNING - An exception of type TypeError occurred on log_error. Arguments: ('cannot unpack non-iterable NoneType object',) Traceback (most recent call last): File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_enclosure/init.py", line 811, in check_enclosure_temp temp, hum = self.get_sensor_data(sensor) TypeError: cannot unpack non-iterable NoneType object

nelsonov commented 2 years ago

Somebody should pin this issue. The link from the Octoprint notification landed me here, but that may not be the case for everyone.

Also, the invite above for the Discord channel is invalid. Is the channel no longer being used or did it just expire? I have so many future plans for this plugin that I hope I can find a way to contribute back.

AlexDep commented 2 years ago

hi, Here a permanent link : https://discord.gg/bMQCsScaus

DIY89 commented 2 years ago

Hi folks, first of all. I really like this plugin it. So thanks to all you greats guys who develop this. During my work on my 3D Printer i recognized that the lower level IO Stuff is working much better on an Arduino Board like 1-Wire communication and much more safely for controlling relays. So i would like to contribute this great project but i need a little start help to initialize the git repository. I there a chance to run the repo directly on Raspi from GitHub?

Thanks

vitormhenrique commented 2 years ago

@DIY89 I have no idea what do you mean by run the repo directly from github.

you mean install from github? run from a local copy on octoprint?

DIY89 commented 2 years ago

@vitormhenrique: Currently i've installed the Plugin via oprint/bin/pip3 pip install "https://github.com/vitormhenrique/OctoPrint-Enclosure/archive/master.zip. So i find the files i want to change under oprint/lib/python3.7/site-packages/octoprint_enclosure. For example the __init__.py. How can i bring the changes back to your master branch via git?

rtheil-growlink commented 2 years ago

@vitormhenrique: Currently i've installed the Plugin via oprint/bin/pip3 pip install "https://github.com/vitormhenrique/OctoPrint-Enclosure/archive/master.zip. So i find the files i want to change under oprint/lib/python3.7/site-packages/octoprint_enclosure. For example the __init__.py. How can i bring the changes back to your master branch via git?

  1. clone repo
  2. create new local branch
  3. make changes
  4. when happy, commit changes and push to github
  5. create a pull request for the code in the branch
  6. @vitormhenrique will approve & merge your changes if he so chooses
NDR008 commented 2 years ago

I was using OctoRelay, and after fixing fundamental bugs in that plugin (which never good pulled into the main master), I came across your plugin. Seems like a WAY better baseline. So I think I'll contribute to yours instead.

First thing I wish to add is, an autoshutdown timer (to turn things off with delays after printing). :)

NDR008 commented 2 years ago

@vitormhenrique @DIY89 Read up on git. Fork this repo, make modifications, push them to your fork, then make a pull request to this master repo.

ni-aackerman commented 2 years ago

I was using OctoRelay, and after fixing fundamental bugs in that plugin (which never good pulled into the main master), I came across your plugin. Seems like a WAY better baseline. So I think I'll contribute to yours instead.

First thing I wish to add is, an autoshutdown timer (to turn things off with delays after printing). :)

The timers with delay would be extremely helpful, since some things are activated with the inverted state, so there is no way of turning them off after the print ends, only start them.

vitormhenrique commented 2 years ago

There is already a timer based shutdown system implemented.

On Wed, Feb 16, 2022 at 9:09 PM ni-aackerman @.***> wrote:

I was using OctoRelay, and after fixing fundamental bugs in that plugin (which never good pulled into the main master), I came across your plugin. Seems like a WAY better baseline. So I think I'll contribute to yours instead.

First thing I wish to add is, an autoshutdown timer (to turn things off with delays after printing). :)

The timers with delay would be extremely helpful, since some things are activated with the inverted state, so there is no way of turning them off after the print ends, only start them.

— Reply to this email directly, view it on GitHub https://github.com/vitormhenrique/OctoPrint-Enclosure/issues/435#issuecomment-1042524918, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA6ITFYZP6U6BWGRQY35HZLU3RRIJANCNFSM5DCQCM5Q . You are receiving this because you were mentioned.Message ID: @.***>

JeremyLaurenson commented 2 years ago

Hey @vitormhenrique

There is some discussion in the Discord chat server around pull requests, for example the one 'ready to go' in November and whether we should just fork a new build.

I think the issue at hand is that you have asked for help, and there are folks willing, but we dont know what to do.

What are your current thoughts? What do you exactly need help with and how do we sign up officially?

ni-aackerman commented 2 years ago

How would you configure then in this particular case to stop after 5 minutes. This is an Active Low setup, so the fan turns off (on) when the print ends? For me it doesnt work when I add the time in seconds. Screenshot 2022-02-17 at 13 35 51 .

troywneal commented 2 years ago

Hi there. While I am not a programmer by trade, I spent several years programming in python for work. While it has been a while since, I still regularly program in other languages and I am very interested in helping (and learning). I tried to join the discord, but it was closed. I may be late to this, but I hope to contribute to your amazing work.

hbast commented 2 years ago

After all the good will and great support from @foosel via Twitter, a lot of people showed up on the Discord server. All of them were ready to support in their own way. Be it in project management, Python programming, organization, hardware related programming, expertise was gathered there from all corners. But it just didn't happen. People were stalled and nothing was done instead of assigning tasks and facilitating them.

I for myself am fed up with it. It's a disgrace. This horse is dead and should not be resurrected. Let it rest and saddle up on another one.

troywneal commented 2 years ago

I understand that. Thank you for taking the time to respond. Also, thank you for all of the time you put in. I am very grateful as a user. I am also very sorry that we, as a community, weren't able to come through on this.

Again, thank you for your time.

On Tue, Feb 22, 2022, 08:58 Holger @.***> wrote:

Closed #435 https://github.com/vitormhenrique/OctoPrint-Enclosure/issues/435.

— Reply to this email directly, view it on GitHub https://github.com/vitormhenrique/OctoPrint-Enclosure/issues/435#event-6119151554, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALKO44JCKQJSPSFS3SSUNM3U4OXBVANCNFSM5DCQCM5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: <vitormhenrique/OctoPrint-Enclosure/issue/435/issue_event/6119151554@ github.com>

mhesselgator commented 2 years ago

I'm bummed! Cool plugin!!!

spiff72 commented 2 years ago

I am a bit confused - I got signed up for notifications on this topic a while back, and I am not clear on whether this plugin is still viable. From reading this thread, it seems it isn't. However, it is working fine for me right now. I have Octoprint 1.7.3 Enclosure Plugin 4.13.2 I have it set up to turn on/off an exhaust fan at certain temperatures based on some starting GCODE that gets added when i slice parts (based on the tool temp (PLA material sets a lower enclosure temp than stuff like PETG/ABS/PCblend). Everything works great on my end.

rtheil-growlink commented 2 years ago

I am not clear on whether this plugin is still viable

It still works really well, but there are a lot of issues noted that are incompatible with Python 3, and there have been no updates. Even pull requests are not being merged.

spiff72 commented 2 years ago

I am not clear on whether this plugin is still viable

It still works really well, but there are a lot of issues noted that are incompatible with Python 3, and there have been no updates. Even pull requests are not being merged.

Ah - OK. I had updated octoprint a while back and since it was using Python 3 now (and I was still using the Enclosure Plugin successfully) I thought all had been resolved.

Thanks!

GerhardMassenbichler commented 2 years ago

The Future - what‘s needed:

Anything else?

vitormhenrique commented 2 years ago

i think there is a misunderstanding here.

I said that I was gonna make this plugin compatible with python 3, and we got those pull requests on.

I'll accept PR's for but fixes but NOT new features.

The current way that the plugin works takes a lot of effort and knowledge of python environments and libraries to make it work, the configuration is terrible and user's just don't know how to use it.

The idea here is to move away from this plugin and build another with helper plugins, each helper plugin would have all libraries and easier way to configure them. For example a GPIO helper plugin would be able to act like a trigger and actions. The main plugin would have the glue logic and enable a screen like an "IF THIS THEN THAT".

The POC with the new style of plugin was here on the "Python 3" branch. But moved it to here: https://github.com/vitormhenrique/OctoPrint-Enclosure-V2

An example of a helper plugin is here: https://github.com/vitormhenrique/OctoPrint-Enclosure-RPiGPIO-Faker

This is only a POC and I already have some stuff that I don't like and will be changing. Please this is a free software that I worked for years, don't come saying "it's a shame" or whatever, specially if you have zero contributions to this plugin or any opensource library.

TechWithTy commented 2 years ago

Hello sorry here really looking forward to helping I'm sorry don't have much time couldn't read the entire thread but the discord link is invalid. Please let me know if you are still looking for help thank you

Death305#5861 (Discord)

jneilliii commented 2 years ago

Updated invite: https://discord.gg/cwgqHnEZk3

spiff72 commented 2 years ago

I know this is closed, but is it reasonable to say "Don't upgrade to octoprint 1.8.0 if you are still using OctoPrint-Enclosure"?

stephenfeather commented 2 years ago

When large frameworks or underlying languages have major version changes, it often requires a lot of code changes.

I'm currently fighting a PHP 8x, MySQL 8x battle. Neither side paid attention and the 2 giant ships passed each other.

Python 2 -> Python 3 was an 8 year span with nearly 14 years to present since 3 was released. But here is the thing to remember on all sides here. Until Octoprint moved to Python 3, plugins couldn't.

Until just a few years ago, Apple was shipping Python 2 in OSX and it was (and for some still is) a PITA to get python 3.x on.

@vitormhenrique has put a ton of time into a plugin that by all intents was designed to take a huge collection of disparate inputs (hardware, software, cloud) and bring them into a view that we could read easily. And for that I think him tremendously.

On the other side as a user, I understand the frustration when a working setup just dies on you because of underlying changes. You want the latest Octoprint, the fixes, the advantages, and now a sub-product that depends on that breaks from the changes.

Python is definitely not in my wheelhouse. "Hack in" fixes I can do sometimes. Give me some PASCAL and I'm a KING! :)

I read through the POC and like the direction.

Now, I want the plugin to grab an alexa hook and sound an alarm throughout the property that a 3d printer is on fire! j/k

i think there is a misunderstanding here.

I said that I was gonna make this plugin compatible with python 3, and we got those pull requests on.

This is only a POC and I already have some stuff that I don't like and will be changing. Please this is a free software that I worked for years, don't come saying "it's a shame" or whatever, specially if you have zero contributions to this plugin or any opensource library.