Not detecting dash button press on OSX #26

Open
ifuyivara opened this Issue Apr 20, 2016 · 29 comments

Projects

None yet
@ifuyivara

I have followed the instructions to setup the button (it blinks white now, indicating it connects to the wifi network)

But the dash hardware access is not detected when running sudo node bin/findbutton - Other hardware is indeed detected on the network.

I'm trying this with a brand new dash button

@hortinstein
Owner

did you set it up according to the instructions when setting up the dash
(but not selecting a product) and can you verify it is connecting to your
network?

On Wed, Apr 20, 2016 at 2:51 PM, Ivan Fuyivara notifications@github.com
wrote:

I have followed the instructions to setup the button (it blinks white now,
indicating it connects to the wifi network)

But the dash hardware access is not detected when running sudo node
bin/findbutton - Other hardware is indeed detected on the network.

I'm trying this with a brand new dash button


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#26

@ifuyivara

Yes I set it up as in the instructions and is in deed connecting to my network. I suspect it may have something to do with the wireless network I'm using (work network) - They may have deactivated the ARP probe for security reasons. I'm going to try this at home tonight and see if this is the problem

@hortinstein
Owner

ok cool, let me know what you find out. building anything cool?
On Apr 20, 2016 6:43 PM, "Ivan Fuyivara" notifications@github.com wrote:

Yes I set it up as in the instructions and is in deed connecting to my
network. I suspect it may have something to do with the wireless network
I'm using (work network) - They may have deactivated the ARP probe for
security reasons. I'm going to try this at home tonight and see if this is
the problem


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#26 (comment)

@czekaj
czekaj commented Apr 30, 2016

I'm also having trouble with detecting ARP probes from my new "All" Dash button on Raspberry Pi 3's built-in wlan. Maybe Amazon changed something in firmware of the more recent Dashes to not send ARPs anymore?

@128keaton

I am having the same issue. If Amazon disabled this, I'm going to be really sad.

@hortinstein
Owner

I am not sure...I dont think it would be possible for the dash to not send arps with the way wifi works...can you boot up wireshark and see any traffic?

@robertvorthman

I have a Dash button I ordered in May and it still works so I don't think Amazon is blocking our Dash buttons.

@128keaton

@robertvorthman thats great. does it work with this lib?

@128keaton

Ok, update, I found the Mac with wireshark, however, it isn't ARPing, it seems. I can only find it if I'm NOT using the ARP filter.. odd, right?
@hortinstein

@robertvorthman

@128keaton Yes, my dash button works with this lib. Running on a Raspberry Pi 3 wired interface.

@128keaton

@robertvorthman hmm, interesting. I'll have to retry on the Pi. I've been running everything from my mac right now. Thanks for the tip.

@fantapop

I'm having issues as well. Running on my laptop. It looks like the dash is not sending the arp probe. I can still see it responding to arp who-has requests. I'm not sure if those are consistent yet or not.

@robertvorthman
robertvorthman commented Jul 11, 2016 edited

According to a 2016-07-07 update on this instructable there is a new dash button model, which may impact network detection.

Regardless, comments on that link are saying the new button still works. Furthermore, Dash buttons are now only $0.99 cents.

Update 7/7/2016:
I've discovered that Amazon now has 2 models of Dash Buttons. The original JK76PL and the new and "improved" JK29LP. Unfortunately, my program DOES NOT work reliably with the new JK29LP. The new button stays on for a much shorter time and thus my program does not catch/see it reliably. Until I can get this fixed, I cannot recommend purchasing new Dash buttons for use with my program.

The instructable seems to use network pings instead of ARP requests to detect the button, according to my cursory inspection of the github code, so if I understand this node-dash-button implementation correctly, the ARP detection would still be reliable even if the button's Wi-Fi antenna is on for a shorter period of time.

@128keaton

@robertvorthman I saw that. Too bad I'm Mac/Linux. However, I cannot get any ARP requests, whatsoever.

@cvocvo
cvocvo commented Jul 15, 2016

Can confirm new buttons (I tested 12 of them) are not sending ARP requests. I also have two "Clorox" dash buttons that are of the older JK76PL model that don't appear to be sending ARP requests.
I've got 6 of the older JK76PL model that are sending pulses ARP requests.

@128keaton

@cvocvo perfect. More data :). Also, did you typo?

@robertvorthman

The new buttons work for me. I ordered some dash buttons on Monday, four arrived Wednesday and two are the new version (JK29LP), two old (JK76PL). The new buttons are detected much faster, an average of 6 seconds, sometimes under 3 seconds. The old buttons are much more inconsistent, sometimes 5 seconds, usually over 10 seconds, and maybe a minute or not detected at all.

I did 30 stop watch tests and I'm finding old Dash buttons to be unreliable. I was waiting at least a minute or two between button presses, but maybe that was not long enough, and the reason for the inconsistencies, I'm not sure.

Sometimes the old buttons are detected a second time, exactly 45 seconds after the first detection with the button only pressed once. All the buttons seem to have their own personality. My "Burt's Bees" button is a champ, always fast and reliable. The "Snuggle" and "Carefree" buttons are the only ones that cause an additional detection.

Here is my stopwatch data:
https://docs.google.com/spreadsheets/d/1FNjIsJ21pCpnAuzMJ172uYEYhCk9pkzGe_XMZmPCxxw/edit?usp=sharing

@krisdunlop

So, I'm new to this. I got the Mac Address. Where do I put the following, but with my info.

var dash_button = require('node-dash-button');
var dash = dash_button(["8f:3f:20:33:54:44","2e:3f:20:33:54:22"]); //address from step above
dash.on("detected", function (dash_id){
    if (dash_id === "8f:3f:20:33:54:44"){
        console.log("omg found");
    } else if (dash_id === "2e:3f:20:33:54:22"){
        console.log("found the other!");
    }
});
@128keaton
128keaton commented Jul 16, 2016 edited

@krisdunlop ok, whoops, not python... I can't think this late..sorry

make sure you have Node.JS installed first

@krisdunlop

So it didn't work on the desktop, so I put it in the folder in the user bin. I'm getting this error.
File "pulse.py", line 1
var dash_button = require('node-dash-button');
^
SyntaxError: invalid syntax

@robertvorthman

@krisdunlop
Rename your file to a use a .js extension. node-dash-button is a node.js library. Node executes JavaScript, not Python.

The code you pasted is for multiple dash buttons. If you just have one dash button, your code should look like this:

var dash_button = require('node-dash-button');
var dash = dash_button("8f:3f:20:33:54:44"); //address from step above
dash.on("detected", function (){
    console.log("omg found");
});

Replace "8f:3f:20:33:54:44" with the MAC address of your button.

@LongPotato

@128keaton Hi, you mentioned you found your new Dash button's Mac address with Wireshark. Can you show me how? What's the filter that you used. Thanks!

@krisdunlop

What do I need to run now that I've done the above?

@robertvorthman

@krisdunlop Your question is not clear. You might also consider creating a separate issue if your comments aren't related to the original post. Did you run the script I referenced in my previous comment by typing "node pulse.js" in the shell? That's all you need to do to start detecting dash button presses. If you get an error, you might need to try typing sudo first like "sudo node pulse.js".

@krisdunlop

The previous comment by the other person was edited and so the node command wasn't clear like it was. That's what I was looking for. Thanks.

@LongPotato

Ok, so I got it to work. Found the mac address, and successfully received the button pressed action.

However, in the terminal I keep getting the warnings:

node_pcap: EthernetFrame() - Don't know how to decode ethertype 34958

Also I notice multiple mac address appeared when I pressed the button, I had to manually add them into my code and test them out. This might related to this issue #32

@SoullessWaffle

@robertvorthman I'm using a Raspberry Pi to detect the dash buttons and I'm also having reliability issues with the old ones (JK76PL).
I have four old dash buttons and two new (JK29LP) ones. The new buttons seem to be detected fine in most cases, but the old buttons behave very unreliably, as you have said.
Have you come up with any workarounds for dealing with the old dash buttons, or are you simply no longer using them? Also, would it be worth making a new issue on the repo for this?

@robertvorthman

@SoullessWaffle I don't use the old buttons anymore.

@kim3er
Contributor
kim3er commented Sep 12, 2016

My button was initially picked up as an ARP request, but has since switched to UDP (firmware update?)

I've created a pull request that adds support for UDP.

Hope it helps anyone who is struggling with newer buttons. Let me know if you notice any problems with the implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment