Read the statement by Michael Teeuw here.
small outburst - opencv
-
@monark you can make a fork of MagicMirror on github, and maintain your own if you wish
as for more usability, long been talked about…
I created a module to try to help with configuration, stop all the config file edit problems… and make each module config consistent from a user interface perspective
see https://github.com/sdetweil/MMM-Config
after a couple years, it lacked module install, so I have added that this year.
neither are perfect, as the core structure of MM doesn’t enforce any standards or structure… so my module has to discover (by default) what is defined by the author and how it is used… there are ways for developers or users to make a better UI for a module, but it takes work by someone…
I’ve helped a few authors provide a better experience for their module config…
BUT, its still JUST inside the MM realm… python, opencv, … lack of scripts to install all that … still out of bounds…
HA is ‘better’, but still needs work. I use the NON HAOS install(on synology), and there are lots of things you can’t do there (addons)… (music assistant with ESPhome satellite devices…has been weeks getting to work)
and there are lots of platform hacks you still have to figure out yourself… (zigbee dongle on DSM 7.2 with no serial port driver…)
some docker modules don’t actually work on the arm32 platform of my older 416j
SO, its not everything…
I worked for IBM for along time, and my mentors repeated over and over, you make an API, you are stuck with it… same data in produces the same data out, forever…
you can CHANGE the api by ADDING something, that produces NEW output, but you can’t take the old away…,.
fast forward to now… Breaking changes are all over the place. our customers will rebuy, make changes to their apps, if they want to keep using us… (else they weren’t really a good customer for us is their justification) …
so all the end user/consumer side spends enormous amounts of energy keeping things working, and not working on NEW stuff to help their businesses, or their lives…
-
@monark Maybe just my pennies worth as well, a lot of the module developers develop modules for own use and they choose to share it with community. A lot of the plugins that get used are not made by the module developers, OpenCV being case-in-point. It is a plugin and it has its own complexities.
As Sam mentioned earlier, MM is a learning platform and users of the platform get to learn as they go along.
I can understand the pain you having but the learning is what makes it fun, solving problems is what keeps most users going with the platform.
-
@mumblebaj I would like to dispute this statement.
Some people may find it fun to find solutions, but for many it is not, especially if years go by without finding solutions either on their own or with the help of the developer who claims to have installed it on other platforms. I would add that the people who find this type of activity fun are precisely those who created the module and know exactly how to untangle it. One of the main problems is the hardware: many developers create their modules for their PCs and then indicate Raspberry, but they don’t work on Raspberry and they don’t know how to find the problem.
I understand that it is complex and tedious, but one solution could be to separate modules developed for a specific type of hardware, such as barebone PCs or laptops, from those developed exclusively for Raspberry. In my opinion, this would already be a step forward, because developers would face the same problems as those who use their modules. Another solution would be to indicate in the wiki, if the dependencies are the same or similar in many modules (more than 3), to use the same version and the same procedure to install those modules or refer to an “external window” to the module, where it is explained step by step how to install that dependency (possibly updated).
I’m telling you this as someone who has been on the forum for a long time, who has helped some developers add Italian language support, and who enjoyed making changes, such as adding new weather symbols and other similar things (OT: I think I also used your module and helped you, but I could be mistaken).
From what you say, it seems that you want this project to remain closed to a select few who still want to “play and have fun,” but we need to entice people and make things easier.
I repeat, I bought five Raspberries for each version, complete with different hats, different SSDs and NVMes, and all versions of cameras, because each time they said that was the problem.
I am sure that by working together, we can find solutions to these problems.
If the developers are not interested, we could consider creating an LLM to resolve the situation.
However, I see that a lot of useful work has been done in the third-party modules after researching the modules (from what I understand and in understanding whether or not it is deprecated).
Another negative point that is not mentioned is that in third-party modules it is stated that “no one has checked the security, at your own risk,” which suggests that only developers should interface with it in order to use it safely, when it seems to me that the founder used it for fun and for everyone. -
@mumblebaj said in small outburst - opencv:
a lot of the module developers develop modules for own use and they choose to share it with community
I have no objection to this. I don’t dispute it at all. I would just like to specify, for example: “I created this ONECALL module for myself (not true, it’s an example) and I use it with this hardware (laptop/Orange Pi). If you install it with other hardware (Raspberry) and encounter problems, I’m not sure I can help you. If another developer likes my module, they are free to create a fork for Raspberry hardware.”
This would also be a good solution.
If there are only developers trained in programming here, how do other people manage? This means that Mirror will always be a “small” forum intended only for a niche audience. It’s different from HA, where there is more involvement, more solutions, and more people helping out who don’t say, “Go Google it.” Above all, by helping early users, they begin to become experts, become satisfied, and try to create their own module or help with problems. This is something I see less and less here (I was away for over a year, but I came back a few times to try again with modules that didn’t work and still didn’t work due to dependencies or other issues, or that I couldn’t do and put on hold).
I just hope I’m not the only one posting about this frustration, because the more I can’t find solutions, the more I lose interest. I can’t fulfill my desire and I lose the desire to stay in the forum, thus taking away my ability to help developers respond to problems, even trivial ones, which perhaps an average or expert user can solve without the developer having to respond to everything. The best solution would be to have modules compatible with adequate hardware, step-by-step dependency installations, and, finally, a dependency (or similar version) for all modules that need it.
I think many people have left for this reason, at least in the Italian group: everyone has left because of this and moved on to HA, some have even created modules or become moderators in specific groups.
I hope I have explained myself clearly, but I will try again with another example:
If I need imutils on three different modules, I don’t have to download imutils 1.10, then 0.9, and finally 1.15, and obviously the various modules are incompatible with each other. There should be a single updated imutils with its own tab provided by the mirror wiki, explaining how to install the dependency. -
@monark on your last point, oh if it were that easy
I use the qrcode module in a couple of mine and it’s used in others
Sadly the api has changed. Theirs won’t run on my version and mine won’t run on their version.And the MagicMirror ui is a browser which never considered this problem, first one loaded wins.
I had to change my design to move the dependency someplace else. But we still need different versions.
And as things age they may or may not continue to work.
-
I just want to add one thing: I seem to remember that MagicMirror was created for Raspberry, not for other systems such as laptops and operating systems other than Raspberry. Nothing against those who create a mirror for their laptop and share it with others who want to do the same, but it seems to me that the mirror’s design has strayed from its original purpose by not specifically using Raspberry as its main hardware.
I would be inclined to think, “Well, the developers weren’t able to create the module with that hardware,” or “too many complications,” but that would be taking a shortcut for those who know and don’t want to “apply themselves” and would leave those who don’t know behind, without helping them to progress.
To be clear, I’m not saying anything against those involved in the topic, I’m talking in general terms and I hope no one takes offense at what I’m writing. It’s the frustration of someone who desperately wants to create their own mirror, has a clear idea of what they want, but has been hampered by modules and dependencies for years.
-
@sdetweil said in small outburst - opencv:
Sadly the api has changed.
But this (if I understand correctly, please correct me) only applies to modules that require APIs.
A change of API is not a problem for me (if I understand correctly). For example, if I remember correctly, the open-weatherforecast module (or similar) went from API 1.0 to 2.5 to 3.5 via openweathermap.If so, I am talking about modules where there is no API but only dependency requests. See that damn OPENCV and facial recognition.
-
@monark the module uses opencv apis. In python and was modified to work w a specific version of opencv.
see the recognition.py, which the module launches in the backgroundself.pyshell = new PythonShell('modules/' + this.name + '/tools/recognition.py', options);
They also removed working with usb cameras, now only pi camera (I think only latest). So it no longer works for me
-
@monark MagicMirror was NOT developed ONLY for pi.
But ALSO For pi.PI is one place making a mirror would be ‘easier’ due to
Its form factor.But I have been running MagicMirror on droid, jetson nano,
Chromebox, desktop, windows, Mac since 2017MagicMirror base is completely hardware neutral and mostly os neutral. As it runs on Linux , Windows and MacOS.
Specific modules might have hardware dependencies, like attaching sensors or cameras. But MagicMirror doesn’t itself
-
@monark said in small outburst - opencv:
Some people may find it fun to find solutions, but for many it is not, especially if years go by without finding solutions either on their own or with the help of the developer who claims to have installed it on other platforms. I would add that the people who find this type of activity fun are precisely those who created the module and know exactly how to untangle it.
I understand your pain. I’ve been working on my MM for a couple of years now and only just recently got it where I feel I’m satisfied for now. But it’s not perfect.
There is a module which will show the arrival times of the next bus/streetcar that I never could get to work reliably, even with the module author’s help. The MMM-Bluelinky module (to display the status of Hyundai/Kia EVs) works occasionally on my test system but almost never on the actual instance. I could go on about things I’ve tried that don’t work. It can be incredibly frustrating.
I am one of those people who enjoys figuring things out but my time is severely limited (full-time job, mentoring a robotics team, serving on the board of a non-profit, going back to college) so I wouldn’t mind a bit more of a finished product.
Here’s the thing, though: I could get a totally finished, polished, ready-to-go with no futzing about product. I would just have to pay for it. (There is a product called DAKboard, I think that might be worth looking into.)
The MagicMirror core system and all of the modules are created and maintained by volunteers who get nothing out of it. I don’t think there’s even any corporate sponsors or anything. So what you get is what people want to put into it.
Most of the people who work on MM and its modules are techies who want to figure out how to get something working either for the fun of it or because they want some functionality. Once they get to that point – working for them – many aren’t interested in the “boring” bits of polishing it up and documenting and so on. And there’s no paycheck to incentivize them to do that.
Take Linux, for example. Linux started out as a personal project and then others started contributing but for a long time it was difficult to use and install and you really had to be pretty tech-savvy to use it. Then companies started getting interested in using it and were willing to pay for a finished product. So other companies – Red Hat, Suse, etc. – were born to do the boring bits of writing manuals and help screens and testing and bug fixes and so on to make it into a product that you can pretty much install off the shelf and use without knowing much. But for a long time, there was a huge difference between Linux and Windows/MacOS because the latter had big companies that invested in them because they weren’t free. Linux was (and is) free, so you got what you paid for.
MagicMirror is the same. You get what you pay for. Actually, that’s not true – you get a lot more because of all the module developers and folks like the amazing @sdetweil who really do put in a lot of time and effort to make MM as off-the-shelf usable as possible. But it’s not going to be as polished as a commercial product.
Now, here’s a thought: Perhaps you could find someone with the time and expertise who would be willing to get your mirror set up for you the way you want it if you pay them. It’s not unheard of – there are folks who will build Ikea furniture for you and folks who will run your garage sale for you. This isn’t any different.
So it comes down to either doing all the work yourself or paying someone else to do it for you (either a freelance MM person or DAKboard/etc.).
If you choose to do it yourself, there are a lot of folks here who can and will answer questions.