Shelly Button 1 Action working locally, not over the internet

  • Hello

    I have a Shelly Button 1. I can get actions working on my LAN, but cannot get actions working over the internet.

    I can set an action on my LAN. If I start up a test web server on my laptop I set an action of http://192.168.1.114/click. This works and I can see the request being served from my local web server.

    I have set a simple test webserver up on an AWS EC2 instance and changed the action to have the IP of my server http://18.135.101.104/click and clicking the button does not send the request to the EC2 server. I have verified the EC2 webserver is working - if I do a wget from my laptop from the same URL: http://18.135.101.104/click I can see the request in the logs of the EC2 server

    I have checked and double checked the network setting on the button. I am using a fixed IP, the net mask and gateway match all my other devices on my lan, there is no IP address clash. The button must have internet access as its appearing on the Shelly cloud app and it updated itself to what is says is the latest firmware 20220209-093755/v1.11.8-g8c7bb8d.

    I can also make updates on the shelly cloud app witch are persisted to the button, so it would appear that internet connectivity is ok.

    When I perform a local, successful request the button flashes green. In the logs I can see a Fetching.. followed by a ACTION HTTP REQ done:

    52301096 action_url_queue.c:126 Fetching http://192.168.1.114:8000/click

    52313891 button.c:576 0x01 wup 0x00 batt 4.17V (1078) S 0 usb 1

    52320069 button.c:177 btn signals: 0x80000

    52432347 action_url_queue.c:70 ACTION HTTP REQ done

    When I do a request using an internet IP address, I can see the Fetching but no done:

    1777200923 action_url_queue.c:126 Fetching http://18.135.101.104/click

    1777240474 button.c:576 0x01 wup 0x00 batt 4.17V (1079) S 0 usb 1

    1777246219 button.c:177 btn signals: 0x80000

    1777455783 json.c:426 RAM: 51576 total, 39144 free

    Again the button flashes white then instantly green as if the request is successful, but the web server registers no request.

    Other things I've noticed. The button does not appear to have the time updated its constantly set to --:-- even though there is a time server set to time.google.com

    I've factory reset a couple of times and been through the setup again and again only to have the same results. Requests on the LAN always succeed, requests going through the internet always fail even though the button flashes green which I believe means it thinks the request was successful.

    Im absolutely tearing my hair out over this over what I thought would be the simplest of use cases - press a button, call a URL. Any help or suggestions would be appreciated.

  • Hi and welcome to the forum. :)

    the missing time and the rest of your detailed description ( :thumbup: ) indicate that something is wrong with the Internet access dws Shelly.

    Please test DHCP. I'm almost certain it will work.

    Good luck.

  • Thanks for the reply. I tried a different IP address, did a couple of reboots and now I have some measure of success. Doing this the button now can access my test web server on EC2, however it still refuses to access AWS's API gateway in order to fire a lambda - which was what I got the button for in the first place.

    As a stop gap I've nocked up a quick python web server on my test machine that has the same functionality as the lambda. I was hoping to use the lambda so I would not have to run a server, however its now working OK on a tiny cheap AWS t3.nano instance. If I get motivated I'll try to dig in more as to why its not calling the API gateway URLs. A problem for another day I think.

    I've no idea why changing the IP address did anything, neither the old not the new IP address were in use, nor was there a clash with DHCP (I have it set to only use IPs from 192.168.1.100 onwards, 192.168.1.14 didn't work but 192.168.1.40 did.)

    Thanks again