whm also known as wifi-heat-mapper is a Python library for benchmarking Wi-Fi networks and gather useful metrics that can be converted into meaningful easy-to-understand heatmaps.
when using a VPN, the binding adress specified with "whm benchmark" causes issues:
The config.json target_ip is used as binding adress for Ookla Speedtest (speedtest -f json -i "target_ip") and I assume for Librespeed (havent checked your .py scripts yet)
Issue is, when using a VPN like Wireguard, that causes issues so the speedtests only bind to the selected SSID and the interface IP of it (whm bootstrap, asks for the target_SSID and therefor sets target_IP accordingly) but is not routed threw tunnels for WAN/WWW as you can see by "ParseError("Unable to decode output from Librespeed CLI") from None"
I have not tried yet to manipulate the target_ip to try make it work.
Check the Log for Ookla Speedtest:
Loaded configuration file from: /home/XXX/work/2024-09-26-Py309_whm025_Test_Speedtest_config.json
Target Interface: wlp2s0 and SSID: NAME
Loading floor map
Loaded floor map
Ready for benchmarking.
Running benchmark
80%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 4/5 [00:42<00:10, 10.61s/it]ERROR:root:Parse Error has occured.
Traceback (most recent call last):
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 327, in run_speedtest
raise ParseError("Unable to decode output from Speedtest Ookla") from None
wifi_heat_mapper.misc.ParseError: Unable to decode output from Speedtest Ookla
WARNING:root:Rerunning Speedtest with retry count 1
ERROR:root:Parse Error has occured.
Traceback (most recent call last):
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 327, in run_speedtest
raise ParseError("Unable to decode output from Speedtest Ookla") from None
wifi_heat_mapper.misc.ParseError: Unable to decode output from Speedtest Ookla
WARNING:root:Rerunning Speedtest with retry count 2
ERROR:root:Parse Error has occured.
Traceback (most recent call last):
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 327, in run_speedtest
raise ParseError("Unable to decode output from Speedtest Ookla") from None
wifi_heat_mapper.misc.ParseError: Unable to decode output from Speedtest Ookla
Traceback (most recent call last):
File "/home/XXX/PyVENV/311/bin/whm", line 8, in
sys.exit(driver())
^^^^^^^^
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/main.py", line 84, in driver
start_gui(args.floor_map, args.iperf_server, args.config_file)
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/debugger.py", line 12, in new_func
return func(*args, kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/gui.py", line 213, in start_gui
results = run_benchmarks(benchmark_modes, benchmark_iterations, iperf_ip, iperf_port,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/gui.py", line 507, in run_benchmarks
speedtest_download = run_speedtest(speedtest_mode, bind_address,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/debugger.py", line 12, in new_func
return func(*args, *kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 355, in run_speedtest
run_speedtest(mode, bind_address, libre_speed_server_list, retry + 1)
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/debugger.py", line 12, in new_func
return func(args, kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 355, in run_speedtest
run_speedtest(mode, bind_address, libre_speed_server_list, retry + 1)
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/debugger.py", line 12, in new_func
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 352, in run_speedtest
raise err
File "/home/XXX/PyVENV/311/lib/python3.11/site-packages/wifi_heat_mapper/misc.py", line 327, in run_speedtest
raise ParseError("Unable to decode output from Speedtest Ookla") from None
wifi_heat_mapper.misc.ParseError: Unable to decode output from Speedtest Ookla
Check the Log for Librespeed:
Loaded configuration file from: /home/XXXX/TX5RX5_Test-003.json
Target Interface: wlp2s0 and SSID: NAME
Loading floor map
Loaded floor map
Ready for benchmarking.
Running benchmark
80%|█████████████████████████████████████████████████████▌ | 4/5 [00:40<00:10, 10.21s/it]ERROR:root:Parse Error has occured.
Traceback (most recent call last):
> File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 347, in run_speedtest
raise ParseError("Unable to decode output from Librespeed CLI") from None
wifi_heat_mapper.misc.ParseError: Unable to decode output from Librespeed CLI
WARNING:root:Rerunning Speedtest with retry count 1
ERROR:root:Parse Error has occured.
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 347, in run_speedtest
raise ParseError("Unable to decode output from Librespeed CLI") from None
wifi_heat_mapper.misc.ParseError: Unable to decode output from Librespeed CLI
WARNING:root:Rerunning Speedtest with retry count 2
ERROR:root:Parse Error has occured.
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 347, in run_speedtest
raise ParseError("Unable to decode output from Librespeed CLI") from None
wifi_heat_mapper.misc.ParseError: Unable to decode output from Librespeed CLI
Traceback (most recent call last):
File "/usr/local/bin/whm", line 33, in
sys.exit(load_entry_point('whm==0.2.5+7.g95bc515', 'console_scripts', 'whm')())
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/main.py", line 84, in driver
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/debugger.py", line 12, in new_func
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/gui.py", line 213, in start_gui
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/gui.py", line 507, in run_benchmarks
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/debugger.py", line 12, in new_func
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 355, in run_speedtest
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/debugger.py", line 12, in new_func
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 355, in run_speedtest
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/debugger.py", line 12, in new_func
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 352, in run_speedtest
File "/usr/local/lib/python3.10/dist-packages/whm-0.2.5+7.g95bc515-py3.10.egg/wifi_heat_mapper/misc.py", line 347, in run_speedtest
wifi_heat_mapper.misc.ParseError: Unable to decode output from Librespeed CLI
80%|█████████████████████████████████████████████████████▌ | 4/5 [02:11<00:32, 32.81s/it]
USER:~/XXXX$ librespeed-cli
Retrieving server list from https://librespeed.org/backend-servers/servers.php
Selecting the fastest server based on ping
Selected server: Amsterdam, Netherlands (Clouvider) [ams.speedtest.clouvider.net]
Sponsored by: Clouvider @ https://www.clouvider.co.uk/
You're testing from: 194.127.199.108 - Unknown ISP
Ping: 279.00 ms Jitter: 66.56 ms
Download rate: 0.58 Mbps
Upload rate: 1.95 Mbps
Without VPN, Ookla Speedtest does work within whm, Librespeed sadly not - but it works standalone, which is why there is a second ticket.
Hey,
when using a VPN, the binding adress specified with "whm benchmark" causes issues: The config.json target_ip is used as binding adress for Ookla Speedtest (speedtest -f json -i "target_ip") and I assume for Librespeed (havent checked your .py scripts yet)
Issue is, when using a VPN like Wireguard, that causes issues so the speedtests only bind to the selected SSID and the interface IP of it (whm bootstrap, asks for the target_SSID and therefor sets target_IP accordingly) but is not routed threw tunnels for WAN/WWW as you can see by "ParseError("Unable to decode output from Librespeed CLI") from None"
I have not tried yet to manipulate the target_ip to try make it work.
Check the Log for Ookla Speedtest:
Check the Log for Librespeed:
Without VPN, Ookla Speedtest does work within whm, Librespeed sadly not - but it works standalone, which is why there is a second ticket.
Thanks