P-Attendance — Fingerprint Device Integration | Multi-Device Support | Realtime Sync | Device Monitoring | Device Configuration | Employee Enrollment | Command Queue | ADMS Protocol | Biometric Attendance
by Panemu https://panemu.com$ 99.54
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Employees (hr) • Discuss (mail) |
| Lines of code | 1396 |
| Technical Name |
p_attendance |
| License | OPL-1 |
| Website | https://panemu.com |
| Versions | 16.0 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Employees (hr) • Discuss (mail) |
| Lines of code | 1396 |
| Technical Name |
p_attendance |
| License | OPL-1 |
| Website | https://panemu.com |
| Versions | 16.0 17.0 18.0 19.0 |
P-Attendance: Fingerprint Device Integration
Seamless Biometric Attendance Tracking for Odoo 16 / 17 / 18 / 19
$99.99 USD
What It Does
P-Attendance is a professional Odoo module for seamless fingerprint device integration, providing automated, real-time, and accurate attendance tracking for Odoo 16-19. It eliminates manual entry by synchronizing multiple ADMS-based biometric devices into a centralized attendance system - scalable, cost-effective, and easy to integrate.
✔ Eliminate manual entry
✔ Consistent data across HR and payroll
✔ Fully automated check-in and check-out
Key Features
⚡ Real-Time Sync
Attendance records stream from devices to Odoo the moment they are captured.
🖥 Multi-Device Support
Manage many ADMS-based fingerprint devices from a single Odoo backend.
👤 Employee Enrollment
Synchronize employee profiles between Odoo and each connected device.
📊 Device Monitoring
Track device health, serial, and last-seen status at a glance.
📋 Command Queue
Queue remote commands (enroll, delete, restart) and replay them reliably.
🔄 Data Sharing
Propagate employee and biometric data across all connected devices with a single action.
⚙ Device Configuration
Push and update device configuration from Odoo without on-site work.
📅 Date Range Pull
Re-pull historical attendance for any date range when you need a reconciliation.
How It Works
Connect Device
Point the fingerprint device at your Odoo server using the ADMS protocol.
Auto-Discovery
Odoo recognizes the device on handshake and registers it automatically.
Sync Employees
Employee records and fingerprint templates sync between Odoo and the device.
Track Attendance
Every punch lands in Odoo HR Attendance in real time.
Benefits
✦ Eliminate Manual Entry
Remove the daily data-entry burden from HR and supervisors.
✦ Real-Time Accuracy
Attendance reflects reality the moment each punch happens.
✦ Reduce Time Theft
Biometric identity verification removes buddy punching.
✦ Centralized Management
Operate all devices and employee enrollments from Odoo.
✦ Audit Trail
Every record is stored, traceable, and ready for compliance review.
✦ Scalable Solution
Grow from a single device to hundreds without changing the architecture.
✦ Cost Effective
One-time license - no recurring SaaS fees.
✦ Easy Integration
Native integration with Odoo HR Attendance - no external middleware.
Technical Information
| Odoo Version | 16.0 / 17.0 / 18.0 / 19.0 |
|---|---|
| License | OPL-1 |
| Dependencies | hr_attendance |
| Protocol | ADMS |
| Category | Human Resources |
| Module Version | 1.0.0 |
What's Included
✔ Module installation package
✔ Installation guide
✔ Changelog
✔ Source code
✔ Security rules
✔ Cron jobs
✔ Wizard interfaces
✔ HR integration
Ready to Automate Your Attendance Tracking?
$99.99 - One-time payment
✓ One-time payment ✓ Email supportTested Devices
This module has been tested and proven to work with the following ADMS-compatible devices:
✔ Solution X-100C
✔ Magic MP340
Using a different brand or series that supports the ADMS protocol? Feel free to contact us for compatibility inquiries or technical support.
Support & Contact
Need help or found an issue? Contact us:
✉ Email: info@panemu.com
🌐 Website: https://panemu.com
👤 Author: Panemu
P-Attendance - Professional fingerprint attendance for Odoo 16 / 17 / 18 / 19
P-Attendance Documentation
P-Attendance — User Guide
This guide is for HR and admin staff who use the Fingerprint module inside Odoo to manage biometric attendance devices. It covers every screen reachable from Attendances → Fingerprint and the actions you can take from each one.
For device-side network setup (configuring the ADMS server URL on the physical device), see the Connection Configuration Guide further below. This guide assumes the device is already pointed at your Odoo server and has appeared in the device list.
How it works (in one paragraph)
Fingerprint devices call into Odoo on a schedule — Odoo never reaches out to the device. Whenever the device polls, Odoo answers with whatever commands are queued for it (push an employee, enroll a finger, restart, etc.). The device executes them and reports back. This means most actions you trigger in Odoo do not happen instantly — they are queued and run the next time the device checks in. The Last Sync column tells you when the device last contacted the server.
Fingerprint Device list
Menu: Attendances → Fingerprint → Fingerprint Device

Each row is a physical device. Devices register themselves automatically the first time they handshake with Odoo (the Auto Created flag on the form will be ticked).
| Column | Meaning |
|---|---|
| Device Name | Friendly name. Editable on the form. |
| Device Model | Model code reported by the device (e.g. X100-C). |
| Serial Number | Hardware serial — the unique identifier the device uses when calling Odoo. |
| Firmware Version | Reported by the device on handshake. |
| Device IP | The IP the device used in its last call. |
| Timezone | The timezone Odoo uses to interpret times from this device. Configurable in the Settings tab. |
| Last Sync | When the device last contacted the server. |
| Status | Synced (green) — recently in touch. Offline (red) — has not checked in for a while; investigate networking. |
Click a row to open the device form.
Fingerprint Device form

The header shows action buttons (top), three smart buttons (Command / Employee / Attendance counts), device identity fields, and a Settings tab.
Action buttons
All destructive or device-affecting buttons open a confirmation wizard that asks you to retype the device name before proceeding.
| Button | What it does |
|---|---|
| Push Employee Data | Queues commands to send every active HR employee to this device. Use after enabling a new device so people can check in. |
| Pull Employee Data | Queues a command to read employees back from the device into Odoo. Use to recover after a database restore, or to import a device that already has employees enrolled. |
| Share Employee Data | Replicates this device's employees (including biometric templates) to every other registered device. Use when you have just enrolled fingerprints on one device and want them to work everywhere. |
| Pull Attendance Data | Opens a date-range picker. Queues a command to fetch attendance records from the device for that range. Devices push attendance in real time normally — use this only when you suspect missing data. The end date must be after the start date. |
| Reset Device Data | Destructive. Wipes employees, biometrics, and attendance from the device. Do not use unless you are certain. |
| Restart | Reboots the device on its next poll. |
Smart buttons
- Command — opens the queue of commands targeted at this device. Useful when an action seems stuck: anything still listed here has not been executed by the device yet.
- Employee — jumps to the Fingerprint Employee list filtered to this device (see Fingerprint Employee list below).
- Attendance — jumps to the Fingerprint Attendance list filtered to this device (see Fingerprint Attendance list below).
Identity fields
| Field | Notes |
|---|---|
| Device Vendor / Model / Serial / Firmware | Reported by the device; usually read-only in practice. |
| Device IP / MAC / Push Version | Reported on each handshake. |
| Location | Free text — fill in to label where the device physically sits. |
| Last Sync / Status | See Fingerprint Device list above. |
| Auto Created | Ticked when Odoo created the record itself on first handshake (rather than an admin pre-creating it). |
Settings tab
These values are stored in Odoo until you press Sync Configuration, which queues a command to push them to the device.
| Setting | Meaning |
|---|---|
| Timezone | The timezone the device uses for clock display and for interpreting attendance timestamps. |
| Transfer Time | Daily window during which the device should transfer data (format HH:MM;HH:MM). |
| Transfer Interval | Minutes between scheduled transfers. |
| Error Delay | Seconds to wait after a network error before retrying. |
| Delay | Seconds between successive polls under normal conditions. |
| Realtime | 1 = stream attendance immediately; 0 = batch. |
Always press Sync Configuration after editing — the changes are not pushed until you do.
Fingerprint Employee list
Menu: open a device → click the Employee smart button.

This list shows every employee that exists on a particular device, linked back to the matching hr.employee record in Odoo when possible.
| Column | Meaning |
|---|---|
| On Device ID | The ID the device assigns to the employee (e.g. MA-1225261, P-122502). |
| On Device Name | The name as it appears on the device screen. |
| Device Name | Which device this row belongs to. |
| Employee Name | Linked Odoo HR employee — empty if not yet matched. |
| Origin | Device = was first seen on the device, then synced to Odoo. Odoo = was created in Odoo, then pushed to the device. |
| Has Biometric | Ticked once at least one fingerprint template has been enrolled. |
| Status | synced = device and Odoo agree. pending = a sync command is queued. enroll = an enrollment is in progress. |
Note
Rows where Origin = Device start with Employee Name empty. The module does not auto-match device users to Odoo HR employees by name — click the cell and pick the right person from the dropdown manually. Once linked, attendance records from that device user will attribute to the correct Odoo employee.
Each row has three actions:
- Enroll — opens a finger-picker wizard. Choose one of ten fingers (Left Little … Left Thumb, then Right Thumb … Right Little) and confirm. Odoo queues an enroll command; the device will start its enrollment routine on its next poll. Status switches to enroll until the device reports the new template back. Only one pending enroll command per employee at a time — if a second is requested, Odoo will refuse until the first finishes.
- Resync — pushes this single employee record to the device again. Status goes to pending. Use when an employee's name or ID was edited.
- Delete — opens a confirmation wizard, then removes the employee from both the device and Odoo's fingerprint table. The underlying hr.employee is not deleted.
Fingerprint Attendance list
Menu: open a device → click the Attendance smart button.

Read-only log of every punch reported by the device. Each record is also reflected as a Check In / Check Out on Odoo's standard Attendances module — this list is the raw audit trail.
| Column | Meaning |
|---|---|
| Employee Name | Linked HR employee. |
| Device Name | Which device captured the punch. |
| Location | Device location text (from the device form). |
| Datetime | Punch time, in the device timezone. |
| Is Verified | Whether the device authenticated the user (fingerprint matched). |
| Mode | Check In (green) or Check Out (red). |
Common workflows
Onboard a new device
- IT mounts the device and points it at the Odoo server (see the Connection Configuration Guide below).
- Wait for the device to handshake — it appears in the Fingerprint Device list with Auto Created ticked.
- Open the device form, fill in Device Name and Location, set the Timezone in the Settings tab, then press Sync Configuration.
- Press Push Employee Data to send your employees to the device.
- (If another device already has biometric templates) press Share Employee Data on that other device, instead of re-enrolling everyone.
Enroll a new employee's fingerprint
- Make sure the employee exists in Odoo HR and has been pushed to the device (see Onboard a new device step 4, or use Resync).
- Open Fingerprint Employee, find the row, click Enroll.
- Pick the finger to enroll and confirm.
- Walk to the physical device — it will prompt the employee to scan the finger several times.
- Watch the row's Status switch back to synced and Has Biometric become ticked.
Recover missing attendance
If you suspect a network outage caused punches to be missed:
- Open the device form.
- Press Pull Attendance Data.
- Pick a date range that covers the suspected gap.
- Wait for the device's next poll — punches in that range will appear in the Fingerprint Attendance list.
Replace a broken device
- Register the replacement device (it will auto-appear).
- On any healthy device that has the same employees enrolled, press Share Employee Data.
- Once the new device shows Has Biometric ticked for everyone, the replacement is ready.
Troubleshooting
| Symptom | First things to check |
|---|---|
| Status stuck on Offline. | Look at Last Sync — when did the device last contact Odoo? Check the device's network and that it is still pointed at the right server URL. |
| A button was pressed but nothing happened. | Open the Command smart button on the device form. Anything listed there is still queued; the device has not polled yet. If commands pile up indefinitely, the device is offline. |
| Enrollment never completes (status stays on enroll). | The device has not finished or reported back. Visit the device — has the employee actually scanned? If not, the command is still pending; if yes, check the Command queue. |
| Pull Attendance Data wizard rejects the dates. | Start date must be strictly before end date. |
| Two devices show the same person with different IDs. | Use Share Employee Data from the device whose IDs you want to keep, then Delete the duplicate row on the other device. |
| Device list shows a device you did not register. | Auto-created on first handshake. Either rename and adopt it, or delete it and tighten device-side ADMS configuration. |
| Employee Name column is empty after pulling/syncing from a device. | Expected behavior — when an employee record comes from the device (Origin = Device), the module does not auto-match it to an Odoo HR employee. Click the empty Employee Name cell on that row and pick the matching person from the dropdown (the list is inline-editable). Resync does not perform the match — it only re-pushes the row to the device. To avoid this manual step, push from Odoo first via Push Employee Data so rows are created with Origin = Odoo and the link is already set. |
Glossary
- ADMS — the push protocol biometric devices use to talk to attendance servers. The device polls the server; the server replies with text commands.
- Biometric template — the mathematical representation of a fingerprint stored on the device. Templates are not photographs and cannot be reversed into images.
- Finger index — 0–9, mapped Left Little (0) → Left Thumb (4) → Right Thumb (5) → Right Little (9). The default in the enroll wizard is 6 (Right Index Finger).
- Origin — for a fingerprint employee row: Device if it was discovered on the device first, Odoo if it was created in Odoo and pushed out.
- Synced / Offline / Pending / Enroll — states described in Fingerprint Device list (device) and Fingerprint Employee list (employee).
Connection Configuration Guide
Follow these steps to connect your fingerprint device to Odoo. This guide covers prerequisites, device preparation, and the ADMS server configuration.
Prerequisites
- Internet connection
- LAN cable connected to an internet-enabled router
- Power supply access
- USB flash drive (for data backup)
Preparation (Before Connecting)
Note
Ensure the fingerprint device has no stored data (attendance records, employee profiles, or fingerprint templates) before the initial connection. We recommend starting with a clean device for a smooth setup. If your device is brand new, you can skip this step.
A. Check User & Fingerprint Data
Main Menu (M/OK) > User > All Users — verify the list is empty.

B. Check Attendance Data
Main Menu (M/OK) > Search Attendance > OK > All — verify a "No attendance data!" alert appears.

C. Delete Existing Data (if needed)
Main Menu (M/OK) > Data Management > Delete Data > Delete All Data > OK

D. Backup Data First (optional)
Insert a USB flash drive (min. 2 GB free) into the device > Main Menu (M/OK) > Data Management > Backup Data > Backup to USB Disk > OK
Setup
Step 1 — Connect the Device to the Internet
Connect a LAN cable from the fingerprint device to an internet-enabled router, then configure the network:
- Main Menu (M/OK) > COMM. Settings > Ethernet
- Set DHCP to On
- The device will automatically receive a local IP address from the router.


Step 2 — Connect the Device to Odoo
Configure the ADMS cloud server settings so the device communicates with your Odoo instance:
- Main Menu (M/OK) > COMM. Settings > Cloud Server Settings
- Set "Enable Domain Name" to Off
- Set "Server Address" to your Odoo server IP or domain
- Set "Server Port" to your Odoo port (e.g. 8069)
- Set "Enable Proxy Server" to Off
- Set "HTTPS" to Off (or On if your server uses HTTPS)
Once configured, the device will perform a handshake. On success, it appears automatically on the Fingerprint Device page in Odoo.

Device appears on the Fingerprint Device page in Odoo with "Online" status
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module