What is Nostr?
Fabio Manganiello /
npub1v78…kv0u
2023-05-01 08:05:03

Fabio Manganiello on Nostr: The new #Platypush entities dashboard looks good. It took me months of work, but I'm ...

The new #Platypush entities dashboard looks good. It took me months of work, but I'm finally getting to a point where everything can be shown in one place, and both the API and the style of all the entities is consistent. I now have a solid foundation to build features like groups, scenes, dashboards and a UI to create automation routines (so even those who aren't proficient with Python or YAML can build cool things) that look and feel the same across all the integrations.

All the new code is now on the main branch, but I don't feel confident to make a new release yet.

My system has now ~1000 identified entities, and the UI starts to get way too slow with such numbers. I've been optimizing things for the past few days (like removing the loading animation for entities altogether so the browser doesn't have to render 1000 GIFs or CSS animations when the page loads), but things aren't as quick as I'd like yet. It still takes >1 minute for everything to load on my phone.

I suspect that the next bottleneck to optimize is the websocket client - every entity update/refresh triggers a new event on the websocket, and the Vue app starts struggling keeping the data model up-to-date when it receives 1000 events within a couple of seconds. My browser is still there processing stuff long after my Raspberry Pis has pushed all the events on the websocket.

I'm open to consider alternatives, but none of those that have come to my mind lately (server-side event throttling, bundling of multiple events in batches, lazy loading with all the entity groups initially collapsed until the user clicks on them) really satisfies me.

Any web developers out there who have ideas?

Author Public Key
npub1v78mmuz20p6qd6nve30axhqu74avwn4f6z4grhug7755rat7wh3syukv0u