Just a short update: I modified your idea to create a ShellPresenceSensor. The script needs to be changed to echo 1 for home and 0 for not home.
With that you get a history of presence (which a ShellSensor does not have) and you get the nice filled or empty dot in the gui.
Again thank you very much for your script idea.
-
Ping plugin used with computer name
-
Nice addition. Thanks. I’m now using that as well.
-
Not tried myself, but this might work as well without external bash script in a ShellPresenceSensor device:
{ "id": "phone-1", "name": "phone-barak", "class": "ShellPresenceSensor", "command": " sudo arp-scan --localnet | grep AA:BB:CC:DD:EE:FF && echo 1 || echo 0", "interval": 60000 }
-
Very clean and almost correct
in your command when grep finds the string it will output something like “AA:BB:CC:DD:EE:FF 192.168.1.1” which will interfere with our check, so we need to “quiet” the output with “-q”. Next to that: some implementations give the mac-address in upper-case characters and some in lowercase characters, so we need the “-i” option to make it case-insensitive.
So a working command is:"sudo arp-scan --localnet | grep -iq AA:BB:CC:DD:EE:FF && echo 1 || echo 0"
Thanks for giving this hint!
-
You are right. I supressed the output with >/dev/null but forgot it when writing my post. Thanks for the correction!
-
I feel that this is a nice workaround. Finally the feature should be implemented in the ping plugin.
-
Something to remember when it comes to a plugin.
arp-scan defaults to eth0 as the interface to scan.
If you want to scan via a wireless device like wlan0 (or another interface) you need to use:"sudo arp-scan --interface=wlan0 --localnet | grep -iq AA:BB:CC:DD:EE:FF && echo 1 || echo 0"
I had completely forgotten this until I had to use it today on my wireless Ubuntu laptop
-
Regarding pinging a host by its hostname, I have implemented a solution for the case where DNS returns multiple IPs. If at least one IP can be pinged the host is flagged ro “present”. https://github.com/pimatic/pimatic-ping/pull/3
"It always takes longer than you expect, even when you take into account Hofstadter's Law.", Hofstadter's Law
-
Since last ping plugin update I get this error:
19:14:50.833 [pimatic-ping] Error on ip lookup of 192.168.66.66: Error: queryA ENOTFOUND
-
@Barny said:
Since last ping plugin update I get this error
OK, I’ll have a look at this, but I think it should work though. Can you confirm the presence behavious of the PingPresence device works as expected?
"It always takes longer than you expect, even when you take into account Hofstadter's Law.", Hofstadter's Law
-
No, they aren´t working. Did you changed config-options? Here´s a sample-device from my config:
{ "host": "192.168.66.95", "interval": 5000, "timeout": 2000, "retries": 4, "xLink": "", "xPresentLabel": "", "xAbsentLabel": "", "id": "LGTV", "name": "TV Schlafzimmer", "class": "PingPresence" },
-
@Barny said:
Did you changed config-options?
No, I didn’t. Btw, your config example is for a different device than the one you had in the error message. I also noticed the error message you posted is missing the log level. It is a warning message and should be similar to teh following
12:00:12.687 [pimatic-ping] warn: Error on ip lookup of 192.168.66.66: Error: queryA ENOTFOUND
"It always takes longer than you expect, even when you take into account Hofstadter's Law.", Hofstadter's Law
-
It was just a sample. I get this warning for all ping presence devices and anyone is working.
20:56:27.776 [pimatic-ping] Error on ip lookup of 192.168.66.66: Error: queryA ENOTFOUND 20:56:27.781 [pimatic-ping] Error on ip lookup of 192.168.66.78: Error: queryA ENOTFOUND 20:56:27.786 [pimatic-ping] Error on ip lookup of 192.168.88.254: Error: queryA ENOTFOUND 20:56:27.790 [pimatic-ping] Error on ip lookup of 192.168.125.254: Error: queryA ENOTFOUND 20:56:27.795 [pimatic-ping] Error on ip lookup of 192.168.66.86: Error: queryA ENOTFOUND 20:56:27.799 [pimatic-ping] Error on ip lookup of 192.168.66.81: Error: queryA ENOTFOUND 20:56:27.808 [pimatic-ping] Error on ip lookup of 8.8.8.8: Error: queryA ENOTFOUND 20:56:27.813 [pimatic-ping] Error on ip lookup of 192.168.66.95: Error: queryA ENOTFOUND 20:56:27.817 [pimatic-ping] Error on ip lookup of 192.168.66.41: Error: queryA ENOTFOUND 20:56:27.822 [pimatic-ping] Error on ip lookup of 192.168.66.40: Error: queryA ENOTFOUND 20:56:27.826 [pimatic-ping] Error on ip lookup of 192.168.66.82: Error: queryA ENOTFOUND
-
Same error here after update…
-
Now, it´s working perfect like before…
-
Just a heads up for the original request:
with map you can search for computer names in the network!
So
nmap -sP 10.0.1.1/24 | grep -o -q yourcomputername && echo 1 || echo 0
should do the trick
-
@Kamaluk said in Ping plugin used with computer name:
map you can search for computer names in the network!
Thanks. I am not sure what nmap is doing here to reveal the hostname, but it is possibly just doing a reverse lookup. So, I think it is better to do a normal lookup on the hostname and ping all returned ip addresses. That’s the strategy which have been implemented.
Note: For users not familiar with nmap: -sP does a ping scan, i.e., all IP addresses within the given network will be pinged once to check if the given host is online
"It always takes longer than you expect, even when you take into account Hofstadter's Law.", Hofstadter's Law
-
the problem I’m facing with
sudo arp-scan --interface=wlan0 --localnet | grep -iq AA:BB:CC:DD:EE:FF && echo 1 || echo 0
is simply that with my current setup I don’t get all present MAC Adresses displayed - only nap worked
-
@Kamaluk said in Ping plugin used with computer name:
with my current setup I don’t get all present MAC Adresses displayed
That’s normal as arp-scan accesses the arp cache of the system which keeps arp entities which have been seen on the network (either query results or anouncements). In you case you want to use option “-n” with nmap to disable the reserse lookup to make it somewhat faster.
"It always takes longer than you expect, even when you take into account Hofstadter's Law.", Hofstadter's Law