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 única y simple acción. 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 18.0Permite que los dispositivos IoT envíen datos a Odoo a través de una URL protegida con contraseña, sin necesidad de una cuenta de usuario de Odoo. Cada dispositivo puede tener una o más entradas que activan automáticamente una función de Odoo elegida.
Este módulo añade un nuevo concepto llamado entrada de dispositivo. En cualquier registro de dispositivo IoT obtienes un botón Inputs (y una entrada de menú Inputs en la vista kanban) que muestra cuántas entradas tiene el dispositivo; al hacer clic en él se abre la lista de entradas de ese dispositivo.
Una entrada tiene un nombre, una dirección, un serial, una passphrase, un idioma y un destino: un modelo de Odoo más la función a llamar. Las entradas se pueden archivar, y la vista de búsqueda te permite filtrar las activas o inactivas.
Los dispositivos se conectan a Odoo a través de URLs dedicadas usando el serial y la passphrase en lugar de un inicio de sesión de usuario. Una sola llamada envía un valor; una llamada multi-entrada envía un array JSON de valores, cada uno con su propia dirección. El módulo comprueba que se proporcionan el serial y la passphrase y que el dispositivo está activo, y luego ejecuta la función configurada con la información del dispositivo disponible en el contexto. Si la entrada está inactiva o la dirección es desconocida, se devuelve un error y no se registra nada.
Cada llamada actualiza la fecha del último contacto del dispositivo y crea un registro de acción que almacena los argumentos y el resultado, para que puedas revisar lo que envió el dispositivo y lo que respondió Odoo. Los errores lanzados por la función llamada se capturan, se registran y se devuelven como un estado de fallo en lugar de romper la petición.
Depende de
Lo necesitan otros módulos
Modelos y campos (3)
- iot.device · amplía un modelo existenteinput_ids, input_count
- 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 18.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-03Estado de confirmación: 6 confirmadas, 3 sin información de 9 versiones.
Fuentes · Odoo 17.0
Confirmado el 2026-11-03 en la rama 17.0 de OCA/iot.
terminal Instalación y uso
Documentación de OCA · Odoo 18.0Hay dos endpoints que puede usar: Endpoint 1: /iot/\/action
Toma parámetros application/x-www-form-urlencoded: passphase, value (donde value es un objeto JSON)
- Crear un Device en IoT \> Config Devices
- Acceder a la sección Inputs del device
- 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 input enviada por el device y el resultado debe ser un diccionario que se responderá al device 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 device con distinta address (multi input) - Valores para inputs del mismo device con la misma address, distintos values (multi event) - Mezcla de los anteriores (multi input, multi event)
Toma parámetros application/x-www-form-urlencoded: 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 values para input - El valor para la key address puede ser una cadena o un numérico (para conservar bytes en dispositivos con memoria restringida al crear el objeto JSON) y se convierte a cadena al parsear. - El valor para la key value puede ser cadena, número o booleano según las especificaciones de JSON. Puede ver un ejemplo de un objeto JSON de input 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 device que tiene al menos value para las keys: 'address', 'value'
La función debe devolver siempre un JSON con status y message. Si value contiene un valor con 'uuid' como key, se devuelve junto con el objeto para que el dispositivo IoT identifique éxito/fallo por registro.
Tiene reporte de errores completo 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 logging 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.
Las instrucciones de instalación, el paquete de distribución, las dependencias y los pasos de configuración no se muestran porque todavía no se han verificado en la documentación del módulo para ninguna versión.
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.