[ST Edge] Web Requestor: a driver to issue local POST and GET HTTP requests

Hi. Are you not able to do this with the options available in automation routines? If not, you might find useful my timer/counter utility driver which could give you some additional ways to trigger an automation - either every n seconds/hours/days/weeks, or based on a simple counter.

Can you elaborate on what you need to do with the response?

Hi TAustin and thanks for creating the web requestor.

I’d been using this to control my ESP8266 powered blinds.

Unfortunately, the blinds stopped working recently, so I would like to use the web requester to open and close my blinds if possible.

I only had to enter a few details to get it to work previously


I’ve tried to input the same details into the web requester


But so far, all I can see is

The ESP8266 is running a webserver which gives this page


Do you know how I can get the Web Requestor to Open and Close?

Many thanks in advance.

K.

The webserver on your ESP8266 would need to be able to accept an additional parameter to invoke the command you want. Or it would need to provide alternate endpoints - one for open, and one for close. Right now it’s just displaying a simple web page with buttons, expecting the user to press one of them from a browser. The web page is in fact being returned to webrequestor, thus the text you see in the response data field. So you know it’s working, but it’s returning a web page which you really can’t do anything with in webrequestor.

Is it possible your webserver accepts something like this?

GET http://192.168.4.88:80/open

Or


GET http://192.168.4.88:80?cmd=open

Hi @TAustin,

Yes, the url is http://192.168.4.88/close (or open).

Forgive my ignorance
i cant use those urls to have WebRequestor control it?

Edit: The request works when i add the open or close to the url as you state.

How do i use this as a device? Or am i unable to?

Edit: Ive managed to set a routing to open and close the blinds at 8am/sunset
thats almost everything I require.

The only thing i would also like, is to use the device via Alexa.

Is that possible?

Again, thanks for developing this.

Many thanks.

K.

In another thread, Graham suggested this thread to possibly solve my problem with Photon Particle and smartthings (ST). I made a device that uses a Particle to drive a servo that opens a remote HVAC vent in my garage. It used to show up as either on or off in ST. Now it only shows “connected” in ST and will not control the device. The driver is now shown as “LAN Thing” and I used ti have it set up with a handler in the old ST. It worked for 2 years flawlessly. unfortunately I am not very knowledgeable about how the various software components work together so cannot determine if your driver is a good solution path for my issues. Searched Particle Photon and edge drivers and came up empty handed. Any help is greatly appreciated as the HVAC device I designed was an awesome help in my garage and is now basically useless.

Glad you got things working.

For Alexa integration, you’ll need to do it through the creation of some automations, since you won’t be able to control webrequestor directly from Alexa. One way to do it is to create a virtual switch that you can control via Alexa. Then create a couple automation routines: one to execute the specific webrequest for open when the switch is ‘on’, and one to execute the specific webrequest for close when the switch is ‘off’. You’ll find that when you define actions in automation routines for a webrequestor device, you’ll be able to choose which ‘slot’ number to execute. The downside of this setup is having to use the terms ‘on’ and ‘off’ with Alexa instead of ‘open’ or ‘close’. There might an alternative to this with using a virtual blind device to address that, which I think can be controlled from Alexa.

A more stream-lined way to do the automations would to use Rules, where you can actually specify the webrequest itself within the rule. See the readme file for more info and an example.

1 Like

Thanks @TAustin,

In Alexa, you can get past the on / off by setting a trigger for the exact phrase

‘Alexa, open blinds’.

Im not sure how to create a virtual device in ST now that the groovy platform has gone.

Ill do another search for that now.

Thanks again.

K.

There are 4 ways to create virtual devices:

More info in an FAQ: Creating Virtual Devices with the new architecture (Without the IDE) (2023)

2 Likes

Thanks @h0ckeysk8er,

Ive just been to the latter, also by @TAustin, and managed to get it working 100%.

Thanks guys.

K.

1 Like

Hi again,

I have another blind in the living room, ive tried to add that as web request #3 and #4, but when i select it, it says not configured.

Its the same setup just slightly different IP.

How can i fix that?

Edit: even when I input the same IP, i get the same 'Not Configured ’ message.

Many thanks.

K.

That’s usually because something is wrong with the format of the request string. Double check it for correct syntax or post screenshot here so I can take a look.

Hi @TAustin,

Thanks for responding.

The request strings are identical, I even tried using the same IP (The original IP is my bedroom blinds).


I did rename the device to ‘Bedroom Blinds Hardware’, so I could differentiate between this and the virtual device.

Any idea?

Many thanks.

K.

I think Andriod app is showing things slightly different from what I see in my iOS-based app. Can you check the extra fields you aren’t using like Body, More Body, and Headers for both request #1 and #2, and make sure they contain ‘–’ (double dashes)? I’m seeing “Custom trigger=” in your body field - is that something you typed?

Hi @TAustin,

The CustomTrigger= was something from the original project, I’ve now removed that and everything else.


The first 2 #'s still work, but the next 2 don’t.

Many thanks.

K.

You’re missing a colon between GET and http in #3 and #4.

Awesome, thanks for pointing that out! It works.
Sorry for the trouble @TAustin and thanks both.

K.

2 Likes

Do you have any working drivers for yamaha receivers?

I don’t have a Yamaha receiver and don’t author any drivers. I was suggesting that the person who wrote Rules to use with this driver to control their Yamaha amp publish those Rules for others to use.

1 Like

Hi - a have installed the Web Requestor and it appears to be working OK with my SmartThings hub. I am trying to replace a SharpTools routine to play a sound file on a tablet running ActionTiles. The SharpTools string is:
Arguement 1: playSound
Arguement 2: {“url”:“file:///sdcard/download/rooster.mp3”}

I assume I would need to use a web Requestor POST command but how do I structure the URL? The IP is http://192.168.1.xxx:2423

Paul

You may need to do a bit more digging to find the expected HTML request format, as that doesn’t really tell you anything specific. You need to know how those two arguments are expected. Typically they are going to either provided as arguments in the HTML request something like this:

http://192.168.1.xxx:2423/?argument1=playSound&argument2=rooster.mp3

Or, the arguments are provided in JSON format as part of the body of the request like this:

{"argument1": "playSound", "argument2": {"url": "file:///sdcard/download/rooster.mp3"}}

See what more you can find out and I can help to configure your webrequestor request.