diff --git a/content/applications/finance/fiscal_localizations/belgium.rst b/content/applications/finance/fiscal_localizations/belgium.rst index 70f6141c0..f888ed306 100644 --- a/content/applications/finance/fiscal_localizations/belgium.rst +++ b/content/applications/finance/fiscal_localizations/belgium.rst @@ -588,8 +588,8 @@ provide the following information: - your company's name, address, and legal structure; and - the Mac address of your IoT Box. -Once your IoT box is certified, :doc:`connect <../../general/iot/config/connect>` it to your -database. To verify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the +Once your IoT box is certified, :doc:`connect <../../general/iot/connect>` it to your database. To +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. .. image:: belgium/iot-devices.png diff --git a/content/applications/general/iot.rst b/content/applications/general/iot.rst index 6ce1a17d9..c9e3b85b4 100644 --- a/content/applications/general/iot.rst +++ b/content/applications/general/iot.rst @@ -1,14 +1,87 @@ -:nosearch: :show-content: :hide-page-toc: -:show-toc: +:nosearch: ======================== 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 `: micro-computer, plug-and-play device (i.e., the Odoo IoT program is + pre-installed); +- :doc:`Windows virtual 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 `_ portal user, check the + information on the portal's subscription page. + +.. seealso:: + - `Odoo's compatible IoT devices `_ + - `Odoo Tutorials: Internet of Things (IoT) Tutorials + `_ + - `IoT system 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:: :titlesonly: - iot/config + iot/iot_box + iot/windows_iot + iot/connect + iot/iot_advanced iot/devices diff --git a/content/applications/general/iot/config.rst b/content/applications/general/iot/config.rst deleted file mode 100644 index af1e2cdc8..000000000 --- a/content/applications/general/iot/config.rst +++ /dev/null @@ -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 diff --git a/content/applications/general/iot/config/connect.rst b/content/applications/general/iot/config/connect.rst deleted file mode 100644 index e85a618d0..000000000 --- a/content/applications/general/iot/config/connect.rst +++ /dev/null @@ -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 `_ - -Begin the :abbr:`IoT (Internet of Things)` configuration process by :ref:`installing the IoT app -` 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 ` or -via :ref:`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 ` 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 `. - -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. diff --git a/content/applications/general/iot/config/connect/configure-wifi-network-iot.png b/content/applications/general/iot/config/connect/configure-wifi-network-iot.png deleted file mode 100644 index 3fd18b14f..000000000 Binary files a/content/applications/general/iot/config/connect/configure-wifi-network-iot.png and /dev/null differ diff --git a/content/applications/general/iot/config/connect/connect-iot-box.png b/content/applications/general/iot/config/connect/connect-iot-box.png deleted file mode 100644 index 1ff0c969f..000000000 Binary files a/content/applications/general/iot/config/connect/connect-iot-box.png and /dev/null differ diff --git a/content/applications/general/iot/config/connect/connect-iot-wifi.png b/content/applications/general/iot/config/connect/connect-iot-wifi.png deleted file mode 100644 index 660a5836d..000000000 Binary files a/content/applications/general/iot/config/connect/connect-iot-wifi.png and /dev/null differ diff --git a/content/applications/general/iot/config/connect/connect-iot.png b/content/applications/general/iot/config/connect/connect-iot.png deleted file mode 100644 index f4acfa768..000000000 Binary files a/content/applications/general/iot/config/connect/connect-iot.png and /dev/null differ diff --git a/content/applications/general/iot/config/connect/install-iot-app.png b/content/applications/general/iot/config/connect/install-iot-app.png deleted file mode 100644 index bbf7f446f..000000000 Binary files a/content/applications/general/iot/config/connect/install-iot-app.png and /dev/null differ diff --git a/content/applications/general/iot/config/connect/iot-box-schema.png b/content/applications/general/iot/config/connect/iot-box-schema.png deleted file mode 100644 index 41e99c8de..000000000 Binary files a/content/applications/general/iot/config/connect/iot-box-schema.png and /dev/null differ diff --git a/content/applications/general/iot/config/connect/iox-box-schema-3.png b/content/applications/general/iot/config/connect/iox-box-schema-3.png deleted file mode 100644 index 3d9319e19..000000000 Binary files a/content/applications/general/iot/config/connect/iox-box-schema-3.png and /dev/null differ diff --git a/content/applications/general/iot/config/https_certificate_iot.rst b/content/applications/general/iot/config/https_certificate_iot.rst deleted file mode 100644 index c7a19dea5..000000000 --- a/content/applications/general/iot/config/https_certificate_iot.rst +++ /dev/null @@ -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 ``_ -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 ``_ 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 - ``_. 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 - ``_. 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 ``_ but received an unusual - `HTTP response (status codes) - `_. - - 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 ``_ is down using a web browser, as it's possible that it is down - due to maintenance. - - - If ``_ is down due to maintenance, unfortunately there is nothing that - can be done but instead wait for it to recover. - - If ``_ is not down due to maintenance, open a `support ticket - `_ 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 ``_ 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 `. - -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 `_. -#. 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 - `_. 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. diff --git a/content/applications/general/iot/config/https_certificate_iot/dns-chrome.png b/content/applications/general/iot/config/https_certificate_iot/dns-chrome.png deleted file mode 100644 index 31b2be245..000000000 Binary files a/content/applications/general/iot/config/https_certificate_iot/dns-chrome.png and /dev/null differ diff --git a/content/applications/general/iot/config/https_certificate_iot/dns-edge.png b/content/applications/general/iot/config/https_certificate_iot/dns-edge.png deleted file mode 100644 index a7806322f..000000000 Binary files a/content/applications/general/iot/config/https_certificate_iot/dns-edge.png and /dev/null differ diff --git a/content/applications/general/iot/config/https_certificate_iot/dns-firefox.png b/content/applications/general/iot/config/https_certificate_iot/dns-firefox.png deleted file mode 100644 index 84bf794ee..000000000 Binary files a/content/applications/general/iot/config/https_certificate_iot/dns-firefox.png and /dev/null differ diff --git a/content/applications/general/iot/config/https_certificate_iot/odoo-new-domain.png b/content/applications/general/iot/config/https_certificate_iot/odoo-new-domain.png deleted file mode 100644 index c5cf826cc..000000000 Binary files a/content/applications/general/iot/config/https_certificate_iot/odoo-new-domain.png and /dev/null differ diff --git a/content/applications/general/iot/config/https_certificate_iot/secured-connection.png b/content/applications/general/iot/config/https_certificate_iot/secured-connection.png deleted file mode 100644 index 0fe32598d..000000000 Binary files a/content/applications/general/iot/config/https_certificate_iot/secured-connection.png and /dev/null differ diff --git a/content/applications/general/iot/config/https_certificate_iot/status-ok.png b/content/applications/general/iot/config/https_certificate_iot/status-ok.png deleted file mode 100644 index 5622e32eb..000000000 Binary files a/content/applications/general/iot/config/https_certificate_iot/status-ok.png and /dev/null differ diff --git a/content/applications/general/iot/config/https_certificate_iot/sub-example-in-progress.png b/content/applications/general/iot/config/https_certificate_iot/sub-example-in-progress.png deleted file mode 100644 index 503952129..000000000 Binary files a/content/applications/general/iot/config/https_certificate_iot/sub-example-in-progress.png and /dev/null differ diff --git a/content/applications/general/iot/config/pos.rst b/content/applications/general/iot/config/pos.rst deleted file mode 100644 index 76fbc733a..000000000 --- a/content/applications/general/iot/config/pos.rst +++ /dev/null @@ -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 `_. - -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 `. - -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 `. - -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. diff --git a/content/applications/general/iot/config/pos/iot-connected-devices.png b/content/applications/general/iot/config/pos/iot-connected-devices.png deleted file mode 100644 index bbd116b59..000000000 Binary files a/content/applications/general/iot/config/pos/iot-connected-devices.png and /dev/null differ diff --git a/content/applications/general/iot/config/ssh_connect.rst b/content/applications/general/iot/config/ssh_connect.rst deleted file mode 100644 index b038c46fe..000000000 --- a/content/applications/general/iot/config/ssh_connect.rst +++ /dev/null @@ -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 `_ 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` diff --git a/content/applications/general/iot/config/ssh_connect/ssh-generate-password.png b/content/applications/general/iot/config/ssh_connect/ssh-generate-password.png deleted file mode 100644 index f014e0669..000000000 Binary files a/content/applications/general/iot/config/ssh_connect/ssh-generate-password.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting.rst b/content/applications/general/iot/config/troubleshooting.rst deleted file mode 100644 index 6936a3ec9..000000000 --- a/content/applications/general/iot/config/troubleshooting.rst +++ /dev/null @@ -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 `). - -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) ` - -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 `_ for `GS v 0` compatible printers. - - `Epson ESC * documentation `_ 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: -`__IMC___...___` - -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`: 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 - `_ 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 - `_ and `ESC * - `_, 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 - `_ 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` 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 ` and look for the corresponding -template. - -.. seealso:: - Check out Zebra's instructions on printing :abbr:`ZPL (Zebra Programming Language)` files `here - `_. - -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 `_. - -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`. diff --git a/content/applications/general/iot/config/troubleshooting/add-printer-dymo.png b/content/applications/general/iot/config/troubleshooting/add-printer-dymo.png deleted file mode 100644 index a91085059..000000000 Binary files a/content/applications/general/iot/config/troubleshooting/add-printer-dymo.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/barcode-scanner-settings.png b/content/applications/general/iot/config/troubleshooting/barcode-scanner-settings.png deleted file mode 100644 index d780db6cb..000000000 Binary files a/content/applications/general/iot/config/troubleshooting/barcode-scanner-settings.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/cable-mettler.png b/content/applications/general/iot/config/troubleshooting/cable-mettler.png deleted file mode 100644 index 72e3ccea3..000000000 Binary files a/content/applications/general/iot/config/troubleshooting/cable-mettler.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/keyboard-layout.png b/content/applications/general/iot/config/troubleshooting/keyboard-layout.png deleted file mode 100644 index 8dc5791b8..000000000 Binary files a/content/applications/general/iot/config/troubleshooting/keyboard-layout.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/modify-printer-dymo.png b/content/applications/general/iot/config/troubleshooting/modify-printer-dymo.png deleted file mode 100644 index aa6716be1..000000000 Binary files a/content/applications/general/iot/config/troubleshooting/modify-printer-dymo.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/modify-select-printer.png b/content/applications/general/iot/config/troubleshooting/modify-select-printer.png deleted file mode 100644 index 6bf96d910..000000000 Binary files a/content/applications/general/iot/config/troubleshooting/modify-select-printer.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/print-test.png b/content/applications/general/iot/config/troubleshooting/print-test.png deleted file mode 100644 index 69b9c2706..000000000 Binary files a/content/applications/general/iot/config/troubleshooting/print-test.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/printer-status.png b/content/applications/general/iot/config/troubleshooting/printer-status.png deleted file mode 100644 index ec5d99d51..000000000 Binary files a/content/applications/general/iot/config/troubleshooting/printer-status.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/setting-make.png b/content/applications/general/iot/config/troubleshooting/setting-make.png deleted file mode 100644 index b7f1d2db5..000000000 Binary files a/content/applications/general/iot/config/troubleshooting/setting-make.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/setting-model.png b/content/applications/general/iot/config/troubleshooting/setting-model.png deleted file mode 100644 index 8ada0d8f7..000000000 Binary files a/content/applications/general/iot/config/troubleshooting/setting-model.png and /dev/null differ diff --git a/content/applications/general/iot/config/updating_iot.rst b/content/applications/general/iot/config/updating_iot.rst deleted file mode 100644 index 57812ea9a..000000000 --- a/content/applications/general/iot/config/updating_iot.rst +++ /dev/null @@ -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 - `_. - -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 `_. 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 -`_, 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 - `_. - -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 ` and -:ref:`re-installation ` 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 `_ 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 `_ 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 `_ page or it is always available at the -`Odoo 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 ` 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 ` 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`. diff --git a/content/applications/general/iot/config/updating_iot/etcher-app.png b/content/applications/general/iot/config/updating_iot/etcher-app.png deleted file mode 100644 index 2163de85f..000000000 Binary files a/content/applications/general/iot/config/updating_iot/etcher-app.png and /dev/null differ diff --git a/content/applications/general/iot/config/updating_iot/flash-upgrade.png b/content/applications/general/iot/config/updating_iot/flash-upgrade.png deleted file mode 100644 index 344cd2aa3..000000000 Binary files a/content/applications/general/iot/config/updating_iot/flash-upgrade.png and /dev/null differ diff --git a/content/applications/general/iot/config/updating_iot/load-handlers.png b/content/applications/general/iot/config/updating_iot/load-handlers.png deleted file mode 100644 index d40d0a153..000000000 Binary files a/content/applications/general/iot/config/updating_iot/load-handlers.png and /dev/null differ diff --git a/content/applications/general/iot/config/updating_iot/url-flash.png b/content/applications/general/iot/config/updating_iot/url-flash.png deleted file mode 100644 index 2d1cd0c42..000000000 Binary files a/content/applications/general/iot/config/updating_iot/url-flash.png and /dev/null differ diff --git a/content/applications/general/iot/config/windows_iot.rst b/content/applications/general/iot/config/windows_iot.rst deleted file mode 100644 index 112f86cc1..000000000 --- a/content/applications/general/iot/config/windows_iot.rst +++ /dev/null @@ -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 `_. -- 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 `_. 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. diff --git a/content/applications/general/iot/config/windows_iot/advanced-settings.png b/content/applications/general/iot/config/windows_iot/advanced-settings.png deleted file mode 100644 index 64e87ae2d..000000000 Binary files a/content/applications/general/iot/config/windows_iot/advanced-settings.png and /dev/null differ diff --git a/content/applications/general/iot/config/windows_iot/inbound-rules.png b/content/applications/general/iot/config/windows_iot/inbound-rules.png deleted file mode 100644 index 7c3b56a07..000000000 Binary files a/content/applications/general/iot/config/windows_iot/inbound-rules.png and /dev/null differ diff --git a/content/applications/general/iot/config/windows_iot/new-rule.png b/content/applications/general/iot/config/windows_iot/new-rule.png deleted file mode 100644 index 7e10ceff7..000000000 Binary files a/content/applications/general/iot/config/windows_iot/new-rule.png and /dev/null differ diff --git a/content/applications/general/iot/config/windows_iot/protocol-port.png b/content/applications/general/iot/config/windows_iot/protocol-port.png deleted file mode 100644 index 14e2997b2..000000000 Binary files a/content/applications/general/iot/config/windows_iot/protocol-port.png and /dev/null differ diff --git a/content/applications/general/iot/config/windows_iot/radio-port.png b/content/applications/general/iot/config/windows_iot/radio-port.png deleted file mode 100644 index 836a45fd6..000000000 Binary files a/content/applications/general/iot/config/windows_iot/radio-port.png and /dev/null differ diff --git a/content/applications/general/iot/connect.rst b/content/applications/general/iot/connect.rst new file mode 100644 index 000000000..9fd8b30f1 --- /dev/null +++ b/content/applications/general/iot/connect.rst @@ -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 `. +- 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 + `). + +.. seealso:: + - :doc:`iot_box` + - :doc:`windows_iot` + +Connection +========== + +The IoT system can be connected to the Odoo database using a :ref:`pairing code +` or a :ref:`connection 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 + ` to display the pairing code again. Alternatively, connect the IoT + system to the database using a :ref:`connection 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 `; 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 ` or :ref:`Windows virtual IoT's + ` 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 ` or +:ref:`Windows virtual IoT's ` homepage. Click the card to access the +list of :doc:`devices ` connected to the IoT system. + +.. tip:: + :ref:`Enable the 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 ` 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 ` 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 ` display time has expired. Reboot the IoT box + or :ref:`restart the Windows virtual IoT service ` to display the pairing + code again. +- The IoT system's image version is too old and needs to be :ref:`updated + `. + +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 `. + +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 ` by flashing the IoT box's card or +:ref:`uninstalling the Windows virtual IoT program ` and +:ref:`reinstalling ` the latest package for Windows **matching your +database's version**. diff --git a/content/applications/general/iot/devices.rst b/content/applications/general/iot/devices.rst index 72eb6877a..0a77ee547 100644 --- a/content/applications/general/iot/devices.rst +++ b/content/applications/general/iot/devices.rst @@ -6,6 +6,12 @@ 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:: :titlesonly: :glob: @@ -16,8 +22,3 @@ Devices devices/footswitch devices/printer 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>` diff --git a/content/applications/general/iot/devices/camera/control-point-device.png b/content/applications/general/iot/devices/camera/control-point-device.png index 05a7666ae..0d85f44f5 100644 Binary files a/content/applications/general/iot/devices/camera/control-point-device.png and b/content/applications/general/iot/devices/camera/control-point-device.png differ diff --git a/content/applications/general/iot/devices/measurement_tool.rst b/content/applications/general/iot/devices/measurement_tool.rst index 57b486f2c..c7c0d5489 100644 --- a/content/applications/general/iot/devices/measurement_tool.rst +++ b/content/applications/general/iot/devices/measurement_tool.rst @@ -28,7 +28,7 @@ Connect with bluetooth 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. -.. image:: measurement_tool/measurement-tool.jpeg +.. image:: measurement_tool/measurement-tool.png :align: center :alt: Bluetooth indicator on measurement tool. diff --git a/content/applications/general/iot/devices/measurement_tool/measurement-tool.jpeg b/content/applications/general/iot/devices/measurement_tool/measurement-tool.jpeg deleted file mode 100644 index b7a4f2a1f..000000000 Binary files a/content/applications/general/iot/devices/measurement_tool/measurement-tool.jpeg and /dev/null differ diff --git a/content/applications/general/iot/devices/measurement_tool/measurement-tool.png b/content/applications/general/iot/devices/measurement_tool/measurement-tool.png new file mode 100644 index 000000000..343f51006 Binary files /dev/null and b/content/applications/general/iot/devices/measurement_tool/measurement-tool.png differ diff --git a/content/applications/general/iot/devices/printer.rst b/content/applications/general/iot/devices/printer.rst index 0a6f977c4..401729c8c 100644 --- a/content/applications/general/iot/devices/printer.rst +++ b/content/applications/general/iot/devices/printer.rst @@ -2,105 +2,88 @@ 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, 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 control point or a quality check. .. warning:: - The **only** way to connect a printer directly to an Odoo database is through the use of an |iot| - box. - - Without an |iot| box, printing can still occur, but it is managed through the printer itself, - which is not the recommended process. + The **only** way to connect a printer directly to an Odoo database is through the use of an IoT + system. Without an IoT system, printing can still occur, but it is managed through the printer + itself, which is not the recommended process. 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 `__ 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 - :align: center :alt: The printer as it would appear in the IoT app devices list. .. 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. -In the *Quality app*, a device can be set up on a quality control point. To do that, go to the -:menuselection:`Quality app --> Quality Control --> Control Points`, and open the desired control -point to which the printer will be linked. +In the :doc:`Quality app `, a device can be set up on a +quality control point. To do so, go to the :menuselection:`Quality --> Quality Control --> Control +Points`, and open the desired control point. .. 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 selected. -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:`Device`, where the attached *device* can be selected. :guilabel:`Save` the changes, if -required. - -.. image:: printer/printer-controlpoint.png - :align: center - :alt: This is the quality control point setup. +From here, edit the control point by selecting the :guilabel:`Type` field, and selecting +:guilabel:`Print Label` from the dropdown menu of options. Doing so reveals the :guilabel:`Device` +field, where the attached device can be selected. 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 specific product. -.. image:: printer/printer-prompt.png - :align: center - .. tip:: - Quality control points can also be accessed by navigating to :menuselection:`IoT App --> - Devices`, then select the device. There is a :guilabel:`Quality Control Points` tab, where they - can be added with the device. + Quality control points can also be accessed by navigating to :menuselection:`IoT --> + Devices`, then selecting the device. Go to the :guilabel:`Quality Control Points` tab to add them + to the device. .. note:: - On a quality check detail form, the :guilabel:`Type` of check can also be specified to - :guilabel:`Print Label`. To create :doc:`new quality checks - <../../../inventory_and_mrp/quality/quality_management/quality_checks>`, navigate to - :menuselection:`Quality app --> Quality Control --> Quality Checks --> New`. + On a :doc:`quality check form + `, the + :guilabel:`Type` of check can also be set to :guilabel:`Print Label`. .. seealso:: - - :doc:`../../../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_control_points` + - :doc:`/applications/inventory_and_mrp/quality/quality_management/quality_alerts` .. _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 -:guilabel:`Devices` menu, and select the desired printer to be configured. +It is possible to link report types to a specific printer. To do so: -From here, go to the :guilabel:`Printer Reports` tab, and click :guilabel:`Add a line`. In the -window that appears, check all the types of :guilabel:`Reports` that should be linked to this -printer. +#. Go to :menuselection:`IoT --> Devices` and select the desired printer. +#. Go to the :guilabel:`Printer Reports` tab and click :guilabel:`Add a line`. +#. 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 - :align: center :alt: The list of reports assigned to a printer in the IoT app. .. tip:: - Reports can also be configured in the *Technical* menu of the *Settings* app, while in - :ref:`debug mode `. To do that, navigate to :menuselection:`Settings App --> - Technical --> Actions: Reports`. From here, select the desired report from the list. Then, an - :guilabel:`IoT Device` can be set on the report. + Reports can also be configured by :ref:`enabling the developer mode ` and going + to :menuselection:`Settings --> Technical --> Reports`. Select the desired report from the list + and set an :guilabel:`IoT Device`. 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`. @@ -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 different printers, based on their preferences. -To unlink a report from a printer, navigate to :menuselection:`IoT app --> Clear Selected Devices`. -This generates a list of reports that are linked to a printer on the current device. Click the -:guilabel:`Unlink` button next to each report to remove the link. +To unlink a report from a printer, navigate to :menuselection:`IoT --> Configuration --> Reset +Linked Printers`. This generates a list of reports that are linked to a printer on the current +device. Click the :guilabel:`Unlink` button next to each report to remove the link. .. important:: 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. .. image:: printer/clear-reports.png - :align: center :alt: A list of reports currently linked to a printer in the IoT app. .. seealso:: :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 ` +or :ref:`Windows virtual IoT's ` 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 +`_ and `ESC * +`_ 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 ` or :ref:`Windows virtual IoT's + ` 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: `__IMC___...___`, 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`: 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 `_ + 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 ` 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 + `_ and `ESC * + `_ 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 + `_, 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` 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 + `. + +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 `, go +to :menuselection:`Settings --> Technical --> User Interface --> Views`, and search for the +corresponding template. + +.. seealso:: + `Zebra's instructions on printing ZPL files + `_ + +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 +` (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.). diff --git a/content/applications/general/iot/config/troubleshooting/add-printer-add.png b/content/applications/general/iot/devices/printer/add-printer-add.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/add-printer-add.png rename to content/applications/general/iot/devices/printer/add-printer-add.png diff --git a/content/applications/general/iot/config/troubleshooting/add-printer-filled.png b/content/applications/general/iot/devices/printer/add-printer-filled.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/add-printer-filled.png rename to content/applications/general/iot/devices/printer/add-printer-filled.png diff --git a/content/applications/general/iot/config/troubleshooting/add-printer.png b/content/applications/general/iot/devices/printer/add-printer.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/add-printer.png rename to content/applications/general/iot/devices/printer/add-printer.png diff --git a/content/applications/general/iot/config/troubleshooting/choose-printer.png b/content/applications/general/iot/devices/printer/choose-printer.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/choose-printer.png rename to content/applications/general/iot/devices/printer/choose-printer.png diff --git a/content/applications/general/iot/config/troubleshooting/epson-compatibility-compare.png b/content/applications/general/iot/devices/printer/epson-compatibility-compare.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/epson-compatibility-compare.png rename to content/applications/general/iot/devices/printer/epson-compatibility-compare.png diff --git a/content/applications/general/iot/config/troubleshooting/epson-tm-u220-specification.png b/content/applications/general/iot/devices/printer/epson-tm-u220-specification.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/epson-tm-u220-specification.png rename to content/applications/general/iot/devices/printer/epson-tm-u220-specification.png diff --git a/content/applications/general/iot/config/troubleshooting/local-printer.png b/content/applications/general/iot/devices/printer/local-printer.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/local-printer.png rename to content/applications/general/iot/devices/printer/local-printer.png diff --git a/content/applications/general/iot/config/troubleshooting/main-modify.png b/content/applications/general/iot/devices/printer/main-modify.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/main-modify.png rename to content/applications/general/iot/devices/printer/main-modify.png diff --git a/content/applications/general/iot/config/troubleshooting/modify-printer.png b/content/applications/general/iot/devices/printer/modify-printer.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/modify-printer.png rename to content/applications/general/iot/devices/printer/modify-printer.png diff --git a/content/applications/general/iot/devices/printer/print-labels-button.png b/content/applications/general/iot/devices/printer/print-labels-button.png deleted file mode 100644 index af86aac56..000000000 Binary files a/content/applications/general/iot/devices/printer/print-labels-button.png and /dev/null differ diff --git a/content/applications/general/iot/devices/printer/printer-controlpoint.png b/content/applications/general/iot/devices/printer/printer-controlpoint.png deleted file mode 100644 index 49dacae10..000000000 Binary files a/content/applications/general/iot/devices/printer/printer-controlpoint.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/printer-page.png b/content/applications/general/iot/devices/printer/printer-page.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/printer-page.png rename to content/applications/general/iot/devices/printer/printer-page.png diff --git a/content/applications/general/iot/devices/printer/printer-prompt.png b/content/applications/general/iot/devices/printer/printer-prompt.png deleted file mode 100644 index 80ba6bc1d..000000000 Binary files a/content/applications/general/iot/devices/printer/printer-prompt.png and /dev/null differ diff --git a/content/applications/general/iot/config/troubleshooting/receipt-example.png b/content/applications/general/iot/devices/printer/receipt-example.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/receipt-example.png rename to content/applications/general/iot/devices/printer/receipt-example.png diff --git a/content/applications/general/iot/config/troubleshooting/receipt-print-random-letters.png b/content/applications/general/iot/devices/printer/receipt-print-random-letters.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/receipt-print-random-letters.png rename to content/applications/general/iot/devices/printer/receipt-print-random-letters.png diff --git a/content/applications/general/iot/config/troubleshooting/rename-printer.png b/content/applications/general/iot/devices/printer/rename-printer.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/rename-printer.png rename to content/applications/general/iot/devices/printer/rename-printer.png diff --git a/content/applications/general/iot/config/troubleshooting/sub-type.png b/content/applications/general/iot/devices/printer/sub-type.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/sub-type.png rename to content/applications/general/iot/devices/printer/sub-type.png diff --git a/content/applications/general/iot/config/troubleshooting/tm-u220-ldv-hdv-scale35.png b/content/applications/general/iot/devices/printer/tm-u220-ldv-hdv-scale35.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/tm-u220-ldv-hdv-scale35.png rename to content/applications/general/iot/devices/printer/tm-u220-ldv-hdv-scale35.png diff --git a/content/applications/general/iot/config/troubleshooting/tm-u220-ldv-hdv.png b/content/applications/general/iot/devices/printer/tm-u220-ldv-hdv.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/tm-u220-ldv-hdv.png rename to content/applications/general/iot/devices/printer/tm-u220-ldv-hdv.png diff --git a/content/applications/general/iot/config/troubleshooting/tm-u220-ldv-scale75.png b/content/applications/general/iot/devices/printer/tm-u220-ldv-scale75.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/tm-u220-ldv-scale75.png rename to content/applications/general/iot/devices/printer/tm-u220-ldv-scale75.png diff --git a/content/applications/general/iot/config/troubleshooting/tm-u220-ldv.png b/content/applications/general/iot/devices/printer/tm-u220-ldv.png similarity index 100% rename from content/applications/general/iot/config/troubleshooting/tm-u220-ldv.png rename to content/applications/general/iot/devices/printer/tm-u220-ldv.png diff --git a/content/applications/general/iot/devices/scale.rst b/content/applications/general/iot/devices/scale.rst index dcfbff13e..40a7838e7 100644 --- a/content/applications/general/iot/devices/scale.rst +++ b/content/applications/general/iot/devices/scale.rst @@ -2,69 +2,75 @@ 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:: - - In EU member states, `certification is legally required `_ + - In EU member states, `certification is legally required + `_ to use a scale as an integrated device. - 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 - Odoo database. - - Alternatively, you have the option to acquire a *non-integrated* certified scale that prints + reside in one of these countries, you can still use a scale but without integration into your + Odoo database. Alternatively, you can acquire a *non-integrated* certified scale that prints certified labels, which can then be scanned into your Odoo database. -.. seealso:: - `Directive 2014/31/EU of the European Parliament `_ - -Connection -========== - -To link the scale to the :abbr:`IoT (Internet of Things)` box, connect it with a :abbr:`USB -(Universal Serial Bus)` cable. +To connect a scale to the IoT system, use a USB cable. In some cases, you may need a serial-to-US +adapter to complete the connection. If the scale is `compatible with an IoT system +`_, no additional setup is required; the scale is +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 ` and :ref:`update the +scale's drivers `. .. 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 `_. In such cases, a different scale + must be used. -If the scale is `compatible with Odoo IoT Box `_, there is -no need to set up anything because it will be automatically detected as soon as it is connected. +Once the scale is connected to the IoT system, follow these steps to configure it in the POS +settings: -.. image:: scale/iot-choice.png - :align: center - :alt: IOT box auto detection. +#. :ref:`Access the POS 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 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 -to be downloaded to the box in some cases. To update the drivers, go to the :abbr:`IoT (Internet of -Things)` box homepage and click on :guilabel:`Drivers List`. Then, click on :guilabel:`Load -Drivers`. +.. seealso:: + :doc:`Connect an IoT system to a POS ` -.. image:: scale/driver-list.png - :align: center - :alt: View of the IoT box settings and driver list. - -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. +The scale is then available in all the :doc:`POS's sessions `. +If a product is configured with a price per weight, selecting it on the :guilabel:`PoS screen` opens +the scale popup. The cashier can then weigh the product to automatically add the correct price to +the cart. .. image:: scale/scale-view.png - :align: center + :scale: 80% :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 `_ 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 `. + The scale should then appear as `Toledo 8217`, as opposed to the previous display, where it + appeared as `Adam Equipment Serial`. diff --git a/content/applications/general/iot/devices/scale/driver-list.png b/content/applications/general/iot/devices/scale/driver-list.png deleted file mode 100644 index 27c6ba1a6..000000000 Binary files a/content/applications/general/iot/devices/scale/driver-list.png and /dev/null differ diff --git a/content/applications/general/iot/devices/scale/iot-choice.png b/content/applications/general/iot/devices/scale/iot-choice.png deleted file mode 100644 index 8021bcfaa..000000000 Binary files a/content/applications/general/iot/devices/scale/iot-choice.png and /dev/null differ diff --git a/content/applications/general/iot/devices/screen.rst b/content/applications/general/iot/devices/screen.rst index 8d8cd707c..4d8a35736 100644 --- a/content/applications/general/iot/devices/screen.rst +++ b/content/applications/general/iot/devices/screen.rst @@ -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. .. seealso:: - :ref:`See the Raspberry Pi Schema `. + :ref:`See the Raspberry Pi Schema `. .. important:: Screen(s) should be connected before the :abbr:`IoT (Internet of Things)` box is switched on. If diff --git a/content/applications/general/iot/iot_advanced.rst b/content/applications/general/iot/iot_advanced.rst new file mode 100644 index 000000000..df733c05c --- /dev/null +++ b/content/applications/general/iot/iot_advanced.rst @@ -0,0 +1,11 @@ +:nosearch: + +======== +Advanced +======== + +.. toctree:: + + iot_advanced/https_certificate_iot + iot_advanced/updating_iot + iot_advanced/ssh_connect diff --git a/content/applications/general/iot/iot_advanced/https_certificate_iot.rst b/content/applications/general/iot/iot_advanced/https_certificate_iot.rst new file mode 100644 index 000000000..c4b83385d --- /dev/null +++ b/content/applications/general/iot/iot_advanced/https_certificate_iot.rst @@ -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 ``_, 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 ` 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 ` is linked to your account. +- The :ref:`IoT box subscription ` was added *after* connecting the IoT + system to the database. In this case, refresh the IoT system's homepage or reboot/:ref:`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 `_. +- 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 + `_. 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 +` or :ref:`Windows virtual IoT's 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 ``_. 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 `, click the IoT system's card in the IoT app, and click + :guilabel:`Download logs` on the :ref:`IoT system's form `. + To define the log levels recorded in the IoT system's log file, :ref:`access the IoT box's + ` or :ref:`Windows virtual IoT's ` 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 ``_ but received an unexpected +`HTTP response (status codes) `_. + +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 ``_ in a web browser to check if the website is temporarily down for + maintenance. +#. | If ``_ is down for maintenance, wait for it to resume. + | If the website is operational, open a `support ticket `_ 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 ``_, but the server refused to +provide the HTTPS certificate. + +Check that the IoT system and database meet the :ref:`eligibility requirements +` for an HTTPS certificate. diff --git a/content/applications/general/iot/iot_advanced/https_certificate_iot/https-valid.png b/content/applications/general/iot/iot_advanced/https_certificate_iot/https-valid.png new file mode 100644 index 000000000..352f26274 Binary files /dev/null and b/content/applications/general/iot/iot_advanced/https_certificate_iot/https-valid.png differ diff --git a/content/applications/general/iot/iot_advanced/https_certificate_iot/iot-new-domain.png b/content/applications/general/iot/iot_advanced/https_certificate_iot/iot-new-domain.png new file mode 100644 index 000000000..8d8332e62 Binary files /dev/null and b/content/applications/general/iot/iot_advanced/https_certificate_iot/iot-new-domain.png differ diff --git a/content/applications/general/iot/config/connect/iot-box-connected.png b/content/applications/general/iot/iot_advanced/iot-box-connected.png similarity index 100% rename from content/applications/general/iot/config/connect/iot-box-connected.png rename to content/applications/general/iot/iot_advanced/iot-box-connected.png diff --git a/content/applications/general/iot/config/connect/server-token.png b/content/applications/general/iot/iot_advanced/server-token.png similarity index 100% rename from content/applications/general/iot/config/connect/server-token.png rename to content/applications/general/iot/iot_advanced/server-token.png diff --git a/content/applications/general/iot/iot_advanced/ssh_connect.rst b/content/applications/general/iot/iot_advanced/ssh_connect.rst new file mode 100644 index 000000000..1608522b6 --- /dev/null +++ b/content/applications/general/iot/iot_advanced/ssh_connect.rst @@ -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 `_ 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` diff --git a/content/applications/general/iot/iot_advanced/ssh_connect/ssh-generate-password.png b/content/applications/general/iot/iot_advanced/ssh_connect/ssh-generate-password.png new file mode 100644 index 000000000..8496487a5 Binary files /dev/null and b/content/applications/general/iot/iot_advanced/ssh_connect/ssh-generate-password.png differ diff --git a/content/applications/general/iot/iot_advanced/updating_iot.rst b/content/applications/general/iot/iot_advanced/updating_iot.rst new file mode 100644 index 000000000..efefcc090 --- /dev/null +++ b/content/applications/general/iot/iot_advanced/updating_iot.rst @@ -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 `; +- :ref:`Updating the 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 `, 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 ` 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 `_, 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 + `_. + + #. `Download balenaEtcher. `_ + #. 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 + ` and :ref:`reinstall ` 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 ` or :ref:`Windows virtual IoT's + ` 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 ` or :doc:`Odoo.sh + ` 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 ` in Odoo. diff --git a/content/applications/general/iot/iot_advanced/updating_iot/etcher-flash.png b/content/applications/general/iot/iot_advanced/updating_iot/etcher-flash.png new file mode 100644 index 000000000..6841fb17b Binary files /dev/null and b/content/applications/general/iot/iot_advanced/updating_iot/etcher-flash.png differ diff --git a/content/applications/general/iot/iot_advanced/updating_iot/iot-update.png b/content/applications/general/iot/iot_advanced/updating_iot/iot-update.png new file mode 100644 index 000000000..0c0d5610b Binary files /dev/null and b/content/applications/general/iot/iot_advanced/updating_iot/iot-update.png differ diff --git a/content/applications/general/iot/iot_box.rst b/content/applications/general/iot/iot_box.rst new file mode 100644 index 000000000..746505383 --- /dev/null +++ b/content/applications/general/iot/iot_box.rst @@ -0,0 +1,89 @@ +======= +IoT box +======= + +To start using an IoT box: + +#. Make sure you have a :ref:`valid IoT box subscription ` in addition to + your Odoo subscription. +#. Connect your :doc:`devices ` to the IoT box. +#. :ref:`Connect the IoT box to the network `. +#. :doc:`Connect the IoT box to your Odoo database `. + +.. 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 ` or +:ref:`Wi-Fi `. + +.. 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 `. + + .. 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 `, its homepage can be accessed +from Odoo by opening the IoT app and clicking the URL displayed on the IoT box's card. diff --git a/content/applications/general/iot/iot_box/iot-homepage.png b/content/applications/general/iot/iot_box/iot-homepage.png new file mode 100644 index 000000000..b4e91fa1e Binary files /dev/null and b/content/applications/general/iot/iot_box/iot-homepage.png differ diff --git a/content/applications/general/iot/iot_box/iot-pos-display.png b/content/applications/general/iot/iot_box/iot-pos-display.png new file mode 100644 index 000000000..d1d87de7a Binary files /dev/null and b/content/applications/general/iot/iot_box/iot-pos-display.png differ diff --git a/content/applications/general/iot/windows_iot.rst b/content/applications/general/iot/windows_iot.rst new file mode 100644 index 000000000..3175eae12 --- /dev/null +++ b/content/applications/general/iot/windows_iot.rst @@ -0,0 +1,174 @@ +=================== +Windows virtual IoT +=================== + +To start using the Windows virtual IoT: + +#. Make sure all :ref:`prerequisites ` are met. +#. :ref:`Install the Windows virtual IoT ` on a Windows computer. +#. :ref:`Configure the Windows Firewall `. +#. Connect your :doc:`devices ` to the Windows virtual IoT. +#. :doc:`Connect the Windows virtual IoT to your Odoo database `. + +.. _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 `. +- 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 `_ 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 ` automatically opens in a web browser with + the URL `http://localhost:8069`. + + .. tip:: + If the web browser does not show anything, :ref:`restart ` the + Windows virtual IoT service. + +#. Check that you can access the :ref:`IoT system's 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 + ` connection. + + .. tip:: + If you cannot access the :ref:`IoT system's homepage ` from + another device, create a :ref:`Windows 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 + `_ + +.. _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 `, 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 ` to allow access. + +Device connection +================= + +Most :doc:`devices ` automatically connect to the Windows computer used for the Windows +Virtual IoT through `Windows Plug and Play (PnP) +`_. +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 + ` to verify that the device is listed. If the device does not appear, + :ref:`reload the handlers ` from the :ref:`IoT system's 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 +`_ +the Odoo program on your Windows computer. Confirm the uninstallation and complete the steps in the +:guilabel:`Odoo Uninstall` dialog. diff --git a/content/applications/general/iot/windows_iot/iot-windows-homepage.png b/content/applications/general/iot/windows_iot/iot-windows-homepage.png new file mode 100644 index 000000000..7c02ba0c4 Binary files /dev/null and b/content/applications/general/iot/windows_iot/iot-windows-homepage.png differ diff --git a/content/applications/sales/point_of_sale/configuration.rst b/content/applications/sales/point_of_sale/configuration.rst index 302d605e0..070d75959 100644 --- a/content/applications/sales/point_of_sale/configuration.rst +++ b/content/applications/sales/point_of_sale/configuration.rst @@ -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: - :doc:`Enable multiple employees to log in. ` -- :doc:`Connect and set up an IoT box. <../../general/iot/config/pos>` +- :doc:`Connect and set up an IoT sytem. ` - :doc:`Connect and set up an ePOS printer. ` .. image:: configuration/toggle-settings.png @@ -90,6 +90,7 @@ settings ` and choose the specific categories to display .. toctree:: :titlesonly: + configuration/pos_iot configuration/epos_printers configuration/https configuration/epos_ssc diff --git a/content/applications/sales/point_of_sale/configuration/epos_printers.rst b/content/applications/sales/point_of_sale/configuration/epos_printers.rst index f10d26c7d..56c23eae9 100644 --- a/content/applications/sales/point_of_sale/configuration/epos_printers.rst +++ b/content/applications/sales/point_of_sale/configuration/epos_printers.rst @@ -24,7 +24,7 @@ To use an ePos printer in Point of Sale: 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 `. - 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-P80 (Wi-Fi® model) -ePOS printers with IoT Box integration -====================================== +ePOS printers with IoT system integration +========================================= -The following printers require an :doc:`IoT Box ` to be -compatible with Odoo: +The following printers require an :doc:`IoT system ` to +be compatible with Odoo: - Epson TM-T20 family (incompatible ePOS software) - Epson TM-T88 family (incompatible ePOS software) @@ -55,11 +55,11 @@ compatible with Odoo: .. important:: - Epson printers using Wi-Fi/Ethernet connections and following the `EPOS SDK Javascript protocol `_ are - compatible with Odoo **without** needing an :doc:`IoT Box + compatible with Odoo **without** needing an :doc:`IoT system `. - - Thermal printers using ESC/POS are compatible **with** an :doc:`IoT Box + - Thermal printers using ESC/POS are compatible **with** an :doc:`IoT system `. - - 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 `. - Epson printers that connect via Bluetooth are **not compatible**. diff --git a/content/applications/sales/point_of_sale/configuration/epos_ssc.rst b/content/applications/sales/point_of_sale/configuration/epos_ssc.rst index 76cf7f537..3c1a8e15f 100644 --- a/content/applications/sales/point_of_sale/configuration/epos_ssc.rst +++ b/content/applications/sales/point_of_sale/configuration/epos_ssc.rst @@ -5,11 +5,11 @@ Self-signed certificate for ePOS printers ========================================= To work with Odoo, some printer models that can be used without an -:doc:`IoT box ` may require :doc:`the HTTPS protocol -` to establish a secure connection between the browser and the printer. However, trying to -reach the printer's IP address using HTTPS leads to a warning page on most web browsers. In that -case, you can temporarily :ref:`force the connection `, which allows you to -reach the page in HTTPS and use the ePOS printer in Odoo as long as the browser window stays open. +:doc:`IoT system ` may require :doc:`the HTTPS protocol ` to +establish a secure connection between the browser and the printer. However, trying to reach the +printer's IP address using HTTPS leads to a warning page on most web browsers. In that case, you can +temporarily :ref:`force the connection `, which allows you to reach the page +in HTTPS and use the ePOS printer in Odoo as long as the browser window stays open. .. warning:: The connection is lost after closing the browser window. Therefore, this method should only be diff --git a/content/applications/sales/point_of_sale/configuration/pos_iot.rst b/content/applications/sales/point_of_sale/configuration/pos_iot.rst new file mode 100644 index 000000000..f6287c85b --- /dev/null +++ b/content/applications/sales/point_of_sale/configuration/pos_iot.rst @@ -0,0 +1,57 @@ +===================== +IoT system connection +===================== + +To connect the POS with an :doc:`IoT system `: + +#. 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 `. + +#. :doc:`Connect the IoT system to your Odoo database `. +#. :ref:`Access the POS 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 `_. + - :doc:`IoT documentation ` + +.. _pos/pos_iot/connect_schema: + +Setup example +============= + +.. image:: pos_iot/pos-connections.png + :alt: A suggested configuration for a point of sale system. diff --git a/content/applications/general/iot/config/pos/pos-connections.png b/content/applications/sales/point_of_sale/configuration/pos_iot/pos-connections.png similarity index 100% rename from content/applications/general/iot/config/pos/pos-connections.png rename to content/applications/sales/point_of_sale/configuration/pos_iot/pos-connections.png diff --git a/content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst b/content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst index 9d421ed71..72368770b 100644 --- a/content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst +++ b/content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst @@ -6,7 +6,7 @@ Connecting a payment terminal allows you to offer a fluid payment flow to your c the work of your cashiers. .. important:: - - Ingenico payment terminals require an :doc:`IoT Box `. + - Ingenico payment terminals require an :doc:`IoT system `. - 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 communication protocol through TCP/IP. @@ -14,12 +14,12 @@ the work of your cashiers. 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 -information on how to connect an IoT Box to your database, please refer to the :doc:`IoT -documentation `. +Connecting an Ingenico payment terminal to Odoo is a feature that requires an IoT system. For more +information on how to connect an IoT system to your database, please refer to the :doc:`IoT +documentation `. 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. #. Select :guilabel:`Change Connection` and press :guilabel:`OK` on the next screen. #. 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. -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 :align: center diff --git a/content/applications/sales/point_of_sale/payment_methods/terminals/six.rst b/content/applications/sales/point_of_sale/payment_methods/terminals/six.rst index 154e0deeb..3bb7b890c 100644 --- a/content/applications/sales/point_of_sale/payment_methods/terminals/six.rst +++ b/content/applications/sales/point_of_sale/payment_methods/terminals/six.rst @@ -23,26 +23,26 @@ detect Six terminals. .. note:: 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 -Windows OS only) IoT box `. +Connecting a Six payment terminal to Odoo is requires :doc:`using an IoT system +`. Configure the terminal ID ------------------------- -Navigate to your IoT Box homepage, where you can find the :guilabel:`Six payment terminal` field -once your database server is connected to the IoT box. Click :guilabel:`Configure`, fill in the -:guilabel:`Terminal ID` field with the ID received from Six, and click :guilabel:`Connect`. Your -Six terminal ID should appear in the :guilabel:`Current Terminal Id` section. +Navigate to the IoT system's homepage, where you can find the :guilabel:`Six payment terminal` +field once your database server is connected to the IoT system. Click :guilabel:`Configure`, fill +in the :guilabel:`Terminal ID` field with the ID received from Six, and click :guilabel:`Connect`. +Your Six terminal ID should appear in the :guilabel:`Current Terminal Id` section. .. image:: six/terminal-id.png :alt: Setting the Six terminal ID -Odoo automatically restarts the IoT box when the Six terminal ID is configured. If your Six terminal -is online, it will be automatically detected and connected to the database. Check the IoT box -homepage under the :guilabel:`Payments` section to confirm the connection. +Odoo automatically restarts the IoT system when the Six terminal ID is configured. If your Six +terminal is online, it will be automatically detected and connected to the database. Check the IoT +system's homepage under the :guilabel:`Payments` section to confirm the connection. .. image:: six/id-configured.png :alt: Confirming the connection to the Six payment terminal diff --git a/content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst b/content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst index 55132f0bf..dadc9d50a 100644 --- a/content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst +++ b/content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst @@ -15,12 +15,12 @@ the work of your cashiers. Configuration ============= -Connect an IoT Box ------------------- +Connect an IoT system +--------------------- -Connecting a Worldline Payment Terminal to Odoo is a feature that requires an IoT Box. For more +Connecting a Worldline Payment Terminal to Odoo is a feature that requires an IoT system. For more information on how to connect one to your database, please refer to the -:doc:`IoT documentation `. +:doc:`IoT documentation `. Configure the protocol ---------------------- @@ -44,8 +44,8 @@ Finally, set up the hostname and port number. Hostname ~~~~~~~~ -| To set up the hostname, enter your IoT box's IP address' sequence numbers and press **OK** at each - "." until you reach the colon symbol. +| To set up the hostname, enter your IoT system's IP address' sequence numbers and press **OK** at + each "." until you reach the colon symbol. | Then, press **OK** twice. .. example:: @@ -53,8 +53,9 @@ Hostname | On the *Hostname screen*, type :menuselection:`10 --> OK --> 30 --> OK --> 19 --> OK --> 4 --> OK --> OK`. -.. note:: - Your IoT box's IP address is available in your IoT Box application's database. +.. tip:: + Your IoT system's IP address is available on the :ref:`IoT system's card in the IoT app + `. Port number ~~~~~~~~~~~ @@ -64,9 +65,8 @@ On the *Port number* screen, enter **9001** (or **9050** for Windows) and click the terminal automatically restarts. .. warning:: - For **Windows** IoT devices, it is necessary to add a firewall exception. Follow the - :ref:`additional instructions in the Windows IoT documentation ` to add the - exception to Windows Firewall. + For the :doc:`Windows virtual IoT `, the `9050` port must be added + as a :ref:`Windows Firewall exception `. Configure the payment method ---------------------------- diff --git a/content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst b/content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst index 0a69ccceb..f0e05cda5 100644 --- a/content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst +++ b/content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst @@ -34,13 +34,13 @@ Setup form From the :ref:`setup form `, select the :guilabel:`Printer Type` according to your installation: -- If your printer is connected to an IoT box, select :guilabel:`Use a printer connected to the IoT - Box` and select the device in the :guilabel:`IoT Device` field. -- If you use an Epson printer that does not need an IoT box, select :guilabel:`Use an Epson printer` - and enter the printer's IP address in the :guilabel:`Epson Printer IP Address` field. +- If your printer is connected to an IoT system, select :guilabel:`Use a printer connected to the + IoT Box` and select the device in the :guilabel:`IoT Device` field. +- If you use an Epson printer that does not require an IoT system, select :guilabel:`Use an Epson + printer` and enter the printer's IP address in the :guilabel:`Epson Printer IP Address` field. .. seealso:: - - :doc:`/applications/general/iot/config/connect` + - :doc:`/applications/general/iot/connect` - :doc:`/applications/general/iot/devices/printer` - :doc:`../configuration/epos_ssc` diff --git a/content/applications/sales/point_of_sale/shop/customer_display.rst b/content/applications/sales/point_of_sale/shop/customer_display.rst index 0f5bdf8c1..4b8f81fef 100644 --- a/content/applications/sales/point_of_sale/shop/customer_display.rst +++ b/content/applications/sales/point_of_sale/shop/customer_display.rst @@ -43,8 +43,8 @@ application, click the vertical ellipsis button (:guilabel:`⋮`) on a POS card, .. _customer_display/iot: -IoT box -------- +IoT system +---------- Connect an IoT box to your database and the second screen to the IoT box. Then, go to :menuselection:`Point of Sale --> Configuration --> Settings`, scroll down to the @@ -58,4 +58,4 @@ monitor in the :guilabel:`Customer Display` field. Both devices need to be connected to the same local network. .. seealso:: - :doc:`../../../general/iot/config/pos` + :doc:`../configuration/pos_iot` diff --git a/redirects/17.0.txt b/redirects/17.0.txt index 402b5ada2..7b8d95bfe 100644 --- a/redirects/17.0.txt +++ b/redirects/17.0.txt @@ -26,6 +26,14 @@ developer/tutorials/getting_started/16_final_word.rst developer/tutorials/server # applications/general applications/general/email_communication/email_servers.rst applications/general/email_communication.rst +applications/general/iot/config.rst applications/general/iot.rst +applications/general/iot/config/connect.rst applications/general/iot/connect.rst +applications/general/iot/config/pos.rst applications/sales/point_of_sale/configuration/pos_iot.rst +applications/general/iot/config/https_certificate_iot.rst applications/general/iot/iot_advanced/https_certificate_iot.rst +applications/general/iot/config/updating_iot.rst applications/general/iot/iot_advanced/updating_iot.rst +applications/general/iot/config/troubleshooting.rst applications/general/iot.rst +applications/general/iot/config/windows_iot.rst applications/general/iot/windows_iot.rst +applications/general/iot/config/ssh_connect.rst applications/general/iot/iot_advanced/ssh_connect.rst # applications/hr