Skip to main content

Python library to communicates with devices used by Odoo.(Mainly Point of Sale application)Alternative to Iot Box Odoo solution or Pywebdriver community solution.

Project description

Odoo Drivers

License: AGPL v3 PyPI - Python Version PyPI - Downloads GitLab last commit GitLab stars

This tools is intented to be used with the Odoo Point of sale application. It replaces the Odoo IoT Box or the Community pywebdriver library.

Once installed locally in the cashier computer, devices will be discovered by the tool, once plugged, and communication can be done with the Odoo Point of Sale module.

Table of contents

  1. Run
  2. Usage
  3. Installation
  4. Compatible Plugins
  5. How to Contribute
  6. Credits
  7. Develop

Run

odoo-driver\
  --address 0.0.0.0\
  --port 8069\
  --secure\
  --refresh-devices-delay 1\
  --log-level INFO\
  --log-folder false

(The values displayed above are the default values.

  • -a / --address: address where the web service will be available

  • -p / --port: port where the web service will be available

  • --secure/--unsecure: expose webservice with https (or http, if --unsecure is selected).

  • -r / --refresh-devices-delay: interval in seconds between two checks of devices connected to usb ports.

  • -l / --log-level: Possible values: DEBUG / INFO / SUCCESS / WARNING / ERROR / CRITICAL.

Note: DEBUG will log all the data received, including images received by the printer device. Use INFO level or higher in production outside a debugging situation.

  • -f / --log-folder: Optional directory that will contains logs. If defined, it should exist and be writable.

Usage

Go the home page of the tool, via https://localhost:8069.

If you choose https deployment, you should accept the first time a security exception in your browser.

Pages are available to test connections, see errors, etc.

Installation

Run it manually

  • install the latest released version:
pipx install odoo-driver
  • or Install the latest version:
pipx install git+https://gitlab.com/grap-rhone-alpes/odoo-driver.git

Note: use --python python3.10 (or higher) option, if your default python environment is under python 3.10 version.

Run it as a service

This will create a service (via systemd) that will execute odoo-driver in the background and launches at startup.

wget https://gitlab.com/grap-rhone-alpes/odoo-driver/-/raw/main/debian_install.sh
# (OPTIONAL) adapt the installation script before execution
# - specific argument in the call of odoo-driver in the .service file
# - enable or disable plugins
sudo sh debian_install.sh

Once installed, you can run the following system command.

# Get status of the service
sudo systemctl status odoo-driver.service

# Follow the logs of the service
sudo journalctl -fu odoo-driver.service

Compatible Plugins

Function Protocol URL
Printers ESC/POS odoo-driver-plugin-printer-escpos
Payment Terminals Telium odoo-driver-plugin-payment-telium
LCD Displays ESC/POS odoo-driver-plugin-display-escpos
Scale Toledo odoo-driver-plugin-scale-toledo

How to Contribute

Welcome contributions

  • If the project is not translated into your language, you can propose a translation. (Refer to the update_translation.sh helper script.)

  • If you tested a plugin with a driver that is not referenced in the usb_devices.py file, and if all works correctly, please feel free to make an Merge Request, to mark this device as compatible. (add an image, make a change in usb_devices.py and in the README.md files)

  • If you've encountered a problem or bug that you've solved, the patch will be very welcome !

  • If you face an issue and you have a budget, you can ask for a quotation to try to solve the problem.

Unwelcome contributions

  • Please do not use AI to propose Merge Requests and / or write issues. Such 'contributions' will be closed. (If you don't have time to contribute, don't ask time for review.)

  • Please do not propose a Merge Request before opening first an issue on gitlab, if you want to add new feature, new devices, etc.

Separate contributions

  • If you want to develop a plugin that is not developped, feel free to create a new project, named odoo-driver-plugin-FUNCTION-PROTOCOL. you can take example on the existing projects.

Credits

Authors

Contributors

Extra authorship

The following projects were useful and studied to realize this library:

Images

Develop

Local Installation

To install the odoo-driver library and some plugins, you can refer to this documentation:

https://gitlab.com/grap-rhone-alpes/odoo-driver-env

Documentation

Ressources used to develop this tools:

USB

List of USB devices by code:

Python Plugins

poetry

gevent

flask

Flask & Systemd

Hashing files in folder

Project details


Download files

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

Source Distribution

odoo_driver-2.4.0.tar.gz (154.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odoo_driver-2.4.0-py3-none-any.whl (160.4 kB view details)

Uploaded Python 3

File details

Details for the file odoo_driver-2.4.0.tar.gz.

File metadata

  • Download URL: odoo_driver-2.4.0.tar.gz
  • Upload date:
  • Size: 154.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.0 CPython/3.12.3 Linux/6.17.0-23-generic

File hashes

Hashes for odoo_driver-2.4.0.tar.gz
Algorithm Hash digest
SHA256 c537d288770fc71f8769c7a37ba8aeb9aeecfc1e6e819389f4064d1fd73aaf09
MD5 af5719fcdfaac038a55afe38c3f3fea5
BLAKE2b-256 3f3f759d7202e9c60c8bc934b203db711d4800b3024ee403090c758bee85a0d5

See more details on using hashes here.

File details

Details for the file odoo_driver-2.4.0-py3-none-any.whl.

File metadata

  • Download URL: odoo_driver-2.4.0-py3-none-any.whl
  • Upload date:
  • Size: 160.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.0 CPython/3.12.3 Linux/6.17.0-23-generic

File hashes

Hashes for odoo_driver-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0ef7bf15b099821f29bbb18dcc0136bbbfbef8f360e7f3b2c9b898c9a7f18ea2
MD5 f1db4d3f3d76a847dc451aa62c9709eb
BLAKE2b-256 00b255a0fa940e637bbc045e56116e9a22b41a8cd15fa2c256e06fe7a34bcfd0

See more details on using hashes here.

Supported by

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