IoT Input

iot_input_oca
REPOSITORY
REPOSITORYOCA/iot
GIT
GIThttps://github.com/OCA/iot.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/iot/tree/17.0/iot_input_oca
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYIoT
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, FernandoRomera
WEBSITE
WEBSITEhttps://github.com/OCA/iot
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/iot:
    - iot_oca
odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
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

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
iot_device_form iot.device.form iot.device xpath Inherits iot_oca.iot_device_form
iot_device_input_form iot.device.input.form iot.device.input form New
iot_device_input_search iot.device.input.search iot.device.input search New
iot_device_input_tree iot.device.input.tree iot.device.input tree New
iot_device_kanban iot.device.kanban iot.device xpath Inherits iot_oca.iot_device_kanban
Models touched (3)

New fields (2)
  • input_count Integer
    compute='_compute_input_count'
  • input_ids One2many → iot.device.input
    inverse_name='device_id' args: 'iot.device.input'
Public methods (2)
  • action_show_input(self)
  • parse_single_input(self, uuid=False, address=False, **kwargs)
    Handle single input for device :param dict value: Dict containing at least keys 'address', 'value' :returns: dict with keys 'status', 'message' where: - status='ok' when value is parsed without errors - status='error' and message='error message' when error occurs If value contains a value with key 'uuid', it is passed in the return dict to identify result for each entry at the iot end :rtype: dict

New fields (11)
  • action_count Integer
    compute='_compute_action_count'
  • action_ids One2many → iot.device.input.action
    inverse_name='input_id' readonly=True args: 'iot.device.input.action'
  • active Boolean
    default=True
  • address Char
  • call_function Char
    required=True
  • call_model_id Many2one → ir.model
    args: 'ir.model'
  • device_id Many2one → iot.device
    auto_join=True readonly=True required=True args: 'iot.device'
  • lang Selection
    selection=<expr> string='Language'
  • name Char
    required=True
  • passphrase Char
  • serial Char
Public methods (6)
  • call_device(self, **kwargs)
  • get_device(self, serial, passphrase)
    @api.model
  • parse_args(self, serial, passphrase)
  • parse_multi_input(self, values)
    Handle multiple inputs for device :param list values: Values is a list of dicts with at least values for keys 'address', 'value' Each dict in the list can have: - Different address (multi input) - Same address, different values (multi event) - Mix of the above (multi input, multi event) :returns: JSON encodable list of dicts :rtype: list
  • test_input_device(self, value)
  • test_model_function(self, value)

New fields (4)
  • args Char
  • input_id Many2one → iot.device.input
    args: 'iot.device.input'
  • kwargs Char
  • res Char
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/iot
GIT
GIThttps://github.com/OCA/iot.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/iot/tree/16.0/iot_input_oca
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYIoT
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSEnric Tobella, Weblate, OCA-git-bot, oca-ci, maso
WEBSITE
WEBSITEhttps://github.com/OCA/iot
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:54:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/iot:
    - iot_oca
odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
iot_device_form iot.device.form iot.device xpath Inherits iot_oca.iot_device_form
iot_device_input_form iot.device.input.form iot.device.input form New
iot_device_input_search iot.device.input.search iot.device.input search New
iot_device_input_tree iot.device.input.tree iot.device.input tree New
iot_device_kanban iot.device.kanban iot.device xpath Inherits iot_oca.iot_device_kanban
Models touched (3)

New fields (2)
  • input_count Integer
    compute='_compute_input_count'
  • input_ids One2many → iot.device.input
    inverse_name='device_id' args: 'iot.device.input'
Public methods (2)
  • action_show_input(self)
  • parse_single_input(self, uuid=False, address=False, **kwargs)
    Handle single input for device :param dict value: Dict containing at least keys 'address', 'value' :returns: dict with keys 'status', 'message' where: - status='ok' when value is parsed without errors - status='error' and message='error message' when error occurs If value contains a value with key 'uuid', it is passed in the return dict to identify result for each entry at the iot end :rtype: dict

New fields (11)
  • action_count Integer
    compute='_compute_action_count'
  • action_ids One2many → iot.device.input.action
    inverse_name='input_id' readonly=True args: 'iot.device.input.action'
  • active Boolean
    default=True
  • address Char
  • call_function Char
    required=True
  • call_model_id Many2one → ir.model
    args: 'ir.model'
  • device_id Many2one → iot.device
    auto_join=True readonly=True required=True args: 'iot.device'
  • lang Selection
    selection=<expr> string='Language'
  • name Char
    required=True
  • passphrase Char
  • serial Char
Public methods (6)
  • call_device(self, **kwargs)
  • get_device(self, serial, passphrase)
    @api.model
  • parse_args(self, serial, passphrase)
  • parse_multi_input(self, values)
    Handle multiple inputs for device :param list values: Values is a list of dicts with at least values for keys 'address', 'value' Each dict in the list can have: - Different address (multi input) - Same address, different values (multi event) - Mix of the above (multi input, multi event) :returns: JSON encodable list of dicts :rtype: list
  • test_input_device(self, value)
  • test_model_function(self, value)

New fields (4)
  • args Char
  • input_id Many2one → iot.device.input
    args: 'iot.device.input'
  • kwargs Char
  • res Char
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/iot
GIT
GIThttps://github.com/OCA/iot.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/iot/tree/15.0/iot_input_oca
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYIoT
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSOCA Transbot, Weblate, OCA-git-bot, oca-ci, Olga Marco
WEBSITE
WEBSITEhttps://github.com/OCA/iot
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:44
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/iot:
    - iot_oca
odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
iot_device_form iot.device.form iot.device xpath Inherits iot_oca.iot_device_form
iot_device_input_form iot.device.input.form iot.device.input form New
iot_device_input_search iot.device.input.search iot.device.input search New
iot_device_input_tree iot.device.input.tree iot.device.input tree New
iot_device_kanban iot.device.kanban iot.device xpath Inherits iot_oca.iot_device_kanban
Models touched (3)

New fields (2)
  • input_count Integer
    compute='_compute_input_count'
  • input_ids One2many → iot.device.input
    inverse_name='device_id' args: 'iot.device.input'
Public methods (2)
  • action_show_input(self)
  • parse_single_input(self, uuid=False, address=False, **kwargs)
    Handle single input for device :param dict value: Dict containing at least keys 'address', 'value' :returns: dict with keys 'status', 'message' where: - status='ok' when value is parsed without errors - status='error' and message='error message' when error occurs If value contains a value with key 'uuid', it is passed in the return dict to identify result for each entry at the iot end :rtype: dict

New fields (11)
  • action_count Integer
    compute='_compute_action_count'
  • action_ids One2many → iot.device.input.action
    inverse_name='input_id' readonly=True args: 'iot.device.input.action'
  • active Boolean
    default=True
  • address Char
  • call_function Char
    required=True
  • call_model_id Many2one → ir.model
    args: 'ir.model'
  • device_id Many2one → iot.device
    auto_join=True readonly=True required=True args: 'iot.device'
  • lang Selection
    selection=<expr> string='Language'
  • name Char
    required=True
  • passphrase Char
  • serial Char
Public methods (6)
  • call_device(self, **kwargs)
  • get_device(self, serial, passphrase)
    @api.model
  • parse_args(self, serial, passphrase)
  • parse_multi_input(self, values)
    Handle multiple inputs for device :param list values: Values is a list of dicts with at least values for keys 'address', 'value' Each dict in the list can have: - Different address (multi input) - Same address, different values (multi event) - Mix of the above (multi input, multi event) :returns: JSON encodable list of dicts :rtype: list
  • test_input_device(self, value)
  • test_model_function(self, value)

New fields (4)
  • args Char
  • input_id Many2one → iot.device.input
    args: 'iot.device.input'
  • kwargs Char
  • res Char
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/iot
GIT
GIThttps://github.com/OCA/iot.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/iot/tree/14.0/iot_input_oca
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYIoT
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSEnric Tobella, Weblate, OCA-git-bot, oca-ci, Núria Sancho
WEBSITE
WEBSITEhttps://github.com/OCA/iot
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/iot:
    - iot_oca
odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
iot_device_form iot.device.form iot.device xpath Inherits iot_oca.iot_device_form
iot_device_input_form iot.device.input.form iot.device.input form New
iot_device_input_search iot.device.input.search iot.device.input search New
iot_device_input_tree iot.device.input.tree iot.device.input tree New
iot_device_kanban iot.device.kanban iot.device xpath Inherits iot_oca.iot_device_kanban
Models touched (3)

New fields (2)
  • input_count Integer
    compute='_compute_input_count'
  • input_ids One2many → iot.device.input
    inverse_name='device_id' args: 'iot.device.input'
Public methods (2)
  • action_show_input(self)
  • parse_single_input(self, uuid=False, address=False, **kwargs)
    Handle single input for device :param dict value: Dict containing at least keys 'address', 'value' :returns: dict with keys 'status', 'message' where: - status='ok' when value is parsed without errors - status='error' and message='error message' when error occurs If value contains a value with key 'uuid', it is passed in the return dict to identify result for each entry at the iot end :rtype: dict

New fields (11)
  • action_count Integer
    compute='_compute_action_count'
  • action_ids One2many → iot.device.input.action
    inverse_name='input_id' readonly=True args: 'iot.device.input.action'
  • active Boolean
    default=True
  • address Char
  • call_function Char
    required=True
  • call_model_id Many2one → ir.model
    args: 'ir.model'
  • device_id Many2one → iot.device
    auto_join=True readonly=True required=True args: 'iot.device'
  • lang Selection
    selection=<expr> string='Language'
  • name Char
    required=True
  • passphrase Char
  • serial Char
Public methods (6)
  • call_device(self, **kwargs)
  • get_device(self, serial, passphrase)
    @api.model
  • parse_args(self, serial, passphrase)
  • parse_multi_input(self, values)
    Handle multiple inputs for device :param list values: Values is a list of dicts with at least values for keys 'address', 'value' Each dict in the list can have: - Different address (multi input) - Same address, different values (multi event) - Mix of the above (multi input, multi event) :returns: JSON encodable list of dicts :rtype: list
  • test_input_device(self, value)
  • test_model_function(self, value)

New fields (4)
  • args Char
  • input_id Many2one → iot.device.input
    args: 'iot.device.input'
  • kwargs Char
  • res Char
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/iot
GIT
GIThttps://github.com/OCA/iot.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/iot/tree/13.0/iot_input_oca
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYIoT
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca
COMMITTERS
COMMITTERSEnric Tobella, oca-travis, Weblate, OCA-git-bot, oca-ci, Olga Marco
WEBSITE
WEBSITEhttps://github.com/OCA/iot
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/iot:
    - iot_output_oca
    - iot_oca
odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
iot_device_form iot.device.form iot.device xpath Inherits iot_oca.iot_device_form
iot_device_input_action_search iot.device.input.action.search iot.device.input.action search New
iot_device_input_action_tree iot.device.input.action.tree iot.device.input.action tree New
iot_device_input_form iot.device.input.form iot.device.input form New
iot_device_input_search iot.device.input.search iot.device.input search New
iot_device_input_tree iot.device.input.tree iot.device.input tree New
iot_device_kanban iot.device.kanban iot.device xpath Inherits iot_oca.iot_device_kanban
Models touched (4)

New fields (2)
  • input_count Integer
    compute='_compute_input_count'
  • input_ids One2many → iot.device.input
    inverse_name='device_id' args: 'iot.device.input'
Public methods (3)
  • action_show_input(self)
  • parse_multi_input(self, device_identification, passphrase, values)
    @api.model
    Handle multiple inputs for device :param string device_identification: Device identification. :param string passphrase: Device passphrase. :param list values: Values is a list of dicts with at least values for keys 'address', 'value' Each dict in the list can have: - Different address (multi input) - Same address, different values (multi event) - Mix of the above (multi input, multi event) :returns: JSON encodable list of dicts :rtype: list
  • parse_single_input(self, uuid=False, address=False, **kwargs)
    Handle single input for device :param dict value: Dict containing at least keys 'address', 'value' :returns: dict with keys 'status', 'message' where: - status='ok' when value is parsed without errors - status='error' and message='error message' when error occurs If value contains a value with key 'uuid', it is passed in the return dict to identify result for each entry at the iot end :rtype: dict

New fields (12)
  • action_count Integer
    compute='_compute_action_count'
  • action_ids One2many → iot.device.input.action
    inverse_name='input_id' readonly=True args: 'iot.device.input.action'
  • active Boolean
    default=True
  • address Char
  • call_function Char
    required=True
  • call_model_id Many2one → ir.model
    args: 'ir.model'
  • device_id Many2one → iot.device
    auto_join=True ondelete='cascade' readonly=True required=True args: 'iot.device'
  • lang Selection
    selection=<expr> string='Language'
  • name Char
    required=True
  • passphrase Char
  • serial Char
  • verbose_logging Boolean
Public methods (6)
  • call_device(self, **kwargs)
  • get_device(self, serial, passphrase)
    @api.model
  • parse_args(self, serial, passphrase)
  • show_actions(self)
  • test_input_device(self, value)
  • test_model_function(self, value)

New fields (4)
  • args Char
  • input_id Many2one → iot.device.input
    ondelete='cascade' args: 'iot.device.input'
  • kwargs Char
  • res Char
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals)
    @api.model
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/iot
PULL REQUEST
PULL REQUEST[18.0][MIG] iot_input_oca (#111)