Tasshack / dreame-vacuum

Home Assistant integration for Dreame robot vacuums with map support
https://community.home-assistant.io/t/custom-component-dreame-vacuum
MIT License
887 stars 110 forks source link

Create way fewer things by default #798

Closed ptarjan closed 1 day ago

ptarjan commented 1 day ago

Describe the bug When I installed this integration, I got an enormous amount of things dumped into my lovelace default dashboard in the room.

I also think it is loading so many things that my HAOS is running out of memory since with this addon installed and two vacuums on a Raspberry Pi 4 I see 145% VSZ utilization when running top inside the docker container and home assistant crawls to a halt. If I disable the two vacuums my HA is usable again.

To Reproduce Install a Dreame vaccuum.

Expected behavior I want a simple integration. Look at what the roomba one does. I just want to Start/Stop the vaccuum using an automation.

Screenshots image image image image image

Additional Information (please complete the following information)

Tasshack commented 1 day ago

You don't need to put all its entities to your dashboard, that is your fault. This not a simple integration and never will be. You can disable camera entities manually to reduce the resource overhead.

ptarjan commented 13 hours ago

Thanks for the quick response. I will suggest that your response has a bit of a hostile tone, and it is off-putting for newcomers to your project.

You don't need to put all its entities to your dashboard, that is your fault.

I'm aware, but I use the default lovelace dashboard as is the default in home assistant so I'm assuming many other users use the same thing given the penchant for people to not change defaults. Most integrations seem to function just fine in this mode, as your is the first I've run into which has caused me to create an issue.

I completely understand that you find it valuable to create all those entities. My request is for there to be a simple mode which only makes the most used single digits of them. Would it be difficult to add a configuration option? I'll relent and be ok with it not being the default if that is your preference.

Tasshack commented 12 hours ago

Would it be difficult to add a configuration option?

Yes it is, since you can disable the entities manually yourself just by taking your 15 minutes instead of writing all of this.

Tasshack commented 11 hours ago

This is one of the most complex and advanced integrations ever built for Home Assistant and that was the whole point of releasing this project. It is extremely challenging to make a Dreame device to do something and there are only handfull of people in the world who was able to succeed on that. Do you know how much efford did it take to implement every single tiny feature by reverse engineering them from millions lines of code that you see as a single entity? Now you are saying that you want me to cut them all because you get easily confused and pointing me to another vacuum integration like I haven't checked them all before starting this project.

Dreame vacuums are not simple machines with more than hundred different configurable settings from their App so if you wanted a simple device with a simple integration, you shouldn't have bought Dreame because this projects focus is not on being a simple and easy to use.

I am sure you can achieve what you want if you spend tiny fraction of the time that I had on this project instead of excusing to be a newcomer.

ptarjan commented 11 hours ago

Thanks for the clarifying information. I too have spent many thousands of hours on complicated software projects as you can see from my contributions on github or googling my name. I truly do appreciate you spending all this time on this project and giving it away for free so we can all benefit. Thank you.

I will suggest that just because something is complicated doesn't mean it has to be hard to use. I would argue that a good user experience while shielding the user from the complexities below is the hallmark of a great software project. I would regularly ask folks the classic "what happens when you type in domainofmycompany.com into a web browser" and the best engineers I hired would understand the big complexity from how keyboards generate signals, to IRQ interrupts, to network congestion control, to distributed system design, to HTML reflow algorithms, which all underpin the simple act of rendering a static webpage.

So you're welcome to do as you please with your project, I was trying to give you the gift of feedback from a user. If you choose to be interested in it, I'm happy to continue the dialog.

Tasshack commented 10 hours ago

This project is not intended to be marketed or aiming to be used by the maximum amount of people but instead it is purely for my enjoyment and I enjoy spending my free time for adding new features and entities to the project rather than removing them. Making it simple and easy is not fun for me because it requires a lot of planing and analysis so I am not going to do that on my very limited time.