ioBroker / ioBroker.zigbee

Zigbee communcation with Hue, Xiaomi, Lighttify... via TI CC2xxx USB stick
MIT License
312 stars 191 forks source link

network map move devices #2212

Closed averlon closed 1 week ago

averlon commented 1 week ago

In the network map, you can move devices with your mouse to another position.

Unfortunately, other devices follow! So it is hard to get the map into a view, where all (most) devices don't cover others.

I would like you to think about, if a device is moved, to leave all others at the position they were. The user is then able, e.g. if the user wants to check some specific connections, to move all "disturbing" devices out of view and focus on the devices in question.

asgothian commented 1 week ago

linked to issue #2182

asgothian commented 1 week ago

Please test by installing from my test branch at

https://github.com/asgothian/ioBroker.zigbee/tarball/MapTest

I have added a config item to disable physics. Due to the external library used and its functionality, it is advised to not disable physics until the map has been completely drawn at least once. Each time the map is opened (again), physics will be enabled again and this wait time is needed.

I am aware that this is inconvenient, but I see no other option to ensure that the map is being displayed in a meaningful fashion.

A.

asgothian commented 1 week ago

A small comment to this functionality: It may be sensible for small / linear maps. Attached is a screenshot of my map. I have played around with the changes for about 45 minutes - it makes absolutely no sense for me, as my map is far too chaotic for this to give any kind of meaning. Note that I have disabled the display of siblings - if those are active too, all you see is tons of lines.

Screenshot 2024-09-24 at 23 46 17

I an unsure how much time I can sensibly push into this side issue. You are welcome to play around with the library used to display the network. Documentation (in English) including a nice getting started which you can just save as a .html file locally and then run without any Webserver is available here. There are also a number of jsfiddle test environments which can be used to mess around with the parameters.

If you find specific settings which you consider superior to what we have right now I can see to implement those for a test.

A.

averlon commented 1 week ago

I have added a config item to disable physics. Due to the external library used and its functionality, it is advised to not disable physics until the map has been completely drawn at least once. Each time the map is opened (again), physics will be enabled again and this wait time is needed.

This is a very good start! From my point of view this is even enough, if a user needs to have a specific view on some of the devices and their connections.

One thing is a little bit weird. If you move some device the line keeps its "form". But if someone like me uses this new function just to get a better view on some of the devices and their connections, this behavior is not a big thing and can stay as it currently is.

Thanks for your efforts!

P.S.: I will look into the library later, when I have more time.