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:
- Create a user for each machine (e.g., Operator_Machine1, Operator_Machine2).
- 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.
- 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:
-
Create a Dedicated Shopfloor User:
- Create one shared shopfloor user with minimum access rights, such as read-only access for shopfloor-related operations.
-
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.
-
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:
-
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.
-
Assign Machine-Specific Tasks:
- Customize the dashboard to display only tasks for the machine or operator assigned to that screen.
-
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:
-
Set Up IoT Box:
- Navigate to Manufacturing > Configuration > IoT.
- Add devices connected to your IoT box and assign them to corresponding machines.
-
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.
-
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!
Which version are you using?
Hi Lars,
We are using version 17 on odoo.sh