Skip to Content
Menu
This question has been flagged
2 Replies
552 Views

We have a production company with cnc, laser and 3D printers.

We want to use shopfloor for the manufacturing orders.


So we placed screens next to all machines, we have bought a license for an user called operator with minimum access rights.


But when I login at screen at machine 1 and login at machine 2, machine 1 get's logged out.


So do I reaaly need 7 licenses for use shopfloor at every machine ?


That's not a good solution for use Shopfloor in your production.


Best Ton

Avatar
Discard

Which version are you using?

Author

Hi Lars,

We are using version 17 on odoo.sh


Author Best Answer

Dear Joseph,

Thank you for the detailed information.

I did a lot of testing with kiosk mode and other options you mentioned.

I finally find it out. We use single sign on from Microsoft Azure to login in Odoo.

So when I use the normal local login, it is working on multiple screens. So the production user uses the local login, and the other users login with Microsoft Azure.

Best Regards,


Ton

Avatar
Discard
Best Answer

To use Shopfloor in a production environment with multiple screens without logging out each time on other machines, you can consider the following approaches to address the issue efficiently in Odoo 17. Each screen currently logs out because Odoo enforces single-user session policies by default, so multiple simultaneous logins using the same user account are not supported.

Options for Multi-Screen Shopfloor Use

1. Use One License per Screen/Station

This is the officially recommended approach by Odoo but might be cost-prohibitive if you have multiple machines. Each screen will need a separate user account and license.

Steps:

  1. Create a user for each machine (e.g., Operator_Machine1, Operator_Machine2).
  2. Assign the minimum required access rights for shopfloor operations.
    • Navigate to Settings > Users & Companies > Users.
    • Set each user’s access rights to:
      • Manufacturing: User (or Shopfloor access).
      • Remove access to other modules not required.
  3. Log in with the designated user account on each machine.

2. Use a Shared "Kiosk Mode" Approach

If licensing individual users isn’t practical, you can implement a shared Kiosk Mode-like approach for your shopfloor screens.

Steps:

  1. Create a Dedicated Shopfloor User:
    • Create one shared shopfloor user with minimum access rights, such as read-only access for shopfloor-related operations.
  2. Use Incognito/Private Browser Sessions:
    • Odoo sessions overwrite each other because the same user account is logging in.
    • To avoid this, use incognito mode or different browsers on each machine. This way, each screen operates independently using the shared shopfloor user.
  3. Configure Each Screen:
    • Log in to Odoo on each screen and navigate to the Manufacturing > Work Orders interface for shopfloor operations.
    • Ensure that browsers on each machine don’t share cookies to avoid session conflicts.

3. Implement Shopfloor API/External Dashboard

If you want a more scalable solution, you can create a custom Shopfloor Dashboard that interacts with Odoo’s backend via APIs.

Steps:

  1. Build a Custom Dashboard:
    • Use Odoo’s JSON-RPC or REST API to fetch and display the status of manufacturing orders, work orders, or machine-specific tasks.
    • Each machine can access the dashboard without requiring multiple Odoo user logins.
  2. Assign Machine-Specific Tasks:
    • Customize the dashboard to display only tasks for the machine or operator assigned to that screen.
  3. How to Use the API: Example: Fetching manufacturing orders assigned to a machine.
    import xmlrpc.client
    
    url = "https://your-odoo-instance.com"
    db = "your-database"
    username = "shopfloor_user"
    password = "password"
    
    common = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/common")
    uid = common.authenticate(db, username, password, {})
    models = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/object")
    
    orders = models.execute_kw(
        db,
        uid,
        password,
        'mrp.workorder',
        'search_read',
        [[['state', '=', 'pending'], ['machine_id', '=', 1]]],
        {'fields': ['name', 'date_planned_start', 'state']}
    )
    print(orders)
    
    Display this data using a lightweight app or webpage on each screen.

4. Use Odoo's IoT Box Integration

If your machines are connected to Odoo’s IoT Box, you can leverage this to create machine-specific environments without needing individual users.

Steps:

  1. Set Up IoT Box:
    • Navigate to Manufacturing > Configuration > IoT.
    • Add devices connected to your IoT box and assign them to corresponding machines.
  2. Configure Machine-Specific Access:
    • IoT devices can be assigned to work centers or specific tasks, enabling the machine to display and track its own operations.
  3. Operate Shopfloor via IoT:
    • Each screen will display tasks related to its associated machine through IoT-enabled workflows.

5. Consider External Solutions

  • Kiosk-Based Browser: Use a dedicated kiosk-style browser that isolates sessions for each machine without requiring multiple users in Odoo.
  • Terminal User Session Management: Create a custom solution using terminal access for session management (via Selenium or Puppeteer) to ensure each screen is independently managed.

Recommendations

  • Best Option: For compliance and seamless integration, use separate user licenses for each machine, as this aligns with Odoo’s licensing model.
  • Cost-Effective Option: Use shared user sessions with incognito mode or browser isolation if the machines are simply accessing shopfloor dashboards.
  • Scalable Option: Build a custom shopfloor interface using Odoo’s API for real-time updates and machine-specific task displays.

Let me know if you’d like further assistance with any of these configurations or need help with implementing a custom solution!

Avatar
Discard
Related Posts Replies Views Activity
1
Apr 25
125
0
Apr 25
183
0
Mar 25
313
0
Mar 25
405
0
Feb 25
269