fiveseven808 / AmazonDashButtonHack

Wanna use your Amazon Dash Button for things other than buying stuff? Check out this program that will change your world!
87 stars 13 forks source link

WiFi Settings lost when button is disassociated from account. #3

Open SigmazGFX opened 8 years ago

SigmazGFX commented 8 years ago

​Well..here is a little downer for ya.. The button works perfectly with your application However, every time I press it I get a message from Amazon saying I need to complete the process of configuring the button. (select item to associate with it)

Since this behavior annoys me and keeps alerting me on my phone I selected an item and then went back deactivated the button from my account. Guess what? They clear the wifi settings in the button on next press. UGH! Model JK29LP Checking out the internal web browser, there is no manual config section.. 192.168.0.1 when in pairing mode. the page states Amazon Dash tm Device Info Serial Number .... MAC Address ... Firmware 20014520

SigmazGFX commented 8 years ago

https://mpetroff.net/2016/07/new-amazon-dash-button-teardown-jk29lp/

fiveseven808 commented 8 years ago

Holy crap! I did not realize this. I honestly haven't played around with the newer JK29LP buttons all that much. I see what the problem is though.

A little bit more research shows https://mpetroff.net/2016/07/new-amazon-dash-button-teardown-jk29lp/

And it appears it may be possible to write a script to use cURL or something to try and configure the button. I'll have to look into that.

In the meantime, I've thought up a couple of different solutions

  1. If you're using an android phone you can do what I did, but it may cost you a bit of money. Download Tasker ( a paid phone scripting app) and AutoNotification (Tasker plugin). Using the two, you can setup a profile that detects button press notifications and automatically silences them. Let me know if you need help with this route. I've been using this as an easy way to setup the buttons.
  2. Delete the Amazon Shopping App. If you use this app, well then this solution won't work for you, but I don't use it :wink:
  3. (most practical possibly) Setup a fake amazon account for the purpose of registering the Dash buttons. Sign back out, and sign in to the Amazon App with your real account.
SigmazGFX commented 8 years ago

Yeah the most viable solution would be to use a burner amazon account to stifle the alerts but this doesn't really "fix" the issue. It also still leaves the button at the mercy of Amazon to shut it down. Seeing that it's an Atmel is a warming feeling though.. one day it may end up being programmable via the Arduino IDE.. one can dream right?

Boy, I'm glad they were only $0.99 each I bought 3 of them. That also makes me wonder if the legit ($19.99) AWS IoT version is Atmel now or if it's still Broadcom.

On Wed, Jul 13, 2016 at 7:16 PM, fiveseven808 notifications@github.com wrote:

Holy crap! I did not realize this. I honestly haven't played around with the newer JK29LP buttons all that much. I see what the problem is though.

A little bit more research shows https://mpetroff.net/2016/07/new-amazon-dash-button-teardown-jk29lp/

And it appears it may be possible to write a script to use cURL or something to try and configure the button. I'll have to look into that.

In the meantime, I've thought up a couple of different solutions

1.

If you're using an android phone you can do what I did, but it may cost you a bit of money. Download Tasker ( a paid phone scripting app) and AutoNotification (Tasker plugin). Using the two, you can setup a profile that detects button press notifications and automatically silences them. Let me know if you need help with this route. I've been using this as an easy way to setup the buttons. 2.

Delete the Amazon Shopping App. If you use this app, well then this solution won't work for you, but I don't use it 😉 3.

(most practical possibly) Setup a fake amazon account for the purpose of registering the Dash buttons. Sign back out, and sign in to the Amazon App with your real account.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fiveseven808/AmazonDashButtonHack/issues/3#issuecomment-232514164, or mute the thread https://github.com/notifications/unsubscribe/AEAhHIDcWi2Aj3LXhEam-52GrxzeXmS5ks5qVXG3gaJpZM4JL7A0 .

SigmazGFX commented 8 years ago

I suppose I could do some routing voodoo in the the router to redirect parker-gateway-na.amazon.com to anyplace but there... that may keep the settings safe..

fiveseven808 commented 8 years ago

Actual AWS IoT version will probably be Atmel since they haven't quite released it yet.

I don't know if you've tried ordering from anything from amazon after you've bought those and associated them with your account, but you should receive a $5 credit per every button associated with your account on future purchases (not through the button). You've technically bought 3x$5 discounts (on separate purchases unfortunately) ;)

If your router is capable of redirecting that entry then you'll definitely have solved the problem! Although, I still need to think of a way for it to work for everyone :P that burner account sounds like the best way so far.

laserjobs commented 8 years ago

Anyway to simply use the Bluetooth to setup a script for the JK29LP?

BitPopCoin commented 8 years ago

My app let's me turn off notifications

SigmazGFX commented 8 years ago

+BitpopCoin what messages? the no item associated message?

BitPopCoin commented 8 years ago

Yes

However, every time I press it I get a message from Amazon saying I need to complete the process of configuring the button. (select item to associate with it)

Since this behavior annoys me and keeps alerting me on my phone I selected an item and then went back deactivated the button from my account.

AZ-Geek commented 7 years ago

@fiveseven808 can you export your Tasker "profile that detects button press notifications and automatically silences them" and send me a copy or save to a git repo?

So far I have not been successful with AmazonButton_Discovery_160715_2304 detecting my button. I did pair in the Amazon Shopping app and that app has displayed a dozen notification asking me to finish by choosing an item to purchase. I've also disabled location services to the shopping app and shut down my phone. I also disabled Windows Defender.

After AmazonButton_Discovery pings ip addresses and the Ok prompt appears, is there a trick to "keep it White"? Fast button clicks, slow repeating, long hold?

BitPopCoin commented 7 years ago

It's supposed to fail and you will get the notification

AZ-Geek commented 7 years ago

@BitpopCoin , my problem is with step 4.

  1. Start pushing the button you wish to pair repeatedly. Keep the LED "White!"
  2. If no Amazon Devices are found, try again, but start pushing the button as soon as you double click on the EXE

The exe AmazonButton_Discovery returns 0 Amazon Devices found.

BitPopCoin commented 7 years ago

Oh the new ones are very quick. I didn't even try that. I gave the program the direct ip address. Look in your router logs.

clemon79 commented 7 years ago

I am having a problem getting mine to accept the static lease I have set up in my router...does the button store the IP it got originally and continue to ask for that unless I figure out some way to reset it?

BitPopCoin commented 7 years ago

Yes it might, it connects so fast it probably skips dhcp

clemon79 commented 7 years ago

Ugh. Is there a way to totally reset it short of cutting it open?

BitPopCoin commented 7 years ago

Yes deactivate it in your app, push the button and it'll reset

clemon79 commented 7 years ago

Okay, I've done that, so yeah. Still dunno why it's not working. I've had this work before.

loctruong96 commented 7 years ago

there is a setting for turning off notification in the amazon app specificity for these buttons.

bulletprooffool commented 7 years ago

Is this still an issue?

I went through the setup process once, which got it an IP address and didn't order anything. After about 24 hours it dropped wifi config (either that or my home automation toolset changes broke it) - In the mean time, I created a DHCP reservation that allocated an invalid default gateway to the button. I then went through the process of re-configuring the button again. It seemed to try connect, but since the DG was invalid, it did not fully complete the process . . . BUT . . . it did appear to now be connected OK to my wifi. It has only been about 48 hours, but no issues so far. I have 3 more buttons waiting to be configured , but don't want to open the packaging just yet Can anyone confirm that they do have the newer buttons working long term?

clemon79 commented 7 years ago

Yes, the JK29LP buttons work fine.

bulletprooffool commented 7 years ago

My feedback... Add button, don't pick an item. Get details, now Unlink your button on Amazon app. Next BLOCK the MAC address from the internet on your router and re-add it in Amazon app. It gets setup, but since it can't get to the web it thinks it has failed and the button is ignored and NOT in the app either

bulletprooffool commented 7 years ago

Also - when my button gets configured second time, I'm getting a different default gateway applied via dhcp (my openhab server)

cchdawkins commented 6 years ago

My buttons fail after [it looks like] 200 presses. They can be re-activated, but then fail after one or two. It seems that Amazon have blocked this use of their buttons.

fiveseven808 commented 6 years ago

@cchdawkins What is the behavior of the buttons that fail? By re-activated you mean to re-add it to your wifi network?

When did you purchase your buttons and what model is it?

cchdawkins commented 6 years ago

Four buttons purchased September 2017, five more Nov 2017, just before the first one failed. Model number JK29LP on one of the first lot.

Yes, reactivation reconnects it to wifi. But it is then very intolerant of further fails.

Several fail modes. All fail modes generate absolutely no network activity (viewing with tcpdump).

First one is plain red light on pressing button.

First fail mode occurs after 200 presses (that is, 200 presses that result in no order). (I have been using them to control WEMO switches, and planned to continue with TP-link switches.) I block them from Amazon by configuring my DHCP to give them a local address and a non-existent router.

Later, there's a second fail mode with no light and no network activity, just as would happen if no battery.

But both fail modes can be resuscitated using the Amazon app (mine is on Android) from 'Set up a new device': hold button down and with phone beside it it recovers, red light then blue light. Having been set up again, it will then do only one failed operation before dying again and entering second fail mode. I suspect that if, after the first failure, you connected to Amazon and configured it to order something, you might be OK. In which case Amazon have behaved quite reasonably - only wicked people such as myself can be upset by this.

In the second fail mode, the recovery seem to get only half way: blue light flashes, but the config process gets no further and the wifi remains dead.,

Then we get third fail mode: completely dead, even with an encouraging phone nearby. But leave the button a few days, and you get a tantalising reversion to the second fail mode.

Whoever programmed this at Amazon must be roaring with laughter !

I think I'll just have to make one order with each button to recover my money (all except one of my buttons are for things I use), then shelve them in the hope that someone clever will reverse engineer the exchange with Amazon, so I can send it false 'success' signals from my local server. But as Amazon programmers are cleverer than I am, I reckon there's little hope. So my next project will have to be with a raspberry pi instead.

Unless you are cleverer than Amazon!

On 5 January 2018 at 19:09, fiveseven808 notifications@github.com wrote:

@cchdawkins https://github.com/cchdawkins What is the behavior of the buttons that fail? By re-activated you mean to re-add it to your wifi network?

When did you purchase your buttons and what model is it?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fiveseven808/AmazonDashButtonHack/issues/3#issuecomment-355639079, or mute the thread https://github.com/notifications/unsubscribe-auth/Ag0pXdUuEAQH_n3y-oO1W_4Dhlk88xIKks5tHnNxgaJpZM4JL7A0 .

-- -- Christopher Dawkins (cchdawkins@gmail.com) Garnetts Corner, Jollyboys Lane North, Felsted, Dunmow, Essex CM6 3DU 01371 821076 07816 821659

fiveseven808 commented 6 years ago

Woah, very interesting. Thank you for such a detailed report! I'm quite curious to know what the battery voltage is on the buttons you have that are dying. If I had to guess, if internal resistance of the battery increases over it's depletion, it would limit the peak current able to be delivered to the device.

According to the article here: https://mpetroff.net/2016/07/new-amazon-dash-button-teardown-jk29lp/ The author predicts that the JK29LP model will last for around 500 presses, given the energy capacity of the battery and the authors measurements. However from the provided graphs, it seems like there is almost a 0.6w spike during operation, which may be enough to drop voltage on a tired battery, causing the device to reset and go back to sleep. This effect may be strong enough that it would halve the author's predictions.

However, the fact that you mention if you set up the button with the app, it seems to come back to life, at least for one press makes me question that theory. If you have the means, I'd like you to try and replace the battery on one that has reached the 3rd failure mode. I'd be curious to see if the behavior is the same as you described between failure modes 2 and 3, or if it returns to it's original function. I've since stopped using these buttons to control my Hue lights (my original intention lol) and none of them were at the level of use yours has seen.

I don't quite understand the difference between the second and third failure mode? If the second failure mode has no light or network activity, how do you differentiate it from the third? Or is it just the ability to be recovered via the app?