-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feature] Unlimited Plugins Sets #1019
Comments
I agree. |
Excellent, so I'll certainly code that ... on mega or 2.0 ...whenever a decision is made in #997. Nevertheless will certainly need some help to figure out the libraries used ONLY by the plugins themselves, vs those needed by the core |
anyway the goal is to have both micro sets (so remove as much lib as possible), but also huge sets to make tests. |
Maybe also add some predefined ones specific for some devices like Sonoff. |
Group per function is a nice idea I think. We could try to identify a handful or more "typical use cases"? |
absolutely great suggestions, will do it...
You mean Displays, inputs, etc ????
Ie: "sensor device", "relay device" etc... is that what you mean ? BTW
|
|
Sonoff should at least have the Switch and perhaps the MQTT importer. @Grovkillen The Nextion already... no pressure then ;) |
Great, I update the list as we go on... |
@soif Yes, lets list all we can think of (at least commonly used groups of hardware). |
Excellent! I can't wait to start coding this... if only #997 was cleared 😸 Also if my split settings idea was implemented, we could automatically include all needed tasks settings and rules as factory settings for each device. How smart wouln't it be? 🎁 : The flexibility of ESPEASY with the KISS (KeepItStupidSimple) of Espurna! BTW: As I dropped Arduino IDE developing for a while, and only use pio which is more permissive with file organisation, I have some questions if you want to maintain compatibility with Arduino IDE (?)
|
Dropping support for Arduino IDE is a big decision. There are lots of issues reported by users with the Arduino IDE, but I can also imagine people not really willing to be forced to change IDE. I am not sure about the separation in folders. There is probably a lot overlap and I don't like overlap in code while not sharing it. |
Includeifs are the best I think...? |
I'm not willing to drop Arduino IDE support (except if YOU'd decided to), this is why I asked if better folder organization would keep Arduino IDE compatibility or not (?)
This is in the case that we can ALSO add factory settings and rules, else it's not needed at all for sets. But for the plugins , if ALL (from playground) would be gathered , it would certainly not hurt (if this is Arduino IDE compatible) to move them, as well as controllers, into separated folders.
Sorry I don't understand what you mean. |
👍 for plugin sets. For the environment I'ld like to see the SHT temperature and humidity sensors added. 👎 for abandoning the Arduino IDE. As a matter of fact it is not even working right out of the repo because of that src folder. If PIO is so flexible, can we please rename that src folder to ESPEasy ? |
With Sets correctly implemented, I would hope that playground would be deprecated, and that ALL plugins could be gathered into the main espeasy repo. (this would certainly improve the number of plugins authors/contributors) BTW if the deeper folder organization would be possible (with Arduino IDE compat) we could think about a bit more organized way of publishing plugins, that would pave the way to fully automate wiki publication of the plugins manual, TOC, etc... ie:
--> less work for @Grovkillen, better documentation than in the comment of the plugins. The maintainer would just have to request plugins authors to fill the info/readme to get their plugins merged! Then anyone could enhance the documentation with a PR (or a simple edit for a basic user, on GH) . bye bye MediaWiki, at least for plugins, and welcome to community driven documentation. 💝
It should be as simple as changing this in platformio.ini
or may be
Flexible, isn't it ? 🎉 |
Now we're talking! Imagine if I could go for creating a Wiki on Github that could be included in each release! |
I work with documentation in my daily job and are using LaTeX as my programming language. It would be awesome if I could use that for this project. I could then make template files that each plugin/controller/core feature etc. uses and we could automatically generate a PDF manual for each release. Just as we do with the bin files today... Note to self: https://github.com/jackolney/travis-ci-latex-pdf and https://tex.stackexchange.com/questions/398830/how-to-build-my-latex-automatically-using-travis-ci |
@Grovkillen A lot of open source projects now use Sphinx documentation. |
Could that be integrated in our project, I mean, hosted at GitHub? EDIT: I see that you can. |
Without directly generating PDF 😜 , the current github wiki offer options, isn't it? and in the meantime making a Readme.md for each developer is absolutely effort-less (no more than writing comments in the code header), just code convention/requests. And this is heavily script-able, hence no more painful work for you.
I'm not that used as a developer with ReadTheDocs, but well as a User. Even being a bit like a developer 🙄 , I miss a LOT of documentation in the current Wiki (Not your fault of course), while information is spread between the Wiki, the code comments, the forums and some trials and errors).... soif, |
+1 for rename src dir into ESPEasy |
@soif don't You think it will break all repository stuff, cherry-pick between branches will be impossible, etc. We can think about custom configuration for some targets, eg.: flash 32Mb -> 20tasks -> enable some additional plugins. Putting all plugins into one repository is a good idea, but first we have some serious issues with memory/webserver/SDK 2.4.0 etc. |
I think we should do these changes in little steps.
|
@TD-er obviously, first of all is :
then "do these changes in little steps, like suggested in the start post" to at start improve plugins sets.. Documentation and settings were some digressions, I will just concentrate on implementing Plugins Sets (once #997 is cleared) . sorry about that 😶 We could also discuss/think (in other threads) about
|
here is a draft to work on, if you wish |
Initial re-organisation of plugin sets (#1019)
The bulk of changes is now merged into Mega branch. See #1182 This issue still has a lot of useful suggestions to do, so I'll leave it open, while all related PR's now are closed or merged. |
@Grovkillen from the table above, you list 8255, all sonoff basics I have seen are 8266 |
The difference between 8266 and 8255 when it comes to the FW way of looking at it is not that big. Essentially it's the DOUT and flash size that needs to be taken care of. Rest is the same. |
So you can flash 8255 into a 8266 unit but not the other way around. |
I will close this, open if its still a valid issue. |
I would like to rewrite the way plugins are compiled or not.
I will code it , if you agree to add this feature
This could be as simple as a plugins_set.h listing
each plugins would start by
#ifdef USE_Pxxx
and espeasy.ino would have a
#define PLUGINS_SET_STABLE
above#USE_CUSTOM_H
😸Then everyone could define its own sets of plugins inside custom.h.
And compiling would be as simple as adding -DPLUGINS_SET_MYHOME -DUSE_CUSTOM_H
Simple & convenient, dont break the current design (you just have to change some build flag for the automatic nightie releases.
What do you think ?
The text was updated successfully, but these errors were encountered: