| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Time Off (hr_holidays) • Employees (hr) • Discuss (mail) • Calendar (calendar) |
| Lines of code | 8503 |
| Technical Name |
dotbd_hr_zk_attendance_suite |
| License | OPL-1 |
| Website | https://dotbdsolutions.com |
| Versions | 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Time Off (hr_holidays) • Employees (hr) • Discuss (mail) • Calendar (calendar) |
| Lines of code | 8503 |
| Technical Name |
dotbd_hr_zk_attendance_suite |
| License | OPL-1 |
| Website | https://dotbdsolutions.com |
| Versions | 17.0 18.0 19.0 |
ZKteco HR Attendance Suite
Complete Biometric Integration (Enhanced)
v19.0.7.0.0 - Now with ADMS Cloud Push Protocol & Hybrid Connection Modes!Or copy link: https://youtu.be/wx5P2C8AFA0
Transform Your Attendance Management
The most comprehensive attendance management solution for Odoo 19, featuring seamless ZKteco biometric device integration, powerful real-time analytics dashboard, intelligent anomaly detection, and enterprise-grade reporting capabilities. Perfect for businesses of all sizes looking to automate attendance tracking and gain valuable workforce insights.
Why Choose This Suite?
100% PyZK Integration
Direct device communication without third-party APIsAuto Mode NEW
Intelligent check-in/check-out that prevents HR mistakesLive Capture NEW
Real-time attendance monitoring as events happenAdvanced Dashboard
Interactive Chart.js visualizations & analyticsDoor Control NEW
Remote door unlock with configurable durationAudio Feedback NEW
Custom sounds for check-in, check-out & errorsLCD Messages NEW
Personalized welcome/goodbye on device screenDuplicate Prevention
Ignore repeated punches within time windowAuto Time Sync NEW
Device clock auto-corrected before every downloadRobust Error Logs NEW
Pinpoint EXACTLY why a punch failed (Savepoints active!)Three Powerful Connection Modes
Choose the perfect connection strategy for your deployment architecture.
Direct Mode (PyZK)
Best for local networks or VPN connections where Odoo can directly reach the device IP.
- 100% hardware control
- Real-time Live Capture
- LCD & Voice messages
- Door access control
Cloud Mode (ADMS)
Best for SaaS/Cloud Odoo instances. The device pushes data to Odoo over HTTP(S). No port forwarding needed!
- Perfect for remote sites
- Bypass firewalls easily
- Auto-registers devices
- Remote Fingerprint Enrollment
Hybrid Mode
The ultimate flexibilty. Uses ADMS for reliable attendance push, and PyZK for deep hardware control.
- Our Unique Offering!
- Best of both worlds
- Automatic attendance sync
- Full hardware capabilities
Four Intelligent Attendance Modes
Choose how your module processes each punch. Configurable per device — mix and match across your organization.
Traditional Mode
Uses the device's punch type directly.
- ✅ Punch type 0 = Check-in
- ✅ Punch type 1 = Check-out
- ⚠️ Device must be configured correctly
- 📝 Multiple records per day possible
Auto Mode
Ignores device punch type. Auto-alternates.
- ✅ 1st punch → Check-in
- ✅ 2nd punch → Check-out
- ✅ 3rd punch → Check-in again
- 🛡️ Prevents HR mistakes
Auto Per Day NEW
One attendance record per employee per day.
- ✅ First punch of day = Check-in
- ✅ Last punch of day = Check-out
- ✅ Middle punches update check-out
- 🔄 Auto-closes missed check-outs
08:55 → Check-in
12:00 → Check-out updated
13:00 → Check-out updated
17:30 → Final check-out
Traditional Per Day NEW
Device punch type respected, but max one in/out per day.
- ✅ Only first check-in counts
- ✅ Only first check-out counts
- 🚫 Duplicate punches ignored
- 🔄 Auto-closes missed check-outs
🛡️ Smart Edge Case Handling (Per-Day Modes)
Module auto-closes yesterday's record at 23:59:59, then creates today's new check-in normally.
In Auto Per Day, every punch after the first updates the check-out. The last punch always wins.
Uses the device's configured timezone to determine "today" — so midnight is always correct for your location.
PyZK Download, Live Capture, and ADMS Cloud Push all support all four attendance modes.
🛡️ Robust Error Logging & Transaction Protection
Enterprise-grade resilience. Every failed punch is logged with the exact reason — your bulk downloads never crash midway through.
Database Savepoint Protection
Each attendance record is processed inside an isolated database savepoint. If one record fails (overlap, invalid timestamp, missing employee), only that record is rolled back — the rest continue processing normally.
- ✅ Downloads 10,000+ records without crashing
- ✅ Bad records are skipped, not fatal
- ✅ Works for both PyZK & ADMS modes
- ✅ Cron jobs complete even with errors
Detailed Error Logs in UI
Every failed record is logged to the Device Logs screen with the exact error message. Admins can see at a glance why a punch failed and take corrective action.
- 📌 Employee ID, timestamp, and error reason logged
- 📌 Color-coded status: ✅ Success, ⚠️ Warning, ❌ Failed
- 📌 Searchable and filterable by device, date, status
- 📌 Download statistics: found, new, duplicates, failed
⚠️ Common Reasons a Punch May Fail (All Auto-Logged)
Employee already has an active shift covering the punch timestamp. Odoo rejects duplicate overlap.
Device sent a corrupted or impossible date (e.g. Jan 1, 1970 after a power reset).
Employee was removed from Odoo but still punches on the biometric device.
Device user ID not linked to any Odoo employee. Logged as a warning for admin review.
Quick Setup Guide
Get your ZKTeco devices connected in minutes. Choose the method that matches your network.
🔌 Direct Mode (PyZK) Setup
For local network / VPN deployments-
Install the PyZK library on your Odoo server:
pip3 install pyzk
- Find the device IP: On the device menu, go to COMM → Ethernet → IP Address.
- In Odoo, go to Attendances → ZK Devices → Create.
-
Fill in:
- Name: e.g. "Main Entrance"
- IP Address: The device IP (e.g. 192.168.1.201)
- Port: 4370 (default)
- Connection Mode: Direct (PyZK)
- Attendance Mode: Choose your preferred mode
- Click "Test Connection". If successful ✅, you're ready!
- Map employees: Set each employee's ZK Device User ID in their HR profile (must match the ID on the device).
- Click "Download Attendance" to fetch records, or enable the Scheduled Action for automatic downloads.
☁️ Cloud Mode (ADMS) Setup
For Odoo.sh, cloud hosting, or remote sites-
Ensure your Odoo is accessible via a public URL
(e.g.
https://mycompany.odoo.com). -
On the ZKTeco device, go to COMM → Cloud Server
Setting:
- Enable: Yes
- Server Address: your-odoo-domain.com
- Server Port: 443 (HTTPS) or 80 (HTTP)
- Restart the device. It will automatically connect to Odoo and register itself.
- In Odoo, go to Attendances → ZK Devices. You'll see the device auto-created with its serial number.
-
Configure the device record:
- Connection Mode: Cloud (ADMS) or Hybrid
- Attendance Mode: Choose your preferred mode
- Map employees: Set each employee's ZK Device User ID to match the device.
- Done! 🎉 Attendance is pushed automatically in real-time whenever an employee punches.
⚡ Hybrid Mode — Best of Both Worlds
Want automatic attendance push (ADMS) plus hardware control like LCD messages, voice feedback, and door unlock (PyZK)? Set Connection Mode = Hybrid. The device pushes data via ADMS, while Odoo uses PyZK for hardware features. Requires both network paths to be available.
Remote Fingerprint Enrollment (ADMS)
Enroll employee fingerprints directly from Odoo without touching the device menu!
- Go to the Employee Profile and set their ZK Device User ID.
- Go to the device form and click Sync Users (ADMS).
- Back on the Employee profile, click Enroll Fingerprint (ADMS).
- Select the finger index and click Enroll.
- The device screen will ask the employee to place their finger 3 times. The template is saved to Odoo automatically!
Everything is managed centrally from Odoo. Command is queued instantly.
Core Features
🔐 Advanced Biometric Integration
- ✓ Multi-device support (uFace 202, 800, K40, ZK4500)
- ✓ Face & fingerprint recognition
- ✓ Auto Check-in/Check-out Mode - Prevents HR mistakes
- ✓ Duplicate Punch Prevention - Configurable window
- ✓ Traditional Mode for backward compatibility
- ✓ Automatic sync with configurable intervals
- ✓ Centralized device management
- ✓ Auto employee mapping
📊 Real-time Analytics Dashboard
- ✓ Interactive Chart.js visualizations
- ✓ Smart date filters (Today/Week/Month/Year)
- ✓ Live attendance metrics & KPIs
- ✓ Instant anomaly alerts
- ✓ Department analytics
- ✓ Export capabilities
- ✓ Employee time-off tracking
- ✓ Manual attendance monitoring
🔍 Intelligent Anomaly Detection
- ✓ Missing check-in/out detection
- ✓ Duplicate punch identification
- ✓ Attendance violation tracking
- ✓ Automated categorization
- ✓ Compliance reporting
- ✓ Issue resolution workflow
- ✓ Invalid time entry detection
- ✓ Audit trail support
⏰ Late Check-in Management
- ✓ Configurable grace periods
- ✓ Automatic penalty calculation
- ✓ 4-state approval workflow
- ✓ Payroll integration
- ✓ Late analytics dashboard
- ✓ Email notifications
- ✓ Penalty waiver system
- ✓ Department-wise tracking
📅 Professional Attendance Sheets
- ✓ Calendar-style monthly layout
- ✓ Color-coded status indicators
- ✓ PDF & Excel export
- ✓ Individual or combined reports
- ✓ Rich statistics & rankings
- ✓ Leave & holiday integration
- ✓ Work hours calculation
- ✓ Attendance rate tracking
📈 Comprehensive Reporting
- ✓ Summary & detailed reports
- ✓ Late check-in penalty reports
- ✓ Anomaly compliance reports
- ✓ Professional Excel export
- ✓ Print-ready PDF generation
- ✓ Custom date range filtering
- ✓ Department analytics
- ✓ Employee performance metrics
Compatible ZKTeco Devices by Connection Mode
PyZK / Direct Method Supported
Almost all ZKTeco network devices support Direct PyZK.
- F Series: F18, F16, F19
- K Series: K14, K20, K28, K30, K40, K50, K60
- uFace Series: uFace 202, uFace 402, uFace 800, uFace 302
- iClock Series: iClock260, iClock360, iClock560, iClock680, iClock700, iClock880, iClock990
- MA Series: MA300, MA500
- MB Series: MB10, MB10VL, MB160, MB200, MB360, MB460, MB560, MB860
- Card Terminals: SC405, SC700
- Standalone: SilkFP-101TA, MultiBio 700
ADMS / Cloud Method Supported
Requires firmware with ADMS activated.
- SpeedFace Series: SpeedFace-V5L, SpeedFace-H5, SpeedFace-M4
- ProFace Series: ProFace X, ProFace Plus
- Green Label / G Series: G1, G2, G3, G4
- IN Series: in01-A, IN05
- SilkID: Silk104
- Biometrics Models: uFace800 Plus, F22, K40 Pro (if ADMS enabled)
- Access Panels: inBio160, inBio260, inBio460
Hybrid Method Supported
Devices that support BOTH PyZK and ADMS.
- Highest Compatibility:
- uFace 800 Plus: Incredible hardware allowing real-time TCP/IP alongside ADMS.
- SpeedFace V5L: Modern Visible Light facial tech.
- F22: Ultra-thin fingerprint terminal.
- G3/G4: Multi-biometric identification.
- Any ADMS Device on local LAN: Any device from the ADMS list that is also accessible locally (no NAT/firewall blocking) can use Hybrid Mode!
🔌 Connection Requirements
- ✓ Device must support TCP/IP connection
- ✓ Device must use Standalone SDK Protocol
- ✓ Device firmware should be up-to-date
- ✓ LAN: (same network)
- ✓ VPN: (Site-to-Site for cloud server)
- ✓ Port Forwarding: (with static IP)
Getting Started Guide
1. Configure Your ZKteco Device
Access the Attendance module from the main menu
Navigate to Biometric Devices section
Click "New" to add a new device
Enter device IP, port, and password
Test connection to verify setup
2. Advanced Device Management NEW
Configuration Tab: Connection details, attendance modes (Auto/Traditional), duplicate prevention settings, and location information
Capacity & Health: Monitor user capacity, fingerprint enrollment, face templates, and attendance record storage
Live Monitoring: Real-time attendance capture settings with instant notifications and event statistics
Messages & Audio: LCD message customization, welcome/goodbye messages, and audio feedback with 55+ voice options
Door Control: Remote door unlock, lock status monitoring, and configurable unlock duration with security warnings
Users Tab: Sync employees to device, backup biometric templates, verify employee data, and automatic enrollment
Status Bar: Quick overview of device status, attendance records count, enrolled users, and backup templates
3. Attendance Overview & Working Schedules
View real-time attendance records and monitoring
Configure working schedules for employees
Assign schedules and link ZK User IDs
4. Attendance Settings & Rules
Configure tolerance time and validation rules
Setup late check-in penalties and grace periods
Configure automated cron jobs and actions
5. Analytics Dashboard
Interactive charts and real-time KPIs
Comprehensive attendance statistics
Department-wise attendance analysis
Employee Time Off & Manual Entries: Track leave dates, monitor manual attendance with missing check-out alerts
6. Anomaly Detection & Analysis
Automatic anomaly identification
Detailed anomaly breakdown
Statistical analysis of issues
Compliance and audit reports
7. Reports & Exports
Multiple report generation options
Custom date range selection
Advanced filtering options
Visual anomaly trends
Excel export functionality
Calendar-style attendance view
Comprehensive daily breakdown
Monthly attendance summary
What's New in This Version
🤖 Auto Check-in/Check-out Mode RECOMMENDED
- ✓ Intelligent Processing: Automatically determines check-in/check-out based on last attendance
- ✓ Prevents HR Mistakes: Ignores device punch type completely
- ✓ How it works: First punch → Check-in, Second → Check-out, alternates automatically
- ✓ Zero Configuration: No device setup needed
📡 Real-Time Live Capture
- ✓ Instant attendance capture as events occur
- ✓ No more polling delays
- ✓ Immediate notifications to relevant users
- ✓ LCD and audio feedback triggered automatically
🔧 Device Health Monitoring
- ✓ Track firmware version and device info
- ✓ Monitor storage capacity and usage
- ✓ User and biometric template statistics
- ✓ Network information tracking
🚪 Door Access Control
- ✓ Remote door unlock from Odoo
- ✓ Configurable unlock duration
- ✓ Lock status monitoring
- ✓ All actions logged in chatter
🕒 Intelligent Time Sync & Auto-Correction ENHANCED
- ✓ Auto-Sync Before Download: Device clock is automatically checked and corrected before every attendance download — manual or cron
- ✓ Drift Detection: Detects clock drift >30 seconds and auto-corrects — no manual intervention needed
- ✓ Cron-Safe Timezone: Stores effective timezone on device record — cron jobs no longer depend on user timezone setting
- ✓ Flexible Options: Sync using Odoo User Time, Server UTC, Custom Timezone, or Manual override
- ✓ Live Capture Ready: Auto-sync also runs before live capture starts
- ✓ Visible Status: "Current Device TZ" field shows exactly which timezone the device is running in
🛡️ Identity Protection NEW
- ✓ Safe Sync Topology: Protects existing face/fingerprint data during sync
- ✓ Ghost Prevention: Stops cross-assignment of employee IDs
- ✓ Active Tracking: Logs unmapped device users into Odoo for HR review
Enterprise Features
🎯 Integration & Automation
- ✓ Time Off (hr_holidays) integration
- ✓ Public holidays detection
- ✓ Working calendar respect
- ✓ Overtime tracking
- ✓ Payroll deductions (optional)
- ✓ Automated scheduled actions
🛡️ Security & Compliance
- ✓ Multi-company support
- ✓ Role-based access control
- ✓ Complete audit trail
- ✓ Data security & encryption
- ✓ Compliance reporting
- ✓ GDPR ready
What's Included
📦 Complete Package
- ✓ Full source code with AGPL-3 license
- ✓ Comprehensive documentation
- ✓ Installation guide
- ✓ Sample data for testing
🔧 Support & Updates
- ✓ 30 Days premium email support
- ✓ 24-48 hour response time
- ✓ Free bug fixes
- ✓ Security patches included
Frequently Asked Questions
- VPN (Recommended): Set up a Site-to-Site VPN between your office network and your Cloud Server.
- Port Forwarding: Forward the device port (default 4370) on your office router to the public internet (requires Static IP at office).
Compatible models include: uFace 202, uFace 800, iClock series, K40, K14, MB10VL, F18, UA300, ZK4500, and more.
Simple test: If your device works with the old ZKTime.net 3.0 software, it will work with this module!
Support & Resources
Need help? We're here for you!
Dot BD Solutions Limited
Copyright © 2025 Dot BD Solutions Limited. All rights reserved.
Author: Rafiur Rahman Rafit
Licensed under OPL-3
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
We have implemented HR Attendance ZKTeco Suite and it has proven to be a reliable and well-structured solution for attendance management. The integration is stable, the interface is clear, and the overall workflow significantly reduced manual effort in HR operations. The vendor’s support is professional and responsive. Highly recommended
Cinco estrellas
El módulo funciona de maravilla, pero lo mejor ha sido el soporte técnico. Respondieron mis dudas rápidamente y me ayudaron con la configuración inicial. Da gusto trabajar con desarrolladores así.
How works ?
Hi !
this module works whit odoo onPremise ? i have mi instance in amazon whit a public IP static, mi devices only in local net ... works ?
How works ?
Yes, it works, but you need a network configuration. Since your Odoo instance is on the Cloud (AWS) and devices are on a local network, Odoo cannot "see" the devices by default because the module initiates the connection from the server to the device (Active Connection). Requirements:
How works ?
Hi !
this module works whit odoo onPremise ? i have mi instance in amazon whit a public IP static, mi devices only in local net ... works ?
Compatibilidad ZKTECO
Es compatible con el modelo
Compatibilidad ZKTECO
Yes, it is generally compatible. The
is a Visible Light device that typically supports the standard ZK protocol (TCP/UDP on port 4370) alongside the newer push protocol.
can you share us a demo?
can you share us a demo?
You can respond with your standard demo process, e.g., "Please request a demo on our website dotbdsolutions.com or contact us directly."