OdooWiki OCA HUB
IoT Licencia: AGPL-3

Este complemento permite utilizar un dispositivo para introducir datos en odoo automáticamente.

Abre una URL que un dispositivo puede usar para conectarse (con una contraseña) que solo puede ejecutar una acción específica.

Las entradas son útiles cuando un dispositivo quiere comunicarse con odoo para una acción única y sencilla. De esta forma, el dispositivo no necesita configurarse con un usuario y contraseña de odoo, lo gestiona odoo devices.

Ejemplos:

  • Enviar la temperatura cada tres minutos.
  • Enviar el RFID que el dispositivo ha recibido para realizar alguna acción

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 12.0

Permite que los dispositivos IoT envíen datos a Odoo a través de una dirección web protegida con contraseña, sin necesidad de una cuenta de usuario de Odoo. Cada entrada está vinculada a un dispositivo y desencadena una función elegida en Odoo.

Este módulo añade un nuevo tipo de registro llamado entrada de dispositivo, gestionado desde la pantalla del dispositivo IoT. En el formulario de un dispositivo aparece un botón "Inputs" que muestra cuántas entradas existen, y una entrada de menú kanban para abrirlas.

Cada entrada tiene un nombre, una dirección, un número de serie y una frase de contraseña, y apunta a un modelo y a una función que se ejecuta cuando llegan datos. Las entradas se pueden archivar, y la vista de búsqueda filtra las activas o inactivas.

Los dispositivos llaman a Odoo a través de direcciones web como /iot/<serial>/action, /iot/<serial>/check y /iot/<device_identification>/multi_input. Se comprueban el número de serie y la frase de contraseña, el dispositivo debe estar activo, y la ruta multi-input acepta una lista JSON de valores. Cada llamada ejecuta la función configurada, actualiza la fecha de último contacto del dispositivo y almacena una línea de registro con los argumentos y el resultado. Los errores se capturan y se registran en lugar de interrumpir la llamada.

Los mensajes publicados por la función llamada se etiquetan automáticamente como detectados por el dispositivo. Se concede acceso a los usuarios de IoT para leer y crear, y a los gestores de IoT para el control total.

Depende de

Modelos y campos (4)
  • iot.device · amplía un modelo existenteinput_ids, input_count
  • mail.message · amplía un modelo existente
  • iot.device.input · modelo nuevolang (Language), name, active, serial, address, device_id, action_ids, passphrase, action_count, call_function, call_model_id
  • iot.device.input.action · modelo nuevores, args, kwargs, input_id

Texto generado por IA (DeepSeek) al leer el código de la versión 12.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 1 confirmada, 8 sin información de 9 versiones.

terminal Instalación y uso

Documentación de OCA · Odoo 12.0

Hay dos endpoints que puede usar: Endpoint 1: /iot//action

Toma application/x-www-form-urlencoded parámetros: passphase, value (donde value es un objeto JSON)

  • Crear un Device en IoT > Config Devices
  • Acceder a la sección Inputs del dispositivo
  • Crear un input. Debe definir un serial, passphrase, function y model

La función que el sistema llamará debe ser del siguiente tipo:

@api.model
    def call_function(self, key):
    return {}

Donde key es la cadena de entrada enviada por el dispositivo y el resultado debe ser un diccionario que se responderá al dispositivo como JSON.

Endpoint 2: /iot//multi_input Se puede usar para enviar valores con múltiples datos en una sola petición POST como:

  • Valores para inputs del mismo dispositivo con distinta address (multi input)
  • Valores para inputs del mismo dispositivo con la misma address, distintos values (multi event)
  • Mezcla de los anteriores (multi input, multi event)

Toma application/x-www-form-urlencoded parámetros: passphase, values (un array JSON de objetos JSON)

Se llama usando device_identification y pasando dos parámetros POST: device passphrase y una cadena JSON que contiene un array de valores para input

  • El valor para la clave address puede ser una cadena o un numérico (para conservar bytes en memoria

dispositivos restringidos al crear el objeto JSON) y se convierte a cadena al parsear.

  • El valor para la clave value puede ser cadena, número o booleano según

las especificaciones JSON. Puede ver un ejemplo de un objeto de entrada JSON válido en la carpeta de ejemplos, usando algunas combinaciones.

Requiere que la función que el sistema llamará debe ser del siguiente tipo:

@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'}

Donde key es un dict enviado por el dispositivo que tiene al menos valor para las claves: 'address', 'value'

La función siempre debe devolver un JSON con status y message. Si value contiene un valor con 'uuid' como clave, se devuelve junto con el objeto para que el dispositivo IoT identifique éxito/fallo por registro.

Tiene informes de errores completos y el valor de retorno es un array JSON de dicts que contienen al menos status y message. La respuesta del mensaje de error es en algunos puntos genérica, aunque se realiza un registro extendido en los logs del servidor de Odoo.

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.