This addon allows to use a device in order to input data to odoo automatically.
It opens a URL that a device can use to connect (with a password) that can only execute an specific action.
Inputs are useful when a device wants to communicate to odoo for a single and simple action. This way, the device does not need to be configured with a odoo user and password, it is handled by odoo devices.
Examples:
- Sending the temperature every three minutes.
- Sending the RFID that the device has received in order to perform some action
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Lets IoT devices send data into Odoo through a password-protected URL, without needing an Odoo user account. Each device can have one or more inputs that trigger a chosen Odoo function automatically.
This module adds a new concept called a device input. On any IoT device record you get an Inputs button (and an Inputs menu entry in the kanban view) showing how many inputs the device has; clicking it opens the list of inputs for that device.
An input has a name, an address, a serial, a passphrase, a language, and a target: an Odoo model plus the function to call. Inputs can be archived, and the search view lets you filter active or inactive ones.
Devices connect to Odoo through dedicated URLs using the serial and passphrase instead of a user login. A single call sends one value; a multi-input call sends a JSON array of values, each with its own address. The module checks that the serial and passphrase are provided and that the device is active, then runs the configured function with the device information available in the context. If the input is inactive or the address is unknown, an error is returned and nothing is logged.
Every call updates the device's last contact date and creates an action record storing the arguments and the result, so you can review what the device sent and what Odoo answered. Errors raised by the called function are caught, logged, and returned as a failure status instead of breaking the request.
Depends on
Required by other modules
Models and fields (3)
- iot.device · extends an existing modelinput_ids, input_count
- iot.device.input · new modellang (Language), name, active, serial, address, device_id, action_ids, passphrase, action_count, call_function, call_model_id
- iot.device.input.action · new modelres, args, kwargs, input_id
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 6 confirmed, 3 with no information of 9 versions.
Sources · Odoo 15.0
Confirmed on 2026-11-03 in branch 15.0 of OCA/iot.
terminal Installation and usage
OCA documentation · Odoo 18.0Usage
Source · Odoo 18.0There are two endpoints you can use: Endpoint 1: /iot/\/action
Takes application/x-www-form-urlencoded parameters: passphase, value (where value is a JSON object)
- Create a Device on IoT \> Config Devices
- Access the Inputs section of the device
- Create an input. You must define a serial, passphrase, function and model
The function that the system will call must be of the following kind:
@api.model def call_function(self, key): return {}
Where key is the input string send by the device and the result must be a dictionary that will be responded to the device as a JSON.
Endpoint 2: /iot/\/multi_input It can be used to send values with multiple data in one POST request such as: - Values for inputs of the same device with different address (multi input) - Values for inputs of the same device with same address, different values (multi event) - Mix of the above (multi input, multi event)
Takes application/x-www-form-urlencoded parameters: passphase, values (a JSON array of JSON objects)
It is called using device_identification and passing two POST parameters: device passphrase and a JSON string containing an array of values for input - The value for the address key can be a string or a numeric (to conserve bytes in memory restricted devices when creating the JSON object) and is converted to string when parsing. - The value for the value key can either be string, number or boolean according to JSON specs. You can see an example of a valid JSON input object in the examples folder, using a few combinations.
It requires the function that the system will call must be of the following kind:
@api.model def call_function(self, key): 'do something if err: return {'status': 'error', 'message': 'The error message you want to send to the device'} return {'status': 'ok', 'message': 'Optional success message'}
Where key is a dict send by the device having at least value for keys: 'address', 'value'
The function must always return a JSON with status and message. If value contains a value with 'uuid' as key, it is returned along with the object for the IoT device to identify success/failure per record.
It has full error reporting and the return value is a JSON array of dicts containing at least status and message. Error message respose is at some points generic, though extended logging is done in Odoo server logs.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.