OdooWiki OCA HUB

IoT Input

iot_input_oca folder_open OCA/iot open_in_new
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 ú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.0

Permite 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-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 6 confirmadas, 3 sin información de 9 versiones.

terminal Instalación y uso

Documentación de OCA · Odoo 18.0

Hay 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.

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.