Biometric Device Integration for Odoo HR
ZKTeco Devices,
Odoo Attendance,
One System
Connect your ZKTeco biometric machines to Odoo HR Attendance with a robust queue-based processing pipeline. Automatic fetching, duplicate prevention, punch conversion, and full audit trails β out of the box.
|
5+
Data Models
|
2
Scheduled Crons
|
18 / 19
Odoo Versions
|
|
ZKTeco Device - Live
Main Gate Device
192.168.1.101 : 4370 / TCP
|
ONLINE |
|
Protocol
TCP
|
Port
4370
|
Connection
OK
|
|
Last Sync
09:01 AM
|
Timeout
5s
|
Mode
Auto
|
| John Doe | 08:02 | Check In |
| Jane Smith | 08:05 | Check In |
| John Doe | 12:00 | Check Out |
|
D
Device
|
> |
P
Punches
|
> |
Q
Queue
|
> |
A
Attendance
|
What is this module?
Queue-Based Biometric Attendance for Odoo
This module bridges ZKTeco biometric hardware and Odoo'shr.attendancemodel with a reliable, asynchronous processing pipeline. Raw punches are fetched, validated, queued, and converted into clean Odoo attendance records β automatically, on a schedule.
π± Multi-Device Support
Connect any number of ZKTeco devices β TCP or UDP β each with its own IP, port, password, and timeout configuration. Test connectivity with one click.
β³ Asynchronous Queue
Punches are never processed synchronously. They enter an intermediate queue first, ensuring no data is lost even if processing fails partway through.
π Smart Punch Conversion
Separate Check-In / Check-Out punches from the device are automatically paired into complete Odoo attendance records β 4 punches become 2 clean attendance entries.
Key Capabilities
Everything Built In
Multiple Device Support
Manage any number of ZKTeco biometric devices from a single Odoo interface β each independently configured and monitored.
TCP & UDP Protocols
Supports both TCP and UDP connection modes, covering the full range of ZKTeco device network configurations in the field.
Device Connection Testing
Test connectivity directly from the device form with the built-in Test Connection button β no separate tools needed.
Automatic Fetch via Cron
A scheduled cron automatically downloads punches from all connected devices on a configurable interval β fully hands-free.
Employee-Device Mapping
Map biometric User IDs to Odoo employees individually, supporting multi-device environments where one employee uses multiple machines.
Queue-Based Processing
All fetched punches pass through an intermediate queue before becoming attendance records β providing reliability and safe retry capability.
Queue Logs & Tracking
Every queue line records its processing outcome β success or failure β with a message explaining exactly what happened.
Duplicate Prevention
Built-in duplicate detection prevents the same punch from creating multiple attendance records, even if a device re-sends data.
Conflict Handling
Invalid sequences and Odoo validation errors are caught and flagged as Conflict state with a reason β never silently dropped.
Setup Workflow and Architecture
Three Steps to Go Live
From hardware to Odoo attendance records β a clear, predictable pipeline every step of the way.
|
01
|
Configure Device
Create a device record at
Attendance > Configuration > Devices
.
Enter the IP Address, Port, Password and Protocol.
Use
Test Connection
before saving.
|
|
02
|
Map Employees
Link each ZKTeco User ID with the corresponding employee from
Attendance > Configuration > Employee Device Mapping
.
|
|
03
|
Fetch and Process
Attendance Fetch Cron downloads punches automatically.
Queue Processing Cron converts them into
hr.attendance
records automatically.
|
ZKTECHO Device
Fetch attendance (Cron 1)
Draft Attendance
Queue
Queue Attendance (Cron 2)
Odoo Attendance
Watch It in Action
Full Module Demo
See the complete flow β from adding a ZKTeco device, mapping employees, triggering a fetch, and watching attendance records appear in Odoo HR.
Documentation and Guidance
Everything You Need to Get Started
From installing the Python dependency to configuring scheduled crons β complete guides for every step.