Alternative to Amazon Dash Button using 433Mhz button

I really like the idea of Amazon Dash Button but unfortunately Amazon is not available in my planet :wink:

So I’m thinking of creating something similar by using 433Mhz button such as a switch or doorbell.

The idea is to have the button signal captured by OpenMQTTGateway and trigger an automation in HA that will add an item related to that signal in the HA shopping list component. I also hope that an item can be removed by long pressing or double press the button.

I need suggestion on the most suitable button for the job. It has to be small, battery operated and have multiple signal base on how it is pressed.

Did you see my last edition to the 433 mhz device list? It is pretty small. No multiple signals but you can get a three button one.

433toMQTTto433 Gateway Device List

1 Like

Found it. Thanks. Did you manage to reprogram the code?

@masterkenobi You may want to look at the xiaomi wireless button. You will need the xiaomi gateway as they are zigbee and not 433mhz, but each button cost around 7 USD and supports click, double click, and “long” click, also they are battery operated.

Thanks. But imho it’s overkill to use this button. I plan to put around 50 buttons all over the house. So price is sensitive to me.

The one suggested by @Partybug is the best option so far. I plan to print sticker with item name to stick over the front face and glue a magnet on the back so that it can stick on the fridge. Unfortunately every remotes come with the same code. I’m wondering can the code be changed?

I got an update from the seller who is also the manufacturer of this remote…

2-key-Mini-RF-433mhz-Universal-Remote-Control-Wireless-Controller

She said she can customize the remotes so that each remotes will have unique codes if I order more than 500 pieces. If I order more than 1,000 pieces, I can even customize the label on the buttons or the whole front face.

But the problem is I don’t need so many.

I am wondering is anyone interested in this? Maybe we can share this order among 10 people with each person get 50 pieces or more.

If you are interested, please PM me with your shipping address and I will give you my PayPal account address to make payment to.

Proof of Concept

Maybe sharing how my idea works will make everyone understand better the value of having this alternative to Amazon Dash Button.

The idea is to stick these mini remote controls strategically around the house such as in the store room, on the fridge, beside the washing machine, behind the bathroom door, etc… When an item is about to finish, you just press the “ON” button and it will add the specific item to the shopping list. When any of the occupants visited a groceries shop, HA will automatically send the shopping list to his/her phone. When you have replenished the item, you just press the “OFF” button to remove it from the shopping list. Simple right?

Due to limitation of the new Shopping List component, I feel the best solution at the moment is to use input_boolean for each items in your shopping list. The idea is to turn on the input boolean if you want to add the item to your list and turn off if you want to remove it from the list.

Step 1: Create the input boolean for each items


# Items for shopping list
shoplist_coffee:
  name: Coffee
  icon: mdi:coffee

shoplist_milk:
  name: Milk
  icon: mdi:cow

shoplist_shampoo:
  name: Shampoo
  icon: mdi:cart

shoplist_egg:
  name: Egg
  icon: mdi:cart

shoplist_milo:
  name: Milo
  icon: mdi:cart

shoplist_toothpaste:
  name: Tooth Paste
  icon: mdi:cart

shoplist_toothbrush:
  name: Tooth Brush
  icon: mdi:cart

shoplist_facialfoam:
  name: Facial Foam
  icon: mdi:cart

shoplist_shaver:
  name: Shaver
  icon: mdi:cart

shoplist_shavingcream:
  name: Shaving Cream
  icon: mdi:cart

shoplist_bread:
  name: Bread
  icon: mdi:cart

shoplist_butter:
  name: Butter
  icon: mdi:cart

shoplist_jam:
  name: Jam
  icon: mdi:cart

shoplist_peanutbutter:
  name: Peanut Butter
  icon: mdi:cart

shoplist_cereal:
  name: Cereal
  icon: mdi:cart

shoplist_lettuce:
  name: Lettuce
  icon: mdi:cart

shoplist_tomato:
  name: Tomato
  icon: mdi:cart

shoplist_saladdressing:
  name: Salad Dressing
  icon: mdi:cart

shoplist_sausages:
  name: Sausages
  icon: mdi:cart

shoplist_nugget:
  name: Nugget
  icon: mdi:cart

Step 2: Add the input_boolean in a group. This group will be your shopping list

shopping_list:
  name: Shopping List
  entities: 
    - input_boolean.shoplist_coffee
    - input_boolean.shoplist_milk
    - input_boolean.shoplist_shampoo
    - input_boolean.shoplist_egg
    - input_boolean.shoplist_milo
    - input_boolean.shoplist_toothpaste
    - input_boolean.shoplist_toothbrush
    - input_boolean.shoplist_facialfoam
    - input_boolean.shoplist_shaver
    - input_boolean.shoplist_shavingcream
    - input_boolean.shoplist_bread
    - input_boolean.shoplist_butter
    - input_boolean.shoplist_jam
    - input_boolean.shoplist_peanutbutter
    - input_boolean.shoplist_cereal
    - input_boolean.shoplist_lettuce
    - input_boolean.shoplist_tomato
    - input_boolean.shoplist_saladdressing
    - input_boolean.shoplist_sausages
    - input_boolean.shoplist_nugget

It will look something like this…

Step 3: Create a template sensor that will list down all the items that is turned on.

    shoppinglist:
      friendly_name: 'Shopping List'
      value_template: >-
        {% for entity in states.group.shopping_list.attributes.entity_id if is_state(entity, 'on') %}
        - {{ states[entity.split('.')[0]][entity.split('.')[1]].name }}
        {%- endfor %}
      entity_id:
        - input_boolean.shoplist_coffee
        - input_boolean.shoplist_milk
        - input_boolean.shoplist_shampoo
        - input_boolean.shoplist_egg
        - input_boolean.shoplist_milo
        - input_boolean.shoplist_toothpaste
        - input_boolean.shoplist_toothbrush
        - input_boolean.shoplist_facialfoam
        - input_boolean.shoplist_shaver
        - input_boolean.shoplist_shavingcream
        - input_boolean.shoplist_bread
        - input_boolean.shoplist_butter
        - input_boolean.shoplist_jam
        - input_boolean.shoplist_peanutbutter
        - input_boolean.shoplist_cereal
        - input_boolean.shoplist_lettuce
        - input_boolean.shoplist_tomato
        - input_boolean.shoplist_saladdressing
        - input_boolean.shoplist_sausages
        - input_boolean.shoplist_nugget

Step 4: Create an automation that will turn on/off the items in shopping list when the buttons on the remote is pressed.

OK. Before that, you need to have an OpenMQTTGateway. If you haven’t build one, go to the link and follow the instruction. It is pretty easy.

Example automation for this item; Coffee

- alias: 'Add Coffee to the shopping list'
  trigger:
    - platform: mqtt
      topic: home/433toMQTT
      payload: 123456789
  action:
    service: input_boolean.turn_on
    entity_id: input_boolean.shoplist_coffee

- alias: 'Remove Coffee to the shopping list'
  trigger:
    - platform: mqtt
      topic: home/433toMQTT
      payload: 234567891
  action:
    service: input_boolean.turn_off
    entity_id: input_boolean.shoplist_coffee

Replace the payload number with the code from the “On” and “Off” buttons on the Coffee remote control. Repeat the above automation for other items.

Step 5: Send the shopping list to any occupants that has entered specific zones such as grocery shops.

For this to work, you need a device tracker component that has GPS data such as Owntracks or Zanzito. You also need to create the relevant zones and using a notification component that can be received by your phone such as Telegram. Once you have these ready, you can start to use this automation…

- alias: 'Track Anakin'
  trigger:
    - platform: state
      entity_id: device_tracker.anakin_zanzito
      to: 'Shop 1'
    - platform: state
      entity_id: device_tracker.anakin_zanzito
      to: 'Shop 2'
    - platform: state
      entity_id: device_tracker.anakin_zanzito
      to: 'Shop 3'
  condition:
    condition: state
    entity_id: group.shopping_list
    state: 'on'
  action:
    service: notify.anakin
    data_template:
      title: ""
      message: "Hello Anakin. Since you are at {{ trigger.to_state.state }}, please buy these back... {{ states('sensor.shoppinglist') }}"

Ideas of modification on the remote control

  1. Custom made stickers to stick over the remote control front face. It can be colorful stickers with brand name like those from Amazon Dash Buttons. The “ON” label replace with “+” sign and the “OFF” label replace with “-” sign. It is totally up to your creativity.
  2. Stick a thin magnetic sheet such as this one http://amzn.to/2w21NdD at the back of the remote control so that it can stick on the fridge, metal cabinet or washing machine.

Crowdfunding

By default, every remotes transmit the same code. In order to customize the remote so that each remotes have unique code, the seller who is also the manufacturer can only fulfill that if I order at least 500 pieces. The price for each units remain at $1.35 USD/pc. However, the shipping will be free. Since I don’t need so many pieces, I am seeking anyone who sees value in this project to share the cost with me. I am looking for at most 10 people (incl myself) to share this order with me. That means, the minimum quantity each one must commit is 50 pieces which I think is reasonable. That is the average amount of my items in my monthly shopping list. I do not profit a single cent from this. Please see below for conversation I had with the seller…

So guys, lets make this happen especially for those who stays at places where there is no Amazon like myself.

Thank you in advance!

Nice work @masterkenobi,

Though you mentioned about a limitation using the shopping_list intent. Is it because items cannot be removed, as much as they can be added?

Also is our offer only available to those residing in your country?

Regards

Yeah. It’s lack of documentation at the moment. I have no idea how to make it works or remove an item from the list. Anyway, I prefer to use input_boolean because I can turn it on and off directly from the front end.

It will ship directly from the manufacturer to your address anywhere in the world. But I will have to order on your behalf.

@masterkenobi just out of curiosity. Why don’t you buy dash buttons from ebay, they come pretty cheap.

Because they come programmed with same RF codes if I understand correctly. While he wants different so he can add different actions to them.

WIth dasher you can configure them any way you want

http://www.bruhautomation.com/single-post/2016/11/22/How-To-Use-an-Amazon-Dash-with-IFTTT-and-Home-Assistant

Thanks for your suggestion.

$1.35 vs $5 is quite a significant difference when it comes to 50 units or more. Furthermore, I need 2 buttons; 1 for add to list and another to remove it from the list.

I’m not sure about Dash. Can the button be programmed for 2 different actions?

Since the topic says “alternative to Amazon dash button” I was just asking out of curiosity. Dash buttons are offered on ebay for <1 USD if you buy them in quanities.

That would be great. However the main reason for this project is not only about cost. Amazon service is not available here. Even if I can get the buttons, I can’t use it to order groceries from amazon and I really like its concept. Inspired by the concept, I came up with this project. Instead of add to cart with a press of a button, it adds to a shopping list.

Do you know can I program a dash button to perform 2 different actions?

There is no Amazon available in my region as well but you can reconfigure them to do what ever you want using dasher. I think the concept is they are disconneted from the amazon network and dasher is looking for a button press based on the mac address. I haven’t tried it myself yet but I do not see any limitations as many people seem to use them for all sort of things.
As for using two actions/buttons to add and remove things from the shopping list you can simple toggle the input boolean with a single click, right?

I also found this https://github.com/bitluni/wifiButton which is pretty cool. I love these tiny ESP8266 boards.

I thought about toggle button too but not suitable for home with multiple occupants. For example, if occupant A added an item to the list, occupant B wouldn’t know the item has been added to the list. If he/she press the button again, it will remove the item from the list.

@masterkenobi Good point, I didn’t think about that.

No problem. The more people, the better the brainstorm.

@masterkenobi I looked briefly into programming these (I only need 3 or so not 50.). I took it apart. The chip is not identified, but I think the 14 pin chip is a CMT2150AW chip.

IF IF it is this chip they are programmed with something called a
CMOSTEK USB Programmer (about $65 USA) and software called RFPDK.
I have no knowledge of any of this other than google searches. And it was more trouble for me than it was worth just to hide some buttons around the house.

If the seller were to make them all unique he/she could sell more than one. It’s a shame.