Closed robertsLando closed 1 month ago
I'll just put my thoughts here...
The settings for Zniffer should probably not offer the serial port that's already in use by the controller:
I don't think generating keys there makes sense, as you want to spy on an existing network with existing keys:
We may also have to consider setting them on the fly to retroactively decode some commands, but that will require support in the driver first.
Filtering nodes makes sense in the table view but not in the settings IMO:
Saving settings for the Zniffer should probably not restart the driver for the controller.
CAPTURE should be renamed so it's clear that it saves to a file.
There's an error in the devtools and nothing is being shown in the table:
Speaking of the table, we probably want infinite scrolling, not pagination. 10 frames per page can easily be surpassed with a single communication attempt.
The settings for Zniffer should probably not offer the serial port that's already in use by the controller:
Yeah but what if the driver is disabled? (still have to add this option)
I don't think generating keys there makes sense, as you want to spy on an existing network with existing keys:
Should I drop keys from there and use the one set on driver? Or add a button to clone the ones on driver?
We may also have to consider setting them on the fly to retroactively decode some commands, but that will require support in the driver first.
๐๐ผ
Saving settings for the Zniffer should probably not restart the driver for the controller.
Yeah agree
There's an error in the devtools and nothing is being shown in the table:
That error happens because I'm using ZWaveFrameType that seems not exported in safe
: https://github.com/zwave-js/zwave-js-ui/pull/3706/files#diff-71a3cb674c70b3fa9b3f52e9afc7d873f7d0eeefcbccb7175f1448a816811a99
Should I drop keys from there and use the one set on driver? Or add a button to clone the ones on driver?
Cloning might make sense to debug the current network.
Other than that, some observations (I know the layout is not optimized yet):
[x] Starting the Zniffer is somewhat unreliable. I have to sometimes start/stop twice. With my test script it works fine.
[x] Knowing whether the Zniffer is running or not (e.g. by using start/stop icons) would be nice
[x] The "menu" bar should be sticky IMO:
[x] The region column is not necessary in the table. We can only zniff one region at once and that is a configuration setting. It should probably be in the Zniffer UI though like in the Windows app.
[x] Home ID should be formatted as HEX
[x] Type is meant for the application to decide how to display a frame, not for the end user. We may want to color code the lines by frame type and have a legend for the colors.
[x] Sequence No, TX Power should be in the frame details (which we don't have yet), as it only exists for some of them.
[x] Source, destination and repeaters should probably be merged into a single column, that also highlights which hop the frame was sent through, similar to the log output [070 ยป 069 โบ 001]
. if we do this, we need to still be able to filter by source and destination though.
[ ] Protocol Data Rate takes up a lot of room. I'd probably use the icons we also use in the node list, and only display the speed as text.
[x] The windows application displays the time that passed since the previous event in milliseconds. This is useful IMO.
[x] Move the Zniffer tab all the way to the bottom. It's not useful for 99% of users.
[x] If possible, less padding in the table. More room for data. No line breaks!
Additional findings in the latest version:
HH:mm:ss.fff
. Not sure about the date - it seems that it takes away unnecessary room in the table.ZnifferProtocolDataRate
${rssi} dBm
, not ${rssiRaw}
toLogEntry
results are multiline, the details view currently ignores \n
More things:
Typo:
Once you enter an invalid search query, the error message is never cleared and the tooltip never returns. Only option is to leave the window and come back.
If you leave the Zniffer window (e.g. go to settings) 1) the existing trace on screen is lost completely and 2) no traffic is captured to the screen. Some possible options:
My imagined use case for this would be to leave the zniffer running in the background unattended. Is this use case supported? I left the window and performed some activity, and when I came back the trace window was empty, but saving to file produced something, I just haven't checked the contents.
Is there a plan to add the ability to load a zlf file and display in the same UI?
5. Is there a future use case for this window resizing? Wondering why it just doesn't expand to the entire height of the window automatically.
5. Is there a future use case for this window resizing? Wondering why it just doesn't expand to the entire height of the window automatically.
Click one of the captured frames :)
- Is there a future use case for this window resizing? Wondering why it just doesn't expand to the entire height of the window automatically.
Click one of the captured frames :)
Yeah, I did that and still asked the question. :man_facepalming:
Thanks @kpine ! About the lost frames, I dunno if there is an api actually to fetch in memory frames from zniffer, @AlCalzone ?
I could store them on my side but I think the zniffer instance already have them somewhere in order to create the capture.
Also it's a nice idea to be able loading a capture file from UI, didn't thought about that. Cc @AlCalzone
About the rest I can take a look tomorrow ๐๐ป
[x] This tooltip doesn't make sense. You're now showing the current frequency, right?
I'd just remove the text below the dropdown.
[x] The RSSI unit is duplicated when having "convert RSSI" enabled:
[x] Timestamps should be zero-padded to 3 digits:
The layout bothers me a bit:
Also, is there any way to give the columns a fixed/min width to avoid this?
Maybe even disable the sorting altogether?
Thanks @kpine ! About the lost frames, I dunno if there is an api actually to fetch in memory frames from zniffer, @AlCalzone ?
I could store them on my side but I think the zniffer instance already have them somewhere in order to create the capture.
Not critical functionality in my mind. The warning when leaving via navigation, or an "open in new window" are both good solutions. I can of course open my own new window to avoid the problem. The ease of losing the current trace with a miss-click is the main problem.
Yep I should really just expose the captured frames so Z-UI can restore the state from those, and add a hook to actually clear them.
EDIT: Next release will include that ->> https://github.com/zwave-js/node-zwave-js/pull/6852
I feel like this is going into nitpick territory, but number columns should be right-aligned:
Regarding formatting of the route - I'd also put that in the overview table, so you can see the route there immediately.
Routed frames have a hop
property that tells us where along the route we are. The direction
property tells us in which direction along the route we are going and does not have to be listed separately.
For reference, this is how this frame's route is formatted in the logs:
[x] If I don't set a default frequency in the settings, the current frequency is not shown here:
[x] I should not be able to clear the current frequency in the frontend, only the default in the settings
TODOs:
Raw:
) in front of it0x
from buffersznifferProtocolDataRateToString
to omit the protocol name (https://github.com/zwave-js/node-zwave-js/pull/6863), use icons to distinguish Z-Wave and LRtrimStart
on log entry details:
- [x] Add a button to resume auto-scrolling
Am I blind? :)
@AlCalzone About the button I forgot to ask you what you mean because actually auto scroll is always enabled except if you have a frame opened in details, do you want to be able to re-enable it when you have a frame opened so?
Pull Request Test Coverage Report for Build 9298507831
Details
๐ - Coveralls