cp2004 / octoprint-wled Goto Github PK
View Code? Open in Web Editor NEWWhat could be better than using OctoPrint or WLED? A plugin to use both!
Home Page: https://plugins.octoprint.org/plugins/wled
License: GNU Affero General Public License v3.0
What could be better than using OctoPrint or WLED? A plugin to use both!
Home Page: https://plugins.octoprint.org/plugins/wled
License: GNU Affero General Public License v3.0
Hi,
Looks like progress leffects are delayed compared to actual printing, heating and cooling progress.
OctoPrint 1.9.0rc3
WLED: 0.14.0.b1 "Hoshi"
As an example, actual printing progres is 53% but lightbar arrives only to 1/3d.
Is your feature request related to a problem? Please describe.
No
Could be more useful to have a main brightness setting, that will be applied to all effects unless they have an own defined brightness value (not undef). It could be located in the Node settings (actual name is Connection settings) . In the same time, don't you think {Overrides on/off} setting should be located in Node settings too ? In fact I don't see any raison to have it in effects settings, but maybe I am missing something.
Thank you
Why should this be implemented?
I think the most of case, the brightness value is the same for all effects, so if you want to adjust brightness you need to edit all 10 effects.
Additional context
It would be great if I could select the progress bar to go the other way around.
I have a led Matrix panel, and pixel 1 is apparently orientated top left, so the progress bar starts at the top left and works its way down to the right and then each time a line below from left to right.
Since the progress bar is not a selectable effect in WLED itself, can we have a 'inverse' checkbox to have it run from end to beginning.
Is your feature request related to a problem? Please describe.
The Heating Progress and Cooldown Progress animations are great, and it's very useful to configure the colors and effects separately for different segments, but it would be great to be able to track both the bed and tool in different segments.
Describe the solution you'd like
Could the Heating Progress and Cooldown Progress effects track the bed and tools separately by segment?
Why should this be implemented?
It would allow you to have an LED strip near the hotend that tracks the tool heating and cooling and also LED strips near the bed that track the bed heating and cooling. I've considered using both this and the WS2812 plugin at the same time to get closer to this functionality, but I'd much rather stick to WLED if this isn't too difficult to implement.
Thank you for your time! Love this plugin!
Description of the bug
When editing printing effects. If you change the intensity, the changes do not persist if you load the config again or make any other changes after saving. This also changes any other effects that contained modified intensities back to 127.
Steps to reproduce
What did you expect to happen
The intensity config to persist.
Logs and screenshots
Does the plugin have its own logging? I did not see a specific log file for WLED?
Version of plugin and OctoPrint
Octorpint: 1.6.1
Plugin 0.2.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36
Additional context
N/A
Using the built in discovery plugin & the relevant protocol, WLED devices should be discoverable from the WLED connection settings.
This plugin currently uses webpack, mostly unnecessarily but at the time I was practicing for react-based projects such as OneDrive Backup, but life would be significantly smoother with esbuild.
Less dependencies means less updates needed, as well as faster builds - even though currently it is not slow.
Doesn't have to be much, but I think there should be some explanations - the settings interface is not the clearest for what everything means.
When editing an effect (printing effect, printing progress effect, etc) it would be helpful if there was a [Test] button to immediately execute the settings as they are in the config dialog [aka - before they are "saved" to make sure they function as expected.] Would probably need a [Stop Test] button also.
Is your feature request related to a problem? Please describe.
I'd like to be able to show the state 'Operational' via the plugin.
Describe the solution you'd like
After state 'Disconnected' (which is represented correctly with the plugin), the state shortly goes to 'Connected' (correctly represented with the plugin) and then to 'Operational'. As this last state can not be configured in the plugin, WLED LEDs turn to black.
Why should this be implemented?
I think it would be good to be able to show all states. Just for the sake of completeness. ;-)
Additional context
This plugin uses nanoid (possibly unnecessarily?), with import { nanoid } ...
, and bundles this with webpack.
I'm bored of seeing dependabot updates for all these dependencies, so I will delete the webpack build - it's not used for anything other than old-browser compatibility with babel.
To import nanoid into the browser as a dependency, could do it like this
<script type="module">
import { nanoid } from '.......static etc./nanoid.js'
</script>
Or just bin it entirely, depending on why it is needed.
I am using a WLED Matrix panel, and it would be nice to have a progress effect that is more suited for a matrix panel.
Or maybe make it a selectable effect from WLED itself, but i don't think there are currently default effects with something like trigger points in wled.
So getting started with all this and not 100% if I’m doing something wrong, or if it’s just not possible. But I have a setup of three segments. Mostly one on the left side, right side and top of printer. I was trying to make it so during certain things it will light up the left and right with different stuff and the top with white. But then say then the print is done, a effect would run on on the full length of the strip. Inside WLED it doesn’t seem to like to have overlaying segments. As I tried to make a forth segment with all leds and that doesn’t seem to work.
I did try to add all segments individually, but it’s a pain to get all the colors right, and it looks like the effect is running per segment and not as the whole strip.
So wasn’t sure if there is a way to make this work or if I’m missing something.
I just installed the plugin, used it for some time. But for some reason at the end of every print it makes the leds go red. Something I have probably set once. But I don't manage in 'removing' it anymore.
Actually I wanted to remove the entire plugin to 'reset' this behaviour. But even after removing the plugin it keeps triggering at the end of every print...
How can I make sure that really every file it removed that needs to be removed so that nothing gets triggered anymore?
Octoprint 1.8.3
WLED 0.2.1
No logs or screenshots to share, simply want to be able to fully remove it.
Define wich LED is 12 o clock.
I have a clock with WLED and LED 0 is on 6 o clock. 60 LED all over all, so its LED 30 the 12 o clock mark. I can define it in WLED.
Octo Print WLED starts at LED 0, no possibility to define where it should start.
Sorry for my broken english.
Thanks, Frank
Both these plugins are made by you, what is the difference between them?
is there an way to add the torch function from your other plugin? i really liked being able to turn all leds white when viewing remotely.
With WLED web interface if i set solid white it works for a bit then goes back to the progress bar effect, seems like it only sticks until the next layer. What I would like is to override the progress bar effect when using wled web interface
Also is there any documentation? can't seem to find it
For a better overview I renamed the WLED segments in the WLED UI with a speaking name.
WLED connection accepts only numeric entries for the segment selection.
So it would be great, if WLED Connection would accept strings to match the correct segment.
How do I switch off the LEDs, eg end of print? Do I have to set brightness to 0 or what else?
Please add the ability to select multiple WLED instances, and for each effect, which instance you want it to display on.
I have numerous WLED lights throughout the house. I'd like to be able to set a print status/progress alert on multiple lights in order to see the status from anywhere.
I have a d1 mini setup with no password or username on my local network.
I also have Wled integration installed on Octoprint nut in the settings where I choose the IP address and test connection it fails.
not sure what settings to try. Any help will be appreciated thank you.
The python-wled
library currently vendored doesn't support websockets, which could be used to get updates from WLED when turned on/off for example.
This is hard because the current version of the library only supports Python 3.9 and 3.10. I need to support at minimum 3.7... So some work will still have to be done. It's also not direct drop in as I don't use it asynchronously. I would like to do so at some point.
It would be great if, following the failure of a print (or not), a button could be clicked in Octoprint dashboard that would change segment(s) to a pleasant and plain, white/yellow-white type of illumination.
For example: on print failure, I've setup to strobe red and blue, which continues if I just need to quickly clean something/reset etc... but a more plain light during 'servicing' would be calmer.
[EDIT: If you point me in the file(s) where this may be implemented, then I can take a look...]
It would be nice to have a timer tied to say the "print finished" event of the LED effect. THis way, when the print is finished, and say there is a particular LED effect active, we can tie a timer to this (say like 30 minutes) at which the LEDs will turn off). This would be for printers which are un-attended, or for over-night prints as an example.
I am attempting to control a WLED node that is connected to a set of white-only LEDs in PWM mode. WLED has a setting for this, which treats channel 1 as a white channel. Using the Android app or the WLED web page I can leave the white channel turned all the way up and then use the brightness slider to control the LEDs.
When I attempt to do this in Octoprint-WLED, there is no white channel. Even worse, any command sent by the plugin to the node sets the white channel to 0, turning the lights completely off.
I would like to see the plugin correctly recognize the node's LED configuration and provide the appropriate numberr of channels, be it 1 (white only), 3 (RGB) or 4 (RGBW).
My OctoPrint instance is running on a Pi over ethernet. There is not WiFi available in my project.
If the WLED controller (ESP8266) could be controlled over its GPIO pins or USB port from the Pi's GPIO pins or USB port respectively.
I don't have a particularly convincing reason why this is where you should spend your time, as I am probably a niche case.
Thank you for your work on the rest of this, it is awesome.
I cannot clearly blame (in quotes) OctoPrint-WLED but i think it traced it to it:
Last change: changed the WLED device to a new IP, changed also the IP on the octoprint settings (and didn't do anything else)
24 hours or so later i started a print and it stopped mid print after 4-5 hours, last errors on octoprint.log are the following
2023-01-04 15:24:30,889 - octoprint.server.heartbeat - INFO - Server heartbeat <3
2023-01-04 15:26:07,796 - octoprint.plugins.wled.wled - INFO - Backing off _request(...) for 0.4s (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:26:10,175 - octoprint.plugins.wled.wled - INFO - Backing off _request(...) for 0.9s (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:26:13,127 - octoprint.plugins.wled.wled - ERROR - Giving up _request(...) after 3 tries (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:26:13,127 - octoprint.plugins.wled.runner - ERROR - Can't connect to WLED, WLEDConnectionTimeoutError('Timeout occured while connecting to WLED device at 172.31.1.22')
2023-01-04 15:39:30,890 - octoprint.server.heartbeat - INFO - Server heartbeat <3
2023-01-04 15:40:25,778 - octoprint.plugins.wled.wled - INFO - Backing off _request(...) for 0.2s (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:40:27,981 - octoprint.plugins.wled.wled - INFO - Backing off _request(...) for 0.1s (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:40:30,133 - octoprint.plugins.wled.wled - ERROR - Giving up _request(...) after 3 tries (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:40:30,134 - octoprint.plugins.wled.runner - ERROR - Can't connect to WLED, WLEDConnectionTimeoutError('Timeout occured while connecting to WLED device at 172.31.1.22')
2023-01-04 15:43:51,844 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2023-01-04 15:43:54,850 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2023-01-04 15:43:57,856 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2023-01-04 15:44:00,863 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2023-01-04 15:44:03,869 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2023-01-04 15:44:06,875 - octoprint.util.comm - INFO - No response from printer after 6 consecutive communication timeouts, considering it dead.
2023-01-04 15:44:06,904 - octoprint.util.comm - INFO - Changing monitoring state from "Printing" to "Offline after error"
2023-01-04 15:44:06,921 - octoprint.plugins.action_command_notification - INFO - Notifications cleared
2023-01-04 15:44:07,000 - octoprint.plugins.DisplayLayerProgress - INFO - Printing stopped. Detailed progress stopped.
The log is full of octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError
I have connected an hour before or so just to check the print (no issued)
2023-01-04 14:25:45,332 - octoprint.server.util.flask - INFO - Passively logging in user octoprint from ::ffff:172.31.0.2 and it was active
Eventually i had to reboot completely the pi, since the interface didn't allow me to restart it just the octoprint service
This is the last plugin i had installed. Of course i can provide more details if needed
OctoPrint 1.8.6 Python 3.7.3 OctoPi 0.18.0 WLED 0.2.1
2023-01-04 15:24:30,889 - octoprint.server.heartbeat - INFO - Server heartbeat <3
2023-01-04 15:26:07,796 - octoprint.plugins.wled.wled - INFO - Backing off _request(...) for 0.4s (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:26:10,175 - octoprint.plugins.wled.wled - INFO - Backing off _request(...) for 0.9s (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:26:13,127 - octoprint.plugins.wled.wled - ERROR - Giving up _request(...) after 3 tries (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:26:13,127 - octoprint.plugins.wled.runner - ERROR - Can't connect to WLED, WLEDConnectionTimeoutError('Timeout occured while connecting to WLED device at 172.31.1.22')
2023-01-04 15:39:30,890 - octoprint.server.heartbeat - INFO - Server heartbeat <3
2023-01-04 15:40:25,778 - octoprint.plugins.wled.wled - INFO - Backing off _request(...) for 0.2s (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:40:27,981 - octoprint.plugins.wled.wled - INFO - Backing off _request(...) for 0.1s (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:40:30,133 - octoprint.plugins.wled.wled - ERROR - Giving up _request(...) after 3 tries (octoprint_wled.wled.exceptions.WLEDConnectionTimeoutError: Timeout occured while connecting to WLED device at 172.31.1.22)
2023-01-04 15:40:30,134 - octoprint.plugins.wled.runner - ERROR - Can't connect to WLED, WLEDConnectionTimeoutError('Timeout occured while connecting to WLED device at 172.31.1.22')
2023-01-04 15:43:51,844 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2023-01-04 15:43:54,850 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2023-01-04 15:43:57,856 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2023-01-04 15:44:00,863 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2023-01-04 15:44:03,869 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
The custom module from there is quite independent, so it should be easy to copy across the logic.
EDIT: Close this. This is AirCookie's WLED bug. Defining a black segment causes flashing in WLED 0.13.1 and 0.13.2-a0. The tell: the flashing is visible in WLED's web ui using "Peek" after removing the plugin.
First, this is brilliant. I started to code my own when it occurred to me to look for this specifically.
What I'm observing: A 131 LED WS2812b strip on an ESP8266 d1 mini running WLED 0.13.2 randomly flashes the print progress segment (0-40) when printing starts.
This flashing also appears in WLED's web interface "Peek" function, so WLED is being told to flash the segment (ie, it's not noise, not level mismatch, not underpowered).
On the plus side, this makes OctoLapse videos look Olde-Timey.
OctoPrint 1.8.1, WLED Connection 0.2.1, WLED 0.13.2-a0
First of all, thank you for this excellent Octo plugin. I have ordered an ADXL345 to use with Klipper's auto resonance calculation.
https://www.klipper3d.org/Measuring_Resonances.html
Unfortunately this uses the Pi's GPIO 08-11. Iirc, you use GPIO10 because of it's SPI capabilities so I'm guessing it's not as simple as selecting another pin. So, how do you suggest I use this? Remove your plugin while doing the resonance calculation? Disable Octo while doing the calculations? Switch to WLED for driving the LEDs?
Thank you again.
This plugin works, but these are the things I want to add to it
Similar to WS281x LED Status, this plugin should also have heating & printing progress effects.
When switching on the WLED Wemos in the middle of a print, status is not fully synched to the LED stripe.
I have 3 segments defined...the one configured to show the printing progress gets updated, but the other two (meant to show status 'printing') are left to the previous pattern (whatever that was).
Steps to reproduce
What did you expect to happen
I'd expect that ever so often, the complete configuration for the stripe gets sent to the WLED Wemos, and not only updates for the 'Progress Effect' are being sent.
Logs and screenshots
Version of plugin and OctoPrint
OctoPrint 1.6.0, WLED plugin 0.1.0
(If applicable) Browser version & browser error console
Additional context
Updating the complete stripe by switching on/off the plugin in OctoPrint's top bar would be sufficient for me. ;-)
Modifying the configuration and saving it updates the complete stripe, also mid-print.
Would it be possible to add support for RGBW LEDs? i cannot specify white channel used in for example SK6812 for higher brightness.
Or even better, just option to call for presets defined in WLED itself instead of manually defining colors & effects in GUI
Templates are currently in markdown format - should be converted to yaml for forms.
Is your feature request related to a problem? Please describe.
Navbar button is stateless and so does not sync with current state of the WLED instance.
If for example you make use of the terminal commands to turn the lights on or off via another plugin or gcode, the navbar button does not reflect this change.
Describe the solution you'd like
Would be best if the on state of WLED was monitored and the navbar switch was correct for this status.
Failing that, having the @WLED
gcode commands change the state of the navbar
Why should this be implemented?
At present, with the switch having two colours for on/off it implies there is some knowledge of state and when that fails it doesn't appear as good from a UX point of view. This wouldn't be as much of an issue if it was the only method of toggling the lights but with there being the command method it's easy to get to a point where it is wrongly showing the wrong state on the navbar
Additional context
With the beta release of WLED 0.14 there is a new 2d matrix option that includes a scrolling text effect. Would be great to have options to display print complete percent, eta, etc. using that new option. It's not documented yet, but I got a reply on my issue comment about it here.
Installed and when I run a print my LEDs go solid green but never any progress....
Maybe it can be possible to work with the WLED API from Aircookie via UDP wireless connection.
(ESP8266/ESP32 with connected LEDs)
So you can can have an small printer status light within the living room and see the state without going to the printer in the other room.
Hi,
at first, super cool plugin i like it!
But after the print is done the idle state doesent come up again.
It keeps the printing state or progress state.
So it is possible to set an time für alerting, like if error/success, then blink red for 5 seconds and get back to the previus state?
A timer would also be great. 5 hours idle = lights off
greetings from germany
Pascal
It's here, 0.2.0rc1 Release Candidate!
Be sure to check out the release candidate release notes here for details of all the changes.
Please test this release, and let me know what you think. If all goes well this will be released at some point next week, so feedback is important to make sure that everything is good! An 'All is working well' is great feedback, since it lets me know people are actually testing this release, even if there are no issues to report.
If you find a bug please use the bug report template and send across the logs, so that I can get it fixed as quickly as possible.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.