Skip to main content

IoT Input module

Project description

Beta License: AGPL-3 OCA/iot Translate me on Weblate Try me on Runbot

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

Table of contents

Usage

There are two endpoints you can use: Endpoint 1: /iot/<serial>/action

Takes application/x-www-form-urlencoded parameters: passphase, value (where value is a JSON object)

  1. Create a Device on IoT > Config Devices

  2. Access the Inputs section of the device

  3. Create an input. You must define a serial, passphrase, function and model

The function that the system will call must be of the following kind:

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

Where key is the input string send by the device and the result must be a dictionary that will be responded to the device as a JSON.

Endpoint 2: /iot/<device_identification>/multi_input It can be used to send values with multiple data in one POST request such as: - Values for inputs of the same device with different address (multi input) - Values for inputs of the same device with same address, different values (multi event) - Mix of the above (multi input, multi event)

Takes application/x-www-form-urlencoded parameters: passphase, values (a JSON array of JSON objects)

It is called using device_identification and passing two POST parameters: device passphrase and a JSON string containing an array of values for input - The value for the address key can be a string or a numeric (to conserve bytes in memory restricted devices when creating the JSON object) and is converted to string when parsing. - The value for the value key can either be string, number or boolean according to JSON specs. You can see an example of a valid JSON input object in the examples folder, using a few combinations.

It requires the function that the system will call must be of the following kind:

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

Where key is a dict send by the device having at least value for keys: ‘address’, ‘value’

The function must always return a JSON with status and message. If value contains a value with ‘uuid’ as key, it is returned along with the object for the IoT device to identify success/failure per record.

It has full error reporting and the return value is a JSON array of dicts containing at least status and message. Error message respose is at some points generic, though extended logging is done in Odoo server logs.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Creu Blanca

Contributors

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

etobella

This module is part of the OCA/iot project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

File details

Details for the file odoo14_addon_iot_input_oca-14.0.1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for odoo14_addon_iot_input_oca-14.0.1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9c06de0eb74eeb3a7d1d88cf844e707e8b0e291acb4e4396b1a11b962facbe4f
MD5 ad5266e558deb615824c4c31e85dc2a6
BLAKE2b-256 9a5660c7a4c5b5759ab8a77e7fdea192d67daf3f966f191ce791a79ffd6a0b1b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page