Odoo provides External API:
https://www.odoo.com/documentation/11.0/webservices/odoo.html
But it uses XML-RPC and I think it is not easy to implement xml-rpc client on Arduino.
The reason I ask if you can send http requests from Arduino it is you can easily create an simple HTTP endpoint on Odoo, without XML-RPC at all. What you need is a custom Controller: https://www.odoo.com/documentation/11.0/reference/http.html
Something like this:
class ApiController(http.Controller):
@http.route('/api/dost/', methods=['post'], auth='public', csrf=False)
def create_order(self, **kw):
# Play with stuff, E.g:
#env = http.request.env
#werkzeug_request = http.request.httprequest
#werkzeug_request.get_data()
#str_data = werkzeug_request.data
# and other parameters, please read Odoo document
return "ok"
A few things to notice:
auth='public' : because you will not want Odoo to ask Arduino about authentication (username, password)
csrf=False: to disable csrf protection. You may consider another method to secure your API endpoint.
Now you can send a http from Arduino to http://your.com:8069/api/dost
Can you make HTTP requests (GET, POST) from your Arduino to any server?
yes definitely i can