This addon allows to define IoT Rules.
A Rule specifies which Inputs that can be controlled by a certain Key. The Key is owned by an Agent (Employee, Partner or anonymous). The Input is a request from an IoT Device that executes a certain function in Odoo. This function will check if the Key (= the Agent) is allowed by any Rule to "control" the Device. If Odoo answers positively the Agent will be allowed the to execute some Function on the Device (for example open a door or switch on a relay).
auto_awesome What this module does
AI-generated from the code · Odoo 17.0Define IoT access rules that link keys (people) to locks (devices), so Odoo can decide whether a key is allowed to control a device input. Includes a usage log of every accepted or refused access attempt.
This module adds an access-control layer on top of IoT devices. You create Rules that group Locks (the devices or inputs to be controlled) and Keys (the persons or agents holding a virtual key). A Key can be linked to several Rules, and Rules can inherit from parent Rules, so a key allowed on a parent rule is also allowed on its children.
In the IoT menu you get new entries: Rules, Locks (Devices), Keys (Persons) and Usage Log. On a device input form, a manager can press "Generate IoT Lock for this Input" to create the matching lock automatically, and the associated lock is then shown.
When a device sends a key value, Odoo looks up the key, checks its expiration date and the rules of the lock, and answers whether access is granted. Every attempt is recorded in the Usage Log with the lock, the key, the time and the result (accepted or refused), including attempts with an unknown key.
Keys have a unique virtual key value generated automatically, an optional expiration date, and can be attached to partners; a partner form shows a Keys button with the count. A wizard lets you create or update a key for a record and choose its rules. Duplicate virtual keys are blocked, and recursive parent rules are rejected.
Depends on
Required by other modules
Menus it adds
Models and fields (9)
- iot.key · new modelname, active, res_id, key_type, rule_ids (Rules), res_model, action_ids, expiration_date, unique_virtual_key
- iot.lock · new modelname, active, rule_ids (Rules), action_ids, description
- iot.rule · new modelname, active, lock_ids (Locks), parent_ids
- iot.device · extends an existing model
- res.partner · new model
- iot.key.mixin · new modeliot_key_ids, iot_key_count
- iot.key.action · new modelkey_id, result, lock_id, key_name (Key's Name), timestamp (Time), unique_virtual_key
- iot.key.wizard · new modelres_id, rule_ids, res_model, iot_key_id, unique_virtual_key
- iot.device.input · extends an existing modellock_id
Text generated by AI (DeepSeek) from reading the Odoo 17.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: 4 confirmed, 5 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/iot.
terminal Installation and usage
No verified informationInstallation 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.