@number8:
To understand what is going on i will briefly explain the stages of the detection proces.
1. plugin tries to find available commands on the router (that is why availability of wlanconfig should not matter. The plugin will ignore it and try other command.)
2. plugin tries to determine what interface names it should check with the command(s) found in step 1
3. actual presence detection using the command from step 1 and interface names from step 2
This way many different router brands and types can be automatically detected as long as they offer one of the usable commands. Worst case it will fall back on brctl, which will work but is slower and less reliable in detecting absence.
There are advanced configuration options (described on GitHub page) to force commands and interface names. In case auto detection fails or does not return the optimal combination on very specific routers/AP's.
Now lets dig into your setup and log file.
It seems like 192.168.21.15 and 192.168.21.33 are failing the auto detection at step 1. 192.168.21.30 succeeds in detecting the available commands, but fails to detect the wireless interface names. Because of that 192.168.21.30 automatically falls back to using brctl. Even if only one of the AP's in your network is polled using brctl the Mac addresses from other AP's will eventually show up (I think it discovers the entire network). That's why it might seem that the plugin is working fine for all your AP's. Although that sounds good, brctl also has it's downsides (described above).
Without playing around with the cli on your router/ap there is not much I can say about the underlying problem. Maybe ifconfig is not available on 192.168.21.30(?) The plugin does assume some standard linux commands to be available. The auto detection is only for hardware specific commands to support different router makes and models (or chipset actually).
The forced configuration could help in this case. At least we know the iwinfo command can be used on that AP (according to the log). All you would need to find are the correct interface names.
If you can figure out which commands would work to detect interfaces and/or commands on your specific hardware, then I can try to incorporate those in the plugin. The plugin supports many, but not all routers.
How I got to this analysis (using your log):
2019-07-26 19:27:55.648 (Présence) SSH subprocess for 192.168.21.15 failed with error (255):b''
[@step1]
2019-07-26 19:27:58.387 (Présence) SSH subprocess for 192.168.21.30 failed with error (1):b''
[@step2]
2019-07-26 19:28:01.433 (Présence) SSH subprocess for 192.168.21.33 failed with error (255):b''
[@step1]
The plugin also summarizes the settings it is going to use for each router/ap (after detection) in the debug log:
Code: Select all
2019-07-26 19:28:01.434 (Présence) Router initialized as:{'192.168.21.25': {'port': 22, 'cmd': "export PATH=/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:$PATH;wlanconfig ath0 list | grep '^..:..:..:..:..:.. ' | cut -d' ' -f1;wlanconfig ath1 list | grep '^..:..:..:..:..:.. ' | cut -d' ' -f1;wlanconfig ath3 list | grep '^..:..:..:..:..:.. ' | cut -d' ' -f1;wlanconfig ath4 list | grep '^..:..:..:..:..:.. ' | cut -d' ' -f1;wlanconfig eth0 list | grep '^..:..:..:..:..:.. ' | cut -d' ' -f1;wlanconfig eth0.40 list | grep '^..:..:..:..:..:.. ' | cut -d' ' -f1;exit", 'user': 'it', 'errorcount': 0, 'initialized': True, 'prospone': datetime.datetime(2019, 7, 26, 19, 27, 56, 197351)}, '192.168.21.26': {'port': 22, 'cmd': "export PATH=/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:$PATH;wlanconfig ath0 list | grep '^..:..:..:..:..:.. ' | cut -d' ' -f1;wlanconfig ath1 list | grep '^..:..:..:..:..:.. ' | cut -d' ' -f1;wlanconfig eth0 list | grep '^..:..:..:..:..:.. ' | cut -d' ' -f1;wlanconfig eth0.40 list | grep '^..:..:..:..:..:.. ' | cut -d' ' -f1;exit", 'user': 'it', 'errorcount': 0, 'initialized': True, 'prospone': datetime.datetime(2019, 7, 26, 19, 27, 57, 123531)}, '192.168.21.30': {'port': 22, 'cmd': "export PATH=/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:$PATH;brctl showmacs br0 | grep '..:..:..:..:..:..' | awk '{print $ 2}';exit", 'user': 'it', 'errorcount': 0, 'initialized': True, 'prospone': datetime.datetime(2019, 7, 26, 19, 27, 58, 388311)}, '192.168.21.33': {'port': 22, 'cmd': '', 'user': 'it', 'errorcount': 1, 'initialized': False, 'prospone': datetime.datetime(2019, 7, 26, 19, 28, 13, 434317)}, '192.168.21.15': {'port': 22, 'cmd': '', 'user': 'it', 'errorcount': 1, 'initialized': False, 'prospone': datetime.datetime(2019, 7, 26, 19, 28, 7, 649039)}}
Hopefully this info is helpful for further troubleshooting