Added support for a physical button and led strip#26
Added support for a physical button and led strip#26emouty wants to merge 14 commits intogigibu5:masterfrom
Conversation
|
Thank you for your pull request. Saddly, I do not have any RGB strips at hand to test it. If you could resolve the confilcts (some stuff was merged) and send me a video of it working as well as some screenshots of the setting panel and user interface, I would be happy to merge it. |
|
Also, please change the indentation from 4 spaces to a single tab. |
- allow control of the light from a physical button connected to a GPIO pin - added support for led strip
|
I did the rebase on your repository, I also added the change of the light icon in the UI when you press the physical button to turn on and off the light. I will send you the video soon, I just need to finish some wiring on the printer before |
| self._logger.info("watching events on pin : {}".format( | ||
| button | ||
| )) | ||
| GPIO.setup(button, GPIO.IN, pull_up_down=GPIO.PUD_UP) |
There was a problem hiding this comment.
@emouty you need to wrap button in this line and below (or in L96 and 108) with int()
otherwise an exception is thrown
octoprint.server.api - ERROR - Error calling SimpleApiPlugin octolight
Traceback (most recent call last):
File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/server/api/__init__.py", line 94, in pluginData
response = api_plugin.on_api_get(request)
File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/util/__init__.py", line 1737, in wrapper
return f(*args, **kwargs)
File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_octolight/__init__.py", line 108, in on_api_get
self.enable_watch_button(self._settings.get([BUTTON_PIN]))
File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_octolight/__init__.py", line 128, in enable_watch_button
GPIO.setup(button, GPIO.IN, pull_up_down=GPIO.PUD_UP)
ValueError: Channel must be an integer or list/tuple of integers
|
i've tested your PR and except the one bug it seems to work properly (normal light pin and button, i have not tested the LED strip feature) |
|
|
||
| if self._settings.get([BUTTON_PIN]) != self._settings.get([PREVIOUS_BUTTON_PIN]): | ||
| # stop watching on the previous pin | ||
| GPIO.remove_event_detect( |
Hello,
I have added :
I also did some refactoring in the
__init__.py, so there might be some conflicts with other ongoing pull request.Note: I haven't found why (might just be my Pi) but the board was stuck in BCM mode so i switch the GPIO mode to BCM