[IMP] iot: refactor and update configuration documentation
Restructure and update the iot documentation closes odoo/documentation#11929 Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
@ -584,8 +584,8 @@ provide the following information:
|
|||||||
- your company's name, address, and legal structure; and
|
- your company's name, address, and legal structure; and
|
||||||
- the Mac address of your IoT Box.
|
- the Mac address of your IoT Box.
|
||||||
|
|
||||||
Once your IoT box is certified, :doc:`connect <../../general/iot/config/connect>` it to your
|
Once your IoT box is certified, :doc:`connect <../../general/iot/connect>` it to your database. To
|
||||||
database. To verify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the
|
verify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the
|
||||||
:guilabel:`IOT Device` section, which should display the FDM.
|
:guilabel:`IOT Device` section, which should display the FDM.
|
||||||
|
|
||||||
.. image:: belgium/iot-devices.png
|
.. image:: belgium/iot-devices.png
|
||||||
|
@ -1,14 +1,87 @@
|
|||||||
:nosearch:
|
|
||||||
:show-content:
|
:show-content:
|
||||||
:hide-page-toc:
|
:hide-page-toc:
|
||||||
:show-toc:
|
:nosearch:
|
||||||
|
|
||||||
========================
|
========================
|
||||||
Internet of Things (IoT)
|
Internet of Things (IoT)
|
||||||
========================
|
========================
|
||||||
|
|
||||||
|
Odoo Internet of Things (IoT) allows to connect physical devices such as barcode scanners, receipt
|
||||||
|
printers, payment terminals, measurement tools, etc. to an Odoo database using an IoT system.
|
||||||
|
|
||||||
|
The following IoT systems are supported:
|
||||||
|
|
||||||
|
- :doc:`IoT box <iot/iot_box>`: micro-computer, plug-and-play device (i.e., the Odoo IoT program is
|
||||||
|
pre-installed);
|
||||||
|
- :doc:`Windows virtual IoT <iot/windows_iot>`: Odoo IoT program for Windows that can be installed
|
||||||
|
on a Windows computer.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
- :abbr:`MRP (Material Requirement Planning)` devices, including cameras and measurement tools,
|
||||||
|
are not compatible with Windows virtual IoT.
|
||||||
|
- Multiple IoT systems can be used at the same time.
|
||||||
|
- It is also possible to create a Windows Virtual Machine on a MacOS/Linux computer. However,
|
||||||
|
this option is not supported by Odoo, and no troubleshooting assistance will be provided.
|
||||||
|
|
||||||
|
.. _iot/iot/iot-subscription:
|
||||||
|
|
||||||
|
IoT box subscription
|
||||||
|
====================
|
||||||
|
|
||||||
|
An IoT box subscription is required for production use of IoT systems. If you have issues related
|
||||||
|
to your subscription, contact the database's account manager or Odoo partner for assistance.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
If the subscription is linked to an `Odoo.com <https://www.odoo.com>`_ portal user, check the
|
||||||
|
information on the portal's subscription page.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
- `Odoo's compatible IoT devices <https://www.odoo.com/app/iot-hardware>`_
|
||||||
|
- `Odoo Tutorials: Internet of Things (IoT) Tutorials
|
||||||
|
<https://www.odoo.com/slides/internet-of-things-iot-175>`_
|
||||||
|
- `IoT system FAQ <https://www.odoo.com/app/iot-faq>`_
|
||||||
|
|
||||||
|
.. cards::
|
||||||
|
|
||||||
|
.. card:: IoT box
|
||||||
|
:target: iot/iot_box
|
||||||
|
:large:
|
||||||
|
|
||||||
|
Set up an IoT box.
|
||||||
|
|
||||||
|
.. card:: Windows virtual IoT
|
||||||
|
:target: iot/windows_iot
|
||||||
|
:large:
|
||||||
|
|
||||||
|
Set up Windows virtual IoT.
|
||||||
|
|
||||||
|
.. card:: IoT system connection to Odoo
|
||||||
|
:target: iot/connect
|
||||||
|
|
||||||
|
Connect the IoT system to your Odoo database and troubleshoot potential connection issues.
|
||||||
|
|
||||||
|
.. card:: Devices
|
||||||
|
:target: iot/devices
|
||||||
|
|
||||||
|
Connect devices such as printers, screens, measurement tools, etc., to the IoT system.
|
||||||
|
|
||||||
|
.. card:: HTTPS certificate
|
||||||
|
:target: iot/iot_advanced/https_certificate_iot
|
||||||
|
|
||||||
|
Verify your IoT system and database meet the eligibility requirements for HTTPS certificate
|
||||||
|
generation and address any related issues.
|
||||||
|
|
||||||
|
.. card:: IoT system updates
|
||||||
|
:target: iot/iot_advanced/updating_iot
|
||||||
|
|
||||||
|
Update your IoT system's image, core code, and handlers to benefit from the latest IoT fixes
|
||||||
|
and features or reset the IoT system if needed.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
|
|
||||||
iot/config
|
iot/iot_box
|
||||||
|
iot/windows_iot
|
||||||
|
iot/connect
|
||||||
|
iot/iot_advanced
|
||||||
iot/devices
|
iot/devices
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
:nosearch:
|
|
||||||
|
|
||||||
=============
|
|
||||||
Configuration
|
|
||||||
=============
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:titlesonly:
|
|
||||||
:glob:
|
|
||||||
|
|
||||||
config/connect
|
|
||||||
config/pos
|
|
||||||
config/https_certificate_iot
|
|
||||||
config/updating_iot
|
|
||||||
config/troubleshooting
|
|
||||||
config/windows_iot
|
|
||||||
config/ssh_connect
|
|
@ -1,181 +0,0 @@
|
|||||||
==========================
|
|
||||||
Connect an IoT box to Odoo
|
|
||||||
==========================
|
|
||||||
|
|
||||||
An Internet of Things (IoT) box is a micro-computer device that allows for the connection of input
|
|
||||||
and output devices to an Odoo database. An :abbr:`IoT (Internet of Things)` box subscription is
|
|
||||||
required in order to use the :abbr:`IoT (Internet of Things)` box with a secured connection. A
|
|
||||||
computer is also required to set up the :abbr:`IoT (Internet of Things)` box.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
`IoT Box FAQ <https://www.odoo.com/app/iot-faq>`_
|
|
||||||
|
|
||||||
Begin the :abbr:`IoT (Internet of Things)` configuration process by :ref:`installing the IoT app
|
|
||||||
<general/install>` on the Odoo database through the :menuselection:`Apps` application.
|
|
||||||
|
|
||||||
.. image:: connect/install-iot-app.png
|
|
||||||
:align: center
|
|
||||||
:alt: The Internet of Things (IoT) app on the Odoo database.
|
|
||||||
|
|
||||||
Next, after the *IoT app* is installed, navigate to :menuselection:`IoT app --> IoT Boxes`, and then
|
|
||||||
click on the :guilabel:`Connect` button located in the upper-left corner of the :menuselection:`IoT
|
|
||||||
Boxes` dashboard.
|
|
||||||
|
|
||||||
.. image:: connect/connect-iot.png
|
|
||||||
:align: center
|
|
||||||
:alt: Connecting an IoT box to the Odoo database.
|
|
||||||
|
|
||||||
There are two recommended ways to connect the :abbr:`IoT (Internet of Things)` box to the database
|
|
||||||
once the *IoT app* is installed. Follow the steps in either of the next two sections to connect the
|
|
||||||
:abbr:`IoT (Internet of Things)` box via :ref:`wired ethernet connection <iot_connect/ethernet>` or
|
|
||||||
via :ref:`WiFi <iot_connect/wifi>`.
|
|
||||||
|
|
||||||
.. image:: connect/connect-iot-box.png
|
|
||||||
:align: center
|
|
||||||
:alt: Connection steps for a wired connection or WiFi connection.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
The disk image that the :abbr:`IoT (Internet of Things)` box SD card is formatted with is unique
|
|
||||||
to the version of the Odoo database that the :abbr:`IoT (Internet of Things)` box is running on.
|
|
||||||
Ensure that the :abbr:`IoT (Internet of Things)` box is :ref:`flashed <iot/config/flash>` with
|
|
||||||
the most up-to-date disk image.
|
|
||||||
|
|
||||||
.. _iot_connect/ethernet:
|
|
||||||
|
|
||||||
Ethernet connection
|
|
||||||
===================
|
|
||||||
|
|
||||||
The following is the process to connect the :abbr:`IoT (Internet of Things)` box via an ethernet
|
|
||||||
cable to the Odoo database (by way of the ethernet port; RJ-45).
|
|
||||||
|
|
||||||
First, connect all wired devices to the :abbr:`IoT (Internet of Things)` box (ethernet, :abbr:`USB
|
|
||||||
(Universal Serial Bus)` devices, etc.). At minimum, an HDMI screen should be connected. Then, plug
|
|
||||||
the :abbr:`IoT (Internet of Things)` box into a power source.
|
|
||||||
|
|
||||||
Immediately after the unit powers on and boots up, read the *pairing code* from the screen or from
|
|
||||||
the printout of a receipt printer connected to the :abbr:`IoT (Internet of Things)` box.
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
By default, the :abbr:`IoT (Internet of Things)` box will display the *pairing code* for a
|
|
||||||
maximum of 5 minutes after the unit boots up. After 5 minutes, the *pairing code* will disappear
|
|
||||||
for security purposes and the :abbr:`IoT (Internet of Things)` box will need to be rebooted
|
|
||||||
manually by unplugging the unit from the power source for ten seconds and re-plugging it back in.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
If no screen is attached to the :abbr:`IoT (Internet of Things)` box, then the *pairing code* can
|
|
||||||
be accessed from the :abbr:`IoT (Internet of Things)` box homepage by clicking on the
|
|
||||||
:guilabel:`POS Display` button. For instructions on how to access the :abbr:`IoT (Internet of
|
|
||||||
Things)` box homepage visit :ref:`iot_connect/token`.
|
|
||||||
|
|
||||||
On the computer, navigate to :menuselection:`IoT app --> IoT Boxes`, and then click on the
|
|
||||||
:guilabel:`Connect` button located in the upper-left corner of the the :menuselection:`IoT Boxes`
|
|
||||||
dashboard. Input the *pairing code* in the :guilabel:`Pairing Code` field and click on the
|
|
||||||
:guilabel:`Pair` button. The database will now link to the :abbr:`IoT (Internet of Things)` box and
|
|
||||||
it will appear on the :menuselection:`IoT Boxes` page.
|
|
||||||
|
|
||||||
.. _iot_connect/wifi:
|
|
||||||
|
|
||||||
WiFi connection
|
|
||||||
===============
|
|
||||||
|
|
||||||
The following is the process to connect the :abbr:`IoT (Internet of Things)` box via a WiFi
|
|
||||||
connection to the Odoo database.
|
|
||||||
|
|
||||||
First, ensure there is no ethernet cable plugged into the :abbr:`IoT (Internet of Things)` box.
|
|
||||||
Then, connect all wired devices to the :abbr:`IoT (Internet of Things)` box (:abbr:`USB (Universal
|
|
||||||
Serial Bus)` devices, etc.).
|
|
||||||
|
|
||||||
After connecting the devices, plug the :abbr:`IoT (Internet of Things)` box into to a power source.
|
|
||||||
On the computer, navigate to :menuselection:`IoT app --> IoT Boxes`, and then click on the
|
|
||||||
:guilabel:`Connect` button located in the upper-left corner of the the :menuselection:`IoT Boxes`
|
|
||||||
dashboard. Then copy the :guilabel:`Token` from the :guilabel:`WiFi connection` section as this will
|
|
||||||
later be used to link the Odoo database to the :abbr:`IoT (Internet of Things)` box.
|
|
||||||
|
|
||||||
Back on the computer, navigate to the available WiFi networks and connect to the :abbr:`IoT
|
|
||||||
(Internet of Things)` box WiFi network. The WiFi network dispersed by the :abbr:`IoT (Internet of
|
|
||||||
Things)` box will start with `IoTBox-xxxxxxxxxx`.
|
|
||||||
|
|
||||||
.. image:: connect/connect-iot-wifi.png
|
|
||||||
:align: center
|
|
||||||
:alt: WiFi networks available on the computer.
|
|
||||||
|
|
||||||
Upon connecting to the :abbr:`IoT (Internet of Things)` box WiFi, a browser will automatically
|
|
||||||
redirect to the :menuselection:`Configure Iot Box` wizard. Name the :abbr:`IoT (Internet of Things)`
|
|
||||||
box, then paste the previously copied *token* into the :guilabel:`Server Token` field, and then
|
|
||||||
click on :guilabel:`Next`.
|
|
||||||
|
|
||||||
.. image:: connect/server-token.png
|
|
||||||
:align: center
|
|
||||||
:alt: Enter the server token into the IoT box.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
If the :abbr:`IoT (Internet of Things)` box WiFi connection wizard doesn't start, then see the
|
|
||||||
documentation on :ref:`connecting with a token <iot_connect/token>`.
|
|
||||||
|
|
||||||
Now, choose the WiFi network that the :abbr:`IoT (Internet of Things)` box will connect with (enter
|
|
||||||
the password if there is one) and click on :guilabel:`Connect`. Wait a few seconds and the browser
|
|
||||||
will redirect to the :abbr:`IoT (Internet of Things)` box homepage. The computer may need to be
|
|
||||||
manually re-connected back to the original WiFi connection, if this does not happen automatically.
|
|
||||||
|
|
||||||
.. image:: connect/configure-wifi-network-iot.png
|
|
||||||
:align: center
|
|
||||||
:alt: Configuring the WiFi for the IoT box.
|
|
||||||
|
|
||||||
After completing each step, the :abbr:`IoT (Internet of Things)` box should appear when navigating
|
|
||||||
to :menuselection:`IoT app --> IoT Boxes` on the Odoo database.
|
|
||||||
|
|
||||||
.. image:: connect/iot-box-connected.png
|
|
||||||
:align: center
|
|
||||||
:alt: The IoT box has been successfully configured on the Odoo database.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
The :abbr:`IoT (Internet of Things)` box may need to be manually rebooted upon successfully
|
|
||||||
connecting via WiFi for the box to appear in the *IoT app* on the Odoo database. To do so, simply
|
|
||||||
unplug the device and plug it back into the power source after ten seconds.
|
|
||||||
|
|
||||||
.. _iot_connect/token:
|
|
||||||
|
|
||||||
Manually connecting the IoT box using the token
|
|
||||||
===============================================
|
|
||||||
|
|
||||||
A manual connection of the :abbr:`IoT (Internet of Things)` box to the :abbr:`IoT (Internet of
|
|
||||||
Things)` app can be made using the *token*, from a computer. The *token* can be found by navigating
|
|
||||||
to :menuselection:`IoT app --> IoT Boxes` and clicking on :guilabel:`Connect`.
|
|
||||||
|
|
||||||
Under the :guilabel:`WiFi Connection` section of the :guilabel:`Connect an IoT Box` page that
|
|
||||||
appears, click :guilabel:`Copy` to the right of the :guilabel:`Token`. This token will be entered
|
|
||||||
into the :abbr:`IoT (Internet of Things)` box homepage.
|
|
||||||
|
|
||||||
Access the :abbr:`IoT (Internet of Things)` box homepage by entering the :abbr:`IP (Internet
|
|
||||||
Protocol)` address of the :abbr:`IoT (Internet of Things)` box into a browser window from a computer
|
|
||||||
on the same network as the :abbr:`IoT (Internet of Things)` box (preferably by ethernet connection).
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
The :abbr:`IP (Internet Protocol)` address can be accessed by the router admin console that the
|
|
||||||
:abbr:`IoT (Internet of Things)` box is connected to, or by connecting a receipt printer to the
|
|
||||||
:abbr:`IoT (Internet of Things)` box. A receipt will print out with the :abbr:`IoT (Internet of
|
|
||||||
Things)` box's :abbr:`IP (Internet Protocol)` address on it.
|
|
||||||
|
|
||||||
On the :abbr:`IoT (Internet of Things)` box homepage, enter the *token* under the :guilabel:`Server`
|
|
||||||
section by clicking on :guilabel:`Configure`. Then, paste the *token* into the :guilabel:`Server
|
|
||||||
Token` field and click :guilabel:`Connect`. The :abbr:`IoT (Internet of Things)` box will then link
|
|
||||||
to the Odoo database.
|
|
||||||
|
|
||||||
.. _iot/connect_schema:
|
|
||||||
|
|
||||||
IoT box schema
|
|
||||||
==============
|
|
||||||
|
|
||||||
Raspberry Pi 4
|
|
||||||
--------------
|
|
||||||
|
|
||||||
.. figure:: connect/iot-box-schema.png
|
|
||||||
|
|
||||||
The Odoo IoT box (Raspberry Pi 4) schema with labels.
|
|
||||||
|
|
||||||
Raspberry Pi 3
|
|
||||||
--------------
|
|
||||||
|
|
||||||
.. figure:: connect/iox-box-schema-3.png
|
|
||||||
|
|
||||||
The Odoo IoT box (Raspberry Pi 3) schema with labels.
|
|
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 11 KiB |
@ -1,258 +0,0 @@
|
|||||||
.. _iot/https_certificate_iot:
|
|
||||||
|
|
||||||
=======================
|
|
||||||
HTTPS certificate (IoT)
|
|
||||||
=======================
|
|
||||||
|
|
||||||
What is HTTPS?
|
|
||||||
==============
|
|
||||||
|
|
||||||
*Hypertext Transfer Protocol Secure* (HTTPS) is the secure version of *Hypertext Transfer Protocol*
|
|
||||||
(HTTP), which is the primary protocol used to send data back and forth between a web browser and a
|
|
||||||
website. :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` is encrypted in order to increase the
|
|
||||||
security of data transfer.
|
|
||||||
|
|
||||||
:abbr:`HTTPS (Hypertext Transfer Protocol Secure)` uses an encryption protocol to encrypt
|
|
||||||
communications. The protocol is called *Transport Layer Security* (TLS), although formerly it was
|
|
||||||
known as *Secure Sockets Layer* (SSL).
|
|
||||||
|
|
||||||
:abbr:`HTTPS (Hypertext Transfer Protocol Secure)` occurs based upon the transmission of :abbr:`TLS
|
|
||||||
(Transport Layer Security)`/:abbr:`SSL (Secure Sockets Layer)` certificates, which verify that a
|
|
||||||
particular provider is who they say they are.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
In this documentation and throughout Odoo the term "HTTPS certificate" will be used to define the
|
|
||||||
fact that the :abbr:`SSL (Secure Sockets Layer)` certificate is valid and allows a :abbr:`HTTPS
|
|
||||||
(Hypertext Transfer Protocol Secure)` connection.
|
|
||||||
|
|
||||||
Why is it needed?
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
In order to communicate with certain network devices (in particular for payment terminals), the
|
|
||||||
usage of :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` is mandatory. If the :abbr:`HTTPS
|
|
||||||
(Hypertext Transfer Protocol Secure)` certificate isn't valid, some devices won't be able to
|
|
||||||
interact with the :abbr:`IoT (Internet of Things)` Box.
|
|
||||||
|
|
||||||
How to obtain a Hypertext Transfer Protocol Secure (HTTPS) certificate
|
|
||||||
======================================================================
|
|
||||||
|
|
||||||
The generation of the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate is automatic.
|
|
||||||
|
|
||||||
The :abbr:`IoT (Internet of Things)` Box will send a specific request to `<https://www.odoo.com>`_
|
|
||||||
which will send back the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate if the
|
|
||||||
:abbr:`IoT (Internet of Things)` box and database are eligible.
|
|
||||||
|
|
||||||
.. _iot/iot-eligibility:
|
|
||||||
|
|
||||||
Internet of Things (IoT) eligibility
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
#. The database should be a **production** instance. The database instance should not be a copy, a
|
|
||||||
duplicate, a staging, or a development environment.
|
|
||||||
#. The Odoo subscription must:
|
|
||||||
|
|
||||||
- Have an :guilabel:`IoT Box Subscription` line.
|
|
||||||
- :guilabel:`Status` must be :guilabel:`In Progress`.
|
|
||||||
|
|
||||||
If the subscription is linked to a `<https://www.odoo.com>`_ portal user check the information
|
|
||||||
on the portal subscription page.
|
|
||||||
|
|
||||||
.. figure:: https_certificate_iot/sub-example-in-progress.png
|
|
||||||
:align: center
|
|
||||||
:alt: Odoo.com portal subscriptions filtered by "in progress".
|
|
||||||
|
|
||||||
In this case, both subscriptions are considered "in progress" as the :guilabel:`Filter By\:
|
|
||||||
In Progress` was used.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
If the subscription is in question, contact the database's Account Manager or Partner
|
|
||||||
regarding the matter.
|
|
||||||
|
|
||||||
Troubleshooting Hypertext Transfer Protocol Secure (HTTPS) certificate errors
|
|
||||||
=============================================================================
|
|
||||||
|
|
||||||
If anything goes wrong during the process of the "HTTPS certificate" generation or reception, a
|
|
||||||
specific error will code be given on the :abbr:`IoT (Internet of Things)` box home page.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
Accessing the :abbr:`IoT (Internet of Things)` box homepage will check for the presence of the
|
|
||||||
"HTTPS certificate" and will attempt its generation if it is missing. As such, if there is an
|
|
||||||
error on the :abbr:`IoT (Internet of Things)` box home page, refresh the :abbr:`IoT (Internet of
|
|
||||||
Things)` home page to see if the error disappears.
|
|
||||||
|
|
||||||
`ERR_IOT_HTTPS_CHECK_NO_SERVER`
|
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
Reason:
|
|
||||||
The configuration regarding the server is missing. In other words, the Odoo instance is not
|
|
||||||
connected with the IoT box.
|
|
||||||
|
|
||||||
Solution:
|
|
||||||
Ensure that the server is configured.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:doc:`/applications/general/iot/config/connect`
|
|
||||||
|
|
||||||
`ERR_IOT_HTTPS_CHECK_CERT_READ_EXCEPTION`
|
|
||||||
-----------------------------------------
|
|
||||||
|
|
||||||
Reason:
|
|
||||||
An unhandled error happened when trying to read the existing :abbr:`HTTPS (Hypertext Transfer
|
|
||||||
Protocol Secure)` certificate.
|
|
||||||
|
|
||||||
Solution:
|
|
||||||
Ensure that the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate file is readable.
|
|
||||||
|
|
||||||
`ERR_IOT_HTTPS_LOAD_NO_CREDENTIAL`
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
Reason:
|
|
||||||
The contract and/or database :abbr:`UUID (Universal Unique Identifier)` is missing.
|
|
||||||
|
|
||||||
Solution:
|
|
||||||
Ensure that both values are configured as intended. To modify them, go to the :abbr:`IoT
|
|
||||||
(Internet of Things)` box home page, and navigate to :guilabel:`Credential`.
|
|
||||||
|
|
||||||
`ERR_IOT_HTTPS_LOAD_REQUEST_EXCEPTION`
|
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
Reason:
|
|
||||||
An unexpected error happened when the :abbr:`IoT (Internet of Things)` box tried to reach
|
|
||||||
`<https://www.odoo.com>`_. The causes are likely due to the network
|
|
||||||
infrastructure/configuration:
|
|
||||||
|
|
||||||
- The :abbr:`IoT (Internet of Things)` box does not have access to internet.
|
|
||||||
- The network does not allow the :abbr:`IoT (Internet of Things)` box to communicate with
|
|
||||||
`<https://www.odoo.com>`_. This may be due to network devices preventing the communication
|
|
||||||
(firewalls, etc.) or the network configuration (:abbr:`VPN (Virtual Private Network)`,
|
|
||||||
etc.).
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
More information regarding the error that occurred can be found in the full request
|
|
||||||
exception details, which are in the :abbr:`IoT (Internet of Things)` box logs.
|
|
||||||
|
|
||||||
Solution:
|
|
||||||
.. warning::
|
|
||||||
Consult with your system or network administrator should this issue arise. This error code
|
|
||||||
depends on the network infrastructure and goes beyond Odoo support's service scope.
|
|
||||||
|
|
||||||
`ERR_IOT_HTTPS_LOAD_REQUEST_STATUS`
|
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
Reason:
|
|
||||||
The IoT-box was able to reach `<https://www.odoo.com>`_ but received an unusual
|
|
||||||
`HTTP response (status codes)
|
|
||||||
<https://developer.mozilla.org/en-US/docs/Web/HTTP/Status>`_.
|
|
||||||
|
|
||||||
This error code will also give the HTTP response status codes. For example, if the error reads
|
|
||||||
`ERR_IOT_HTTPS_LOAD_REQUEST_STATUS 404` it means that the page returned a 404 error, which is
|
|
||||||
the "Page Not Found" code.
|
|
||||||
|
|
||||||
Solution:
|
|
||||||
Check if `<https://www.odoo.com>`_ is down using a web browser, as it's possible that it is down
|
|
||||||
due to maintenance.
|
|
||||||
|
|
||||||
- If `<https://www.odoo.com>`_ is down due to maintenance, unfortunately there is nothing that
|
|
||||||
can be done but instead wait for it to recover.
|
|
||||||
- If `<https://www.odoo.com>`_ is not down due to maintenance, open a `support ticket
|
|
||||||
<https://www.odoo.com/help>`_ on the matter. Ensure that the 3 digits status code next to the
|
|
||||||
code error is included in the support ticket.
|
|
||||||
|
|
||||||
`ERR_IOT_HTTPS_LOAD_REQUEST_NO_RESULT`
|
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
Reason:
|
|
||||||
The :abbr:`IoT (Internet of Things)` box was able to reach `<https://www.odoo.com>`_ but it
|
|
||||||
refused to deliver the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate.
|
|
||||||
|
|
||||||
Solution:
|
|
||||||
Ensure that the :abbr:`IoT (Internet of Things)` box and database are eligible for a
|
|
||||||
certificate: :ref:`Internet of Things (IoT) eligibility <iot/iot-eligibility>`.
|
|
||||||
|
|
||||||
How to ensure that the HTTPS certificate is correct
|
|
||||||
===================================================
|
|
||||||
|
|
||||||
If the certificate has been applied successfully, a new :abbr:`HTTPS (Hypertext Transfer Protocol
|
|
||||||
Secure)` :abbr:`URL (Uniform Resource Locator)` for the :abbr:`IoT (Internet of Things)` box ending
|
|
||||||
with `.odoo-iot.com` will appear on the Odoo database, inside of the :menuselection:`IoT`
|
|
||||||
application on that specific device's form.
|
|
||||||
|
|
||||||
.. image:: https_certificate_iot/odoo-new-domain.png
|
|
||||||
:align: center
|
|
||||||
:alt: Odoo IoT app IoT box with .odoo-iot.com domain.
|
|
||||||
|
|
||||||
When navigating to the :abbr:`URL (Uniform Resource Locator)` in a browser a secured :abbr:`HTTPS
|
|
||||||
(Hypertext Transfer Protocol Secure)` connection will be established.
|
|
||||||
|
|
||||||
.. figure:: https_certificate_iot/secured-connection.png
|
|
||||||
:align: center
|
|
||||||
:alt: Example of valid SSL certificate details on the browser.
|
|
||||||
|
|
||||||
Padlock in Chrome on Windows 10 attesting the fact that the connection is secured in :abbr:`HTTPS
|
|
||||||
(Hypertext Transfer Protocol Secure)`.
|
|
||||||
|
|
||||||
The IoT-box homepage will now display an `OK` status next to `HTTPS certificate`. The
|
|
||||||
drop-down menu icon, when clicked, will reveal information regarding the certificate.
|
|
||||||
|
|
||||||
.. image:: https_certificate_iot/status-ok.png
|
|
||||||
:align: center
|
|
||||||
:alt: IoT box homepage with HTTPS certificate OK status.
|
|
||||||
|
|
||||||
Domain Name System (DNS) issue
|
|
||||||
==============================
|
|
||||||
|
|
||||||
If the :abbr:`IoT (Internet of Things)` box can be accessed from its :abbr:`IP (Intrernet Protocol)`
|
|
||||||
address but not the Odoo assigned domain: `.odoo-iot.com`; then the :abbr:`IoT (Internet of Things)`
|
|
||||||
box is likely running into a :abbr:`DNS (Domain Name System)` issue. On some browsers, it will give
|
|
||||||
an error code mentioning :abbr:`DNS (Domain Name System)` (like `DNS_PROBE_FINISHED_NXDOMAIN`).
|
|
||||||
|
|
||||||
These :abbr:`DNS (Domain Name System)` issues may appear as the following in different browsers:
|
|
||||||
|
|
||||||
.. tabs::
|
|
||||||
|
|
||||||
.. tab:: Chrome
|
|
||||||
|
|
||||||
.. figure:: https_certificate_iot/dns-chrome.png
|
|
||||||
:align: center
|
|
||||||
:alt: DNS issue on Chrome browser on Windows 10.
|
|
||||||
|
|
||||||
DNS issue on Chrome browser on Windows 10.
|
|
||||||
|
|
||||||
|
|
||||||
.. tab:: Firefox
|
|
||||||
|
|
||||||
.. figure:: https_certificate_iot/dns-firefox.png
|
|
||||||
:align: center
|
|
||||||
:alt: DNS issue on Firefox browser on Windows 10.
|
|
||||||
|
|
||||||
DNS issue on Firefox browser on Windows 10.
|
|
||||||
|
|
||||||
.. tab:: Edge
|
|
||||||
|
|
||||||
.. figure:: https_certificate_iot/dns-edge.png
|
|
||||||
:align: center
|
|
||||||
:alt: DNS issue on Edge browser on Windows 10.
|
|
||||||
|
|
||||||
DNS issue on Edge browser on Windows 10.
|
|
||||||
|
|
||||||
|
|
||||||
Domain Name System (DNS) issue solution
|
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
#. Should the router allow the :abbr:`DNS (Domain Name System)` to be manually changed, change the
|
|
||||||
DNS to use `Google DNS <https://developers.google.com/speed/public-dns>`_.
|
|
||||||
#. If your router doesn't allow for this, then a change will need to be made on the :abbr:`DNS
|
|
||||||
(Domain Name System)` settings of each of the devices using `Google DNS
|
|
||||||
<https://developers.google.com/speed/public-dns>`_. This will need to occur on **every** device
|
|
||||||
that plans to interact with the :abbr:`IoT (Internet of Things)` box (e.g. computer, tablet or
|
|
||||||
phone). The individual device configuration processes can be found on the website of the
|
|
||||||
device's manufacturer.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
Other :abbr:`IoT (Internet of Things)` devices such as payment terminals likely won't need
|
|
||||||
their :abbr:`DNS (Domain Name System)` settings changed as they are already configured with
|
|
||||||
custom :abbr:`DNS (Domain Name System)`.
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
Consult with your system or network administrator should this issue arise. This error code
|
|
||||||
depends on the network infrastructure, and it goes beyond Odoo support's service scope.
|
|
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 16 KiB |
@ -1,67 +0,0 @@
|
|||||||
=========================
|
|
||||||
Use an IoT box with a PoS
|
|
||||||
=========================
|
|
||||||
|
|
||||||
Prerequisites
|
|
||||||
=============
|
|
||||||
|
|
||||||
Before starting, make sure the following equipment is available:
|
|
||||||
|
|
||||||
- An :abbr:`IoT (Internet of Things)` box, with its power adapter.
|
|
||||||
- A computer or tablet with an up-to-date web browser.
|
|
||||||
- Odoo Online or an Odoo instance with the *Point of Sale* and *IoT* applications installed.
|
|
||||||
- A local network set up with :abbr:`DHCP (Dynamic Host Configuration Protocol)` (this is the
|
|
||||||
default setting).
|
|
||||||
- An RJ45 Ethernet Cable (optional, but preferred over WiFi, which is already built in).
|
|
||||||
- Any of the supported hardware (receipt printer, barcode scanner, cash drawer, payment terminal,
|
|
||||||
scale, customer display, etc.). The list of supported hardware can be found on the `POS Hardware
|
|
||||||
page <https://www.odoo.com/page/point-of-sale-hardware>`_.
|
|
||||||
|
|
||||||
Setup
|
|
||||||
=====
|
|
||||||
|
|
||||||
.. figure:: pos/pos-connections.png
|
|
||||||
|
|
||||||
A suggested configuration for a point of sale system.
|
|
||||||
|
|
||||||
To connect hardware to the :abbr:`PoS (Point of Sale)`, the first step is to connect an :abbr:`IoT
|
|
||||||
(Internet of Things)` box to the database. To do this, follow these instructions: :doc:`Connect an
|
|
||||||
Internet of Things (IoT) box to the Odoo database <connect>`.
|
|
||||||
|
|
||||||
Then, connect the peripheral devices to the :abbr:`IoT (Internet of Things)` box.
|
|
||||||
|
|
||||||
.. list-table::
|
|
||||||
:header-rows: 1
|
|
||||||
:stub-columns: 1
|
|
||||||
|
|
||||||
* - Device Name
|
|
||||||
- Instructions
|
|
||||||
* - Printer
|
|
||||||
- Connect a supported receipt printer to a :abbr:`USB (Universal Serial Bus)` port or
|
|
||||||
to the network, and power it on. Refer to
|
|
||||||
:doc:`/applications/sales/point_of_sale/restaurant/kitchen_printing`.
|
|
||||||
* - Cash drawer
|
|
||||||
- The cash drawer should be connected to the printer with an RJ25 cable.
|
|
||||||
* - Barcode scanner
|
|
||||||
- In order for the barcode scanner to be compatible it must end barcodes with an `ENTER`
|
|
||||||
character (keycode 28). This is most likely the default configuration of the barcode scanner.
|
|
||||||
* - Scale
|
|
||||||
- Connect the scale and power it on. Refer to
|
|
||||||
:doc:`../devices/scale`.
|
|
||||||
* - Customer display
|
|
||||||
- Connect a screen to the :abbr:`IoT (Internet of Things)` box to display the :abbr:`PoS (Point
|
|
||||||
of Sale)` order. Refer to :doc:`../devices/screen`.
|
|
||||||
* - Payment terminal
|
|
||||||
- The connection process depends on the terminal. Refer to the :doc:`payment terminals
|
|
||||||
documentation </applications/sales/point_of_sale/payment_methods>`.
|
|
||||||
|
|
||||||
Once this is completed, connect the :abbr:`IoT (Internet of Things)` box to the :menuselection:`PoS`
|
|
||||||
application. To do this, go to :menuselection:`Point of Sale --> Configuration --> PoS`, tick the
|
|
||||||
:guilabel:`IoT Box` option, and select the devices to be used in this :abbr:`PoS (Point of Sale)`.
|
|
||||||
:guilabel:`Save` the the changes.
|
|
||||||
|
|
||||||
.. image:: pos/iot-connected-devices.png
|
|
||||||
:align: center
|
|
||||||
:alt: Configuring the connected devices in the POS application.
|
|
||||||
|
|
||||||
Once set up is done, a new :abbr:`PoS (Point of Sale)` session can be launched.
|
|
Before Width: | Height: | Size: 7.5 KiB |
@ -1,46 +0,0 @@
|
|||||||
==========================
|
|
||||||
Connect an IoT box via SSH
|
|
||||||
==========================
|
|
||||||
|
|
||||||
.. |iot| replace:: :abbr:`IoT (Internet of Things)`
|
|
||||||
.. |SSH| replace:: :abbr:`SSH (secure shell protocol)`
|
|
||||||
|
|
||||||
To provide an |SSH| connection to an Internet of Things (IoT) box, a password needs to be generated.
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
This feature should **only** be utilized with trusted parties, as it provides administrative
|
|
||||||
access to the |iot| box, which can create security issues.
|
|
||||||
|
|
||||||
Managing an |SSH| connection is **not** covered under the standard scope of Odoo support. Visit
|
|
||||||
the `Odoo Support <https://www.odoo.com/help>`_ page for additional information about what is
|
|
||||||
covered.
|
|
||||||
|
|
||||||
First, navigate to the :menuselection:`IoT app --> IoT Boxes`. Click on the IP address of the
|
|
||||||
appropriate |iot| box.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
If the desired |iot| box does not appear, see :doc:`troubleshooting` for additional steps.
|
|
||||||
|
|
||||||
At the bottom of the |iot| box pop-up window, click :guilabel:`Remote Debug`. This opens the
|
|
||||||
:guilabel:`Remote Debugging` pop-up window.
|
|
||||||
|
|
||||||
.. image:: ssh_connect/ssh-generate-password.png
|
|
||||||
:align: center
|
|
||||||
:alt: The Remote Debugging password generation window.
|
|
||||||
|
|
||||||
Click :guilabel:`Generate password`.
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
After the password has been generated from the :guilabel:`Remote Debugging` pop-up window, the
|
|
||||||
information **must** be recorded immediately. Once this window is closed, there is no current
|
|
||||||
method for looking up this information.
|
|
||||||
|
|
||||||
Enter the :guilabel:`Authentication Token` provided by the user attempting to connect to the |iot|
|
|
||||||
box.
|
|
||||||
|
|
||||||
Click :guilabel:`Enable Remote Debugging`.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
- :doc:`connect`
|
|
||||||
- :doc:`troubleshooting`
|
|
||||||
- :doc:`updating_iot`
|
|
Before Width: | Height: | Size: 27 KiB |
@ -1,645 +0,0 @@
|
|||||||
===============
|
|
||||||
Troubleshooting
|
|
||||||
===============
|
|
||||||
|
|
||||||
IoT box connection
|
|
||||||
==================
|
|
||||||
|
|
||||||
Unable to locate the pairing code to connect the IoT box
|
|
||||||
--------------------------------------------------------
|
|
||||||
|
|
||||||
The pairing code should be printed on receipt printers connected to the :abbr:`IoT (Internet of
|
|
||||||
Things)` box and should also be displayed on connected monitors.
|
|
||||||
|
|
||||||
The pairing code does not show under the following circumstances:
|
|
||||||
|
|
||||||
- The :abbr:`IoT (Internet of Things)` box is already connected to an Odoo database.
|
|
||||||
- The :abbr:`IoT (Internet of Things)` box is not connected to the Internet.
|
|
||||||
- The code is only valid for 5 minutes after the :abbr:`IoT (Internet of Things)` box has started.
|
|
||||||
It is automatically removed from connected displays when this time has expired.
|
|
||||||
- The version of the :abbr:`IoT (Internet of Things)` box image is too old. If the :abbr:`IoT
|
|
||||||
(Internet of Things)` box image is from an earlier version, then the SD card of the :abbr:`IoT
|
|
||||||
(Internet of Things)` box needs to be re-flashed to update the image (see :ref:`Flashing the SD
|
|
||||||
Card <iot/config/flash>`).
|
|
||||||
|
|
||||||
If none of the cases listed above correct the issue, then make sure the :abbr:`IoT (Internet of
|
|
||||||
Things)` box has correctly started, by checking that a fixed green LED is showing next to the power
|
|
||||||
port.
|
|
||||||
|
|
||||||
IoT box is connected but it is not showing in the database
|
|
||||||
----------------------------------------------------------
|
|
||||||
|
|
||||||
When an :abbr:`IoT (Internet of Things)` box connects to a database, it may restart. If so, it can
|
|
||||||
take up to five minutes before appearing in the database. If the :abbr:`IoT (Internet of Things)`
|
|
||||||
box is still not showing after five minutes, make sure that the :abbr:`IoT (Internet of Things)` box
|
|
||||||
can reach the database and that the server does not use a multi-database environment.
|
|
||||||
|
|
||||||
To access the database from the :abbr:`IoT (Internet of Things)` box, open a browser and type in the
|
|
||||||
database address.
|
|
||||||
|
|
||||||
The IoT box is connected to the Odoo database, but cannot be reached
|
|
||||||
--------------------------------------------------------------------
|
|
||||||
|
|
||||||
Make sure that the :abbr:`IoT (Internet of Things)` box and the computer running the browser are
|
|
||||||
located on the same network, as the :abbr:`IoT (Internet of Things)` box cannot be reached from
|
|
||||||
outside the local network.
|
|
||||||
|
|
||||||
The HTTPS certificate does not generate
|
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
In order to generate a :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate, an IoT box
|
|
||||||
subscription is required for the :abbr:`IoT (Internet of Things)` box. Connecting the :abbr:`IoT
|
|
||||||
(Internet of Things)` box prior to configuring an :abbr:`IoT (Internet of Things)` subscription for
|
|
||||||
the database and :abbr:`IoT (Internet of Things)` box with the Account Manager will result in an
|
|
||||||
unsecured connection.
|
|
||||||
|
|
||||||
In addition, a firewall can also prevent the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)`
|
|
||||||
certificate from generating correctly. In this case, deactivate the firewall until the certificate
|
|
||||||
is successfully generated. It should also be noted that certain devices, such as a router that has
|
|
||||||
a built-in firewall, can prevent the :abbr:`HTTPS (Hypertext Transfer Protocol Secure)` certificate
|
|
||||||
from generating.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:doc:`HTTPS certificate (IoT) <https_certificate_iot>`
|
|
||||||
|
|
||||||
Printer
|
|
||||||
=======
|
|
||||||
|
|
||||||
The printer is not detected
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
If a printer does not appear in the devices list, go to the :abbr:`IoT (Internet of Things)` box
|
|
||||||
homepage and make sure that it is listed under :guilabel:`Printers`.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/printer-status.png
|
|
||||||
:align: center
|
|
||||||
:alt: The IoT box Home Page landing page.
|
|
||||||
|
|
||||||
If the printer is not present on the :abbr:`IoT (Internet of Things)` box homepage, click
|
|
||||||
:guilabel:`Printers Server`, go to the :guilabel:`Administration` tab and click on :guilabel:`Add
|
|
||||||
Printer`. If the printer is not present in the list, it is likely not connected properly.
|
|
||||||
|
|
||||||
The printer outputs random text
|
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
For most printers, the correct driver should be automatically detected and selected. However, in
|
|
||||||
some cases, the automatic detection mechanism might not be enough, and if no driver is found, the
|
|
||||||
printer might print random characters.
|
|
||||||
|
|
||||||
The solution is to manually select the corresponding driver. On the :abbr:`IoT (Internet of Things)`
|
|
||||||
box homepage, click on :guilabel:`Printers Server`, go to the :guilabel:`Printers` tab and select
|
|
||||||
the printer in the list. In the :guilabel:`Administration` drop-down menu, click on
|
|
||||||
:guilabel:`Modify Printer`. Follow the steps and select the *make* and *model* corresponding to the
|
|
||||||
printer.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/modify-printer.png
|
|
||||||
:align: center
|
|
||||||
:alt: Edit the printer connected to the IoT box.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
Epson receipt printers and Zebra label printers do not need a driver to work. Make sure that no
|
|
||||||
driver is selected for those printers.
|
|
||||||
|
|
||||||
The printer is detected but is not recognized correctly
|
|
||||||
-------------------------------------------------------
|
|
||||||
|
|
||||||
If the printer is not recognized correctly by Odoo and the :abbr:`IoT (Internet of Things)` box, go
|
|
||||||
to the form view of the device (:menuselection:`IoT App --> Devices -->Printer Device`) and change
|
|
||||||
the subtype. The three options available are: :guilabel:`Receipt Printer`, :guilabel:`Label
|
|
||||||
Printer`, and :guilabel:`Office Printer`.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/sub-type.png
|
|
||||||
:align: center
|
|
||||||
:alt: Sub-type selection in a printer IoT device.
|
|
||||||
|
|
||||||
Epson configuration special case
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Most Epson printers support printing receipts in Odoo :abbr:`POS (Point of Sale)` using the `GS v 0`
|
|
||||||
command. However, the following Epson printer models do not support this command:
|
|
||||||
|
|
||||||
- TM-U220
|
|
||||||
- TM-U230
|
|
||||||
- TM-P60
|
|
||||||
- TMP-P60II
|
|
||||||
|
|
||||||
Bypass this issue by configuring the printer to use the `ESC *` command instead.
|
|
||||||
|
|
||||||
Process to force ESC * command
|
|
||||||
******************************
|
|
||||||
|
|
||||||
Epson printer compatibility
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
The first step is to check whether the printer is incompatible with `GS v 0` command.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
|
|
||||||
- `Epson GS v 0 documentation <https://reference.epson-biz.com/modules/ref_escpos/index.php?
|
|
||||||
content_id=94>`_ for `GS v 0` compatible printers.
|
|
||||||
- `Epson ESC * documentation <https://reference.epson-biz.com/modules/ref_escpos/index.php
|
|
||||||
?content_id=88>`_ for `ESC *` compatible printers.
|
|
||||||
|
|
||||||
If the printer is not compatible with the `ESC *` command then the following process is not
|
|
||||||
possible. Should the printer be compatible to use the `ESC *` command to print, follow this process
|
|
||||||
to configure the printer with the :abbr:`IoT (Internet of Things)` box.
|
|
||||||
|
|
||||||
IoT box configuration for ESC *
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
To configure the :abbr:`IoT (Internet of Things)` box to use the `ESC *` command to print, go to the
|
|
||||||
:abbr:`IoT (Internet of Things)` box homepage by navigating to :menuselection:`IoT app --> IoT
|
|
||||||
Boxes`. Then click on the :guilabel:`IP address` and this will direct to the :abbr:`IoT (Internet of
|
|
||||||
Things)` box homepage.
|
|
||||||
|
|
||||||
**Choosing the printer**
|
|
||||||
|
|
||||||
Now click on the :guilabel:`Printers server` button. This will redirect the browser to the *CUPS*
|
|
||||||
page. Next, go to :menuselection:`Administration --> Printers --> Add Printer`, choose the printer
|
|
||||||
that should be modified, and then click :guilabel:`Continue`.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
If the name of the printer is still uncertain, take the following steps:
|
|
||||||
|
|
||||||
#. Take note of the listed printers on the *CUPS* page.
|
|
||||||
#. Turn the printer off and refresh the page.
|
|
||||||
#. Now compare the difference with the first list to see which printer disappeared.
|
|
||||||
#. Turn the printer back on and refresh the page again.
|
|
||||||
#. Double-check the list again to see if the printer re-appears.
|
|
||||||
#. The printer that disappeared and reappears again on the listed printers is the name of the
|
|
||||||
printer in question.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
This can be :guilabel:`Unknown` under :guilabel:`Local printers`.
|
|
||||||
|
|
||||||
**CUPS naming convention**
|
|
||||||
|
|
||||||
`CUPS` will prompt the administrator for three pieces of information: the :guilabel:`Name`,
|
|
||||||
:guilabel:`Description` and the :guilabel:`Location`. The last two pieces of information do not need
|
|
||||||
to be specific, however, the :guilabel:`Name` should follow a particular convention to work with the
|
|
||||||
`ESC *` command.
|
|
||||||
|
|
||||||
The :guilabel:`Name` should match this convention:
|
|
||||||
`<printer_name>__IMC_<param_1>_<param_2>_..._<param_n>__`
|
|
||||||
|
|
||||||
A breakdown of the naming convention:
|
|
||||||
|
|
||||||
- `printer_name`: This is the printer name. It can be any character as long as it does not contain
|
|
||||||
`_`, `/`, `#`, or ` ` (space character).
|
|
||||||
- `IMC`: This stands for *Image Mode Column* (the simplified name for `ESC *`).
|
|
||||||
- `param_1`: This stands for the specific parameter:
|
|
||||||
|
|
||||||
- `SCALE<X>`: Scale of the picture (with the same aspect ratio). `X` should be an integer
|
|
||||||
describing the scale percentage that should be used.
|
|
||||||
|
|
||||||
.. example::
|
|
||||||
`100` is the original size, `50` is half the size, `200` is twice the size.
|
|
||||||
|
|
||||||
- `LDV`: *Low Density Vertical* (will be set to *High Density Vertical* if not specified).
|
|
||||||
- `LDH`: *Low Density Horizontal* (will be set to *High Density Horizontal* if not specified).
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
*Density* parameters might need to be configured in a particular way depending on the printer
|
|
||||||
model.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
Visit `Epson's ESC * documentation
|
|
||||||
<https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=88>`_ and click on the
|
|
||||||
printer model printer in the table above to see if the printer should set these parameters.
|
|
||||||
|
|
||||||
.. example::
|
|
||||||
The following are examples of proper and improper name formatting:
|
|
||||||
|
|
||||||
Proper name formatting:
|
|
||||||
|
|
||||||
- `EPSONTMm30II__IMC__`
|
|
||||||
- `EPSON_TM_U220__IMC_LDV_LDH_SCALE80__`
|
|
||||||
|
|
||||||
Improper name formatting (this will not prevent printing, but the result might not have the
|
|
||||||
expected printed output):
|
|
||||||
|
|
||||||
- `EPSON TMm 30II` -> The name cannot have spaces.
|
|
||||||
- `EPSONTMm30II` -> The name itself is correct, but it will not use `ESC *`.
|
|
||||||
- `EPSONTMm30II__IMC` -> This name is missing the end `__`.
|
|
||||||
- `EPSONTMm30II__IMC_XDV__` -> The parameter `XDV` does not match any existing parameters.
|
|
||||||
- `EPSONTMm30II__IMC_SCALE__` -> The parameter `SCALE` is missing the scale value.
|
|
||||||
|
|
||||||
**Finish adding a printer**
|
|
||||||
|
|
||||||
After setting the name of the printer with the appropriate naming convention, click
|
|
||||||
:guilabel:`Continue`. Next, set the :guilabel:`Make` value to :guilabel:`Raw` and for the
|
|
||||||
:guilabel:`Model` value, set this to :guilabel:`Raw Queue (en)`.
|
|
||||||
|
|
||||||
After completing these steps, click :guilabel:`Add Printer`. If everything was done correctly, the
|
|
||||||
page should redirect to the *Banners* page.
|
|
||||||
|
|
||||||
At this point the printer should have been created, now the :abbr:`IoT (Internet of Things)` box
|
|
||||||
just needs to detect it and then sync to Odoo's server (this could take a few minutes).
|
|
||||||
|
|
||||||
**Adding the printer to Odoo PoS**
|
|
||||||
|
|
||||||
Once the printer is visible on the Odoo database, do not forget to choose it in the :abbr:`PoS
|
|
||||||
(Point of Sale)`configuration as the :abbr:`IoT (Internet of Things)` printer. Navigate to
|
|
||||||
:menuselection:`Pos App --> Settings --> Connected Devices --> IoT Box --> Receipt Printer -->
|
|
||||||
Save`.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
If the printer was set up incorrectly (it is still printing random text or the printed receipt is
|
|
||||||
too big or small), then it cannot be modified via the printer name with *CUPS*. Instead, the
|
|
||||||
above process can be repeated to set up another printer from scratch to create one with modified
|
|
||||||
parameters.
|
|
||||||
|
|
||||||
**Example setup of the Epson TM-U220B printer using ESC**
|
|
||||||
|
|
||||||
.. spoiler::
|
|
||||||
Click this text to reveal the example
|
|
||||||
|
|
||||||
The following is an example of the troubleshooting process for a TM-U220B printer model using the
|
|
||||||
`ESC *` command. The receipt pictured below is an example of a receipt that is printing correctly
|
|
||||||
due to proper formatting (in theory):
|
|
||||||
|
|
||||||
.. image:: troubleshooting/receipt-example.png
|
|
||||||
:align: center
|
|
||||||
:alt: Properly formatted receipt picture from a demo database.
|
|
||||||
|
|
||||||
Trying to print this receipt right-away prior to the proper formatting will not work as the
|
|
||||||
TM-U220B printer model does not support `GS v 0`. Instead random characters will print:
|
|
||||||
|
|
||||||
.. image:: troubleshooting/receipt-print-random-letters.png
|
|
||||||
:align: center
|
|
||||||
:alt: Printer paper with seemingly random characters.
|
|
||||||
|
|
||||||
To properly configure formatting for the Epson TM-U220B printer model take the following steps.
|
|
||||||
|
|
||||||
After consulting Epson's website for compatibility for both of the commands: `GS v 0
|
|
||||||
<https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=94>`_ and `ESC *
|
|
||||||
<https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=88>`_, it can be seen
|
|
||||||
that indeed the TM-U220B is not compatible with `GS v 0`, but is compatible with `ESC *`.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/epson-compatibility-compare.png
|
|
||||||
:align: center
|
|
||||||
:alt: Epson compatibility evaluation from Epson website.
|
|
||||||
|
|
||||||
When adding the printer, *CUPS* will ask which printer should be added:
|
|
||||||
|
|
||||||
.. image:: troubleshooting/add-printer.png
|
|
||||||
:align: center
|
|
||||||
:alt: Administration menu, add printer selection.
|
|
||||||
|
|
||||||
In this case, the printer is connected via :abbr:`USB (Universal Serial Bus)` so it won' be part
|
|
||||||
of the :guilabel:`Discovered Network Printers`. Instead it is likely part of the
|
|
||||||
:guilabel:`Unknown` selection under :guilabel:`Local Printers`. By unplugging the printer's
|
|
||||||
:abbr:`USB (Universal Serial Bus)` cable from the :abbr:`IoT (Internet of Things)` box and
|
|
||||||
refreshing the page, the :guilabel:`Unknown` printer disappears. By plugging it back in, the
|
|
||||||
printer reappears, so it can be said that this is the printer in question.
|
|
||||||
|
|
||||||
For the naming convention, since it needs to print using the `ESC *` command, it is imperative to
|
|
||||||
add `__IMC`. Reference the printer model on `Epson's ESC * site
|
|
||||||
<https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=88>`_ to find out more
|
|
||||||
about the *density* parameters.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/epson-tm-u220-specification.png
|
|
||||||
:align: center
|
|
||||||
:alt: Epson TM-U220 specifications on manufacturer's website.
|
|
||||||
|
|
||||||
For this particular model, TM-U220, `m` should be equal to 0 or 1. While referencing the
|
|
||||||
:guilabel:`Description` below the pink box in the above picture, the `m` values could be 0, 1, 32
|
|
||||||
or 33. So in this printers case, the `m` value can NOT be 32 or 33 (otherwise there will be
|
|
||||||
random characters printed).
|
|
||||||
|
|
||||||
The table includes the numeric values: 32 and 33, they both occur if the :guilabel:`Number of
|
|
||||||
bits for vertical data` is set to 24. This means that is a *High Vertical Density*. In the case
|
|
||||||
of configuring the Epson TM-U220, the *Low Vertical Density* will need to be forced, as this
|
|
||||||
printer model does not support *High Vertical Density* for this command `ESC *`.
|
|
||||||
|
|
||||||
To add a *Low Vertical Density*, add the `LDV` parameter to the naming convention.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/add-printer-filled.png
|
|
||||||
:align: center
|
|
||||||
:alt: Add a *Low Vertical Density* (the `LDV` parameter) to the naming convention.
|
|
||||||
|
|
||||||
Click :guilabel:`Continue` to proceed. Next, set the :guilabel:`Make` value to :guilabel:`Raw`
|
|
||||||
and for the :guilabel:`Model` value, set this to :guilabel:`Raw Queue (en)`.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/add-printer-add.png
|
|
||||||
:align: center
|
|
||||||
:alt: Epson TM-U220 specifications on manufacturers website.
|
|
||||||
|
|
||||||
However, when trying to print with the naming convention: `EpsonTMU220B__IMC_LDV__`, it prints
|
|
||||||
the receipt, but it is too big and outside the margin. To resolve this, add a new printer (and
|
|
||||||
naming convention) with the `SCALE<X>` parameter to adapt to our receipt size.
|
|
||||||
|
|
||||||
Here are some examples:
|
|
||||||
|
|
||||||
.. list-table::
|
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - Printer Naming Convention
|
|
||||||
- `EpsonTMU220B__IMC_LDV__`
|
|
||||||
- `EpsonTMU220B__IMC_LDV_SCALE75__`
|
|
||||||
- `EpsonTMU220B__IMC_LDV_LDH__`
|
|
||||||
- `EpsonTMU220B__IMC_LDV_LDH_SCALE35__`
|
|
||||||
* - .. image:: troubleshooting/receipt-example.png
|
|
||||||
:align: center
|
|
||||||
:alt: Receipt example format.
|
|
||||||
- .. image:: troubleshooting/tm-u220-ldv.png
|
|
||||||
:align: center
|
|
||||||
:alt: Receipt format using naming convention: EpsonTMU220B__IMC_LDV__.
|
|
||||||
- .. image:: troubleshooting/tm-u220-ldv-scale75.png
|
|
||||||
:align: center
|
|
||||||
:alt: Receipt format using naming convention: EpsonTMU220B__IMC_LDV_SCALE75__.
|
|
||||||
- .. image:: troubleshooting/tm-u220-ldv-hdv.png
|
|
||||||
:align: center
|
|
||||||
:alt: Receipt format using naming convention: EpsonTMU220B__IMC_LDV_LDH__.
|
|
||||||
- .. image:: troubleshooting/tm-u220-ldv-hdv-scale35.png
|
|
||||||
:align: center
|
|
||||||
:alt: Receipt format using naming convention: EpsonTMU220B__IMC_LDV_LDH_SCALE35__.
|
|
||||||
|
|
||||||
DYMO LabelWriter print issue
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
The DYMO LabelWriter has a known issue in printing with the :abbr:`IoT (Internet of Things)` box.
|
|
||||||
The OpenPrinting CUPS server installs the printer using :guilabel:`Local RAW Printer` drivers. In
|
|
||||||
order to print anything, the correct :guilabel:`Make and Model` needs to be set, so the correct
|
|
||||||
driver is referenced when using the device.
|
|
||||||
|
|
||||||
Additionally, a new printer needs to be added to reduce a print delay that occurs after updating the
|
|
||||||
driver.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
The DYMO LabelWriter 450 DUO printer is the recommended DYMO printer for use with Odoo and the
|
|
||||||
:abbr:`IoT (Internet of Things)` box. It **must** already be connected to, and recognized on, the
|
|
||||||
:abbr:`IoT (Internet of Things)` box.
|
|
||||||
|
|
||||||
The DYMO LabelWriter 450 DUO printer contains two printers in one: a label printer and a tape
|
|
||||||
printer. Choosing the correct model (either DYMO LabelWriter 450 DUO Label (en) or DYMO
|
|
||||||
LabelWriter 450 DUO Tape (en)) is crucial when configuring the following processes.
|
|
||||||
|
|
||||||
To keep things consistent, both of the following processes detail the configuration for the DYMO
|
|
||||||
LabelWriter 450 DUO Label (en) model. Change the model when needed.
|
|
||||||
|
|
||||||
.. _troubleshooting/dymo/update_drivers:
|
|
||||||
|
|
||||||
DYMO LabelWriter not printing
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
In the case where the DYMO LabelWriter is not printing anything, a new driver needs to be installed.
|
|
||||||
|
|
||||||
First, open the OpenPrinting CUPS console by clicking :menuselection:`Printers server` at the bottom
|
|
||||||
of the :abbr:`IoT (Internet of Things)` box homepage. Next, click on :menuselection:`Printers` in
|
|
||||||
the top menu. Click into the printer in question, and select :guilabel:`Maintenance` in the first
|
|
||||||
drop-down menu. Then, select :guilabel:`Modify Printer` in the second drop-down menu.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/main-modify.png
|
|
||||||
:align: center
|
|
||||||
:alt: Modify the make and model of the DYMO LabelWriter. Maintenance and Modify drop-down menus
|
|
||||||
highlighted.
|
|
||||||
|
|
||||||
Next, select the specific network connection/printer that the modification should be made on. Click
|
|
||||||
:guilabel:`Continue`.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/modify-select-printer.png
|
|
||||||
:align: center
|
|
||||||
:alt: Printer selection screen with Continue highlighted.
|
|
||||||
|
|
||||||
On the next page, click :guilabel:`Continue` to proceed to set the :guilabel:`Make` of the printer.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/modify-printer-dymo.png
|
|
||||||
:align: center
|
|
||||||
:alt: Printer modification screen with Continue highlighted.
|
|
||||||
|
|
||||||
Under :guilabel:`Make` select :guilabel:`DYMO` from the menu. Click on :guilabel:`Continue` to set
|
|
||||||
the :guilabel:`Model`.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/setting-make.png
|
|
||||||
:align: center
|
|
||||||
:alt: Setting the make page, with DYMO and continue highlighted.
|
|
||||||
|
|
||||||
On the following page, set the :guilabel:`Model` to :guilabel:`DYMO LabelWriter 450 DUO Label (en)`
|
|
||||||
(or whichever DYMO printer model is being used). Click on :guilabel:`Modify Printer` to complete
|
|
||||||
setting the new driver, a confirmation page will appear.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/setting-model.png
|
|
||||||
:align: center
|
|
||||||
:alt: Setting the printer model page with DYMO LabelWriter 450 DUO Label (en) highlighted.
|
|
||||||
|
|
||||||
After being redirected to a confirmation page, acknowledging a successful update, click on the
|
|
||||||
:menuselection:`Printers` button in the top menu.
|
|
||||||
|
|
||||||
All the printers installed on the OpenPrinting CUPS server appear, including the newly updated:
|
|
||||||
:guilabel:`DYMO LabelWriter 450 DUO Label` (or whichever DYMO printer model is being used). Click
|
|
||||||
into the printer that was just updated.
|
|
||||||
|
|
||||||
To print a test label, click on the :guilabel:`Maintenance` drop-down menu to the left of the
|
|
||||||
:guilabel:`Administration` drop-down menu, and select :guilabel:`Print Test Page`. The test label
|
|
||||||
will print out with a ten-second delay if the driver update was successful.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/print-test.png
|
|
||||||
:align: center
|
|
||||||
:alt: Printing a test page from the administration drop-down menu in the OpenPrinting CUPs
|
|
||||||
server.
|
|
||||||
|
|
||||||
To reduce this delay a new printer will need to be added, follow the process below.
|
|
||||||
|
|
||||||
DYMO LabelWriter print delay
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
To resolve the delay issue after modifying the driver, the printer **must** be reinstalled. To
|
|
||||||
reinstall the printer, open the OpenPrinting CUPS administration page by clicking
|
|
||||||
:menuselection:`Printers server`, at the bottom of the :abbr:`IoT (Internet of Things)` box
|
|
||||||
homepage. Then, click on :menuselection:`Administration` in the top menu, then click :guilabel:`Add
|
|
||||||
a Printer`.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
If the DYMO LabelWriter 450 DUO printer is not printing at all, or is not recognizable (has a RAW
|
|
||||||
driver type), then update the drivers on the device. See
|
|
||||||
:ref:`troubleshooting/dymo/update_drivers`.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/add-printer-dymo.png
|
|
||||||
:align: center
|
|
||||||
:alt: Add a printer button highlighted on the Printer CUPS management page.
|
|
||||||
|
|
||||||
On the next screen, in the :guilabel:`Local Printers` section, select the :guilabel:`DYMO
|
|
||||||
LabelWriter 450 DUO Label (DYMO LabelWriter 450 DUO Label)` (or whichever DYMO printer model is
|
|
||||||
being used) pre-installed printer. Click :guilabel:`Continue`.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/local-printer.png
|
|
||||||
:align: center
|
|
||||||
:alt: Add a printer screen on OpenPrinting CUPS with DYMO LabelWriter 450 DUO Label highlighted.
|
|
||||||
|
|
||||||
On the following screen, modify the :guilabel:`Name` to something recognizable, as the original
|
|
||||||
printer will still be present. Click :guilabel:`Continue` to be taken to the next screen.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/rename-printer.png
|
|
||||||
:align: center
|
|
||||||
:alt: Rename printer page in the 'Add a Printer' flow, with the name field highlighted.
|
|
||||||
|
|
||||||
Next, choose the :guilabel:`Model`. Select :guilabel:`DYMO LabelWriter 450 DUO Label (en)` (or
|
|
||||||
whichever DYMO printer model is being used), and finally, click :guilabel:`Add Printer` to complete
|
|
||||||
the installation.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/choose-printer.png
|
|
||||||
:align: center
|
|
||||||
:alt: Choose model screen on the OpenPrinting CUPS console with model and add a printer
|
|
||||||
highlighted.
|
|
||||||
|
|
||||||
After being redirected to a confirmation page, acknowledging a successful installation, click on the
|
|
||||||
:menuselection:`Printers` button in the top menu.
|
|
||||||
|
|
||||||
All the printers installed on the OpenPrinting CUPS server appear, including the newly installed:
|
|
||||||
:guilabel:`DYMO LabelWriter 450 DUO Label` (or whichever DYMO printer model is being used). Click
|
|
||||||
into the printer that was just installed.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/printer-page.png
|
|
||||||
:align: center
|
|
||||||
:alt: Printer page with newly installed printer highlighted.
|
|
||||||
|
|
||||||
To print a test label, click on the :guilabel:`Maintenance` drop-down menu to the left of the
|
|
||||||
:guilabel:`Administration` drop-down menu, and select :guilabel:`Print Test Page`. The test label
|
|
||||||
should print out immediately (one-to-two seconds delay).
|
|
||||||
|
|
||||||
.. image:: troubleshooting/print-test.png
|
|
||||||
:align: center
|
|
||||||
:alt: Printing a test page from the administration drop-down menu in the OpenPrinting CUPs
|
|
||||||
server.
|
|
||||||
|
|
||||||
The Zebra printer does not print anything
|
|
||||||
-----------------------------------------
|
|
||||||
|
|
||||||
Zebra printers are quite sensitive to the format of the Zebra Programming Language (ZPL) code that
|
|
||||||
is printed. If nothing comes out of the printer or blank labels are printed, try changing the format
|
|
||||||
of the report that is sent to the printer by accessing :menuselection:`Settings --> Technical -->
|
|
||||||
User Interface --> Views` in :ref:`developer mode <developer-mode>` and look for the corresponding
|
|
||||||
template.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
Check out Zebra's instructions on printing :abbr:`ZPL (Zebra Programming Language)` files `here
|
|
||||||
<https://supportcommunity.zebra.com/s/article/Print-a-zpl-file-using-the-Generic-Text-Printer>`_.
|
|
||||||
|
|
||||||
Barcode scanner
|
|
||||||
===============
|
|
||||||
|
|
||||||
The characters read by the barcode scanner do not match the barcode
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
|
|
||||||
By default, most barcode scanners are configured in the US QWERTY format. If the barcode scanner
|
|
||||||
uses a different layout, go to the form view of the device (:menuselection:`IoT App --> Devices -->
|
|
||||||
Barcode Device`) and select the correct format.
|
|
||||||
|
|
||||||
Nothing happens when a barcode is scanned
|
|
||||||
-----------------------------------------
|
|
||||||
|
|
||||||
Make sure that the correct device is selected in the :menuselection:`Point of Sale` configuration
|
|
||||||
and that the barcode is configured to send an `ENTER` character (keycode 28) at the end of every
|
|
||||||
barcode. To do so, navigate to :menuselection:`PoS app --> 3-Dot Menu on the PoS --> IoT Box section
|
|
||||||
--> Edit`.
|
|
||||||
|
|
||||||
The barcode scanner is detected as a keyboard
|
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
Some barcode scanners do not advertise themselves as barcode scanners but as a USB keyboard
|
|
||||||
instead, and will not be recognized by the :abbr:`IoT (Internet of Things)` box.
|
|
||||||
|
|
||||||
The device type can be manually changed by going to its form view (:menuselection:`IoT App -->
|
|
||||||
Devices --> Barcode Device`) and activating the :guilabel:`Is scanner` option.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/barcode-scanner-settings.png
|
|
||||||
:align: center
|
|
||||||
:alt: Modifying the form view of the barcode scanner.
|
|
||||||
|
|
||||||
Barcode scanner processes barcode characters individually
|
|
||||||
---------------------------------------------------------
|
|
||||||
|
|
||||||
When accessing the mobile version of Odoo from a mobile device, or tablet, paired with a barcode
|
|
||||||
scanner, via the :abbr:`IoT (Internet of Things)` box, the scanner may process each barcode
|
|
||||||
character as an individual scan. In this case, the *Keyboard Layout* option **must** be filled out
|
|
||||||
with the appropriate language of the barcode scanner on the *Barcode Scanner* form page.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
Access the barcode scanner form page by navigating to :menuselection:`IoT App --> Devices -->
|
|
||||||
Barcode Scanner`.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/keyboard-layout.png
|
|
||||||
:align: center
|
|
||||||
:alt: Barcode scanner form page, with keyboard layout option highlighted.
|
|
||||||
|
|
||||||
The :guilabel:`Keyboard Layout` is language based, and the options available vary, depending on the
|
|
||||||
device and the language of the database. For example: :guilabel:`English (UK)`, :guilabel:`English
|
|
||||||
(US)`, etc.
|
|
||||||
|
|
||||||
Cash drawer
|
|
||||||
===========
|
|
||||||
|
|
||||||
The cash drawer does not open
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
The cash drawer should be connected to the printer and the :guilabel:`Cash drawer` checkbox should
|
|
||||||
be ticked in the :abbr:`PoS (Point of Sale)` configuration. To do so, navigate to
|
|
||||||
:menuselection:`POS app --> 3-Dot Menu on the POS --> IoT Box section --> Edit --> Receipt Printer
|
|
||||||
--> Cashdrawer checkbox`.
|
|
||||||
|
|
||||||
Scale
|
|
||||||
=====
|
|
||||||
|
|
||||||
Scales play a crucial role in the checkout process, especially for products sold by weight, rather
|
|
||||||
than fixed pricing.
|
|
||||||
|
|
||||||
Set up Ariva S scales
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
Odoo has determined that a specific setting in Ariva S series scales (manufactured by
|
|
||||||
Mettler-Toledo, LLC.) needs modification, and a dedicated Mettler :abbr:`USB (Universal Serial
|
|
||||||
Bus)`-to-proprietary RJ45 cable is required for the scale to function with Odoo's :abbr:`IoT
|
|
||||||
(Internet of Things)` box.
|
|
||||||
|
|
||||||
To correctly configure the scale for recognition by the :abbr:`IoT (Internet of Things)` box, follow
|
|
||||||
this setup process for the Ariva S series scales.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
It is crucial to use the official Mettler :abbr:`USB (Universal Serial Bus)`-to-RJ45 cable during
|
|
||||||
this process.
|
|
||||||
|
|
||||||
Cable
|
|
||||||
~~~~~
|
|
||||||
|
|
||||||
The Mettler part number is 72256236 - :abbr:`USB (Universal Serial Bus)`-to-:abbr:`POS (Point of
|
|
||||||
Sale)` cable. Contact Mettler, or a partner, to purchase an authentic cable. Note that **no other**
|
|
||||||
cable outside of this Mettler cable works for this configuration. Using a serial-only cable attached
|
|
||||||
to a serial-to-:abbr:`USB (Universal Serial Bus)` adapter is **not** effective.
|
|
||||||
|
|
||||||
.. image:: troubleshooting/cable-mettler.png
|
|
||||||
:align: center
|
|
||||||
:alt: Authentic Mettler USB to POS cable, part number 72256236.
|
|
||||||
|
|
||||||
Setup
|
|
||||||
~~~~~
|
|
||||||
|
|
||||||
Refer to Mettler's Setup Guide for Ariva S series scales during the following configuration: `Ariva
|
|
||||||
Checkout Scale User's Guide <https://www.mt.com/dam/RET_DOCS/Ariv.pdf>`_.
|
|
||||||
|
|
||||||
To begin, go to page 17 in the above manual for *Setup*. This guide lists potential settings for the
|
|
||||||
Ariva S series scales.
|
|
||||||
|
|
||||||
Follow the instructions, along with the following process, to set the scale to setup mode. First,
|
|
||||||
hold the **>T<** button for eight seconds, or until :guilabel:`CONF` appears.
|
|
||||||
|
|
||||||
Next, press **>T<** until :guilabel:`GRP 3` appears, then press **>0<** to confirm.
|
|
||||||
|
|
||||||
Under :guilabel:`3.1`, ensure the setting is set to :guilabel:`1` (USB Virtual COM ports). Press
|
|
||||||
**>T<** to cycle through the options under group 3.1.
|
|
||||||
|
|
||||||
Once :guilabel:`3.1` is set to :guilabel:`1`, press **>0<** to confirm the selection. Continue to
|
|
||||||
press **>0<** until :guilabel:`GRP 4` appears.
|
|
||||||
|
|
||||||
Now, press **>T<** until :guilabel:`EXIT` appears.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
Do **not** make any other changes unless otherwise needed.
|
|
||||||
|
|
||||||
Once :guilabel:`EXIT` appears, press **>0<**. Following this, press **>0<** again to
|
|
||||||
:guilabel:`SAVE`. Now the scale restarts.
|
|
||||||
|
|
||||||
Finally, restart the :abbr:`IoT (Internet of Things)` box to recognize the changes made on the
|
|
||||||
scale's configuration. After restarting, the scale appears as `Toledo 8217`, as opposed to the
|
|
||||||
previous display, where it appeared as `Adam Equipment Serial`.
|
|
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 53 KiB |
@ -1,230 +0,0 @@
|
|||||||
==============
|
|
||||||
Updating (IoT)
|
|
||||||
==============
|
|
||||||
|
|
||||||
Due to the complexity of the :abbr:`IoT (Internet of Things)` box, and virtual Windows :abbr:`IoT
|
|
||||||
(Internet of Things)` box, the term 'updating' can mean several different things.
|
|
||||||
|
|
||||||
The actual drivers can be updated, the core code on the :abbr:`IoT (Internet of Things)` box can be
|
|
||||||
updated, or a new image can be flashed (using a physical :abbr:`IoT (Internet of Things)` box).
|
|
||||||
|
|
||||||
This document explores the various ways to update :abbr:`IoT (Internet of Things)` boxes to ensure
|
|
||||||
smooth operation of :abbr:`IoT (Internet of Things)` box processes and devices.
|
|
||||||
|
|
||||||
.. _iot/config/flash:
|
|
||||||
|
|
||||||
Flashing the SD card on IoT box
|
|
||||||
===============================
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
This update does **not** apply to the Windows :abbr:`IoT (Internet of Things)` box (Odoo 16 and
|
|
||||||
higher).
|
|
||||||
|
|
||||||
To update the Windows :abbr:`IoT (Internet of Things)`, first, uninstall the previous version of
|
|
||||||
the Odoo Windows program, and then reinstall it using the most up-to-date installation package.
|
|
||||||
|
|
||||||
To begin the installation, navigate to the Odoo 16 (or higher) installation package for
|
|
||||||
Enterprise or Community - Windows edition, at `Odoo's download page
|
|
||||||
<https://odoo.com/download>`_.
|
|
||||||
|
|
||||||
In some circumstances, the :abbr:`IoT (Internet of Things)` box's micro SD Card may need to be
|
|
||||||
re-flashed with *Etcher* software to benefit from Odoo's latest :abbr:`IoT (Internet of Things)`
|
|
||||||
image update. This means the Odoo :abbr:`IoT (Internet of Things)` box software may need to be
|
|
||||||
updated in instances of a new :abbr:`IoT (Internet of Things)` box, or when a handler's update, or
|
|
||||||
an update from the :abbr:`IoT (Internet of Things)` box home page, does not resolve issues.
|
|
||||||
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
- It is often necessary to re-flash the :abbr:`IoT (Internet of Things)` box's image after
|
|
||||||
upgrading the Odoo database to a new version.
|
|
||||||
- A computer with a micro SD card reader/adapter is **required** to re-flash the micro SD card.
|
|
||||||
|
|
||||||
First, begin by downloading `Etcher <https://www.balena.io/etcher#download-etcher>`_. It is a free,
|
|
||||||
open-source utility, used for burning image files onto drives. After the download completes, install
|
|
||||||
and launch the program on the computer.
|
|
||||||
|
|
||||||
Then, download the latest :abbr:`IoT (Internet of Things)` image from `nightly
|
|
||||||
<http://nightly.odoo.com/master/iotbox>`_, which will be labeled as `iotbox-latest.zip`. This
|
|
||||||
particular image is compatible with *all* supported versions of Odoo.
|
|
||||||
|
|
||||||
After this step is complete, insert the :abbr:`IoT (Internet of Things)` box's micro SD card into
|
|
||||||
the computer or reader. Open *Etcher*, and select :guilabel:`Flash from file`, then find and select
|
|
||||||
the `iotbox-latest.zip` image and extract it. Next, select the drive the image should be burned to.
|
|
||||||
|
|
||||||
Lastly, click :guilabel:`Flash`, and wait for the process to finish.
|
|
||||||
|
|
||||||
.. image:: updating_iot/etcher-app.png
|
|
||||||
:align: center
|
|
||||||
:alt: Balena's Etcher software dashboard.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
Balena's *Etcher* software also allows for the administrator to flash the :abbr:`SD (Secure
|
|
||||||
Digital)` card from a :abbr:`URL (Uniform Resource Locator)`. To flash from a :abbr:`URL (Uniform
|
|
||||||
Resource Locator)`, simply click :guilabel:`Flash from URL`, instead of :guilabel:`Flash from
|
|
||||||
file`.
|
|
||||||
|
|
||||||
Then, enter the following: `http://nightly.odoo.com/master/iotbox/iotbox-latest.zip`.
|
|
||||||
|
|
||||||
.. image:: updating_iot/url-flash.png
|
|
||||||
:align: center
|
|
||||||
:alt: A view of Balena's Etcher software, with the flash from URL option highlighted.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
An alternative software for flashing the micro SD card is `Raspberry Pi Imager
|
|
||||||
<https://www.raspberrypi.com/software/>`_.
|
|
||||||
|
|
||||||
Windows IoT update
|
|
||||||
==================
|
|
||||||
|
|
||||||
Windows virtual :abbr:`IoT (Internet of Things)` box may occasionally need an update to work
|
|
||||||
properly.
|
|
||||||
|
|
||||||
The following processes cover the :ref:`uninstallation <iot/config/uninstall-windows-iot>` and
|
|
||||||
:ref:`re-installation <iot/config/re-install-windows-iot>` of the Windows virtual :abbr:`IoT
|
|
||||||
(Internet of Things)` box.
|
|
||||||
|
|
||||||
.. _iot/config/uninstall-windows-iot:
|
|
||||||
|
|
||||||
Uninstalling Windows IoT
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Prior to upgrading the Windows virtual :abbr:`IoT (Internet of Things)` box, the previous version
|
|
||||||
should be uninstalled first.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
Before uninstalling a previous version of the Windows virtual :abbr:`IoT (Internet of Things)`
|
|
||||||
box, ensure that there is a newer version of Windows virtual :abbr:`IoT (Internet of Things)` box
|
|
||||||
available, compared to the version currently installed. To do so, navigate to the `Odoo Nightly
|
|
||||||
builds <https://nightly.odoo.com/>`_ page.
|
|
||||||
|
|
||||||
On the :guilabel:`Odoo Nightly builds` page, navigate to :menuselection:`Builds (stable version)
|
|
||||||
--> windows/` to view the date next to the :file:`odoo_(version).latest.exe` file; where
|
|
||||||
*(version)* is equal to the version of Odoo (e.g. 16.0, 17.0). The latest version of the Windows
|
|
||||||
virtual :abbr:`IoT (Internet of Things)` box can be downloaded by selecting this file, or it is
|
|
||||||
always available at the `Odoo Download <https://odoo.com/download/>`_ page.
|
|
||||||
|
|
||||||
Uninstalling the Windows virtual :abbr:`IoT (Internet of Things)` box is done through the Windows
|
|
||||||
program manager.
|
|
||||||
|
|
||||||
On any version of Windows, search for `program` to open the :menuselection:`Programs --> Programs
|
|
||||||
and Features` section of the :guilabel:`Control Panel`. Then, select :guilabel:`Uninstall or change
|
|
||||||
a program`. Next, search for `Odoo`, and click the :guilabel:`... (three dot)` menu on the
|
|
||||||
:guilabel:`Odoo.exe` program to uninstall.
|
|
||||||
|
|
||||||
Confirm the uninstallation, and follow the steps to uninstall through the Odoo uninstall wizard.
|
|
||||||
|
|
||||||
.. _iot/config/re-install-windows-iot:
|
|
||||||
|
|
||||||
Download and re-install
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
The latest version of the Windows virtual :abbr:`IoT (Internet of Things)` box can be downloaded
|
|
||||||
from the `Odoo Nightly builds <https://nightly.odoo.com/>`_ page or it is always available at the
|
|
||||||
`Odoo Download <https://odoo.com/download/>`_ page.
|
|
||||||
|
|
||||||
To download from the :guilabel:`Odoo Nightly builds` page, navigate to :menuselection:`Builds
|
|
||||||
(stable version) --> windows/` to and select the :file:`odoo_(version).latest.exe` file; where
|
|
||||||
*(version)* is equal to the version of Odoo (e.g. 16.0, 17.0).
|
|
||||||
|
|
||||||
To download from the :guilabel:`Odoo Download` page, find the section for the version of Odoo (e.g.
|
|
||||||
16.0, 17.0), and select the :guilabel:`Download` button for :guilabel:`Windows`.
|
|
||||||
|
|
||||||
Next, install and setup the downloaded Odoo :file:`.exe` file. After the instructions screen, click
|
|
||||||
:guilabel:`Next` to start the installation, and agree to the :abbr:`TOS (Terms of Service)`.
|
|
||||||
|
|
||||||
During the next step of the re-installation, select :guilabel:`Odoo IoT` from the :guilabel:`Select
|
|
||||||
the type of install` drop-down menu.
|
|
||||||
|
|
||||||
.. example::
|
|
||||||
For reference, the following should be installed:
|
|
||||||
|
|
||||||
- :guilabel:`Odoo server`
|
|
||||||
- :guilabel:`Odoo IoT`
|
|
||||||
- :guilabel:`Nginx WebServer`
|
|
||||||
- :guilabel:`Ghostscript interpreter`
|
|
||||||
|
|
||||||
Ensure there is enough space on the computer for the installation, then click :guilabel:`Next`.
|
|
||||||
|
|
||||||
Set the destination and complete the installation
|
|
||||||
-------------------------------------------------
|
|
||||||
|
|
||||||
To complete the re-installation, select the :guilabel:`Destination Folder`, and click
|
|
||||||
:guilabel:`Install`.
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
Choosing `C:\\odoo` as the install location allows for the *Nginx* server to start. Odoo's
|
|
||||||
Windows virtual :abbr:`IoT (Internet of Things)` box software should **not** be installed inside
|
|
||||||
any of the Windows user's directories. Doing so does **not** allow for *Nginx* to initialize.
|
|
||||||
|
|
||||||
The installation may take a few minutes. When complete, click :guilabel:`Next` to continue.
|
|
||||||
|
|
||||||
Then, ensure that the :guilabel:`Start Odoo` box is checked, and click :guilabel:`Finish`. After
|
|
||||||
installation, the Odoo server runs, and automatically opens `http://localhost:8069` on a web
|
|
||||||
browser. The webpage should display the :abbr:`IoT (Internet of Things)` box homepage.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
A :ref:`restart <iot/restart_windows_iot>` of the Windows IoT program may be necessary if the web
|
|
||||||
browser does not display anything.
|
|
||||||
|
|
||||||
.. _iot/config/homepage-upgrade:
|
|
||||||
|
|
||||||
Update from the IoT box home page
|
|
||||||
=================================
|
|
||||||
|
|
||||||
In the background, the :abbr:`IoT (Internet of Things)` box uses a version of Odoo code to run and
|
|
||||||
connect to the Odoo database. This code may need to be updated in order for the :abbr:`IoT (Internet
|
|
||||||
of Things)` box to operate effectively. This operation should be completed on a routine basis, to
|
|
||||||
ensure the :abbr:`IoT (Internet of Things)` system, and its processes, stay up-to-date.
|
|
||||||
|
|
||||||
Go to the :abbr:`IoT (Internet of Things)` box home page by navigating to :menuselection:`IoT app
|
|
||||||
--> IoT Boxes`, and clicking on the :guilabel:`IP address` of the :abbr:`IoT (Internet of Things)`
|
|
||||||
box. Then, click on :guilabel:`Update` (next to the version number).
|
|
||||||
|
|
||||||
If a new version of the :abbr:`IoT (Internet of Things)` box image is available, an
|
|
||||||
:guilabel:`Upgrade to _xx.xx_` button appears at the bottom of the page. Click this button to
|
|
||||||
upgrade the unit, at which point the :abbr:`IoT (Internet of Things)` box flashes itself to the
|
|
||||||
newer version. All of the previous configurations are then saved.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
This process can take more than 30 minutes. Do **not** turn off, or unplug, the :abbr:`IoT
|
|
||||||
(Internet of Things)` box, as it would leave it in an inconsistent state. This means the
|
|
||||||
:abbr:`IoT (Internet of Things)` box needs to be :ref:`re-flashed <iot/config/flash>` with a new
|
|
||||||
image.
|
|
||||||
|
|
||||||
.. image:: updating_iot/flash-upgrade.png
|
|
||||||
:align: center
|
|
||||||
:alt: IoT box software upgrade in the IoT Box Home Page.
|
|
||||||
|
|
||||||
Handler (driver) update
|
|
||||||
=======================
|
|
||||||
|
|
||||||
There may be some instances where drivers or interfaces need to be updated for individual devices
|
|
||||||
(e.g. scales, measurement tools, etc.). The IoT handler's (drivers and interfaces) code can be
|
|
||||||
modified by syncing them with the configured server handler's code.
|
|
||||||
|
|
||||||
This can be helpful in instances where :abbr:`IoT (Internet of Things)` devices (e.g. scales,
|
|
||||||
measurement tools, etc.) are not working properly with the :abbr:`IoT (Internet of Things)` box.
|
|
||||||
|
|
||||||
For both the Windows :abbr:`IoT (Internet of Things)` (Odoo 16 and higher) and physical :abbr:`IoT
|
|
||||||
(Internet of Things)` box, this process can be performed manually from the :abbr:`IoT (Internet of
|
|
||||||
Things)` box home page. Go to the :abbr:`IoT (Internet of Things)` box home page by navigating to
|
|
||||||
:menuselection:`IoT app --> IoT Boxes`, and clicking on the :guilabel:`IP address` of the :abbr:`IoT
|
|
||||||
(Internet of Things)` box.
|
|
||||||
|
|
||||||
Next, click :guilabel:`Handlers list`, and then select :guilabel:`Load Handlers` at the bottom of
|
|
||||||
the page.
|
|
||||||
|
|
||||||
.. image:: updating_iot/load-handlers.png
|
|
||||||
:align: center
|
|
||||||
:alt: Handlers list on an IoT box with the load handlers button highlighted.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
Handler's code is fetched from the configured server, and it needs to be up-to-date to have the
|
|
||||||
latest fixes and patches.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
A handler update is also performed automatically each time the :abbr:`IoT (Internet of Things)`
|
|
||||||
box is restarted. The only exception to this process is if the *Automatic drivers update* is
|
|
||||||
unchecked in the form view of the :abbr:`IoT (Internet of Things)` box on the Odoo server. This
|
|
||||||
setting can be reached by going to :menuselection:`IoT App --> Select the IoT box --> Automatic
|
|
||||||
drivers update`.
|
|
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 3.0 KiB |
@ -1,314 +0,0 @@
|
|||||||
========================
|
|
||||||
Connect Windows IoT Odoo
|
|
||||||
========================
|
|
||||||
|
|
||||||
A Virtual IoT box is a computer program that needs to be downloaded and installed on a Windows
|
|
||||||
computer. This requires a Windows operating system with an Odoo 16 or later database.
|
|
||||||
|
|
||||||
The Windows virtual :abbr:`IoT (Internet of Things)` box works the same way as a physical :abbr:`IoT
|
|
||||||
(Internet of Things)` box, with the ability to run most of the same devices. All :abbr:`POS (Point
|
|
||||||
of Sale)` devices work with it, such as a scale or printer. Payment terminals will also work, but it
|
|
||||||
should be noted that :abbr:`MRP (Material Requirement Planning)` devices are not compatible. *These
|
|
||||||
include cameras or measurement tools.*
|
|
||||||
|
|
||||||
Pre-requisites
|
|
||||||
==============
|
|
||||||
|
|
||||||
The following items will be needed to complete the Windows :abbr:`IoT (Internet of Things)`
|
|
||||||
installation.
|
|
||||||
|
|
||||||
- Odoo 16 database or any version above.
|
|
||||||
- :abbr:`IoT (Internet of Things)` compatible devices (except those mentioned above). Refer to:
|
|
||||||
`Odoo's compatible IoT devices <https://www.odoo.com/app/iot-hardware>`_.
|
|
||||||
- Device drivers for Windows.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
Odoo recommends using an updated, recent version of Windows (Windows 10/11) as some older
|
|
||||||
operating systems can cause the Windows virtual :abbr:`IoT (Internet of Things)` to not work.
|
|
||||||
|
|
||||||
- Windows computer (laptop, desktop, or server).
|
|
||||||
- Odoo :abbr:`IoT (Internet of Things)` subscription. Refer to: :ref:`iot/iot-eligibility`.
|
|
||||||
|
|
||||||
Connect the Windows virtual IoT box to an Odoo database
|
|
||||||
=======================================================
|
|
||||||
|
|
||||||
The Windows virtual IoT box is simple to setup in just a few easy steps. Follow this process when
|
|
||||||
installing the Windows virtual IoT software for the first time.
|
|
||||||
|
|
||||||
Download and initial installation
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
To begin the installation, navigate to the Odoo 16 or higher installation package for Community -
|
|
||||||
Windows edition at `Odoo's download page <https://odoo.com/download>`_. Next, install and setup the
|
|
||||||
Odoo :file:`.exe` file. After the instructions screen, click :guilabel:`Next` to start the
|
|
||||||
installation and agree to the :abbr:`TOS (Terms of Service)`.
|
|
||||||
|
|
||||||
During the next step of the installation, select :guilabel:`Odoo IoT` from the :guilabel:`Select the
|
|
||||||
type of install` drop-down menu.
|
|
||||||
|
|
||||||
.. example::
|
|
||||||
For reference, the following should be installed:
|
|
||||||
|
|
||||||
- **Odoo server**
|
|
||||||
- **Odoo IoT**
|
|
||||||
- **Nginx WebServer**
|
|
||||||
- **Ghostscript interpreter**
|
|
||||||
|
|
||||||
Ensure there is enough space on the computer for the installation and click :guilabel:`Next`.
|
|
||||||
|
|
||||||
Setting the destination and completing the installation
|
|
||||||
-------------------------------------------------------
|
|
||||||
|
|
||||||
To complete the installation, select the :guilabel:`Destination Folder` and click
|
|
||||||
:guilabel:`Install`.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
Choosing ``C:\odoo`` as the install location will allow for the Nginx server to start. If the
|
|
||||||
folder doesn't exist, then create it. Otherwise the installation files will be spread throughout
|
|
||||||
the hard drive.
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
Odoo's Windows virtual IoT software should not be installed inside any of the Window's User's
|
|
||||||
directories. Doing so will not allow for Nginx to initialize.
|
|
||||||
|
|
||||||
The installation may take a few minutes. When complete, click :guilabel:`Next` to continue.
|
|
||||||
|
|
||||||
Ensure that the :guilabel:`Start Odoo` box is checked and click :guilabel:`Finish`. After
|
|
||||||
installation, the Odoo server will run and automatically open `http://localhost:8069` on a web
|
|
||||||
browser. The webpage should display the :abbr:`IoT (Internet of Things)` box homepage.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
A restart of the Windows IoT program may be necessary should the web browser not display
|
|
||||||
anything. :ref:`iot/restart_windows_iot`
|
|
||||||
|
|
||||||
Connecting devices
|
|
||||||
------------------
|
|
||||||
|
|
||||||
Next, connect the :abbr:`IoT (Internet of Things)` devices to the Windows computer. Windows should
|
|
||||||
automatically detect the device because the driver is pre-installed on the computer. If not, search
|
|
||||||
for and install the Windows driver for the device.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
Most devices connect to the Windows Machine for Windows IoT automatically through Windows
|
|
||||||
Plug-N-Play (PnP). However, if Windows does not automatically recognize the device after
|
|
||||||
connecting, then the administrator may need to install the corresponding drivers manually.
|
|
||||||
|
|
||||||
Devices automatically recognized:
|
|
||||||
|
|
||||||
- Regular ink/toner based printers
|
|
||||||
- Receipt printers (Epson/Star)
|
|
||||||
- Barcode scanners
|
|
||||||
- Measurement devices (although some configuration of the measurement device settings is
|
|
||||||
required) See this documentation: :doc:`../devices/measurement_tool`
|
|
||||||
|
|
||||||
Devices not automatically recognized (requires manual driver download):
|
|
||||||
|
|
||||||
- Label printers (Zebra)
|
|
||||||
- Scales
|
|
||||||
|
|
||||||
Reference the manufacturer's website for the equipment in question. Then, download the drivers
|
|
||||||
and install them on the Windows machine. Reconnect the device in question and Windows will find
|
|
||||||
the device.
|
|
||||||
|
|
||||||
Following connecting devices to the computer, refresh the :abbr:`IoT (Internet of Things)` box
|
|
||||||
homepage and verify the device is seen. If not, reload the handlers through the :abbr:`IoT (Internet
|
|
||||||
of Things)` box homepage.
|
|
||||||
|
|
||||||
Finally, connect Windows :abbr:`IoT (Internet of Things)` to a database using existing instructions
|
|
||||||
(manually using the Token).
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:doc:`/applications/general/iot/config/connect`
|
|
||||||
|
|
||||||
Now the installation is complete, the devices connected to :abbr:`IoT (Internet of Things)` can be
|
|
||||||
used to complete processes/actions.
|
|
||||||
|
|
||||||
Troubleshooting
|
|
||||||
===============
|
|
||||||
|
|
||||||
.. _iot/restart_windows_iot:
|
|
||||||
|
|
||||||
Restart Windows IoT box
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
In some instances a manual restart of the physical :abbr:`IoT (Internet of Things)` box can resolve
|
|
||||||
the issue of an :abbr:`IoT (Internet of Things)` box not showing up on the database. For the Windows
|
|
||||||
virtual :abbr:`IoT (Internet of Things)` box a manual restart of the Odoo server can resolve
|
|
||||||
database connection issues.
|
|
||||||
|
|
||||||
To restart the virtual Windows IoT server:
|
|
||||||
|
|
||||||
#. Type `Services` into the Windows :guilabel:`Search Bar`.
|
|
||||||
#. Select the :menuselection:`Services` App and scroll down to the :guilabel:`Odoo` service.
|
|
||||||
#. Right click on :guilabel:`Odoo` and select :guilabel:`Start` or :guilabel:`Restart`. This action
|
|
||||||
will manually restart the Odoo IoT server.
|
|
||||||
|
|
||||||
Firewalls
|
|
||||||
---------
|
|
||||||
|
|
||||||
Firewalls keep devices safe and secure. Sometimes they can block connections that should be made
|
|
||||||
though. The Windows virtual :abbr:`IoT (Internet of Things)` box software may not be reachable to
|
|
||||||
the :abbr:`LAN (Local Area Network)` due to a firewall preventing the connection. Consult your local
|
|
||||||
IT support team to make exceptions (network discovery) in the :abbr:`OS (Operating System)` or
|
|
||||||
firewall program. Windows has their own firewall as do other virus protection programs.
|
|
||||||
|
|
||||||
.. example::
|
|
||||||
A client might encounter a time when they are able to reach the homepage of the :abbr:`IoT
|
|
||||||
(Internet of Things)` box, yet they cannot access it from another computer/mobile device/tablet
|
|
||||||
on the same network.
|
|
||||||
|
|
||||||
Making an exception on Windows Defender
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
It is possible to allow other devices to access the Windows virtual :abbr:`IoT (Internet of Things)`
|
|
||||||
box while keeping the firewall on. This is done by creating a rule on *Windows Defender* and
|
|
||||||
allowing communication through port `8069`. The following process describes the steps to take in
|
|
||||||
order to make this exception.
|
|
||||||
|
|
||||||
Create a rule in Windows Defender
|
|
||||||
*********************************
|
|
||||||
|
|
||||||
First, open the *Windows Firewall* by navigating to the :menuselection:`Start Menu` and typing in
|
|
||||||
`Firewall`. Then, open the :menuselection:`Windows Defender Firewall` program. In the left-hand
|
|
||||||
menu, navigate to :guilabel:`Advanced Settings`.
|
|
||||||
|
|
||||||
Once :guilabel:`Advanced Settings` have been selected, click :guilabel:`Inbound Rules` in the
|
|
||||||
left-hand menu. Then, in the right-hand menu column (under :guilabel:`Inbound Rules`), click on
|
|
||||||
:guilabel:`New Rule` to create a new rule.
|
|
||||||
|
|
||||||
Configure new rule
|
|
||||||
******************
|
|
||||||
|
|
||||||
On the :menuselection:`Rule Type` screen, select :guilabel:`Port`. Then click :guilabel:`Next`. From
|
|
||||||
the :menuselection:`Protocol and Ports` page leave the rule application to :guilabel:`TCP`. Then,
|
|
||||||
select :guilabel:`Specific Local Ports` for the :guilabel:`ports` option. In the text box, type in
|
|
||||||
`8069, 443`. Finally, click :guilabel:`Next` to continue to the next step.
|
|
||||||
|
|
||||||
On the :menuselection:`Actions` page, select :guilabel:`Allow the connection` and click
|
|
||||||
:guilabel:`Next`. The following page on the :menuselection:`Rule Configuration` wizard is the
|
|
||||||
:guilabel:`Profile` page. On this page, select whichever connection type applies to the network the
|
|
||||||
Windows machine is operating on. Ideally, select :guilabel:`Private` only connections. The *Private*
|
|
||||||
connection type is the most secure connection while allowing the selected port to communicate. Click
|
|
||||||
:guilabel:`Next` to continue.
|
|
||||||
|
|
||||||
Finally, assign a new, unique name to the rule. For example, this name can be `Odoo`. Optionally,
|
|
||||||
add a brief description in the :guilabel:`Description` field. Click :guilabel:`Finish` to complete
|
|
||||||
the :guilabel:`Rule Configuration` wizard. Now, the new rule is active and devices can connect to
|
|
||||||
the Windows virtual :abbr:`IoT (Internet of Things)` box.
|
|
||||||
|
|
||||||
.. _iot/windows/wordline:
|
|
||||||
|
|
||||||
Worldline exception
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
*Worldline* is a payment terminal that can be connected to Odoo's *PoS* (point of sale) system. It
|
|
||||||
allows for a comprehensive and fluid payment experience for customers. Worldline is available in
|
|
||||||
Belgium, the Netherlands, and Luxembourg.
|
|
||||||
|
|
||||||
When using the Windows IoT server to connect the Worldline payment terminal, it is necessary to
|
|
||||||
create an exception in the Windows firewall so that a connection can be made between the Odoo
|
|
||||||
database/:abbr:`IoT (Internet of Things)` box and Worldline.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
:doc:`../../../sales/point_of_sale/payment_methods/terminals/worldline`
|
|
||||||
|
|
||||||
To create the exception, first, open the *Windows Defender Firewall* app on the Windows machine.
|
|
||||||
This can be accomplished by typing `windows defender` in the :guilabel:`Search` bar.
|
|
||||||
|
|
||||||
Next, click :guilabel:`Advanced settings` in the left menu.
|
|
||||||
|
|
||||||
.. image:: windows_iot/advanced-settings.png
|
|
||||||
:align: center
|
|
||||||
:alt: Advanced settings option highlighted in the left pane of the Windows Defender Firewall app.
|
|
||||||
|
|
||||||
In the left menu, choose :guilabel:`Inbound Rules`.
|
|
||||||
|
|
||||||
.. image:: windows_iot/inbound-rules.png
|
|
||||||
:align: center
|
|
||||||
:alt: Windows Defender left window pane with inbound rules menu item highlighted.
|
|
||||||
|
|
||||||
After selecting :guilabel:`Inbound Rules`, select :guilabel:`New Rule` in the far right menu.
|
|
||||||
|
|
||||||
.. image:: windows_iot/new-rule.png
|
|
||||||
:align: center
|
|
||||||
:alt: New rule dropdown shown with new rule option highlighted.
|
|
||||||
|
|
||||||
Then, for the :guilabel:`Rule Type`, select the radio button for :guilabel:`Port`. Click
|
|
||||||
:guilabel:`Next` to continue to the rest of the configuration.
|
|
||||||
|
|
||||||
.. image:: windows_iot/radio-port.png
|
|
||||||
:align: center
|
|
||||||
:alt: Rule Type window open, with the radio button next to port highlighted.
|
|
||||||
|
|
||||||
On the :guilabel:`Protocols and Ports` page, choose the radio button for :guilabel:`TCP`, under
|
|
||||||
:guilabel:`Does this rule apply to TCP or UDP?`.
|
|
||||||
|
|
||||||
Next, under :guilabel:`Does this rule apply to all local ports or specific ports?`, select the radio
|
|
||||||
button for :guilabel:`Specific local ports`. Then, enter `9050`, and click :guilabel:`Next` to
|
|
||||||
continue.
|
|
||||||
|
|
||||||
.. image:: windows_iot/protocol-port.png
|
|
||||||
:align: center
|
|
||||||
:alt: Protocol/port configuration window with TCP, specific port (9050) and Next highlighted.
|
|
||||||
|
|
||||||
The next screen is the :guilabel:`Action` page. Under :guilabel:`What action should be taken when a
|
|
||||||
connection matches the specified conditions?`, choose the radio button for :guilabel:`Allow the
|
|
||||||
connection`. Then, click :guilabel:`Next` to continue.
|
|
||||||
|
|
||||||
A :guilabel:`Profile` page appears. Under :guilabel:`When does this rule apply?`, leave the three
|
|
||||||
boxes checked for: :guilabel:`Domain`, :guilabel:`Private`, and :guilabel:`Public`. Click
|
|
||||||
:guilabel:`Next` to continue to the naming convention page.
|
|
||||||
|
|
||||||
On the :guilabel:`Name` page, enter `Odoo Worldline`, under the :guilabel:`Name` field. Enter a
|
|
||||||
:guilabel:`Description (optional)`. Finally, once ready, click :guilabel:`Finish`.
|
|
||||||
|
|
||||||
The final :guilabel:`Inbound rule` should appear as follows:
|
|
||||||
|
|
||||||
.. list-table::
|
|
||||||
:header-rows: 1
|
|
||||||
:stub-columns: 1
|
|
||||||
|
|
||||||
* -
|
|
||||||
- Odoo Worldline
|
|
||||||
* - Profile
|
|
||||||
- All
|
|
||||||
* - Enabled
|
|
||||||
- Yes
|
|
||||||
* - Action
|
|
||||||
- Allow
|
|
||||||
* - Override
|
|
||||||
- No
|
|
||||||
* - Program
|
|
||||||
- Any
|
|
||||||
* - Local Address
|
|
||||||
- Any
|
|
||||||
* - Remote Address
|
|
||||||
- Any
|
|
||||||
* - Protocol
|
|
||||||
- TCP
|
|
||||||
* - Local Port
|
|
||||||
- 9050
|
|
||||||
* - Remote Port
|
|
||||||
- Any
|
|
||||||
* - Authorized Users
|
|
||||||
- Any
|
|
||||||
* - Authorized Computers
|
|
||||||
- Any
|
|
||||||
* - Authorized Local Principals
|
|
||||||
- Any
|
|
||||||
* - Local User Owner
|
|
||||||
- Any
|
|
||||||
* - PolicyAppld
|
|
||||||
- None
|
|
||||||
* - Application Package
|
|
||||||
- Any
|
|
||||||
|
|
||||||
Uninstalling Windows IoT
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Uninstalling the Windows virtual :abbr:`IoT (Internet of Things)` box is done through the Windows
|
|
||||||
program manager. Using any Windows version, search for `program`. Then, select :guilabel:`Add or
|
|
||||||
Remove Programs` located in the control panel. Search for `Odoo` and click the :guilabel:`three dot
|
|
||||||
menu` to uninstall.
|
|
||||||
|
|
||||||
Confirm the un-installation and follow the steps to uninstall through the Odoo uninstall guide.
|
|
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 17 KiB |
148
content/applications/general/iot/connect.rst
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
=============================
|
||||||
|
IoT system connection to Odoo
|
||||||
|
=============================
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
=============
|
||||||
|
|
||||||
|
To connect the IoT system to an Odoo database, the following prerequisites must be met:
|
||||||
|
|
||||||
|
- The Internet of Things (IoT) app must be :ref:`installed <general/install>`.
|
||||||
|
- The IoT system must be connected to the network.
|
||||||
|
- The computer connecting to Odoo must be on the same network as the IoT system.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
It is recommended to connect the IoT system to a **production** instance, as other types of
|
||||||
|
environments may cause issues (e.g., with :ref:`HTTPS certificate generation
|
||||||
|
<iot/https_certificate_iot/iot-eligibility>`).
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
- :doc:`iot_box`
|
||||||
|
- :doc:`windows_iot`
|
||||||
|
|
||||||
|
Connection
|
||||||
|
==========
|
||||||
|
|
||||||
|
The IoT system can be connected to the Odoo database using a :ref:`pairing code
|
||||||
|
<iot/connect/pairing-code>` or a :ref:`connection token <iot/connect/token>`.
|
||||||
|
|
||||||
|
.. _iot/connect/pairing-code:
|
||||||
|
|
||||||
|
Connection using a pairing code
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
- The pairing code is displayed for up to 5 minutes after the IoT system starts. If the code is
|
||||||
|
no longer visible, reboot the IoT box or :ref:`restart the Windows virtual IoT service
|
||||||
|
<iot/windows_iot/restart>` to display the pairing code again. Alternatively, connect the IoT
|
||||||
|
system to the database using a :ref:`connection token <iot/connect/token>`.
|
||||||
|
- The pairing code is not displayed if the IoT system is already connected to a database (e.g.,
|
||||||
|
a test database).
|
||||||
|
|
||||||
|
#. Retrieve the IoT's system pairing code:
|
||||||
|
|
||||||
|
.. tabs::
|
||||||
|
|
||||||
|
.. group-tab:: IoT box
|
||||||
|
|
||||||
|
Connect the IoT box to an external monitor or printer. If the IoT box was already plugged
|
||||||
|
prior to this, reboot it by unplugging it for a few seconds and replugging it.
|
||||||
|
|
||||||
|
- External monitor: The pairing code should be displayed on the screen a few minutes after
|
||||||
|
rebooting the IoT box.
|
||||||
|
- Printer: The pairing code should be printed automatically.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
If no external monitor or printer is connected to the IoT box, access the :ref:`IoT
|
||||||
|
box's homepage <iot/iot-box/homepage>`; the code is displayed in the :guilabel:`Pairing
|
||||||
|
Code` section.
|
||||||
|
|
||||||
|
.. group-tab:: Windows virtual IoT
|
||||||
|
|
||||||
|
On the computer with the Windows virtual IoT installed, open the IoT system's homepage
|
||||||
|
in a web browser by navigating to the URL `http://localhost:8069`. Then, scroll to the
|
||||||
|
:guilabel:`Pairing Code` section.
|
||||||
|
|
||||||
|
#. In Odoo, open the IoT app and click :guilabel:`Connect`.
|
||||||
|
#. In the :guilabel:`Connect an IoT Box` popup that opens, enter the :guilabel:`Pairing code`.
|
||||||
|
#. Click :guilabel:`Pair`.
|
||||||
|
|
||||||
|
.. _iot/connect/token:
|
||||||
|
|
||||||
|
Connection using a connection token
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
#. In Odoo, open the IoT app and click :guilabel:`Connect`.
|
||||||
|
#. In the :guilabel:`Connect an IoT Box` popup that opens, copy the :guilabel:`Token`.
|
||||||
|
#. Access the :ref:`IoT box's <iot/iot-box/homepage>` or :ref:`Windows virtual IoT's
|
||||||
|
<iot/windows-iot/homepage>` homepage.
|
||||||
|
#. In the :guilabel:`Odoo database connected` section, click :guilabel:`Configure`.
|
||||||
|
#. Paste the token into the :guilabel:`Server Token` field and click :guilabel:`Connect`.
|
||||||
|
|
||||||
|
.. _iot/connect/IoT-form:
|
||||||
|
|
||||||
|
IoT system form
|
||||||
|
===============
|
||||||
|
|
||||||
|
Once the IoT system is connected to the Odoo database, it is displayed as a card in the IoT app.
|
||||||
|
Click the IP address on the card to access the :ref:`IoT box's <iot/windows-iot/homepage>` or
|
||||||
|
:ref:`Windows virtual IoT's <iot/iot-box/homepage>` homepage. Click the card to access the
|
||||||
|
list of :doc:`devices <devices>` connected to the IoT system.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
:ref:`Enable the developer mode <developer-mode>` to access the IoT system's
|
||||||
|
:guilabel:`Technical Information`, such as its :guilabel:`Identifier`, :guilabel:`Domain
|
||||||
|
address`, and :guilabel:`Image version`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
By default, drivers are automatically :ref:`udpated <iot_updating_iot/handlers>` every time the
|
||||||
|
IoT system is restarted. To disable automatic updates, uncheck the :guilabel:`Automatic drivers
|
||||||
|
update` option.
|
||||||
|
|
||||||
|
.. _iot/connect/troubleshooting:
|
||||||
|
|
||||||
|
Troubleshooting
|
||||||
|
===============
|
||||||
|
|
||||||
|
The pairing code does not appear or does not work
|
||||||
|
-------------------------------------------------
|
||||||
|
|
||||||
|
The :ref:`pairing code <iot/connect/pairing-code>` might not be displayed or printed under the
|
||||||
|
following circumstances:
|
||||||
|
|
||||||
|
- The IoT system is not connected to the Internet.
|
||||||
|
- The IoT system is already connected to an Odoo database.
|
||||||
|
- The :ref:`pairing code <iot/connect/pairing-code>` display time has expired. Reboot the IoT box
|
||||||
|
or :ref:`restart the Windows virtual IoT service <iot/windows_iot/restart>` to display the pairing
|
||||||
|
code again.
|
||||||
|
- The IoT system's image version is too old and needs to be :ref:`updated
|
||||||
|
<iot/updating_iot/image-code>`.
|
||||||
|
|
||||||
|
The IoT system is connected but does not appear in the database
|
||||||
|
---------------------------------------------------------------
|
||||||
|
|
||||||
|
The IoT system might take a few minutes to restart when it connects to a database. If it still does
|
||||||
|
not appear after a few minutes:
|
||||||
|
|
||||||
|
- Verify that the IoT system can reach the database and the server does not use a multi-database
|
||||||
|
environment.
|
||||||
|
- Reboot the IoT box or :ref:`restart the Windows virtual IoT service <iot/windows_iot/restart>`.
|
||||||
|
|
||||||
|
The IoT box is connected to the Odoo database but cannot be reached
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
|
Verify that the IoT system and the computer running the Odoo database are connected to the same
|
||||||
|
network.
|
||||||
|
|
||||||
|
The Windows virtual IoT's homepage cannot be accessed from another device
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Check the :ref:`iot/windows-iot/firewall`.
|
||||||
|
|
||||||
|
The IoT system is disconnected from the database after an Odoo upgrade
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
:ref:`Update the IoT system's image <iot/updating_iot/image-code>` by flashing the IoT box's card or
|
||||||
|
:ref:`uninstalling the Windows virtual IoT program <iot/windows_iot/uninstall>` and
|
||||||
|
:ref:`reinstalling <iot/windows-iot/installation>` the latest package for Windows **matching your
|
||||||
|
database's version**.
|
@ -6,6 +6,12 @@
|
|||||||
Devices
|
Devices
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
- :doc:`Connect a Worldline payment terminal
|
||||||
|
<../../sales/point_of_sale/payment_methods/terminals/worldline>`
|
||||||
|
- :doc:`Connect an Ingenico payment terminal
|
||||||
|
<../../sales/point_of_sale/payment_methods/terminals/ingenico>`
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
:glob:
|
:glob:
|
||||||
@ -16,8 +22,3 @@ Devices
|
|||||||
devices/footswitch
|
devices/footswitch
|
||||||
devices/printer
|
devices/printer
|
||||||
devices/scale
|
devices/scale
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
- :doc:`Worldline payment terminal
|
|
||||||
<../../sales/point_of_sale/payment_methods/terminals/worldline>`
|
|
||||||
- :doc:`Ingenico payment terminal <../../sales/point_of_sale/payment_methods/terminals/ingenico>`
|
|
||||||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 13 KiB |
@ -28,7 +28,7 @@ Connect with bluetooth
|
|||||||
Activate the Bluetooth functionality on the device (see the device manual for further explanation),
|
Activate the Bluetooth functionality on the device (see the device manual for further explanation),
|
||||||
and the :abbr:`IoT (Internet of Things)` box automatically connects to the device.
|
and the :abbr:`IoT (Internet of Things)` box automatically connects to the device.
|
||||||
|
|
||||||
.. image:: measurement_tool/measurement-tool.jpeg
|
.. image:: measurement_tool/measurement-tool.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: Bluetooth indicator on measurement tool.
|
:alt: Bluetooth indicator on measurement tool.
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 246 KiB |
@ -2,105 +2,88 @@
|
|||||||
Connect a printer
|
Connect a printer
|
||||||
=================
|
=================
|
||||||
|
|
||||||
.. |iot| replace:: :abbr:`IoT (Internet of Things)`
|
|
||||||
.. |usb| replace:: :abbr:`USB (Universal Serial Bus)`
|
|
||||||
|
|
||||||
Printer installation can be done in a few easy steps. The printer can be used to print receipts,
|
Printer installation can be done in a few easy steps. The printer can be used to print receipts,
|
||||||
labels, orders, or even reports from the different Odoo apps. In addition, printer actions can be
|
labels, orders, or even reports from the different Odoo apps. In addition, printer actions can be
|
||||||
assigned as an *action on a trigger* during the manufacturing process, or added onto a quality
|
assigned as an *action on a trigger* during the manufacturing process, or added onto a quality
|
||||||
control point or a quality check.
|
control point or a quality check.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
The **only** way to connect a printer directly to an Odoo database is through the use of an |iot|
|
The **only** way to connect a printer directly to an Odoo database is through the use of an IoT
|
||||||
box.
|
system. Without an IoT system, printing can still occur, but it is managed through the printer
|
||||||
|
itself, which is not the recommended process.
|
||||||
Without an |iot| box, printing can still occur, but it is managed through the printer itself,
|
|
||||||
which is not the recommended process.
|
|
||||||
|
|
||||||
Connection
|
Connection
|
||||||
==========
|
==========
|
||||||
|
|
||||||
The |iot| box supports printers connected through |usb|, network connection, or Bluetooth.
|
IoT systems support printers connected through USB, network connection, or Bluetooth.
|
||||||
`Supported printers <https://www.odoo.com/page/iot-hardware>`__ are detected automatically, and
|
`Supported printers <https://www.odoo.com/page/iot-hardware>`__ are detected automatically, and
|
||||||
appear in the :guilabel:`Devices` list of the *IoT* app.
|
appear in the :guilabel:`Devices` list of the IoT app.
|
||||||
|
|
||||||
.. image:: printer/printer-detected.png
|
.. image:: printer/printer-detected.png
|
||||||
:align: center
|
|
||||||
:alt: The printer as it would appear in the IoT app devices list.
|
:alt: The printer as it would appear in the IoT app devices list.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Printers can take up to two minutes to appear in the *IoT* app :guilabel:`Devices` list.
|
Printers can take up to two minutes to appear in the IoT app :guilabel:`Devices` list.
|
||||||
|
|
||||||
Link printer
|
Link a printer
|
||||||
============
|
==============
|
||||||
|
|
||||||
Link printer to work orders
|
Link work orders to a printer
|
||||||
---------------------------
|
-----------------------------
|
||||||
|
|
||||||
*Work Orders* can be linked to printers, via a quality control point, to print labels for
|
Work orders can be linked to printers, via a quality control point, to print labels for
|
||||||
manufactured products.
|
manufactured products.
|
||||||
|
|
||||||
In the *Quality app*, a device can be set up on a quality control point. To do that, go to the
|
In the :doc:`Quality app </applications/inventory_and_mrp/quality>`, a device can be set up on a
|
||||||
:menuselection:`Quality app --> Quality Control --> Control Points`, and open the desired control
|
quality control point. To do so, go to the :menuselection:`Quality --> Quality Control --> Control
|
||||||
point to which the printer will be linked.
|
Points`, and open the desired control point.
|
||||||
|
|
||||||
.. important::
|
.. important::
|
||||||
A *Manufacturing Operation* and *Work Order Operation* need to be attached to a quality control
|
A manufacturing operation and work order operation need to be attached to a quality control
|
||||||
point before the :guilabel:`Type` field allows for the :guilabel:`Print Label` option to be
|
point before the :guilabel:`Type` field allows for the :guilabel:`Print Label` option to be
|
||||||
selected.
|
selected.
|
||||||
|
|
||||||
From here, edit the control point, by selecting the :guilabel:`Type` field, and selecting
|
From here, edit the control point by selecting the :guilabel:`Type` field, and selecting
|
||||||
:guilabel:`Print Label` from the drop-down menu of options. Doing so reveals a field called
|
:guilabel:`Print Label` from the dropdown menu of options. Doing so reveals the :guilabel:`Device`
|
||||||
:guilabel:`Device`, where the attached *device* can be selected. :guilabel:`Save` the changes, if
|
field, where the attached device can be selected.
|
||||||
required.
|
|
||||||
|
|
||||||
.. image:: printer/printer-controlpoint.png
|
|
||||||
:align: center
|
|
||||||
:alt: This is the quality control point setup.
|
|
||||||
|
|
||||||
The printer can now be used with the selected quality control point. When the quality control point
|
The printer can now be used with the selected quality control point. When the quality control point
|
||||||
is reached during the manufacturing process, the database presents the option to print labels for a
|
is reached during the manufacturing process, the database presents the option to print labels for a
|
||||||
specific product.
|
specific product.
|
||||||
|
|
||||||
.. image:: printer/printer-prompt.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
Quality control points can also be accessed by navigating to :menuselection:`IoT App -->
|
Quality control points can also be accessed by navigating to :menuselection:`IoT -->
|
||||||
Devices`, then select the device. There is a :guilabel:`Quality Control Points` tab, where they
|
Devices`, then selecting the device. Go to the :guilabel:`Quality Control Points` tab to add them
|
||||||
can be added with the device.
|
to the device.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
On a quality check detail form, the :guilabel:`Type` of check can also be specified to
|
On a :doc:`quality check form
|
||||||
:guilabel:`Print Label`. To create :doc:`new quality checks
|
</applications/inventory_and_mrp/quality/quality_management/quality_checks>`, the
|
||||||
<../../../inventory_and_mrp/quality/quality_management/quality_checks>`, navigate to
|
:guilabel:`Type` of check can also be set to :guilabel:`Print Label`.
|
||||||
:menuselection:`Quality app --> Quality Control --> Quality Checks --> New`.
|
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`../../../inventory_and_mrp/quality/quality_management/quality_control_points`
|
- :doc:`/applications/inventory_and_mrp/quality/quality_management/quality_control_points`
|
||||||
- :doc:`../../../inventory_and_mrp/quality/quality_management/quality_alerts`
|
- :doc:`/applications/inventory_and_mrp/quality/quality_management/quality_alerts`
|
||||||
|
|
||||||
.. _iot/link-printer:
|
.. _iot/link-printer:
|
||||||
|
|
||||||
Link printer to reports
|
Link reports to a printer
|
||||||
-----------------------
|
-------------------------
|
||||||
|
|
||||||
It is possible to link report types to a specific printer. In the *IoT* app, go to the
|
It is possible to link report types to a specific printer. To do so:
|
||||||
:guilabel:`Devices` menu, and select the desired printer to be configured.
|
|
||||||
|
|
||||||
From here, go to the :guilabel:`Printer Reports` tab, and click :guilabel:`Add a line`. In the
|
#. Go to :menuselection:`IoT --> Devices` and select the desired printer.
|
||||||
window that appears, check all the types of :guilabel:`Reports` that should be linked to this
|
#. Go to the :guilabel:`Printer Reports` tab and click :guilabel:`Add a line`.
|
||||||
printer.
|
#. In the pop-up that opens, select the types of reports to be linked to the printer and click
|
||||||
|
:guilabel:`Select`.
|
||||||
|
|
||||||
.. image:: printer/printer-reports.png
|
.. image:: printer/printer-reports.png
|
||||||
:align: center
|
|
||||||
:alt: The list of reports assigned to a printer in the IoT app.
|
:alt: The list of reports assigned to a printer in the IoT app.
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
Reports can also be configured in the *Technical* menu of the *Settings* app, while in
|
Reports can also be configured by :ref:`enabling the developer mode <developer-mode>` and going
|
||||||
:ref:`debug mode <developer-mode>`. To do that, navigate to :menuselection:`Settings App -->
|
to :menuselection:`Settings --> Technical --> Reports`. Select the desired report from the list
|
||||||
Technical --> Actions: Reports`. From here, select the desired report from the list. Then, an
|
and set an :guilabel:`IoT Device`.
|
||||||
:guilabel:`IoT Device` can be set on the report.
|
|
||||||
|
|
||||||
The first time a linked report is selected to print, a :guilabel:`Select Printers` pop-up window
|
The first time a linked report is selected to print, a :guilabel:`Select Printers` pop-up window
|
||||||
appears. Tick the checkbox next to the correct printer for the report, and click :guilabel:`Print`.
|
appears. Tick the checkbox next to the correct printer for the report, and click :guilabel:`Print`.
|
||||||
@ -114,9 +97,9 @@ a user can have different devices saved in their cache for different reports, ba
|
|||||||
they use to access Odoo. It also means different users can have a report automatically printed from
|
they use to access Odoo. It also means different users can have a report automatically printed from
|
||||||
different printers, based on their preferences.
|
different printers, based on their preferences.
|
||||||
|
|
||||||
To unlink a report from a printer, navigate to :menuselection:`IoT app --> Clear Selected Devices`.
|
To unlink a report from a printer, navigate to :menuselection:`IoT --> Configuration --> Reset
|
||||||
This generates a list of reports that are linked to a printer on the current device. Click the
|
Linked Printers`. This generates a list of reports that are linked to a printer on the current
|
||||||
:guilabel:`Unlink` button next to each report to remove the link.
|
device. Click the :guilabel:`Unlink` button next to each report to remove the link.
|
||||||
|
|
||||||
.. important::
|
.. important::
|
||||||
This step **only** prevents the report from automatically printing to the listed printer from
|
This step **only** prevents the report from automatically printing to the listed printer from
|
||||||
@ -124,8 +107,390 @@ This generates a list of reports that are linked to a printer on the current dev
|
|||||||
the :guilabel:`Printer Reports` tab.
|
the :guilabel:`Printer Reports` tab.
|
||||||
|
|
||||||
.. image:: printer/clear-reports.png
|
.. image:: printer/clear-reports.png
|
||||||
:align: center
|
|
||||||
:alt: A list of reports currently linked to a printer in the IoT app.
|
:alt: A list of reports currently linked to a printer in the IoT app.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
:doc:`POS Order Printing <../../../sales/point_of_sale/restaurant/kitchen_printing>`
|
:doc:`POS Order Printing <../../../sales/point_of_sale/restaurant/kitchen_printing>`
|
||||||
|
|
||||||
|
Potential issues
|
||||||
|
================
|
||||||
|
|
||||||
|
The printer is not detected
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
If a printer does not appear in the devices list, go to the :ref:`IoT box's <iot/iot-box/homepage>`
|
||||||
|
or :ref:`Windows virtual IoT's <iot/windows-iot/homepage>` homepage, click :guilabel:`Show` in
|
||||||
|
the :guilabel:`Devices` section, and make sure the printer is listed.
|
||||||
|
|
||||||
|
If the printer does not appear on the IoT system's homepage, click :guilabel:`Printer Server`, then
|
||||||
|
:guilabel:`Administration`, and :guilabel:`Add Printer`. If the printer is not in the list, it is
|
||||||
|
likely not connected properly.
|
||||||
|
|
||||||
|
The printer outputs random text
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
For most printers, the correct driver should be automatically detected and selected. However, in
|
||||||
|
some cases, the automatic detection mechanism might not be enough, and if no driver is found, the
|
||||||
|
printer might print random characters.
|
||||||
|
|
||||||
|
The solution is to manually select the corresponding driver. On the IoT system's homepage, click
|
||||||
|
:guilabel:`Printer Server`, then :guilabel:`Printers`, and select the printer in the list.
|
||||||
|
In the :guilabel:`Administration` dropdown menu, click :guilabel:`Modify Printer`. Follow the steps
|
||||||
|
and select the printer's *make* and *model*.
|
||||||
|
|
||||||
|
.. image:: printer/modify-printer.png
|
||||||
|
:scale: 75%
|
||||||
|
:alt: Edit the printer connected to the IoT system.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Epson receipt printers and Zebra label printers do not need a driver to work. Make sure that no
|
||||||
|
driver is selected for those printers.
|
||||||
|
|
||||||
|
The printer is detected but is not recognized correctly
|
||||||
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
If Odoo and the IoT system do not recognize the printer correctly, go to :menuselection:`IoT
|
||||||
|
--> Devices`, click the device's card to access its form, and set the :guilabel:`Subtype` field to
|
||||||
|
the appropriate option: :guilabel:`Receipt Printer`, :guilabel:`Label Printer`, or :guilabel:`Office
|
||||||
|
Printer`.
|
||||||
|
|
||||||
|
Epson configuration special case
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Most Epson printers support printing receipts in Odoo Point of Sale using the `GS v 0` command.
|
||||||
|
However, the following Epson printer models do not support this command:
|
||||||
|
|
||||||
|
- TM-U220
|
||||||
|
- TM-U230
|
||||||
|
- TM-P60
|
||||||
|
- TMP-P60II
|
||||||
|
|
||||||
|
To bypass this issue, you can configure the printer to use the `ESC *` command.
|
||||||
|
|
||||||
|
First, review Epson's website for compatibility for both the `GS v 0
|
||||||
|
<https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/gs_lv_0.html>`_ and `ESC *
|
||||||
|
<https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/esc_asterisk.html>`_ commands.
|
||||||
|
|
||||||
|
If the printer is incompatible with `GS v 0` but supports `ESC *`, configure the IoT system to use
|
||||||
|
the `ESC *` command as follows:
|
||||||
|
|
||||||
|
#. Access the :ref:`IoT box's <iot/iot-box/homepage>` or :ref:`Windows virtual IoT's
|
||||||
|
<iot/windows-iot/homepage>` homepage.
|
||||||
|
#. Click the :guilabel:`Printer server` button, then click :guilabel:`Administration` on the CUPS
|
||||||
|
page.
|
||||||
|
#. Click :guilabel:`Add Printer` in the :guilabel:`Printers` section, select the printer, and click
|
||||||
|
:guilabel:`Continue`.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
If the printer's name is still uncertain, take the following steps:
|
||||||
|
|
||||||
|
#. Take note of the listed printers on the CUPS page.
|
||||||
|
#. Turn the printer off and refresh the page.
|
||||||
|
#. Compare the difference with the first list to see which printer disappeared.
|
||||||
|
#. Turn the printer back on and refresh the page again.
|
||||||
|
#. Double-check the list again to see if the printer re-appears.
|
||||||
|
#. The printer that disappeared and reappears again on the listed printers is the name of the
|
||||||
|
printer in question. It can be :guilabel:`Unknown` under :guilabel:`Local printers`.
|
||||||
|
|
||||||
|
#. On the :guilabel:`Add Printer` page, specify the printer's :guilabel:`Name` using the following
|
||||||
|
convention: `<printer_name>__IMC_<param_1>_<param_2>_..._<param_n>__`, where:
|
||||||
|
|
||||||
|
- `printer_name` is the printer's name. It can contain any character except `_`, `/`, `#`, or ` `
|
||||||
|
(space character).
|
||||||
|
- `IMC`: This stands for *Image Mode Column* (the simplified name for `ESC *`).
|
||||||
|
- `param_1`: This stands for the specific parameter:
|
||||||
|
|
||||||
|
- `SCALE<X>`: Scale of the picture (with the same aspect ratio). `X` should be an integer
|
||||||
|
describing the scale percentage that should be used. For example, `100` is the original size,
|
||||||
|
`50` is half the size, and `200` is twice the size.
|
||||||
|
- `LDV`: *Low Density Vertical* (will be set to *High Density Vertical* if not specified).
|
||||||
|
- `LDH`: *Low Density Horizontal* (will be set to *High Density Horizontal* if not specified).
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
- *Density* parameters might need to be configured in a particular way, depending on the
|
||||||
|
printer model.
|
||||||
|
- Refer to `Epson's ESC * documentation <https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/esc_asterisk.html>`_
|
||||||
|
to determine if the printer requires these parameters to be set.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
The following are examples of proper and improper name formatting:
|
||||||
|
|
||||||
|
Proper name formatting:
|
||||||
|
|
||||||
|
- `EPSONTMm30II__IMC__`
|
||||||
|
- `EPSON_TM_U220__IMC_LDV_LDH_SCALE80__`
|
||||||
|
|
||||||
|
Improper name formatting (this will not prevent printing, but the result might not have the
|
||||||
|
expected printed output):
|
||||||
|
|
||||||
|
- `EPSON TMm 30II`: The name cannot contain spaces.
|
||||||
|
- `EPSONTMm30II`: The name itself is correct, but it will not use `ESC *`.
|
||||||
|
- `EPSONTMm30II__IMC`: This name is missing the end `__`.
|
||||||
|
- `EPSONTMm30II__IMC_XDV__`: The parameter `XDV` does not match any existing parameters.
|
||||||
|
- `EPSONTMm30II__IMC_SCALE__`: The parameter `SCALE` is missing the scale value.
|
||||||
|
|
||||||
|
#. Once the printer's name has been defined using the appropriate naming convention, click
|
||||||
|
:guilabel:`Continue`.
|
||||||
|
#. Set the :guilabel:`Make` value to :guilabel:`Raw` and the :guilabel:`Model` value to
|
||||||
|
:guilabel:`Raw Queue (en)`.
|
||||||
|
#. Click :guilabel:`Add Printer`. If everything was done correctly, the page should redirect to the
|
||||||
|
:guilabel:`Banners` page.
|
||||||
|
#. Wait a few minutes for the IoT system to detect the printer and sync to Odoo's server.
|
||||||
|
#. :ref:`Access the POS settings <configuration/settings>` and select your POS, or click the
|
||||||
|
vertical ellipsis button (:guilabel:`⋮`) on a POS card and click :guilabel:`Edit`. Scroll down
|
||||||
|
to the :guilabel:`Connected Devices` section, enable :guilabel:`IoT Box`, and select the printer
|
||||||
|
in the :guilabel:`Receipt Printer` field. Click :guilabel:`Save`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
If the printer was set up incorrectly (e.g., it continues to print random text, or the printed
|
||||||
|
receipt is too large or too small), it cannot be modified via the printer's name in CUPS.
|
||||||
|
Instead, configure a new printer from scratch with modified parameters, following the steps
|
||||||
|
above.
|
||||||
|
|
||||||
|
.. spoiler::
|
||||||
|
Example
|
||||||
|
|
||||||
|
The following is an example of the troubleshooting process for a TM-U220B printer model using the
|
||||||
|
`ESC *` command. The receipt pictured below is an example of a receipt that is printing correctly
|
||||||
|
due to proper formatting (in theory):
|
||||||
|
|
||||||
|
.. image:: printer/receipt-example.png
|
||||||
|
:scale: 60%
|
||||||
|
:alt: Properly formatted receipt picture from a demo database.
|
||||||
|
|
||||||
|
Printing this receipt immediately without proper formatting will not work, as the TM-U220B
|
||||||
|
printer model does not support the `GS v 0` command. Instead, random characters will be printed:
|
||||||
|
|
||||||
|
.. image:: printer/receipt-print-random-letters.png
|
||||||
|
:scale: 60%
|
||||||
|
:alt: Printer paper with seemingly random characters.
|
||||||
|
|
||||||
|
To properly configure formatting for the Epson TM-U220B printer model, follow these steps:
|
||||||
|
|
||||||
|
#. After checking Epson's website for compatibility with both the `GS v 0
|
||||||
|
<https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/gs_lv_0.html>`_ and `ESC *
|
||||||
|
<https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/esc_asterisk.html>`_ commands,
|
||||||
|
the TM-U220B printer is indeed incompatible with `GS v 0` but supports `ESC *`.
|
||||||
|
|
||||||
|
.. image:: printer/epson-compatibility-compare.png
|
||||||
|
:alt: Epson compatibility evaluation from Epson website.
|
||||||
|
|
||||||
|
#. When adding the printer, CUPS displays the list of available printers:
|
||||||
|
|
||||||
|
.. image:: printer/add-printer.png
|
||||||
|
:scale: 75%
|
||||||
|
:alt: Administration menu, add printer selection.
|
||||||
|
|
||||||
|
In this case, the printer is connected via USB, so it is not part of the
|
||||||
|
:guilabel:`Discovered Network Printers`. Instead, it is likely part of the :guilabel:`Unknown`
|
||||||
|
selection under :guilabel:`Local Printers`. By unplugging the printer's USB cable from the IoT
|
||||||
|
system and refreshing the page, the :guilabel:`Unknown` printer disappears. By plugging it
|
||||||
|
back in, the printer reappears.
|
||||||
|
|
||||||
|
#. For the naming convention, since the printer must print using the `ESC *` command, it is
|
||||||
|
imperative to add `__IMC`.
|
||||||
|
|
||||||
|
.. image:: printer/epson-tm-u220-specification.png
|
||||||
|
:alt: Epson TM-U220 specifications on manufacturer's website.
|
||||||
|
|
||||||
|
For this particular model (TM-U220) `m` should be equal to 0 or 1. While referencing the
|
||||||
|
:guilabel:`Description` table on `Epson's ESC * website
|
||||||
|
<https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/esc_asterisk.html>`_, the `m`
|
||||||
|
values could be 0, 1, 32, or 33. So, in this case, the `m` value **cannot** be 32 or 33
|
||||||
|
(otherwise, random characters will be printed).
|
||||||
|
|
||||||
|
The table includes the numeric values 32 and 33; they both occur if the :guilabel:`Number of
|
||||||
|
bits for vertical data` is set to 24, i.e. it has a *High Vertical Density*. In the case of
|
||||||
|
configuring the Epson TM-U220, the *Low Vertical Density* will need to be forced, as
|
||||||
|
this printer model does not support *High Vertical Density* for this command `ESC *`.
|
||||||
|
|
||||||
|
To add a *Low Vertical Density*, add the `LDV` parameter to the naming convention.
|
||||||
|
|
||||||
|
.. image:: printer/add-printer-filled.png
|
||||||
|
:alt: Add a *Low Vertical Density* (the `LDV` parameter) to the naming convention.
|
||||||
|
|
||||||
|
#. Click :guilabel:`Continue` to proceed. Next, set the :guilabel:`Make` value to :guilabel:`Raw`
|
||||||
|
and the :guilabel:`Model` value to :guilabel:`Raw Queue (en)`.
|
||||||
|
|
||||||
|
.. image:: printer/add-printer-add.png
|
||||||
|
:alt: Epson TM-U220 specifications on manufacturers website.
|
||||||
|
|
||||||
|
However, when trying to print with the naming convention `EpsonTMU220B__IMC_LDV__`, the
|
||||||
|
receipt is printed, but it is too large and outside the margin. To resolve this, add a new
|
||||||
|
printer (and naming convention) with the `SCALE<X>` parameter to adapt to the receipt's size.
|
||||||
|
|
||||||
|
Here are some examples:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Printer Naming Convention
|
||||||
|
- `EpsonTMU220B__IMC_LDV__`
|
||||||
|
- `EpsonTMU220B__IMC_LDV_SCALE75__`
|
||||||
|
- `EpsonTMU220B__IMC_LDV_LDH__`
|
||||||
|
- `EpsonTMU220B__IMC_LDV_LDH_SCALE35__`
|
||||||
|
* - .. image:: printer/receipt-example.png
|
||||||
|
:alt: Receipt example format.
|
||||||
|
- .. image:: printer/tm-u220-ldv.png
|
||||||
|
:alt: Receipt format using naming convention: EpsonTMU220B__IMC_LDV__.
|
||||||
|
- .. image:: printer/tm-u220-ldv-scale75.png
|
||||||
|
:alt: Receipt format using naming convention: EpsonTMU220B__IMC_LDV_SCALE75__.
|
||||||
|
- .. image:: printer/tm-u220-ldv-hdv.png
|
||||||
|
:alt: Receipt format using naming convention: EpsonTMU220B__IMC_LDV_LDH__.
|
||||||
|
- .. image:: printer/tm-u220-ldv-hdv-scale35.png
|
||||||
|
:alt: Receipt format using naming convention: EpsonTMU220B__IMC_LDV_LDH_SCALE35__.
|
||||||
|
|
||||||
|
DYMO LabelWriter print issue
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
The DYMO LabelWriter has a known issue in printing with IoT systems. The OpenPrinting CUPS server
|
||||||
|
installs the printer using :guilabel:`Local RAW Printer` drivers. In order to print anything, the
|
||||||
|
correct :guilabel:`Make and Model` needs to be set to reference the correct driver when using the
|
||||||
|
device.
|
||||||
|
|
||||||
|
Additionally, a new printer needs to be added to reduce the print delay that occurs after updating
|
||||||
|
the driver.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
The DYMO LabelWriter 450 DUO printer is the recommended DYMO printer for use with Odoo and IoT
|
||||||
|
systems. This device combines two printers: a label printer and a tape printer. When configuring
|
||||||
|
the following processes, it is essential to select the correct model (either DYMO LabelWriter 450
|
||||||
|
DUO Label (en) or DYMO LabelWriter 450 DUO Tape (en)). For consistency, the following processes
|
||||||
|
outline configuration steps for the DYMO LabelWriter 450 DUO Label (en) model. Adjust the model
|
||||||
|
selections as needed.
|
||||||
|
|
||||||
|
.. _printer/dymo/update_drivers:
|
||||||
|
|
||||||
|
DYMO LabelWriter not printing
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
If the DYMO LabelWriter fails to print, install a new driver:
|
||||||
|
|
||||||
|
#. Access the IoT system's homepage and click :menuselection:`Printer server` to open the
|
||||||
|
OpenPrinting CUPS console.
|
||||||
|
#. Click :menuselection:`Printers` in the top menu, then click the printer in the list.
|
||||||
|
#. Select :guilabel:`Maintenance` in the first dropdown menu.
|
||||||
|
#. Select :guilabel:`Modify Printer` in the second dropdown menu.
|
||||||
|
|
||||||
|
.. image:: printer/main-modify.png
|
||||||
|
:alt: Modify the make and model of the DYMO LabelWriter. Maintenance and Modify dropdown
|
||||||
|
menus highlighted.
|
||||||
|
|
||||||
|
#. Select the specific network connection/printer on which the modification should be made and
|
||||||
|
click :guilabel:`Continue`.
|
||||||
|
#. On the next page, click :guilabel:`Continue`, then select :guilabel:`DYMO` from the
|
||||||
|
:guilabel:`Make` dropdown list.
|
||||||
|
#. Click on :guilabel:`Continue` and set the :guilabel:`Model` to :guilabel:`DYMO LabelWriter 450
|
||||||
|
DUO Label (en)` (or whichever DYMO printer model is being used).
|
||||||
|
#. Click :guilabel:`Modify Printer` to set the new driver; a confirmation page appears.
|
||||||
|
#. Click :menuselection:`Printers` in the top menu; all printers installed on the OpenPrinting CUPS
|
||||||
|
server appear, including the newly updated :guilabel:`DYMO LabelWriter 450 DUO Label` (or
|
||||||
|
whichever DYMO printer model is being used).
|
||||||
|
#. Click the newly updated printer, then click the :guilabel:`Maintenance` dropdown menu and
|
||||||
|
select :guilabel:`Print Test Page` to print a test label. The test label is printed after a few
|
||||||
|
seconds if the driver update was successful.
|
||||||
|
|
||||||
|
To reduce this delay, add a new printer using the steps below.
|
||||||
|
|
||||||
|
DYMO LabelWriter print delay
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
If the DYMO LabelWriter 450 DUO printer is not printing at all, or is not recognized (i.e., it
|
||||||
|
has a :guilabel:`RAW` driver type), then :ref:`update the drivers on the device
|
||||||
|
<printer/dymo/update_drivers>`.
|
||||||
|
|
||||||
|
To resolve the delay issue after modifying the driver, reinstall the printer:
|
||||||
|
|
||||||
|
#. Access the IoT system's homepage and click :menuselection:`Printer server` to open the
|
||||||
|
OpenPrinting CUPS console.
|
||||||
|
#. Click :menuselection:`Administration` in the top menu, then click :guilabel:`Add a Printer`.
|
||||||
|
#. On the next page, in the :guilabel:`Local Printers` section, select :guilabel:`DYMO
|
||||||
|
LabelWriter 450 DUO Label (DYMO LabelWriter 450 DUO Label)` (or whichever DYMO printer model is
|
||||||
|
being used) pre-installed printer. Click :guilabel:`Continue`.
|
||||||
|
|
||||||
|
.. image:: printer/local-printer.png
|
||||||
|
:alt: Add a printer screen on OpenPrinting CUPS with DYMO LabelWriter 450 DUO Label
|
||||||
|
highlighted.
|
||||||
|
|
||||||
|
#. On the following screen, update the :guilabel:`Name` to something easily identifiable, as the
|
||||||
|
original printer will remain in the list. Then, click :guilabel:`Continue`.
|
||||||
|
|
||||||
|
.. image:: printer/rename-printer.png
|
||||||
|
:alt: Rename printer page in the 'Add a Printer' flow, with the name field highlighted.
|
||||||
|
|
||||||
|
#. Set the :guilabel:`Model` field to :guilabel:`DYMO LabelWriter 450 DUO Label (en)` (or
|
||||||
|
whichever DYMO printer model is being used), then click :guilabel:`Add Printer` to complete
|
||||||
|
the installation.
|
||||||
|
|
||||||
|
.. image:: printer/choose-printer.png
|
||||||
|
:alt: Choose model screen on the OpenPrinting CUPS console with model and add a printer
|
||||||
|
highlighted.
|
||||||
|
|
||||||
|
#. Click :menuselection:`Printers` in the top menu and click the newly installed printer
|
||||||
|
:guilabel:`DYMO LabelWriter 450 DUO Label` (or whichever DYMO printer model is being used) from
|
||||||
|
in the list.
|
||||||
|
|
||||||
|
.. image:: printer/printer-page.png
|
||||||
|
:alt: Printer page with newly installed printer highlighted.
|
||||||
|
|
||||||
|
#. Click the :guilabel:`Maintenance` dropdown list and select :guilabel:`Print Test Page` to print
|
||||||
|
a test label. The test label should print out immediately, or after one or two seconds.
|
||||||
|
|
||||||
|
The Zebra printer does not print anything
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
Zebra printers are quite sensitive to the format of the printed Zebra Programming Language (ZPL)
|
||||||
|
code. If nothing comes out of the printer or blank labels are printed, try changing the format
|
||||||
|
of the report sent to the printer. To do so, activate the :ref:`developer mode <developer-mode>`, go
|
||||||
|
to :menuselection:`Settings --> Technical --> User Interface --> Views`, and search for the
|
||||||
|
corresponding template.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
`Zebra's instructions on printing ZPL files
|
||||||
|
<https://supportcommunity.zebra.com/s/article/Print-a-zpl-file-using-the-Generic-Text-Printer>`_
|
||||||
|
|
||||||
|
Barcode scanner issues
|
||||||
|
======================
|
||||||
|
|
||||||
|
The characters read by the barcode scanner do not match the barcode
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
|
By default, most barcode scanners are configured in the US QWERTY format. If the barcode scanner
|
||||||
|
uses a different layout, go to :menuselection:`IoT --> Devices` and click the barcode device's card.
|
||||||
|
Then, select the correct language in the :guilabel:`Keyboard Layout` field.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The :guilabel:`Keyboard Layout` is language-specific, with available options varying based on
|
||||||
|
the device and the language of the database (e.g., :guilabel:`English (UK)`, :guilabel:`English
|
||||||
|
(US)`, etc.).
|
||||||
|
|
||||||
|
Nothing happens when a barcode is scanned
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
Make sure the correct device is selected in the :doc:`Point of Sale settings
|
||||||
|
</applications/sales/point_of_sale/configuration/pos_iot>` (when applicable) and the barcode is
|
||||||
|
configured to send an `ENTER` character (keycode 28) at the end of every barcode.
|
||||||
|
|
||||||
|
The barcode scanner is detected as a keyboard
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
Some barcode scanners are identified as USB keyboards rather than barcode scanners and are not
|
||||||
|
recognized by IoT systems.
|
||||||
|
|
||||||
|
To change the device type manually, go to :menuselection:`IoT --> Devices` and click the barcode
|
||||||
|
device's card. Then, enable :guilabel:`Is scanner`.
|
||||||
|
|
||||||
|
The barcode scanner processes barcode characters individually
|
||||||
|
-------------------------------------------------------------
|
||||||
|
|
||||||
|
When accessing the mobile version of Odoo from a mobile device or tablet paired with a barcode
|
||||||
|
scanner via the IoT system, the scanner might interpret each character in a barcode as a separate
|
||||||
|
scan. To resolve this, go to :menuselection:`IoT --> Devices` and click the barcode device's
|
||||||
|
card. Then, select the correct language in the :guilabel:`Keyboard Layout` field.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The :guilabel:`Keyboard Layout` is language-specific, with available options varying based on
|
||||||
|
the device and the language of the database (e.g., :guilabel:`English (UK)`, :guilabel:`English
|
||||||
|
(US)`, etc.).
|
||||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 432 KiB After Width: | Height: | Size: 432 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 546 KiB After Width: | Height: | Size: 546 KiB |
Before Width: | Height: | Size: 897 KiB After Width: | Height: | Size: 897 KiB |
Before Width: | Height: | Size: 707 KiB After Width: | Height: | Size: 707 KiB |
Before Width: | Height: | Size: 857 KiB After Width: | Height: | Size: 857 KiB |
@ -2,69 +2,75 @@
|
|||||||
Connect a scale
|
Connect a scale
|
||||||
===============
|
===============
|
||||||
|
|
||||||
A scale can be connected to the :abbr:`IoT (Internet of Things)` box on an Odoo database in a few
|
|
||||||
easy steps. After setup, the *Point of Sale* app can be used to weigh products, which is helpful if
|
|
||||||
their prices are calculated based on weight.
|
|
||||||
|
|
||||||
.. important::
|
.. important::
|
||||||
- In EU member states, `certification is legally required <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv%3AOJ.L_.2014.096.01.0107.01.ENG>`_
|
- In EU member states, `certification is legally required
|
||||||
|
<https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv%3AOJ.L_.2014.096.01.0107.01.ENG>`_
|
||||||
to use a scale as an integrated device.
|
to use a scale as an integrated device.
|
||||||
- Odoo is not certified in several countries, including France, Germany, and Switzerland. If you
|
- Odoo is not certified in several countries, including France, Germany, and Switzerland. If you
|
||||||
reside in one of these countries, you can still use a scale but without integration to your
|
reside in one of these countries, you can still use a scale but without integration into your
|
||||||
Odoo database.
|
Odoo database. Alternatively, you can acquire a *non-integrated* certified scale that prints
|
||||||
- Alternatively, you have the option to acquire a *non-integrated* certified scale that prints
|
|
||||||
certified labels, which can then be scanned into your Odoo database.
|
certified labels, which can then be scanned into your Odoo database.
|
||||||
|
|
||||||
.. seealso::
|
To connect a scale to the IoT system, use a USB cable. In some cases, you may need a serial-to-US
|
||||||
`Directive 2014/31/EU of the European Parliament <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv%3AOJ.L_.2014.096.01.0107.01.ENG>`_
|
adapter to complete the connection. If the scale is `compatible with an IoT system
|
||||||
|
<https://www.odoo.com/page/iot-hardware>`_, no additional setup is required; the scale is
|
||||||
Connection
|
automatically detected as soon as it is connected. If the scale is not detected, reboot the IoT box
|
||||||
==========
|
or :ref:`restart the Windows virtual IoT service <iot/windows_iot/restart>` and :ref:`update the
|
||||||
|
scale's drivers <iot_updating_iot/handlers>`.
|
||||||
To link the scale to the :abbr:`IoT (Internet of Things)` box, connect it with a :abbr:`USB
|
|
||||||
(Universal Serial Bus)` cable.
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
In some cases, a serial port to :abbr:`USB (Universal Serial Bus)` adapter may be needed.
|
If the scale still does not function after updating the drivers, it might not be `compatible with
|
||||||
|
the Odoo IoT system <https://www.odoo.com/page/iot-hardware>`_. In such cases, a different scale
|
||||||
|
must be used.
|
||||||
|
|
||||||
If the scale is `compatible with Odoo IoT Box <https://www.odoo.com/page/iot-hardware>`_, there is
|
Once the scale is connected to the IoT system, follow these steps to configure it in the POS
|
||||||
no need to set up anything because it will be automatically detected as soon as it is connected.
|
settings:
|
||||||
|
|
||||||
.. image:: scale/iot-choice.png
|
#. :ref:`Access the POS settings <configuration/settings>` and select your POS, or click the
|
||||||
:align: center
|
vertical ellipsis button (:guilabel:`⋮`) on a POS card and click :guilabel:`Edit`.
|
||||||
:alt: IOT box auto detection.
|
#. Scroll down to the :guilabel:`Connected Devices` section and enable :guilabel:`IoT Box`.
|
||||||
|
#. Select the scale in the :guilabel:`Electronic Scale` field.
|
||||||
|
#. Click :guilabel:`Save`.
|
||||||
|
|
||||||
The :abbr:`IoT (Internet of Things)` box may need to be restarted and the scale's drivers may need
|
.. seealso::
|
||||||
to be downloaded to the box in some cases. To update the drivers, go to the :abbr:`IoT (Internet of
|
:doc:`Connect an IoT system to a POS </applications/sales/point_of_sale/configuration/pos_iot>`
|
||||||
Things)` box homepage and click on :guilabel:`Drivers List`. Then, click on :guilabel:`Load
|
|
||||||
Drivers`.
|
|
||||||
|
|
||||||
.. image:: scale/driver-list.png
|
The scale is then available in all the :doc:`POS's sessions </applications/sales/point_of_sale>`.
|
||||||
:align: center
|
If a product is configured with a price per weight, selecting it on the :guilabel:`PoS screen` opens
|
||||||
:alt: View of the IoT box settings and driver list.
|
the scale popup. The cashier can then weigh the product to automatically add the correct price to
|
||||||
|
the cart.
|
||||||
If loading the drivers still doesn't allow for the scale to function, it may be that the scale is
|
|
||||||
not compatible with the Odoo :abbr:`IoT (Internet of Things)` box. In this case, a different scale
|
|
||||||
will need to be used.
|
|
||||||
|
|
||||||
Use a scale in a point of sale (POS) system
|
|
||||||
===========================================
|
|
||||||
|
|
||||||
To use the scale in the *Point of Sale app*, go to :menuselection:`PoS app --> 3-Dot Menu on the PoS
|
|
||||||
--> Settings`, then enable the :abbr:`IoT (Internet of Things)` box feature. After this is complete,
|
|
||||||
the scale device can be set.
|
|
||||||
|
|
||||||
Select the scale from the :guilabel:`Electronic Scale` drop-down menu. Then click :guilabel:`Save`
|
|
||||||
to save the changes, if required.
|
|
||||||
|
|
||||||
.. image:: scale/electronic-scale-feature.png
|
|
||||||
:align: center
|
|
||||||
:alt: List of the external tools that can be used with PoS and the IoT box.
|
|
||||||
|
|
||||||
The scale is now available in all the :abbr:`PoS (Point of Sale)` sessions. Now, if a product has a
|
|
||||||
price per weight set, clicking on it on the :guilabel:`PoS` screen opens the scale screen, where the
|
|
||||||
cashier can weigh the product and add the correct price to the cart.
|
|
||||||
|
|
||||||
.. image:: scale/scale-view.png
|
.. image:: scale/scale-view.png
|
||||||
:align: center
|
:scale: 80%
|
||||||
:alt: Electronic Scale dashboard view when no items are being weighed.
|
:alt: Electronic Scale dashboard view when no items are being weighed.
|
||||||
|
|
||||||
|
Ariva S scales
|
||||||
|
==============
|
||||||
|
|
||||||
|
For Ariva S series scales (manufactured by Mettler-Toledo, LLC.) to function with IoT systems, a
|
||||||
|
specific setting must be modified, and a dedicated Mettler USB-to-proprietary RJ45 cable is required.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
The official Mettler USB-to-RJ45 cable (Mettler part number 72256236) must be used. Contact
|
||||||
|
Mettler or a partner to purchase an authentic cable. **No other** cable works for this
|
||||||
|
configuration.
|
||||||
|
|
||||||
|
To configure the Ariva S scale for IoT system recognition, refer to page 17 of `Mettler's Setup
|
||||||
|
Guide for Ariva S series scales <https://www.mt.com/dam/RET_DOCS/Ariv.pdf>`_ and follow these steps:
|
||||||
|
|
||||||
|
#. Hold the **>T<** button for eight seconds, or until :guilabel:`CONF` appears.
|
||||||
|
#. Press **>T<** until :guilabel:`GRP 3` appears, then press **>0<** to confirm.
|
||||||
|
#. Under :guilabel:`3.1`, ensure the setting is set to :guilabel:`1` (USB Virtual COM ports) and
|
||||||
|
press **>T<** to cycle through the options under group 3.1.
|
||||||
|
#. Once :guilabel:`3.1` is set to :guilabel:`1`, press **>0<** to confirm the selection.
|
||||||
|
#. Continue to press **>0<** until :guilabel:`GRP 4` appears.
|
||||||
|
#. Press **>T<** until :guilabel:`EXIT` appears.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
Do **not** make any other changes unless otherwise needed.
|
||||||
|
|
||||||
|
#. Press **>0<**.
|
||||||
|
#. Press **>0<** again to :guilabel:`SAVE`; the scale restarts.
|
||||||
|
#. Reboot the IoT box or :ref:`restart the Windows virtual IoT service <iot/windows_iot/restart>`.
|
||||||
|
The scale should then appear as `Toledo 8217`, as opposed to the previous display, where it
|
||||||
|
appeared as `Adam Equipment Serial`.
|
||||||
|
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 4.5 KiB |
@ -33,7 +33,7 @@ on the model.
|
|||||||
Connect the screen with an HDMI cable on the side of the :abbr:`IoT (Internet of Things)` box.
|
Connect the screen with an HDMI cable on the side of the :abbr:`IoT (Internet of Things)` box.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
:ref:`See the Raspberry Pi Schema <iot/connect_schema>`.
|
:ref:`See the Raspberry Pi Schema <pos/pos_iot/connect_schema>`.
|
||||||
|
|
||||||
.. important::
|
.. important::
|
||||||
Screen(s) should be connected before the :abbr:`IoT (Internet of Things)` box is switched on. If
|
Screen(s) should be connected before the :abbr:`IoT (Internet of Things)` box is switched on. If
|
||||||
|
11
content/applications/general/iot/iot_advanced.rst
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
:nosearch:
|
||||||
|
|
||||||
|
========
|
||||||
|
Advanced
|
||||||
|
========
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
|
||||||
|
iot_advanced/https_certificate_iot
|
||||||
|
iot_advanced/updating_iot
|
||||||
|
iot_advanced/ssh_connect
|
@ -0,0 +1,168 @@
|
|||||||
|
.. _iot/https_certificate_iot:
|
||||||
|
|
||||||
|
=======================
|
||||||
|
HTTPS certificate (IoT)
|
||||||
|
=======================
|
||||||
|
|
||||||
|
*Hypertext Transfer Protocol Secure* (HTTPS) is the secure and encrypted version of *Hypertext
|
||||||
|
Transfer Protocol* (HTTP), which is the primary protocol used for data communication between a web
|
||||||
|
browser and a website. It secures communications by using an encryption protocol known as *Transport
|
||||||
|
Layer Security* (TLS), previously called *Secure Sockets Layer* (SSL). The security of
|
||||||
|
:abbr:`HTTPS (Hypertext Transfer Protocol Secure)` relies on :abbr:`TLS (Transport Layer Security)`
|
||||||
|
/:abbr:`SSL (Secure Sockets Layer)` certificates, which authenticate the provider and verify their
|
||||||
|
identity.
|
||||||
|
|
||||||
|
The use of HTTPS is required to communicate with certain network devices, particularly payment
|
||||||
|
terminals. If the HTTPS certificate is not valid, some devices cannot interact with the IoT
|
||||||
|
system.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
In this documentation and throughout Odoo, the term *HTTPS certificate* refers to a valid
|
||||||
|
SSL certificate that allows an HTTPS connection.
|
||||||
|
|
||||||
|
.. _iot/https_certificate_iot/generation:
|
||||||
|
|
||||||
|
HTTPS certificate generation
|
||||||
|
============================
|
||||||
|
|
||||||
|
The HTTPS certificate is generated automatically. When the IoT system is (re-)started (e.g., after
|
||||||
|
it is connected to the Odoo database), a request is sent to `<https://www.odoo.com>`_, which returns
|
||||||
|
the HTTPS certificate if the IoT system and database meet the eligibility criteria:
|
||||||
|
|
||||||
|
.. _iot/https_certificate_iot/iot-eligibility:
|
||||||
|
|
||||||
|
- The database must be a **production** instance. The database instance should not be a copy, a
|
||||||
|
duplicate, a staging, or a development environment.
|
||||||
|
- The Odoo subscription must be ongoing (:guilabel:`In Progress` status) and have an :ref:`IoT
|
||||||
|
box subscription <iot/iot/iot-subscription>` line.
|
||||||
|
|
||||||
|
When the certificate has been received:
|
||||||
|
|
||||||
|
- The IoT system's homepage address is updated to a new HTTPS URL ending with `.odoo-iot.com`. Click
|
||||||
|
the URL to establish a secure HTTPS connection.
|
||||||
|
|
||||||
|
.. image:: https_certificate_iot/iot-new-domain.png
|
||||||
|
:alt: Odoo IoT app IoT box with .odoo-iot.com domain.
|
||||||
|
|
||||||
|
- The :guilabel:`HTTPS certificate` banner displays the certificate's validity period. To view this
|
||||||
|
information, click the :icon:`fa-cogs` (:guilabel:`cogs`) button on the IoT system's homepage.
|
||||||
|
|
||||||
|
.. image:: https_certificate_iot/https-valid.png
|
||||||
|
:alt: IoT box homepage with HTTPS certificate validity date.
|
||||||
|
|
||||||
|
HTTPS certificate generation issues and errors
|
||||||
|
==============================================
|
||||||
|
|
||||||
|
The HTTPS certificate does not generate
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
Potential causes include the following:
|
||||||
|
|
||||||
|
- No :ref:`IoT box subscription <iot/iot/iot-subscription>` is linked to your account.
|
||||||
|
- The :ref:`IoT box subscription <iot/iot/iot-subscription>` was added *after* connecting the IoT
|
||||||
|
system to the database. In this case, refresh the IoT system's homepage or reboot/:ref:`restart
|
||||||
|
<iot/windows_iot/restart>` the IoT system to regenerate the HTTPS certificate.
|
||||||
|
- The firewall is preventing the HTTPS certificate from generating correctly. In this case,
|
||||||
|
deactivate the firewall until the certificate is successfully generated.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Some devices, such as routers with a built-in firewall, can prevent the HTTPS certificate from
|
||||||
|
generating.
|
||||||
|
|
||||||
|
The IoT system's homepage can be accessed using its IP address but not the `xxx.odoo-iot.com` URL
|
||||||
|
-------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Contact your system or network administrator to address the issue. Network-related problems are
|
||||||
|
beyond the scope of Odoo support services.
|
||||||
|
|
||||||
|
- If the router allows manual :abbr:`DNS (Domain Name System)` configuration, update the settings to
|
||||||
|
use `Google DNS <https://developers.google.com/speed/public-dns>`_.
|
||||||
|
- If the router does not support this, you need to update the DNS settings directly on each device
|
||||||
|
that interacts with the IoT system to use `Google DNS
|
||||||
|
<https://developers.google.com/speed/public-dns>`_. Instructions for configuring DNS on individual
|
||||||
|
devices can be found on the respective manufacturer's website.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
- Some IoT devices, such as payment terminals, likely do not require DNS changes, as they are
|
||||||
|
typically pre-configured with custom DNS settings.
|
||||||
|
- On some browsers, an error code mentioning the DNS (such as `DNS_PROBE_FINISHED_NXDOMAIN`) is
|
||||||
|
displayed.
|
||||||
|
|
||||||
|
Errors
|
||||||
|
------
|
||||||
|
|
||||||
|
A specific error code is displayed on the IoT system's homepage if any issues occur during the
|
||||||
|
generation or reception of the HTTPS certificate.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
When you access the IoT system's homepage, it automatically checks for an HTTPS certificate and
|
||||||
|
attempts to generate one if it is missing. If an error appears, refresh the page to see if the
|
||||||
|
issue is resolved.
|
||||||
|
|
||||||
|
`ERR_IOT_HTTPS_CHECK_NO_SERVER`
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The server configuration is missing, i.e., the Odoo instance is not :doc:`connected <../connect>` to
|
||||||
|
the IoT system.
|
||||||
|
|
||||||
|
`ERR_IOT_HTTPS_CHECK_CERT_READ_EXCEPTION`
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
An error occurred while attempting to read the existing HTTPS certificate.
|
||||||
|
Verify that the HTTPS certificate file is readable.
|
||||||
|
|
||||||
|
`ERR_IOT_HTTPS_LOAD_NO_CREDENTIAL`
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The contract and/or database :abbr:`UUID (Universal Unique Identifier)` is missing form the IoT.
|
||||||
|
|
||||||
|
Verify that both values are correctly configured. To update them, :ref:`access the IoT box's
|
||||||
|
<iot/iot-box/homepage>` or :ref:`Windows virtual IoT's homepage <iot/windows-iot/homepage>`,
|
||||||
|
click the :icon:`fa-cogs` (:guilabel:`cogs`) button, then click :guilabel:`Credential`.
|
||||||
|
|
||||||
|
`ERR_IOT_HTTPS_LOAD_REQUEST_EXCEPTION`
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
An unexpected error occurred while the IoT system tried to reach `<https://www.odoo.com>`_. This is
|
||||||
|
likely due to network-related issues, such as:
|
||||||
|
|
||||||
|
- The IoT system does not have Internet access.
|
||||||
|
- Network restrictions (e.g., firewalls or VPNs) are preventing communication with
|
||||||
|
https://www.odoo.com.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
- To access the full request exception details with information regarding the error, :ref:`enable
|
||||||
|
the developer mode <developer-mode>`, click the IoT system's card in the IoT app, and click
|
||||||
|
:guilabel:`Download logs` on the :ref:`IoT system's form <iot/connect/IoT-form>`.
|
||||||
|
To define the log levels recorded in the IoT system's log file, :ref:`access the IoT box's
|
||||||
|
<iot/windows-iot/homepage>` or :ref:`Windows virtual IoT's <iot/iot-box/homepage>` homepage,
|
||||||
|
click the :icon:`fa-cogs` (:guilabel:`cogs`) button, then :guilabel:`Log level` at the
|
||||||
|
bottom of the page.
|
||||||
|
- To address network-related issues, contact your system or network administrator; these issues
|
||||||
|
are beyond the scope of Odoo support services.
|
||||||
|
|
||||||
|
`ERR_IOT_HTTPS_LOAD_REQUEST_STATUS`
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The IoT system successfully reached `<https://www.odoo.com>`_ but received an unexpected
|
||||||
|
`HTTP response (status codes) <https://developer.mozilla.org/en-US/docs/Web/HTTP/Status>`_.
|
||||||
|
|
||||||
|
This error code includes the HTTP status. For example, `ERR_IOT_HTTPS_LOAD_REQUEST_STATUS 404` means
|
||||||
|
the server returned a "Page Not Found" response.
|
||||||
|
|
||||||
|
To solve this issue:
|
||||||
|
|
||||||
|
#. Open `<https://www.odoo.com>`_ in a web browser to check if the website is temporarily down for
|
||||||
|
maintenance.
|
||||||
|
#. | If `<https://www.odoo.com>`_ is down for maintenance, wait for it to resume.
|
||||||
|
| If the website is operational, open a `support ticket <https://www.odoo.com/help>`_ and make
|
||||||
|
sure to include the 3-digit HTTPS status code in the ticket.
|
||||||
|
|
||||||
|
`ERR_IOT_HTTPS_LOAD_REQUEST_NO_RESULT`
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The IoT system successfully connected to `<https://www.odoo.com>`_, but the server refused to
|
||||||
|
provide the HTTPS certificate.
|
||||||
|
|
||||||
|
Check that the IoT system and database meet the :ref:`eligibility requirements
|
||||||
|
<iot/https_certificate_iot/iot-eligibility>` for an HTTPS certificate.
|
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
@ -0,0 +1,35 @@
|
|||||||
|
======================
|
||||||
|
IoT box SSH connection
|
||||||
|
======================
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
SSH connections are only available for :doc:`IoT boxes <../iot_box>`, not the :doc:`Windows
|
||||||
|
virtual IoT <../windows_iot>`.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
- This feature should **only** be used with trusted parties, as it provides administrative
|
||||||
|
access to the IoT box, which can create security issues.
|
||||||
|
- Managing an SSH connection is **not** covered under the standard Odoo support scope. Visit
|
||||||
|
the `Odoo Support <https://www.odoo.com/help>`_ page for additional information about what is
|
||||||
|
covered.
|
||||||
|
|
||||||
|
To provide an :abbr:`SSH (secure shell protocol)` connection to an IoT box, you must generate a
|
||||||
|
password:
|
||||||
|
|
||||||
|
#. Access the IoT box's homepage by opening the IoT app and clicking the IP address displayed
|
||||||
|
on the IoT box's card.
|
||||||
|
#. Click the :icon:`fa-cogs` (:guilabel:`cogs`) button at the top-right, then :guilabel:`Remote
|
||||||
|
Debug`.
|
||||||
|
#. In the :guilabel:`Remote Debugging` popup that opens, click :guilabel:`Generate` and save the
|
||||||
|
password securely. Once you close the popup, the password will no longer be available.
|
||||||
|
|
||||||
|
.. image:: ssh_connect/ssh-generate-password.png
|
||||||
|
:alt: The Remote Debugging password generation window.
|
||||||
|
|
||||||
|
#. Enter the :guilabel:`Authentication Token` provided by the user attempting to connect to the IoT
|
||||||
|
box.
|
||||||
|
#. Click :guilabel:`Enable Remote Debugging`.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
- :doc:`../iot_box`
|
||||||
|
- :doc:`../connect`
|
After Width: | Height: | Size: 10 KiB |
@ -0,0 +1,89 @@
|
|||||||
|
==================
|
||||||
|
IoT system updates
|
||||||
|
==================
|
||||||
|
|
||||||
|
Due to the complexity of IoT systems, the term *updating* can refer to several processes, including:
|
||||||
|
|
||||||
|
- :ref:`Updating the IoT system's image and/or core code <iot/updating_iot/image-code>`;
|
||||||
|
- :ref:`Updating the handlers <iot_updating_iot/handlers>`, which include the interfaces and drivers.
|
||||||
|
|
||||||
|
.. _iot/updating_iot/image-code:
|
||||||
|
|
||||||
|
Image and core code update
|
||||||
|
==========================
|
||||||
|
|
||||||
|
.. tabs::
|
||||||
|
|
||||||
|
.. group-tab:: IoT box
|
||||||
|
|
||||||
|
To check if the IoT box is up-to-date (and update it if needed), :ref:`access the IoT box's
|
||||||
|
homepage <iot/iot-box/homepage>`, click the :icon:`fa-cogs` (:guilabel:`cogs`) button at the
|
||||||
|
top-right, then :guilabel:`Update` in the :guilabel:`Version` section.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
:ref:`Enable the developer mode <developer-mode>` to view the current versions of the IoT
|
||||||
|
box's image and core code.
|
||||||
|
|
||||||
|
**Image update**
|
||||||
|
|
||||||
|
To update the IoT box's image, flash its SD card. Flashing can be performed using
|
||||||
|
`balenaEtcher <https://etcher.balena.io>`_, a free and open-source tool for writing disk
|
||||||
|
images to SD cards.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
- Updating the IoT system's image is often required after upgrading the Odoo database to a
|
||||||
|
newer version.
|
||||||
|
- A computer with a micro SD card reader/adapter is required to flash the micro SD card.
|
||||||
|
- An alternative software for flashing the micro SD card is `Raspberry Pi Imager
|
||||||
|
<https://www.raspberrypi.com/software/>`_.
|
||||||
|
|
||||||
|
#. `Download balenaEtcher. <https://etcher.balena.io/#download-etcher>`_
|
||||||
|
#. Insert the IoT box's micro SD card into the computer or adapter.
|
||||||
|
#. Open balenaEtcher, click :guilabel:`Flash from URL`, and enter the following URL:
|
||||||
|
`http://nightly.odoo.com/master/iotbox/iotbox-latest.zip`.
|
||||||
|
#. Click :guilabel:`Select target` and select the SD card.
|
||||||
|
#. Click :guilabel:`Flash` and wait for the process to finish.
|
||||||
|
|
||||||
|
.. image:: updating_iot/etcher-flash.png
|
||||||
|
:alt: Flashing the SD card with balenaEtcher
|
||||||
|
|
||||||
|
**Core code update**
|
||||||
|
|
||||||
|
To update the IoT box's core code, click :guilabel:`Update` under :guilabel:`IoT Box Update`
|
||||||
|
in the :guilabel:`Update` popup.
|
||||||
|
|
||||||
|
.. danger::
|
||||||
|
This process may take over 30 minutes. **Do not turn off or unplug the IoT box** during
|
||||||
|
this time, as doing so could leave the device in an inconsistent state, requiring the IoT
|
||||||
|
box to be reflashed with a new image.
|
||||||
|
|
||||||
|
.. group-tab:: Windows virtual IoT
|
||||||
|
|
||||||
|
To update the Windows virtual IoT's image and code, :ref:`uninstall the program
|
||||||
|
<iot/windows_iot/uninstall>` and :ref:`reinstall <iot/windows-iot/installation>` the latest
|
||||||
|
package.
|
||||||
|
|
||||||
|
.. _iot_updating_iot/handlers:
|
||||||
|
|
||||||
|
Handler (driver) update
|
||||||
|
=======================
|
||||||
|
|
||||||
|
To update the IoT system's handlers (i.e., drivers and interfaces) and synchronize them with the
|
||||||
|
configured server handler's code, for example, to resolve issues where :doc:`devices <../devices>`
|
||||||
|
are not functioning properly with the IoT system, proceed as follows:
|
||||||
|
|
||||||
|
#. Access the :ref:`IoT box's <iot/iot-box/homepage>` or :ref:`Windows virtual IoT's
|
||||||
|
<iot/windows-iot/homepage>` homepage and click the :icon:`fa-cogs` (:guilabel:`cogs`) button at
|
||||||
|
the top-right.
|
||||||
|
#. Click :guilabel:`Update` in the :guilabel:`Version` section.
|
||||||
|
#. In the :guilabel:`Update` popup that opens, click :guilabel:`Force Drivers Update`.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
If you have an :doc:`on-premise </administration/on_premise>` or :doc:`Odoo.sh
|
||||||
|
</administration/odoo_sh/overview/introduction>` database, the configured server must be
|
||||||
|
up-to-date to ensure the handlers' code includes the latest fixes and patches.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
A handler update is also performed automatically every time the IoT system is restarted unless
|
||||||
|
the :guilabel:`Automatic drivers update` option is disabled in the :guilabel:`Technical
|
||||||
|
information` tab in the :ref:`IoT system's form <iot/connect/IoT-form>` in Odoo.
|
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 9.8 KiB |
89
content/applications/general/iot/iot_box.rst
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
=======
|
||||||
|
IoT box
|
||||||
|
=======
|
||||||
|
|
||||||
|
To start using an IoT box:
|
||||||
|
|
||||||
|
#. Make sure you have a :ref:`valid IoT box subscription <iot/iot/iot-subscription>` in addition to
|
||||||
|
your Odoo subscription.
|
||||||
|
#. Connect your :doc:`devices <devices>` to the IoT box.
|
||||||
|
#. :ref:`Connect the IoT box to the network <iot/iot_box/network>`.
|
||||||
|
#. :doc:`Connect the IoT box to your Odoo database <connect>`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Devices can also be connected after the IoT box is added to the network and/or connected to the
|
||||||
|
database; however, a reboot of the IoT box might be required.
|
||||||
|
|
||||||
|
.. _iot/iot_box/network:
|
||||||
|
|
||||||
|
Network connection
|
||||||
|
==================
|
||||||
|
|
||||||
|
The IoT box can be connected to the network via :ref:`Ethernet <iot/iot_box/network-ethernet>` or
|
||||||
|
:ref:`Wi-Fi <iot/iot_box/network-wifi>`.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
**All** devices must be connected to the **same network**: the IoT box, the device(s) connected
|
||||||
|
to the IoT box, and the computer connected to Odoo.
|
||||||
|
|
||||||
|
.. _iot/iot_box/network-ethernet:
|
||||||
|
|
||||||
|
Ethernet
|
||||||
|
--------
|
||||||
|
|
||||||
|
Plug the Ethernet cable into the IoT box's Ethernet port and an available port on your router, then
|
||||||
|
connect the IoT box to a power source.
|
||||||
|
|
||||||
|
.. _iot/iot_box/network-wifi:
|
||||||
|
|
||||||
|
Wi-Fi
|
||||||
|
-----
|
||||||
|
|
||||||
|
Make sure no Ethernet cable is connected to the IoT box and follow these steps:
|
||||||
|
|
||||||
|
#. Connect the IoT box to a power source and wait a few minutes for it to power on.
|
||||||
|
#. Access your computer's Wi-Fi settings and select the IoT box's network. The network name is in
|
||||||
|
the format `IoTBox-xxxxxxxxxxxx` (where `xxxxxxxxxxxx` is a unique identifier).
|
||||||
|
#. Connect to the IoT box's Wi-Fi network and sign into it; your browser should automatically
|
||||||
|
open and redirect to the :ref:`IoT box's homepage <iot/iot-box/homepage>`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Depending on your operating system, the browser might not open and redirect to the IoT box's
|
||||||
|
homepage. In this case, open your browser manually and navigate to `http://10.11.12.1`.
|
||||||
|
|
||||||
|
#. On the IoT box's homepage, click :guilabel:`Configure` next to the :guilabel:`Internet Status`
|
||||||
|
section.
|
||||||
|
#. Wait a few minutes for the available networks to be scanned, select the network, enter the
|
||||||
|
Wi-Fi's password, and click :guilabel:`Connect`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Once connected to the Wi-Fi network, the IoT box stops emitting its Wi-Fi signal, and the
|
||||||
|
computer should automatically reconnect to its original network. If it does not, reconnect to it
|
||||||
|
manually.
|
||||||
|
|
||||||
|
.. _iot/iot-box/homepage:
|
||||||
|
|
||||||
|
IoT box homepage
|
||||||
|
================
|
||||||
|
|
||||||
|
To access the IoT box's homepage, open a web browser **on the same network as the IoT box** and
|
||||||
|
navigate to the IoT box's IP address.
|
||||||
|
|
||||||
|
.. image:: iot_box/iot-homepage.png
|
||||||
|
:scale: 75%
|
||||||
|
:alt: IoT box's homepage
|
||||||
|
|
||||||
|
The IoT box's IP address can be retrieved by:
|
||||||
|
|
||||||
|
- connecting the IoT box to an external monitor: the IP address is displayed on the screen.
|
||||||
|
|
||||||
|
.. image:: iot_box/iot-pos-display.png
|
||||||
|
:scale: 75%
|
||||||
|
:alt: POS display with IoT box's IP address
|
||||||
|
|
||||||
|
- connecting the IoT box to a printer: the IP address is automatically printed.
|
||||||
|
- accessing the administrator interface of the router to which the IoT box is connected or using
|
||||||
|
third-party software to scan the network.
|
||||||
|
|
||||||
|
Once the IoT box is :doc:`connected to the Odoo database <connect>`, its homepage can be accessed
|
||||||
|
from Odoo by opening the IoT app and clicking the URL displayed on the IoT box's card.
|
BIN
content/applications/general/iot/iot_box/iot-homepage.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
content/applications/general/iot/iot_box/iot-pos-display.png
Normal file
After Width: | Height: | Size: 46 KiB |
174
content/applications/general/iot/windows_iot.rst
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
===================
|
||||||
|
Windows virtual IoT
|
||||||
|
===================
|
||||||
|
|
||||||
|
To start using the Windows virtual IoT:
|
||||||
|
|
||||||
|
#. Make sure all :ref:`prerequisites <iot/windows-iot/prerequisites>` are met.
|
||||||
|
#. :ref:`Install the Windows virtual IoT <iot/windows-iot/installation>` on a Windows computer.
|
||||||
|
#. :ref:`Configure the Windows Firewall <iot/windows-iot/firewall>`.
|
||||||
|
#. Connect your :doc:`devices <devices>` to the Windows virtual IoT.
|
||||||
|
#. :doc:`Connect the Windows virtual IoT to your Odoo database <connect>`.
|
||||||
|
|
||||||
|
.. _iot/windows-iot/prerequisites:
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
=============
|
||||||
|
|
||||||
|
The following prerequisites must be met before setting up and using the Windows virtual IoT:
|
||||||
|
|
||||||
|
- A valid :ref:`IoT box subscription <iot/iot/iot-subscription>`.
|
||||||
|
- An updated and recent version of Windows (i.e., Windows 10 or Windows 11) installed on a Windows
|
||||||
|
computer (laptop, desktop, or server).
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
- :abbr:`MRP (Material Requirement Planning)` devices, including cameras and measurement tools,
|
||||||
|
are not compatible with Windows virtual IoT.
|
||||||
|
- It is also possible to create a Windows Virtual Machine on a MacOS/Linux computer. However,
|
||||||
|
this option is not supported by Odoo, and no troubleshooting assistance will be provided.
|
||||||
|
|
||||||
|
.. _iot/windows-iot/installation:
|
||||||
|
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
To install the Windows virtual IoT on a Windows computer:
|
||||||
|
|
||||||
|
#. Access `Odoo's download page <https://odoo.com/download>`_ and download the Odoo installation
|
||||||
|
package for Windows **matching your database's version**.
|
||||||
|
#. Open the downloaded :file:`.exe` file, allow the app to make changes to your device, select
|
||||||
|
a language, and click :guilabel:`OK`.
|
||||||
|
#. Click :guilabel:`Next`, then :guilabel:`I Agree` to accept the terms and conditions and continue.
|
||||||
|
#. Select :guilabel:`Odoo IoT` from the :guilabel:`Select the type of install` dropdown list. The
|
||||||
|
following components should be selected: Odoo Server, Odoo IoT, Nginx WebServer, and Ghostscript
|
||||||
|
interpreter.
|
||||||
|
#. Verify you have the required space on your computer and click :guilabel:`Next`.
|
||||||
|
#. In the :guilabel:`Destination folder`, enter C:\\odoo and click :guilabel:`Install`.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
Do not install Odoo's Windows virtual IoT in any Windows user directory, as this can cause
|
||||||
|
issues with :ref:`iot/https_certificate_iot/generation`.
|
||||||
|
|
||||||
|
#. Once the installation is complete, click :guilabel:`Next`.
|
||||||
|
#. Set up GPL Ghostscript: Click :guilabel:`Next`, agree to the terms and conditions, click
|
||||||
|
:guilabel:`Install`, then :guilabel:`Finish`.
|
||||||
|
#. Click :guilabel:`Next`, :guilabel:`Next`, and :guilabel:`Finish` to complete the setup. The
|
||||||
|
:ref:`IoT system's homepage <iot/windows-iot/homepage>` automatically opens in a web browser with
|
||||||
|
the URL `http://localhost:8069`.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
If the web browser does not show anything, :ref:`restart <iot/windows_iot/restart>` the
|
||||||
|
Windows virtual IoT service.
|
||||||
|
|
||||||
|
#. Check that you can access the :ref:`IoT system's homepage <iot/windows-iot/homepage>` in a web
|
||||||
|
browser:
|
||||||
|
|
||||||
|
- on the Windows virtual IoT computer, and
|
||||||
|
- on another device **on the same network as the IoT system** by navigating to the URL
|
||||||
|
`http://xxx:8069` (where `xxx` is the IoT system's IP address).
|
||||||
|
- on another device **on the same network as the IoT system** by navigating to the URL
|
||||||
|
`https://xxx` (where `xxx` is the IoT system's IP address) to test for :doc:`HTTPS
|
||||||
|
<iot_advanced/https_certificate_iot>` connection.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
If you cannot access the :ref:`IoT system's homepage <iot/windows-iot/homepage>` from
|
||||||
|
another device, create a :ref:`Windows Firewall <iot/windows-iot/firewall>` rule to allow
|
||||||
|
communication through port `8069`.
|
||||||
|
|
||||||
|
.. _iot/windows-iot/firewall:
|
||||||
|
|
||||||
|
Windows Firewall configuration
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Firewalls help keep devices secure but can sometimes block legitimate connections. If the Windows
|
||||||
|
virtual IoT isn't accessible on the :abbr:`LAN (Local Area Network)`, for example from another
|
||||||
|
device, it could be due to a firewall blocking the connection. To prevent this issue, configure
|
||||||
|
exceptions for network discovery in the :abbr:`OS (Operating System)` or firewall settings.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
If third-party firewall software is installed on the Windows computer, refer to the software's
|
||||||
|
documentation to configure firewall exceptions.
|
||||||
|
|
||||||
|
To create a rule on Windows Defender and allow communication through port `8069`, follow these
|
||||||
|
steps:
|
||||||
|
|
||||||
|
#. Search the Windows start menu for `firewall` and select the :guilabel:`Windows Defender Firewall
|
||||||
|
with Advanced Security` app.
|
||||||
|
#. In the left part of the window, select :guilabel:`Inbound Rules`.
|
||||||
|
#. In the right part of the window, under :guilabel:`Actions`, click :guilabel:`New Rule`.
|
||||||
|
#. In the :guilabel:`New Inbound Rule Wizard` that opens, select the :guilabel:`Port` type of rule
|
||||||
|
and click :guilabel:`Next`.
|
||||||
|
#. On the :guilabel:`Protocols and Ports` page, make sure :guilabel:`TCP` and :guilabel:`Specified
|
||||||
|
local ports` are selected, enter the following in the field: `8069, 80, 443`, and click
|
||||||
|
:guilabel:`Next`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Other ports may be necessary depending on your IoT devices. For example, for the
|
||||||
|
:doc:`/applications/sales/point_of_sale/payment_methods/terminals/worldline` payment terminal,
|
||||||
|
add the `9050` port.
|
||||||
|
|
||||||
|
#. On the :guilabel:`Action` page, select :guilabel:`Allow the connection` and click
|
||||||
|
:guilabel:`Next`.
|
||||||
|
#. On the :guilabel:`Profile` page, disable any connection type(s) that don't apply to your
|
||||||
|
Windows computer and click :guilabel:`Next`.
|
||||||
|
#. On the :guilabel:`Name` page, provide a :guilabel:`Name` (e.g., `Odoo`) and, optionally, a brief
|
||||||
|
:guilabel:`Description`, then click :guilabel:`Finish`.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
`Windows Firewall rules documentation
|
||||||
|
<https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/rules>`_
|
||||||
|
|
||||||
|
.. _iot/windows-iot/homepage:
|
||||||
|
|
||||||
|
Windows virtual IoT homepage
|
||||||
|
============================
|
||||||
|
|
||||||
|
To access the Windows virtual IoT's homepage, navigate to the URL `http://localhost:8069` on the
|
||||||
|
Windows virtual IoT computer or open a web browser from another computer **on the same network as
|
||||||
|
the IoT system** and navigate to the URL `http://xxx:8069` (where `xxx` is the IoT system's IP
|
||||||
|
address).
|
||||||
|
|
||||||
|
Once the Windows virtual IoT is :doc:`connected to the Odoo database <connect>`, its homepage can
|
||||||
|
be accessed from Odoo by opening the IoT app and clicking the URL displayed on the IoT system's
|
||||||
|
card.
|
||||||
|
|
||||||
|
.. image:: windows_iot/iot-windows-homepage.png
|
||||||
|
:scale: 75%
|
||||||
|
:alt: Windows virtual IoT's homepage
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Make sure the :ref:`Windows Firewall is configured <iot/windows-iot/firewall>` to allow access.
|
||||||
|
|
||||||
|
Device connection
|
||||||
|
=================
|
||||||
|
|
||||||
|
Most :doc:`devices <devices>` automatically connect to the Windows computer used for the Windows
|
||||||
|
Virtual IoT through `Windows Plug and Play (PnP)
|
||||||
|
<https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/introduction-to-plug-and-play>`_.
|
||||||
|
However, if Windows does not recognize the device automatically upon connection, the administrator
|
||||||
|
may need to manually install the appropriate drivers.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
After connecting the devices to the computer, refresh the :ref:`IoT system's homepage
|
||||||
|
<iot/windows-iot/homepage>` to verify that the device is listed. If the device does not appear,
|
||||||
|
:ref:`reload the handlers <iot_updating_iot/handlers>` from the :ref:`IoT system's homepage
|
||||||
|
<iot/windows-iot/homepage>`.
|
||||||
|
|
||||||
|
.. _iot/windows_iot/restart:
|
||||||
|
|
||||||
|
Windows virtual IoT restart
|
||||||
|
===========================
|
||||||
|
|
||||||
|
To manually restart the Windows IoT server, search the Windows start menu for `services` and
|
||||||
|
select the :guilabel:`Services` app. Scroll down to the :guilabel:`odoo-server-xxx` service (where
|
||||||
|
`xxx` is the odoo version), right-click it, and select :guilabel:`Start` or :guilabel:`Restart`.
|
||||||
|
|
||||||
|
.. _iot/windows_iot/uninstall:
|
||||||
|
|
||||||
|
Windows virtual IoT uninstall
|
||||||
|
=============================
|
||||||
|
|
||||||
|
To uninstall the Windows virtual IoT, `uninstall
|
||||||
|
<https://support.microsoft.com/en-us/windows/uninstall-or-remove-apps-and-programs-in-windows-4b55f974-2cc6-2d2b-d092-5905080eaf98#ID0EBD=Windows_11>`_
|
||||||
|
the Odoo program on your Windows computer. Confirm the uninstallation and complete the steps in the
|
||||||
|
:guilabel:`Odoo Uninstall` dialog.
|
After Width: | Height: | Size: 9.3 KiB |
@ -25,7 +25,7 @@ You can also configure some settings from the dashboard by clicking the vertical
|
|||||||
(:guilabel:`⋮`) on a POS card. Doing so opens a popup window, from which you can:
|
(:guilabel:`⋮`) on a POS card. Doing so opens a popup window, from which you can:
|
||||||
|
|
||||||
- :doc:`Enable multiple employees to log in. <employee_login>`
|
- :doc:`Enable multiple employees to log in. <employee_login>`
|
||||||
- :doc:`Connect and set up an IoT box. <../../general/iot/config/pos>`
|
- :doc:`Connect and set up an IoT sytem. <configuration/pos_iot>`
|
||||||
- :doc:`Connect and set up an ePOS printer. <configuration/epos_ssc>`
|
- :doc:`Connect and set up an ePOS printer. <configuration/epos_ssc>`
|
||||||
|
|
||||||
.. image:: configuration/toggle-settings.png
|
.. image:: configuration/toggle-settings.png
|
||||||
@ -102,6 +102,7 @@ You can also limit the categories displayed on your POS interface. To achieve th
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
|
|
||||||
|
configuration/pos_iot
|
||||||
configuration/epos_printers
|
configuration/epos_printers
|
||||||
configuration/https
|
configuration/https
|
||||||
configuration/epos_ssc
|
configuration/epos_ssc
|
||||||
|
@ -24,7 +24,7 @@ To use an ePos printer in Point of Sale:
|
|||||||
Directly supported ePOS printers
|
Directly supported ePOS printers
|
||||||
================================
|
================================
|
||||||
|
|
||||||
The following ePOS printers are directly compatible with Odoo without needing an :doc:`IoT Box
|
The following ePOS printers are directly compatible with Odoo without needing an :doc:`IoT system
|
||||||
</applications/general/iot/devices/printer>`.
|
</applications/general/iot/devices/printer>`.
|
||||||
|
|
||||||
- Epson TM-m30 i/ii/iii (Wi-Fi/Ethernet models only; Recommended)
|
- Epson TM-m30 i/ii/iii (Wi-Fi/Ethernet models only; Recommended)
|
||||||
@ -42,11 +42,11 @@ The following ePOS printers are directly compatible with Odoo without needing an
|
|||||||
- Epson TM-P60II (Peeler: Wi-Fi® model)
|
- Epson TM-P60II (Peeler: Wi-Fi® model)
|
||||||
- Epson TM-P80 (Wi-Fi® model)
|
- Epson TM-P80 (Wi-Fi® model)
|
||||||
|
|
||||||
ePOS printers with IoT Box integration
|
ePOS printers with IoT system integration
|
||||||
======================================
|
=========================================
|
||||||
|
|
||||||
The following printers require an :doc:`IoT Box </applications/general/iot/devices/printer>` to be
|
The following printers require an :doc:`IoT system </applications/general/iot/devices/printer>` to
|
||||||
compatible with Odoo:
|
be compatible with Odoo:
|
||||||
|
|
||||||
- Epson TM-T20 family (incompatible ePOS software)
|
- Epson TM-T20 family (incompatible ePOS software)
|
||||||
- Epson TM-T88 family (incompatible ePOS software)
|
- Epson TM-T88 family (incompatible ePOS software)
|
||||||
@ -55,11 +55,11 @@ compatible with Odoo:
|
|||||||
.. important::
|
.. important::
|
||||||
- Epson printers using Wi-Fi/Ethernet connections and following the `EPOS SDK Javascript protocol
|
- Epson printers using Wi-Fi/Ethernet connections and following the `EPOS SDK Javascript protocol
|
||||||
<https://download4.epson.biz/sec_pubs/pos/reference_en/technology/epson_epos_sdk.html>`_ are
|
<https://download4.epson.biz/sec_pubs/pos/reference_en/technology/epson_epos_sdk.html>`_ are
|
||||||
compatible with Odoo **without** needing an :doc:`IoT Box
|
compatible with Odoo **without** needing an :doc:`IoT system
|
||||||
</applications/general/iot/devices/printer>`.
|
</applications/general/iot/devices/printer>`.
|
||||||
- Thermal printers using ESC/POS are compatible **with** an :doc:`IoT Box
|
- Thermal printers using ESC/POS are compatible **with** an :doc:`IoT system
|
||||||
</applications/general/iot/devices/printer>`.
|
</applications/general/iot/devices/printer>`.
|
||||||
- Epson printers using only USB connections are compatible **with** an :doc:`IoT Box
|
- Epson printers using only USB connections are compatible **with** an :doc:`IoT system
|
||||||
</applications/general/iot/devices/printer>`.
|
</applications/general/iot/devices/printer>`.
|
||||||
- Epson printers that connect via Bluetooth are **not compatible**.
|
- Epson printers that connect via Bluetooth are **not compatible**.
|
||||||
|
|
||||||
|
@ -5,11 +5,11 @@ Self-signed certificate for ePOS printers
|
|||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
To work with Odoo, some printer models that can be used without an
|
To work with Odoo, some printer models that can be used without an
|
||||||
:doc:`IoT box </applications/general/iot/config/connect>` may require :doc:`the HTTPS protocol
|
:doc:`IoT system </applications/general/iot>` may require :doc:`the HTTPS protocol <https>` to
|
||||||
<https>` to establish a secure connection between the browser and the printer. However, trying to
|
establish a secure connection between the browser and the printer. However, trying to reach the
|
||||||
reach the printer's IP address using HTTPS leads to a warning page on most web browsers. In that
|
printer's IP address using HTTPS leads to a warning page on most web browsers. In that case, you can
|
||||||
case, you can temporarily :ref:`force the connection <epos_ssc/instructions>`, which allows you to
|
temporarily :ref:`force the connection <epos_ssc/instructions>`, which allows you to reach the page
|
||||||
reach the page in HTTPS and use the ePOS printer in Odoo as long as the browser window stays open.
|
in HTTPS and use the ePOS printer in Odoo as long as the browser window stays open.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
The connection is lost after closing the browser window. Therefore, this method should only be
|
The connection is lost after closing the browser window. Therefore, this method should only be
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
=====================
|
||||||
|
IoT system connection
|
||||||
|
=====================
|
||||||
|
|
||||||
|
To connect the POS with an :doc:`IoT system </applications/general/iot>`:
|
||||||
|
|
||||||
|
#. Make sure both the Point of Sale and Internet of Things (IoT) apps are installed on your
|
||||||
|
database.
|
||||||
|
#. Set up the :doc:`/applications/general/iot/iot_box` or
|
||||||
|
:doc:`/applications/general/iot/windows_iot`.
|
||||||
|
#. Connect the peripheral devices to the IoT system:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:stub-columns: 1
|
||||||
|
|
||||||
|
* - Device
|
||||||
|
- Instructions
|
||||||
|
* - Printer
|
||||||
|
- Connect a supported receipt printer to a :abbr:`USB (Universal Serial Bus)` port or
|
||||||
|
to the network, and power it on. Refer to :doc:`../restaurant/kitchen_printing`.
|
||||||
|
* - Cash drawer
|
||||||
|
- The cash drawer should be connected to the printer with an RJ25 cable.
|
||||||
|
* - Barcode scanner
|
||||||
|
- The barcode scanner must end barcodes with an `ENTER` character (keycode 28) in order for
|
||||||
|
the barcode scanner to be compatible. This is most likely the barcode scanner's default
|
||||||
|
configuration.
|
||||||
|
* - Scale
|
||||||
|
- Connect the scale and power it on. Refer to :doc:`/applications/general/iot/devices/scale`.
|
||||||
|
* - Customer display
|
||||||
|
- Connect a screen to the :abbr:`IoT (Internet of Things)` box to display the :abbr:`PoS
|
||||||
|
(Point of Sale)` order. Refer to :doc:`/applications/general/iot/devices/screen`.
|
||||||
|
* - Payment terminal
|
||||||
|
- The connection process depends on the terminal. Refer to the :doc:`payment terminals
|
||||||
|
documentation </applications/sales/point_of_sale/payment_methods>`.
|
||||||
|
|
||||||
|
#. :doc:`Connect the IoT system to your Odoo database </applications/general/iot/connect>`.
|
||||||
|
#. :ref:`Access the POS settings <configuration/settings>` and select your POS, or click the
|
||||||
|
vertical ellipsis button (:guilabel:`⋮`) on a POS card and click :guilabel:`Edit`. Scroll down
|
||||||
|
to the :guilabel:`Connected Devices` section, enable :guilabel:`IoT Box`, then select the devices
|
||||||
|
to be used for the POS. Click :guilabel:`Save`.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
Click :guilabel:`IoT Devices` to access the list of :doc:`/applications/general/iot/devices` for
|
||||||
|
your POS and view their connection status. Click a card to access the device's form.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
- `List of supported hardware <https://www.odoo.com/page/point-of-sale-hardware>`_.
|
||||||
|
- :doc:`IoT documentation </applications/general/iot>`
|
||||||
|
|
||||||
|
.. _pos/pos_iot/connect_schema:
|
||||||
|
|
||||||
|
Setup example
|
||||||
|
=============
|
||||||
|
|
||||||
|
.. image:: pos_iot/pos-connections.png
|
||||||
|
:alt: A suggested configuration for a point of sale system.
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
@ -6,7 +6,7 @@ Connecting a payment terminal allows you to offer a fluid payment flow to your c
|
|||||||
the work of your cashiers.
|
the work of your cashiers.
|
||||||
|
|
||||||
.. important::
|
.. important::
|
||||||
- Ingenico payment terminals require an :doc:`IoT Box </applications/general/iot>`.
|
- Ingenico payment terminals require an :doc:`IoT system </applications/general/iot>`.
|
||||||
- Ingenico is currently only available in Belgium, the Netherlands and Luxembourg.
|
- Ingenico is currently only available in Belgium, the Netherlands and Luxembourg.
|
||||||
- Odoo works with the Ingenico Lane/, Desk/, and Move/ payment terminals as they support the TLV
|
- Odoo works with the Ingenico Lane/, Desk/, and Move/ payment terminals as they support the TLV
|
||||||
communication protocol through TCP/IP.
|
communication protocol through TCP/IP.
|
||||||
@ -14,12 +14,12 @@ the work of your cashiers.
|
|||||||
Configuration
|
Configuration
|
||||||
=============
|
=============
|
||||||
|
|
||||||
Connect an IoT Box
|
Connect an IoT system
|
||||||
------------------
|
---------------------
|
||||||
|
|
||||||
Connecting an Ingenico payment terminal to Odoo is a feature that requires an IoT Box. For more
|
Connecting an Ingenico payment terminal to Odoo is a feature that requires an IoT system. For more
|
||||||
information on how to connect an IoT Box to your database, please refer to the :doc:`IoT
|
information on how to connect an IoT system to your database, please refer to the :doc:`IoT
|
||||||
documentation </applications/general/iot/config/connect>`.
|
documentation </applications/general/iot>`.
|
||||||
|
|
||||||
Configure the Lane/Desk/Move 5000 terminals for Ingenico BENELUX
|
Configure the Lane/Desk/Move 5000 terminals for Ingenico BENELUX
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
@ -29,10 +29,10 @@ Configure the Lane/Desk/Move 5000 terminals for Ingenico BENELUX
|
|||||||
#. Go to :menuselection:`Kassa menu --> Settings Menu` and enter the settings password.
|
#. Go to :menuselection:`Kassa menu --> Settings Menu` and enter the settings password.
|
||||||
#. Select :guilabel:`Change Connection` and press :guilabel:`OK` on the next screen.
|
#. Select :guilabel:`Change Connection` and press :guilabel:`OK` on the next screen.
|
||||||
#. Select :guilabel:`TCP/IP` and :guilabel:`IP-address`.
|
#. Select :guilabel:`TCP/IP` and :guilabel:`IP-address`.
|
||||||
#. On the next screen, enter the IP address of your IoT Box.
|
#. On the next screen, enter the IP address of your IoT system.
|
||||||
#. Enter `9000` as port number and press :guilabel:`OK` on the next screen.
|
#. Enter `9000` as port number and press :guilabel:`OK` on the next screen.
|
||||||
|
|
||||||
At this point, the terminal restarts and should be displayed in your IoT Box form in Odoo.
|
At this point, the terminal restarts and should be displayed on the IoT system's form in Odoo.
|
||||||
|
|
||||||
.. image:: ingenico/payment_terminal_02.png
|
.. image:: ingenico/payment_terminal_02.png
|
||||||
:align: center
|
:align: center
|
||||||
|
@ -23,26 +23,26 @@ detect Six terminals.
|
|||||||
.. note::
|
.. note::
|
||||||
This module replaces the **POS Six** module.
|
This module replaces the **POS Six** module.
|
||||||
|
|
||||||
Connect an IoT box
|
Connect an IoT system
|
||||||
------------------
|
---------------------
|
||||||
|
|
||||||
Connecting a Six payment terminal to Odoo is requires :doc:`using a Raspberry Pi or virtual (for
|
Connecting a Six payment terminal to Odoo is requires :doc:`using an IoT system
|
||||||
Windows OS only) IoT box </applications/general/iot/config/connect>`.
|
</applications/general/iot>`.
|
||||||
|
|
||||||
Configure the terminal ID
|
Configure the terminal ID
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
Navigate to your IoT Box homepage, where you can find the :guilabel:`Six payment terminal` field
|
Navigate to the IoT system's homepage, where you can find the :guilabel:`Six payment terminal`
|
||||||
once your database server is connected to the IoT box. Click :guilabel:`Configure`, fill in the
|
field once your database server is connected to the IoT system. Click :guilabel:`Configure`, fill
|
||||||
:guilabel:`Terminal ID` field with the ID received from Six, and click :guilabel:`Connect`. Your
|
in the :guilabel:`Terminal ID` field with the ID received from Six, and click :guilabel:`Connect`.
|
||||||
Six terminal ID should appear in the :guilabel:`Current Terminal Id` section.
|
Your Six terminal ID should appear in the :guilabel:`Current Terminal Id` section.
|
||||||
|
|
||||||
.. image:: six/terminal-id.png
|
.. image:: six/terminal-id.png
|
||||||
:alt: Setting the Six terminal ID
|
:alt: Setting the Six terminal ID
|
||||||
|
|
||||||
Odoo automatically restarts the IoT box when the Six terminal ID is configured. If your Six terminal
|
Odoo automatically restarts the IoT system when the Six terminal ID is configured. If your Six
|
||||||
is online, it will be automatically detected and connected to the database. Check the IoT box
|
terminal is online, it will be automatically detected and connected to the database. Check the IoT
|
||||||
homepage under the :guilabel:`Payments` section to confirm the connection.
|
system's homepage under the :guilabel:`Payments` section to confirm the connection.
|
||||||
|
|
||||||
.. image:: six/id-configured.png
|
.. image:: six/id-configured.png
|
||||||
:alt: Confirming the connection to the Six payment terminal
|
:alt: Confirming the connection to the Six payment terminal
|
||||||
|