duckredbeard
Posts: 46
Joined: Mon Apr 29, 2019 1:53 am

How do I do an HTTP POST?

Mon Apr 29, 2019 2:06 am

Ok, this is my first project. Go easy on me. I would search, but I'm not even sure what the key words are that I should be using. Here is what I hope to accomplish...

My current garage door project has a limit switch that enables a light. An old Android phone monitors that light. When the garage door opens and the light comes on, it sends my phone a message, using Tasker and AutoRemote (enter task). My phone receives that message and displays a notification, showing a predetermined message and time stamp. When the door is closed and the light goes out, it is expected to send a different message (exit task), which again causes a different notification. The "exit task" of this does not always fire because it doesn't capture that the light went out if it had been on for more than a few minutes.

Using Tasker and Join, I am able to create a few URLs that will accomplish the same "trigger" event as the light being seen/unseen. If your browser hits on one of those URLs, my phone gets a keyword message. When it gets that keyword message, my phone displays a notification, based on the keyword (open or closed).

What I need the Pi to do is monitor the hi/lo state of the switch, or either throw of that switch, and "hit" the appropriate URL so that my phone gets the event.

TL;DR - I need the Pi to do HTTP POST when a switch is opened and closed.
You can't know your limits until you exceed them.

User avatar
neilgl
Posts: 947
Joined: Sun Jan 26, 2014 8:36 pm
Location: Near Aston Martin factory

Re: How do I do an HTTP POST?

Mon Apr 29, 2019 9:40 am

Maybe you could have a python program on the pi looking at the state of a switch connected to a pi GPIO pin, then send a POST to the approprate URL (using the python “requests” library). Note you don’t want more than 3.3 volts on the pi GPIO pins.

Also you could use curl from the pi command line to test the POSTs to the URLs.

duckredbeard
Posts: 46
Joined: Mon Apr 29, 2019 1:53 am

Re: How do I do an HTTP POST?

Mon Apr 29, 2019 10:13 am

I would prefer the GPIO input be monitoring a ground/not ground state. How do I do the "requests" library?

I have seen some dialog on the curl method and it seems to be popular. I just don't know how to put it in python. I have zero experience with this other than research.
You can't know your limits until you exceed them.

scotty101
Posts: 3711
Joined: Fri Jun 08, 2012 6:03 pm

Re: How do I do an HTTP POST?

Mon Apr 29, 2019 1:51 pm

Python-requests is a very well documented library
https://2.python-requests.org/en/master/

Here is a link to the perform an HTTP POST
https://2.python-requests.org/en/master ... t-requests
Electronic and Computer Engineer
Pi Interests: Home Automation, IOT, Python and Tkinter

duckredbeard
Posts: 46
Joined: Mon Apr 29, 2019 1:53 am

Re: How do I do an HTTP POST?

Mon Apr 29, 2019 3:10 pm

Got this going...

>>>r = requests.post("http://bit.ly/XXXXXXX")

and I get the notification on my phone and living room lights turned on. Yes, that was the desired result. Now I just gotta get it to trigger with the switch(es). One piece at a time, I will get there.

And I thought Tasker was a steep learning curve!
You can't know your limits until you exceed them.

Return to “Beginners”