Read the statement by Michael Teeuw here.
small outburst - opencv
-
Hi, this is just a little rant.
For someone like me who bought three different Raspberry Pi models (Pi 3 to Pi 5) complete with SSD and NVMe memory and different cameras, because each time it seemed that the hardware was the problem. After buying the hardware and following various tutorials, it seems that the problem is the software. Time passes and you have to switch to new hardware because the software has been updated. Here I am talking about OpenCV and the rpicam and picamera2 libraries. Then, even in the various mirror modules, I begin to see the complexity of installation, where the various developers tell you to go and look here without telling you how they did it, except to say “steak, frying pan, eat” instead of saying “buy steak, take a frying pan and put it on the stove, cook the steak, and when it’s done, you can put it on a plate and eat it.” Explaining the steps in detail makes it easier to understand and improve, but it seems to me that it is becoming increasingly difficult and does not help (search on Google, because even using various LLM leads you to make other mistakes or modify parts that should not be touched). I am talking about the most difficult modules; it would take more patience to write all the installation steps, especially if there are dependencies. I found it difficult even just to install node.js, and the steps should be clearly written in the MagicMirror wiki. So I ask for more patience from developers and, in technical matters such as node.js, opencv (referring to facial recognition), very complex modules, to use a language that is much easier to understand and more steps to guide users through the installation process step by step. Sorry for the rant, but after nine years of trying to install certain modules and spending a lot of money, I had to write this.thank you
-
@monark yes, the complexities are increasing. in number and difficulty.
the add on capability from MagicMirror means anyone of any skill can do just about anything.
I support the install/update and backup/restore scripts for MagicMirror, mostly to help with some of these difficulties… nodejs for example…
the general view is that this MagicMirror environment is a learning experience, and we shouldn’t gloss over it… but I want to help users make progress and be successful.
but its hard with all the technical churn OS, runtimes, libraries, …
access to camera and OpenCV, python, are outside MM, we don’t know about any of it.
causal (maybe first/only time) developers speak what they know…but I feel your pain.
-
@sdetweil Thank you for understanding my frustration, as I have been trying to build my own mirror for years with poor results and a lot of disappointment.
Is it not possible to create a fork of the operating system or something similar for MagicMirror? Is it not possible to create a fork of OpenCV or modify it so that it also works with RPiCam? This branch of technology is really strange: the further you go, the easier it should be and everything should be more compatible, but the opposite is true. When you install a module that works, there is a risk that another module will not work because the dependencies conflict. I would like to add that easier steps and installation also mean making the average user understand that they can learn faster and help others.
I see a huge difference between the Home Assistant forum and the MagicMirror forum. I would like to see an improvement in the relationship between those who create the modules and those who install them (I’m not talking about the developers who help solve problems, I’m not referring to that). I’m talking about specific modules with many dependencies and with steps that are not explained or are unclear; I’m not referring to modules that are easy to install. I would like to ask if, for a fee, it would be possible to make everything more compatible. -
@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.
-
@UncleRoger said in small outburst - opencv:
’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
Well, you may be just starting out, but I’ve been in the mirror group since 2017. When you’ve been here for at least five years and you can’t make modules that are vital to you, you’ll see that you’ll think like me. But first, you’ll have to spend at least $700 on hardware (as if you bought a 16 GB Raspberry Pi 5 with NVMe slot and camera, then upgraded to a Raspberry Pi 6 with all those new things, then to a Raspberry Pi 7 with all those things, then to a Raspberry Pi 8, and still you wouldn’t have solved anything).
@UncleRoger said in small outburst - opencv:
The MMM-Bluelinky module (to display the status of Hyundai/Kia EVs
This is an external factor and depends on Hyundai. I am talking about dependencies created by Raspberry for a project that should be more focused on Raspberry (mirroring is easier with RPi, in addition to its cost, when there was still RPi 3b and RPi 3b+). Your module, in reference to an external company, has nothing to do with what I am saying.
@UncleRoger said in small outburst - opencv:
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.
Okay, but the longer it stays closed, the fewer people will get involved… the more someone says “don’t fork” or “I’m not telling you how I did it,” the fewer people will want to learn.
As for the tedious part, i.e., writing a detailed wiki on how they did it, that wouldn’t be a problem.
I’m sure there would be volunteers willing to do this work (myself included), if only I knew how they installed things, so I could write it down for others. When there are problems, you also have to solve them or find solutions, solutions that I am amply providing in my outburst of disappointment. In your writing, there is only: “The devs do it for themselves and we just have to thank them and not complain.” Wrong! I am saying to increase the community and make things easier (to be precise, I am only pointing out this work for difficult and complicated modules that need complicated dependencies, such as OpenCV or modules that use the same dependency called “pikapika” but which is used with different versions).@UncleRoger said in small outburst - opencv:
Take Linux, for example. MagicMirror is the same
But the fact remains that Linux had to change to become more user-friendly. Now there is a boom in Linux users simply because it has become easier to use, with more users who understand the subject and can help. Look at Linux Mint or others. People who are now fed up with Windows are switching to Linux solely because of its user-friendly and easy-to-understand approach, and are slowly learning other things from the shell (cmd).
@UncleRoger said in small outburst - opencv:
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.
This shows that you haven’t read everything properly or that there has been a misunderstanding. If my solutions are not practical or are not acceptable to 99% of people, then I am willing to pay someone to build me the MagicMirror, meaning the software and modules, not the assembly part, but one that works with the relevant updates and remains closed, just for me. I’ve written it down, so if anyone is interested, just let me know. But don’t expect to earn more than $80, because if I have to spend that much, I might as well give up, as other developers and ordinary people have done before me.
OT: il tuo DAKboard è fatto con raspberry , il piu costoso con rpi5 che ho gia.
-
Ok, end of conversation. You’ve had your say
-
S sdetweil locked this topic on
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login