DOT BD SOLUTIONSOdoo applications
Human resources
Hikvision HR Attendance Suite
Bring Hikvision device activity, attendance rules, reporting, and payroll into one Odoo workflow.
Hikvision integrationAttendance reportingPayrollExplore the module Get support
MODULE DETAILS
Odoo version 19
License OPL-1
Module price USD 89.99
Release 19.0.2.1.11


ODOO 20 FEST OFFER · SEPTEMBER 2026 · LIMITED OFFER
Waiting for the Odoo 20 release? Buy the Odoo 19 module now. Purchase during our limited September 2026 offer and get the same module for Odoo 20 free when Odoo 20 is released. Includes 15 days of support for the Odoo 20 module.
Send your invoice to WhatsApp +880 1810-025181 or rafit@dotbdsolutions.com. Grab now.
INCLUDED WITH THE ODOO 20 OFFERBETA APK ON REQUESTMOBILE APP · BETA
Kormi HR mobile app for your own Odoo
Every download of this module includes Kormi HR — Mobile Backend, the Odoo side of our Kormi HR app. Employees and managers get GPS and geofenced check-in, offline punches, time-off approvals and statistics, live attendance and device tools on their phone, connected only to your Odoo server.

- Android APK on request: the Kormi HR Android app is in beta. The APK file is provided upon request for beta use; the app is closed source and its source code is not provided. It will be published on Google Play.
- Portal staff, no paid seats: unlicensed employees check in and request time off through a Mobile Access Grant that HR controls.
- Works with your devices: ZKTeco and Hikvision attendance, dashboards and device actions appear in the app automatically.
APP FEATURES
- GPS, geofenced and offline check-in / check-out
- Live “working today” board and check-in map
- Attendance dashboard, monthly grid and reports
- Time-off requests, balances and one-tap approvals
- Time-off statistics: KPIs, filters, group by and employee ranking
- Notifications for requests, decisions and holidays
- Recruitment: applications, CVs and stages
- ZKTeco and Hikvision device status and actions
- Punch source on every attendance: ZKTeco or Hikvision device, app, browser or automatic check-out
- Biometric login, app lock and two-factor authentication
HOW TO USE
- Install this module — Kormi HR — Mobile Backend is installed with it.
- In Odoo, open Kormi HR › Configuration › Settings: enable mobile check-in and add geofence sites if needed.
- For portal staff, create a Mobile Access Grant (employee, role and scope).
- Request the Kormi HR Android APK (beta) from us by WhatsApp or e-mail below, then install it on the phone.
- Open the app, enter your Odoo address and database, and sign in with your Odoo login.

Working today, live

GPS map and geofences

Approve or refuse time off

Attendance dashboard

Attendance review

ZKTeco and Hikvision devices
Coming soon on Google Play. Until then, request the Android APK (beta use): WhatsApp +880 1810-025181 or rafit@dotbdsolutions.com.
ON THIS PAGE
OverviewCore FeaturesQuick Setup GuideFrequently Asked QuestionsWhat Makes Us The Best ChoiceSupport
Overview
Biometric device sync, real-time dashboard, late/absence rules and payroll — in one module.
Odoo 19.015 Days Support IncludedOdoo.sh & On Premise32+ Countries
OverviewFeaturesDemoWho It's ForFAQSupportODOO VERSION 19.0LICENSE OPL-1PLATFORMS Odoo.sh / On PremiseSUPPORT 15 Days IncludedDEPENDENCIES hr_attendance, hr_holidays, dotbd_kormi_hr (Kormi HR)
What Makes Us The Best Choice
Trusted by businesses across the globe for reliable, enterprise-grade biometric HR automation.
15+Years in ERP32+Countries Supported✓Official Odoo Partner100%Hikvision Compatible
See It In Action
Live demonstration — a real Hikvision terminal, punched by hand, recorded straight into Odoo HR Attendance

Filmed on our own DS-K1T320EFWX test unit — face authentication triggers the punch, which lands in Odoo Attendance a moment later
Transform Your Attendance Management
The most comprehensive biometric attendance solution for Odoo 19 — seamless Hikvision device integration, real-time analytics dashboard, intelligent anomaly detection, and enterprise-grade reporting. Works for businesses of all sizes.
Key Benefits
What changes for your HR team once this is running.
Process automation
No manual timesheets — punches flow into Odoo automatically.
Fewer payroll disputes
Face/fingerprint punches remove buddy-punching and manual entry errors.
Instant visibility
Live dashboard shows who's late, absent, or on leave — right now.
Lower support overhead
Robust error logs mean fewer silent failures for HR to chase.
Who Should Use This
Built for teams that already own (or are buying) Hikvision access-control hardware.
Single-Site SMEs
One office, one or two terminals — up and running the same day with Direct/ISAPI connection.
Multi-Branch / Multi-Company
Event Push handles remote sites with no port forwarding — one Odoo instance, many locations.
Compliance-Heavy Teams
Full audit trail on every correction, savepoint-protected downloads, and a review workflow for missing punches.
Detailed Features of Our Module
Click a feature to explore it in detail
Real-Time Attendance Dashboard
A complete visual command center for your workforce attendance — updated live.
- Monthly calendar grid — P / LT / A / L / W / H per employee per day
- Today's counts — Present, Absent, On Leave, Late, Total Fine
- Top Present / Absent / Late leaderboards — click to filter
- Department & employee filter — instant re-render
- Download Excel — full monthly sheet with colour-coding
Late Check-in Management
Configurable tolerance, automatic penalties, and approval workflows.
- Grace period — set tolerance minutes before marking late
- Auto penalty — per-minute or fixed amount deduction
- 4-state workflow — Draft → Approved → Deducted / Refused
- Payroll sync — deductions pushed to payslip automatically
- Real-time detection — LT appears on dashboard immediately after punch
Biometric Device Sync
Two connection modes over standard HTTP ISAPI — no vendor SDK, no binary dependency.
- Direct (ISAPI) — Odoo polls the device on a schedule, plain HTTP
- Event Push — device notifies Odoo the instant a punch happens, works behind NAT
- Auto check-in/out — intelligent punch type detection
- Face, fingerprint & card enrolment — straight from the employee form
- Import employees — pull users directly from device into Odoo
Reports & Analytics
Excel, PDF and on-screen reports covering every attendance dimension.
- Monthly attendance sheet — colour-coded P/LT/A/L per employee
- Department filter — download report for any department
- Detailed daily — check-in/out time, worked hours, late minutes
- Anomaly report — missing checkout, duplicate punches
- Late check-in report — penalties, tolerance, status breakdown
Built-in Payroll + Native Payroll Bridge
Full attendance-to-payroll pipeline — works with our own system and native Odoo payroll.
- Auto deductions — late penalties pushed to payslip on confirm
- Absence fine — configurable per-day deduction
- Salary templates — basic, allowances, contract-based
- Payslip PDF & Excel — branded, printable
- hr_payroll sync — Community & Enterprise
- ★ NEW — Attendance Statement — auto-fills wage, housing, transport, advance, deductions from native payroll (confirmed payslips → contracts → salary rules)
NEW FEATURE
Attendance & Salary Statement
A two-step wizard generating a combined attendance + salary statement for all employees. Salary data auto-filled from native Odoo payroll — no manual entry needed.
- Wage from hr.contract
- Housing & Transport (auto-detected)
- Advance & Deductions
- Days, hours, overtime, late
- Net salary (auto-computed)
- PDF & Excel output
Works with both
Community Enterprise
Same module, runtime detection.
No separate version needed.
NEW IN THIS VERSION
Interactive Attendance Dashboard
A completely new visual command center for your workforce attendance — real-time, colour-coded, and actionable at a glance.
Smart Holiday Detection
The dashboard automatically detects if today is a public holiday and displays a prominent banner with the holiday name. It also shows the next 2 upcoming holidays so your team is always informed in advance.
Today's Live Overview
Six real-time stat cards show Total Employees, Present, Absent, On Leave, Late Today, and Total Fine — all updated live with department and employee filters applied instantly.
Colour-Coded Monthly Calendar
A full monthly grid per employee shows every day as Present (), Absent (A), Leave with short code (CL, SL, OH…), Weekend (W), or Holiday (H). Late days are highlighted in a distinct colour.
Leave Type Short Codes
Instead of a plain "L", each leave day shows its exact type code — CL (Casual Leave), SL (Sick Leave), OH (Official Holiday), and more. Codes are fully customisable from the Leave Type configuration.
Employee Monthly Summary
Click any employee row to open a detailed summary panel showing their monthly totals: days Present, Absent, on Leave, Weekend, Holiday, and Late — all in one compact card with their photo and job title.
Configurable Weekend Days
Weekend days are no longer hard-coded. Choose any combination of days (e.g. Friday + Saturday for Bangladesh) from Attendance Settings. The dashboard, calendar, and reports all respect your configuration.
NEW MAP FEATURE
Unified Attendance Map
See biometric device locations, geofence radius, employee GPS check-ins, check-outs, attendance source, department filters, and date ranges on one interactive map.
Device Locations
Store latitude, longitude, location name, and geofence radius for each biometric device.
Team Check-ins
Managers can review team GPS pins while employees only see their own attendance records.
Fast Filters
Search by employee, device, mobile, Device User ID, department, and date range.
Why Choose This Suite?
100% ISAPI Integration
Plain HTTP device communication — no vendor SDK, no binary dependency
Auto Mode NEW
Intelligent check-in/check-out that prevents HR mistakes
Event Push NEW
Device notifies Odoo the instant a punch happens — no polling delay
Advanced Dashboard
Interactive Chart.js visualizations & analytics
Door Control NEW
Remote door unlock with configurable duration
Card Enrolment NEW
Attach an RFID card number to an employee, straight from Odoo
Face Enrolment NEW
Send an employee's photo to the device, with a preview step before it's sent
Duplicate Prevention
Ignore repeated punches within time window
Import from Device NEW
Pull employees directly from biometric device into Odoo
UI Preferences NEW
Choose your landing page and default view from Settings
Live Clock Detection NEW
Device timezone and drift shown live — one click to correct
Robust 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 (ISAPI)
Best for local networks or VPN connections where Odoo can directly reach the device IP. Plain HTTP — no vendor SDK.
- Full device control
- Face, fingerprint & card enrolment
- Live clock & timezone detection
- Door access control
Push Mode (Event Notification)
Best for SaaS/Cloud Odoo instances. The device sends each punch to Odoo over HTTP the instant it happens. No port forwarding needed!
- Perfect for remote sites
- Works behind NAT/firewalls
- One-click device configuration
- No polling delay
Hybrid Mode
The ultimate flexibility. Push for live attendance, ISAPI for enrolment, door control and backfilling anything missed. Recommended.
- Recommended setup
- 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
Best for: Devices with separate in/out buttons
Auto Mode
Ignores device punch type. Auto-alternates.
- 1st punch → Check-in
- 2nd punch → Check-out
- 3rd punch → Check-in again
- Prevents HR mistakes
Best for: Simple single-button devices
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
Example:
08:55 → Check-in
12:00 → Check-out updated
13:00 → Check-out updated
17:30 → Final check-outBest for: Most common use case
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
Best for: Strict one-in/one-out policies
Smart Edge Case Handling (Per-Day Modes)
Employee forgot to check out yesterday
Module auto-closes yesterday's record at 23:59:59, then creates today's new check-in normally.
Multiple punches throughout the day
In Auto Per Day, every punch after the first updates the check-out. The last punch always wins.
Timezone-aware day boundaries
Uses the device's configured timezone to determine "today" — so midnight is always correct for your location.
Works with all connection modes
ISAPI Download and Event Push both 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 ISAPI & Push modes
- Cron jobs complete even with errors
Common Reasons a Punch May Fail (All Auto-Logged)
Overlapping Attendance
Employee already has an active shift covering the punch timestamp. Odoo rejects duplicate overlap.
Invalid Timestamp
Device sent a corrupted or impossible date (e.g. Jan 1, 1970 after a power reset).
Deleted Employee
Employee was removed from Odoo but still punches on the biometric device.
Unmapped Device User
Device user ID not linked to any Odoo employee. Logged as a warning for admin review.
Quick Setup Guide
Get your Hikvision devices connected in minutes. Choose the method that matches your network.
Direct Mode (ISAPI) Setup
For local network / VPN deploymentsNo vendor SDK needed: plain HTTP. Odoo server must be able to reach the device IP on port 80 (or 443 for HTTPS).
- Find the device IP: On the device menu, go to Network → TCP/IP.
- In Odoo, go to Attendances → Biometric Devices → Create.
Fill in:
- Name: e.g. "Main Entrance"
- Device IP: The device IP (e.g. 192.168.1.201)
- Port: 80 (default), or 443 for HTTPS
- Username / Password: same login used on the device web page
- Connection Mode: Direct (ISAPI)
- Attendance Mode: Choose your preferred mode
- Click "Test Connection". On success, model, firmware, clock and supported features (face / fingerprint / card / door) are read live from the device.
- Map employees: Set each employee's Device User ID in their HR profile (must match the ID enrolled on the device).
- Click "Download Attendance" to fetch records, or enable the Scheduled Action for automatic downloads.
Push Mode (Event Notification) Setup
For Odoo.sh, cloud hosting, or remote sitesNo port forwarding needed! The device initiates the connection to your Odoo URL.
- Ensure your Odoo is accessible via a URL or IP the device can reach (e.g. mycompany.odoo.com or 192.168.1.10:8069).
- In Odoo, create the device record with Connection Mode = Push (or Hybrid), fill in the ISAPI login, then set "Odoo URL for the Device" if the system Web Base URL is not reachable from the device's network.
- Click "Configure Push on Device" — Odoo writes its own listening address into the device automatically. No manual typing on the device menu required.
- Map employees: Set each employee's Device User ID in their HR profile.
- Punch once to confirm — "Last Pushed Event" on the device form should update within a few seconds.
- Done! Attendance is pushed automatically in real-time.
Single Database — The listening endpoint looks like myodoo.com/hikvision/event/my_database, shown on the device form once the URL is set.Multiple Databases on the Same Server — Each database gets its own path, /hikvision/event/<db_name>. "Configure Push on Device" writes the correct one automatically per device.
Hybrid Mode — Best of Both Worlds
Want automatic real-time attendance push plus device control — enrolment, door unlock, reboot, time sync? Set Connection Mode = Hybrid. The device pushes attendance the instant it happens, while Odoo uses ISAPI directly for everything else.
Attendance (Push side)
- Configure exactly as in Push setup above
- Multi-database routing works the same way
- Real-time push — no manual download needed
Device Control (ISAPI side)
- Requires Odoo to reach the device on port 80 / 443
- On-premise Odoo: works on same LAN
- Cloud Odoo: requires VPN or port forwarding on the site router
- If network access is not possible, use Push-only mode (attendance still works, enrolment/door control require walking up to the device)
Troubleshooting & Common Issues
Unmapped Device User / Employee Not Found
This happens when the device sends a punch for a user ID that is not linked to any employee in Odoo.
Solution:
- Go to HR → Employees in Odoo
- Open or create the employee record
- Set the "Device ID Number" field to match the user ID on the biometric device
- Save. Next punch will be processed automatically!
Pushed Events Not Arriving
"Configure Push on Device" succeeded, but "Last Pushed Event" never updates after a punch.
Solution:
- Click "Check Push Settings" to read back what the device currently has configured
- Confirm "Odoo URL for the Device" is an address the device's network can actually reach — localhost / 127.0.0.1 never works, since the device dials this address itself
- Punch again and check the Operation Logs for the raw payload
Push Data Goes to the Wrong Database (Multi-DB)
On a server with multiple Odoo databases, attendance punches are recorded in the wrong database or are missing entirely.
Solution:
- Open the device record in Odoo → Attendances → Biometric Devices
- Click "Configure Push on Device" again — the listening path always includes the current database name (/hikvision/event/<db_name>)
- Click "Check Push Settings" to confirm the path written to the device matches this database
Why: Each database gets its own URL path. Without the right one, punches land on whichever database the device was last configured to reach.
Pushed Device Not Recognised
The device sends events, but Odoo logs "no matching device configured".
Solution:
- Create the device record in Odoo first, with the correct Device IP and login
- Click "Test Connection" — this records the device's MAC address, which is how pushed events are matched back to the right record
- Then click "Configure Push on Device"
Note: Matching is by MAC address, not by IP — so a device keeps being recognised even if its IP changes later (e.g. after a DHCP lease renewal).
How to Find Device User ID
Each user enrolled on the biometric device has a unique ID number.
Finding the ID:
- On Device: Menu → User Mgt → All Users → select user → see ID
- In Odoo Log: Check the server log for the error message — it shows the exact Device ID Number to use
- Example log: No employee found with Device ID Number '6666' → Set employee's Device ID = 6666
Device Clock & Timezone
Detected live on every "Test Connection" — never assumed. Many terminals ship set to China time regardless of where they are installed.
Important:
- The device form shows the detected offset and drift and warns if it disagrees with the timezone Odoo is using to interpret punches
- Click "Sync Time" to push the correct time and timezone to the device
Employee Mapping Guide
Properly mapping employees is crucial for a smooth experience and to avoid duplicate records.
Recommended Workflow:
- Create Employee in the Odoo HR module first.
- Set Device User ID in the employee's Biometric settings tab.
- Connect the Device to Odoo.
- Download Attendance: Now, attendance records will sync perfectly without duplicates!
Direct Connection (Recommended)
If your device is on the same local network as Odoo, use Direct connection for the smoothest experience. You can:
- Download attendance with one click
- Import employees straight from the device — no need to create them manually in Odoo first
- Enrol face, fingerprint & card, and control the door
Cloud Connection
If your Odoo is hosted online and the device is at a remote site, Cloud connection is the easiest option — the device sends data to Odoo automatically. Note:
- Attendance arrives automatically — no manual download needed
- You must create employees in Odoo and set their device ID numbers before punches are recorded
- For full device control features, consider Hybrid mode
What's New
NEW
Attendance & Salary Statement — Native Payroll Bridge
A complete two-step wizard that generates a combined attendance + salary statement for your entire workforce. Salary data is auto-filled from native Odoo payroll — wage, housing, transport, advance deductions and other components are detected automatically from salary rule codes and names.
Auto-fill priority
- Confirmed payslip for the period
(most accurate — reads actual computed lines) - Active contract + salary rules
(fixed/percentage rules computed) - Our own salary system
(fallback if native payroll is off)
Statement columns
- Basic Wage
- Housing Allowance
- Transport Allowance
- Advance & Other Deductions
- Days Present / Hours / Overtime / Late
- Net Salary (auto-computed)
Community
hr_payroll_communityEnterprise
hr_payroll built-inOur System
dotbd.payslip
Extensible by design
Adding a new column is 6 easy steps:
- Add a Monetary field to the line model
- Add keyword detection (e.g. MEAL_KW)
- Include it in action_load()
- Add <field> to wizard view
- Add column to Excel export
- Add <th>/<td> to PDF
Full guide is embedded in the wizard view and PDF template as comments.
Enable in Settings
Attendances → Configuration → Settings
Toggle: Use Native Odoo Payroll for Attendance Statements
(Default: ON — auto-hides if payroll not installed)
NEW
Multi-Database Push Routing
When multiple Odoo databases share one server, each database gets its own push path (/hikvision/event/<db_name>), written automatically by "Configure Push on Device". Data always goes to the correct database — no more mix-ups.
NEW
Device Archive / Restore
Archive unused devices to hide them and stop accepting their pushed events. Restore with one click. Archived devices are excluded from scheduled downloads automatically.
NEW
One-Click Push Configuration
"Configure Push on Device" writes Odoo's listening address into the device automatically over ISAPI — no manual typing on the device menu, no guessing the URL.
NEW
Configurable Offline Threshold
Set exactly how many minutes without a heartbeat before a push device is marked Offline. No hardcoded guess — match your device's actual heartbeat interval.
NEW
ISAPI Connection Status Tracking
Every ISAPI connection attempt is tracked — Online, Offline, or Unknown — with timestamps for Last Success and Last Attempt, and the exact error message on failure.
NEW
Hybrid Connectivity Warning
In Hybrid mode, if one connection method goes down the device still shows Online — but a clear warning banner tells you which method is down, so nothing is silently broken.
Core Features
Biometric Integration
Multi-device support (15+ Hikvision series), face & fingerprint, auto check-in/out mode, duplicate punch prevention.
Real-Time Dashboard
Interactive charts, live KPIs, today's present/absent/late/leave cards, monthly calendar, one-click status filters.
Anomaly Detection
Missing check-in/out, duplicate punches, violation tracking, automated categorization, compliance reports.
Late Check-in Management
Configurable grace periods, auto penalty calculation, 4-state approval workflow, payroll integration, email alerts.
Attendance Sheets
Monthly calendar-style layout, colour-coded statuses, leave & holiday integration, PDF & Excel export.
Comprehensive Reporting
Summary & detailed reports, anomaly compliance, penalty reports, Excel/PDF export, custom date range filtering.
Compatible Hikvision Device Series
Built on Hikvision's standard ISAPI protocol — any access-control terminal or controller that speaks ISAPI over HTTP is supported. DS-K1T320EFWX is directly tested end-to-end (connection, enrolment, attendance download and event push, all verified live); the series below share the same ISAPI access-control API family.

Every connected device, at a glance — status, user count, record count, storage, and connection mode

Our own DS-K1T320EFWX test unit — the device every claim on this page was verified against
| Series | Models | Status |
|---|---|---|
| DS-K1T320 Series | DS-K1T320EFWX | Tested |
| DS-K1T331 Series | DS-K1T331, DS-K1T331M, DS-K1T331W | Expected |
| DS-K1T342/343 Series | DS-K1T342, DS-K1T343 | Expected |
| DS-K1T606 Series | DS-K1T606, DS-K1T606M | Expected |
| DS-K1T671/672/673 Series | DS-K1T671, DS-K1T672, DS-K1T673 | Expected |
| DS-K1T804 Series | DS-K1T804, DS-K1T804M | Expected |
| DS-K1T8003 Series | DS-K1T8003, DS-K1T8003MF | Expected |
| DS-K1A802 Series | DS-K1A802 | Expected |
| MinMoe Series | Hikvision MinMoe face terminals | Expected |
| DS-K2600 Controllers | DS-K2601, DS-K2602, DS-K2604 | Expected |
Tested = verified live end-to-end by us on real hardware. Expected = same ISAPI access-control API family as the tested model; not yet independently verified by us on that exact model. Card/fingerprint/face capabilities vary by model — the module reads each device's actual capability list and only shows what it supports.
Connection Requirements
- Device must support ISAPI over HTTP/HTTPS
- HTTP Digest authentication enabled (default)
- Firmware should be up-to-date
Network connectivity via:
- LAN (same network)
- VPN (site-to-site)
- Push mode (device dials out — no forwarding needed)
Getting Started Guide
1. Connect Your Hikvision Device
Go to Attendances → Biometric Devices → Create, enter the device IP, port, and login, then click Test Connection. See the Quick Setup Guide above for the full walkthrough of both Direct (ISAPI) and Push (Event Notification) modes.

The device form after a successful connection — live status, record/user/operation counters, and the full action toolbar
2. Advanced Device Management
The device form is organised into tabs covering everything you need day to day:
- Configuration: connection details, attendance modes (Auto/Traditional), duplicate prevention, and location information
- Capacity & Health: user capacity, fingerprint and face template usage, and attendance record storage
- Event Push: one-click push configuration, live status and last-event timestamp
- Enrolment: face photo upload with preview, fingerprint capture, and card enrolment
- Door Control: remote door unlock, lock status, and configurable unlock duration
- Users: sync employees to the device, back up biometric templates, and verify employee data
- Status Bar: a quick overview of device status, record counts, enrolled users, and backups

Connection Mode selector, with the plain-language note explaining the device's "Register Status: Offline" ISUP indicator

What the note above is talking about — the device's own ISUP menu, always "Offline" by design

ISUP's protocol settings screen — a separate, closed protocol this module intentionally does not use

Direct connection credentials, Event Push setup, and Location fields side by side

Device Identity fields and the exact Listening Endpoint address to configure on the device

Attendance Mode, the live-detected device clock and timezone, and scheduled download options

Device Information tab — capabilities and hardware details read live from the device

Users tab — sync employees to the device with one click, or enable automatic enrollment
3. Attendance Overview & Working Schedules
Monitor real-time attendance records under Attendances → Overview. Configure working schedules under Employees, then assign each schedule and link the employee's Device User ID so incoming punches match automatically.
4. Attendance Settings & Rules
Under Attendances → Configuration → Settings, set tolerance time and validation rules, configure late check-in penalties and grace periods, and review the automated scheduled actions that keep downloads and cron jobs running on their own.

Operation Logs — every Event Push and Attendance Download call, with new/duplicate/failed record counts and duration
5. Analytics & Attendance Dashboard — See Everything at a Glance
A live, interactive attendance view built right into Odoo. No reports to run — just open the dashboard and instantly know who is in the office, who is late, who is absent, and who is on leave — all in one screen. Interactive charts and department-wise breakdowns are available alongside it, and the same screen surfaces employee time-off and manual entries with missing check-out alerts.
Today's Overview Cards
At the very top, four cards instantly show you how many employees are total, how many are present, absent, and on leave — right now, today. When late penalties are enabled, two extra cards appear showing today's late count and total fine amount.
One-Click Status Filters
Click Present, Absent, Late, or On Leave buttons to instantly show only the employees matching that status. The count on each button always reflects today's numbers. Click again to clear the filter.
Full Monthly Calendar
See every employee's attendance for the entire month in a scrollable grid. Each day shows a colour-coded status: green check for present, red A for absent, amber check for late, L for leave, W for weekend, and H for public holiday. Summary totals appear at the end of each row.
Click Any Employee for Their Summary
Click any employee row to highlight it and reveal a personal summary card showing their exact monthly counts for Present, Absent, Leave, Weekend, Holiday, and Late days. Click the same row again — or the close button — to dismiss it.
Top Rankings in One Click
Four sort buttons let you instantly re-order the list: Top Present puts the most-present employees first, Top Absent shows who missed the most days, Top Late surfaces the most frequently late arrivals, and Top Leave highlights who took the most time off.
Role-Based Access
Managers and HR officers see the full team. Regular employees who open the dashboard see only their own attendance — no one else's data is ever visible to them. Filters and sort buttons work the same way for everyone within their allowed scope.
6. Anomaly Detection & Analysis
The module automatically identifies anomalies such as missing check-ins/check-outs and duplicate punches, breaks them down statistically, and generates compliance and audit reports so problem patterns surface on their own.
7. Reports & Exports
Generate reports with a custom date range and advanced filters, view anomaly trends visually, and export to Excel or a calendar-style attendance sheet — from a single daily breakdown up to a full monthly summary.
What's New in This Version
Auto Check-in/Check-out RECOMMENDED
Intelligent punch processing — first punch = check-in, second = check-out. No device config needed, prevents HR mistakes.
Real-Time Event Push
Punches appear in Odoo the instant they happen — the device notifies Odoo directly, no polling delay.
Live Clock Detection
Device timezone and clock drift read live on every connection test — never assumed, never hardcoded. One click to correct.
Multi-Device Global Sort
Download all devices first, then process punches in true chronological order. Eliminates duplicates for multi-device employees.
Import Employees from Device
Pull the full enrolled user list from your Hikvision device directly into Odoo. Preview, select, import — no manual entry.
Identity Protection
Protects biometric data during sync, prevents ghost ID cross-assignment, and logs unmapped device users for HR review.
Multi-Database Push Routing
Each database gets its own push URL with /hikvision/event/<db> — devices are routed to exactly the right database, every time.
Attendance UI Preferences
Configure the default landing page and overview view (List or Gantt) company-wide — from Settings, no developer needed.
Odoo Punch Type Visibility
New "Odoo Punch Type" column in Attendance Analysis. Chronological processing fix — check-out can no longer be stored before check-in.
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 OPL-1 license
- Comprehensive documentation
- Installation guide
- Sample data for testing
15 Days Support Included
- Installation guideline & step-by-step setup help
- Bug fixes during support period
- Installation support (hands-on if needed)
- Query & usage questions answered
- AnyDesk / online meeting support available
INCLUDED
Built-in Payroll & Native Payroll Bridge
Odoo Community Edition does not come with a payroll module. We built one — directly inside this suite — so Community users can manage salaries, payslips & deductions without any extra app. And if you're on Enterprise or have hr_payroll_community installed, our Attendance Statement wizard connects directly to your existing payroll setup.
Works with Odoo Community & Enterprise. One module, runtime detection — no separate version needed.
Auto Payslips
Salary Templates
Auto Deductions
Payment Tracking
PDF & Excel
Festive Bonus
Attendance Statement ★
To enable: go to Settings → Users, open a user, and tick Hikvision Payroll Access under Hikvision Attendance permissions.
Frequently Asked Questions
Does this work with Odoo on AWS/Cloud with devices in a local office?
Yes! However, since the server is on the cloud and devices are behind a local router, you need a network configuration:
- Push mode (Recommended): No network configuration needed at all — the device dials out to your Odoo URL over ordinary HTTPS, so it works through NAT and firewalls automatically.
- VPN: Set up a Site-to-Site VPN between your office network and your Cloud Server if you also want Direct/ISAPI control from Odoo.
- Port Forwarding: Forward the device's ISAPI port (80 or 443) on your office router if VPN is not available (requires Static IP at office).
Is my Hikvision device compatible (e.g., DS-K1T331, DS-K1T804)?
Very likely, if it's an access-control terminal. This suite talks Hikvision's standard ISAPI protocol over HTTP — the same interface every DS-K1T/DS-K2 access terminal and controller exposes.
Directly tested: DS-K1T320EFWX. Same-family models (DS-K1T331, DS-K1T342/343, DS-K1T606, DS-K1T671/672/673, DS-K1T804, DS-K1T8003, DS-K1A802, MinMoe, DS-K2601/2602/2604) are expected to work — the module reads each device's own capability list, so it adapts automatically to what that model actually supports.
Simple test: if your device has a web login page and answers on port 80/443, it almost certainly speaks ISAPI.
Do I need a Windows Server or Middleware?
No! This is a 100% native Python solution installed directly inside Odoo. It communicates directly with the devices. No extra Windows server, middleware, or "attendance service" is required.
My push device shows Offline — what should I check?
Check three things:
- Offline Threshold: Open the device record → Event Push section → Offline Threshold (min). Set it to at least 2× your device's heartbeat interval (default 10 min).
- Push configuration: Click "Check Push Settings" on the device record to read back what's actually configured on the device, or click "Configure Push on Device" to rewrite it automatically.
- Odoo.sh / Cloud: Use the domain name, not an IP address, in "Odoo URL for the Device" — a raw IP will not reach your specific tenant.
When should I use Hybrid mode instead of Push-only?
Use Hybrid mode when you want automatic real-time push for attendance and device control — enrolment, door unlock, reboot, time sync — via ISAPI. Push alone cannot send commands to the device. If the device is behind a firewall that blocks ports 80/443, use Push-only — attendance still syncs, control features require walking up to the device. In Hybrid mode, if one method goes down, the device stays Online but a warning banner shows which method is down.
My device shows Online but attendance events aren't arriving — what should I check?
This is almost always a one-time device setting, not a module issue. The module implements Hikvision's standard ISAPI protocol and is verified against a DS-K1T320EFWX terminal across firmware V3.5.2 and V3.9.50 — but a few devices ship with heavily restricted or non-standard ISAPI implementations, or with the Hik-Connect cloud binding enabled by default (a separate vendor cloud path, outside this module's control). From the device web interface, please check:
- the exact Firmware Version (System → Basic Information);
- that HTTP Listening under Network settings accepts a custom host/port;
- whether Hik-Connect or another cloud service is enabled alongside it.
Send us those three details and our support team will get it delivering events — usually within the same day.
New: Missing-Punch HR Review & Roster / Shift Scheduling
Every new capability below is opt-in (off by default) and never modifies payroll. Turn each on under Settings → Attendance. Works on Odoo 15, 16, 17, 18 and 19.
Missing-Punch HR Review
When an employee forgets a punch, the module no longer invents a silent time. It uses the employee's last real device punch where possible; otherwise it flags the record for HR.
- Missing check-out → auto-closed at shift/roster end, flagged ⚠.
- Missing check-in (lone check-out) → placeholder check-in, flagged ⚠.
- Attendance Review page: Approve, Correct (edit), or Re-open — with a full audit trail (original times + who reviewed).
- Reason filters, employee chatter notes, and bulk approve.
Enable: Settings → Attendance → Attendance Review (Missing Punches) → “Enable HR Review”. Then open Attendance → Attendance Review.
Smart Flags + Daily Digest Email
- Suspected wrong-direction (Auto mode): a lone punch whose device button says “check-out” is soft-flagged as a likely forgotten check-in.
- No work schedule: flags employees who have no schedule assigned, so HR can add one.
- Late beyond maximum: a check-in past the Maximum Late Time counts no fine — instead it is flagged so HR decides (absent, half-day, or excused). Optional toggle.
- Off-schedule punch: a check-in far outside the rostered window (e.g. 7 PM for a 9–5 shift) is flagged for review.
- Daily digest email to HR managers — fully customizable subject/intro and can be enabled/disabled.
Enable: the same Attendance Review settings block — tick the flags you want and edit the digest subject/intro.
Roster / Shift Scheduling
Assign employees to shifts by date — day-wise, weekly patterns, or rotating cycles (e.g. week A morning / week B night).
- Shift = weekly timetable — each shift template holds a full timetable (morning / break / afternoon per day) or a simple start/end + weekdays; tick Flexible for hourly/on-demand staff (a Total Hours/Day target, no fixed start/end).
- Assign employees on the shift — add employees to a shift and the module builds one shared Working Schedule named after the shift, assigns it to every employee, and auto-generates their roster. Change the timetable and everyone updates automatically; remove an employee and they revert to the company default schedule. A smart button shows the shift's employees.
- Generate Roster wizard: By Shift Template Days (uses each shift's own weekdays), weekly pattern, or rotating cycle.
- List & calendar views; history is kept; per-employee Roster smart button.
- Duty-roster grid export — classic employees × days layout, as styled XLSX and printable PDF (Print menu on the Roster list).
- Optionally sync each roster to a per-employee Working Schedule (never touches shared calendars): lines are named after the shift template, every working day appears, and night shifts are stitched across midnight.
Enable: Settings → Attendance → Roster / Shift Scheduling. Build shifts under Attendance → Roster (set each template's Days of Week first).
Roster-Driven Auto-Close
Once a roster is set, auto-close and pairing use each employee's rostered shift first (then Enterprise Planning, then the Working Schedule). Night rosters pair correctly across midnight, and a forgotten check-out is closed at the rostered end — not a fabricated 23:59.
Works with all four attendance modes (Traditional, Traditional-Per-Day, Auto, Auto-Per-Day) and all connection types (ISAPI Direct, Event Push, Hybrid). Multi-company & multi-branch ready.
Night shifts (e.g. 10 PM–5 AM): Auto & Traditional modes pair across midnight automatically. For the Per-Day modes, enable Night-Shift Safe Per-Day Pairing so the shift becomes one record closing at 05:00 (read from the Roster or Working Schedule) instead of splitting at 23:59.
Live Roster & Review KPIs on the Dashboard
The Attendance dashboard gains a Today's Roster row — shown only when the Roster feature is on:
- Rostered Today (click to open today's roster) · On Shift Now.
- Present / Rostered · Rostered, No Punch (absent so far).
- Off-Schedule (punched but not rostered) · Night Shifts · Flexible workers.
- A Needs Review counter + an Attendance Review button that jumps straight to pending missing-punch records.
Enable: automatic — the cards appear as soon as Roster / Attendance Review are enabled in Settings.
Review History Report & Full Audit Trail
- Review History Report (Attendance → Review History Report): export everything that was flagged / approved / corrected in a period as XLSX or PDF — grouped by employee, department, or date, with summary counts. Perfect for showing the admin team.
- Detailed review form: every flagged attendance shows why it was flagged, the original fabricated check-in/out, the HR note, and who reviewed it when.
- Attendance-mode audit: any change of a device's Attendance Mode (Auto / Traditional / Per-Day) is now logged in the device chatter — no more mystery mode switches after upgrades or re-registrations.
Where: Attendance → Review History Report; details appear on each flagged record automatically.
Shift Templates run the Roster (v2)
A Shift Template is now a full weekly timetable that owns its employees and builds one shared Working Schedule — the whole roster is driven from one page.
- Weekly timetable with breaks — Morning / Break / Afternoon blocks per day (not just one Start/End).
- Night Shift toggle — a “To Day” column, so Sunday 21:00 → Monday 06:00 is one line; the Working Schedule auto-splits (Sun 21–24 + Mon 00–06).
- Assigned Employees with per-employee Start / End dates, plus a multi-select to add many at once.
- Generate Roster button — creates a line for every day in each employee’s range (or the global range / horizon).
- Edits propagate — change the timetable and every employee’s schedule and existing roster refresh automatically.
- Remove = keep history — a removed employee’s roster is archived (viewable), not deleted, and their schedule reverts to the company default.
- Duty-roster grid export — Excel & PDF, now including the Device User ID.
- “Duty Roster” naming everywhere for regions that don’t use “roster”; duplicate employees are blocked with a clear warning.
Where: Attendance → Roster / Duty Roster → Shift Templates. Build the timetable, add employees, press Generate Roster.
Payroll safe: HR corrections flow into worked-hours natively — this module never rewrites payroll. Every feature is off by default, so existing installs are unaffected until you switch it on.Odoo Ready Partner
Support & Resources
Need help? We're here for you!
Email Us info@dotbdsolutions.comWhatsApp +880 1810-025181Website www.dotbdsolutions.comLearning Platform learn.dotbdsolutions.comYouTube youtube.com/@DotBdSolutionsLimitedFacebook facebook.com/dotbdsolutionsLinkedIn linkedin.com/company/dot-bd-solutions

Dot BD Solutions Limited
Copyright © 2025 Dot BD Solutions Limited. All rights reserved.
Author: Rafiur Rahman Rafit
Licensed under OPL-1
Have a custom requirement or need a modification? Reach out before making changes — support@dotbdsolutions.com or WhatsApp +880 1810-025181.
DOT BD SOLUTIONS
Need help with this module?
Contact us about setup, compatibility, or the module's features. Include the module name and your Odoo version.
Email support WhatsApp +880 1810-025181