Biometric Attendance Machines Integration
by T.V.T Marine Automation (aka TVTMA) https://viindoo.com/apps/app/17.0/to_attendance_device , Viindoo https://viindoo.com/apps/app/17.0/to_attendance_device$ 220.53
Availability |
Odoo Online
Odoo.sh
On Premise
|
Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Employees (hr) • Discuss (mail) |
Community Apps Dependencies | Show |
Lines of code | 5726 |
Technical Name |
to_attendance_device |
License | OPL-1 |
Website | https://viindoo.com/apps/app/15.0/to_attendance_device |
Versions | 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 |
Availability |
Odoo Online
Odoo.sh
On Premise
|
Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Employees (hr) • Discuss (mail) |
Community Apps Dependencies | Show |
Lines of code | 5726 |
Technical Name |
to_attendance_device |
License | OPL-1 |
Website | https://viindoo.com/apps/app/15.0/to_attendance_device |
Versions | 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 |
Demo video: Biometric Attendance Machines Integration
Key Features
- Compatible on Odoo.sh as well as on Premise
- Support both UDP and TCP for large attendance data (tested with a real machine that store more than 90 thousand attendance records).
- Support connection with either domain name or IP.
- Authenticate machines with password.
- Multiple machines for multiple locations.
- Multiple machine time zones at multiple locations.
- Multiple Attendance Status support (e.g. Check-in, Check-out, Start Overtime, End Overtime, etc).
- Store fingerprint templates in employee profiles to quickly set up new a machine (Added since version 1.1.0).
- Delete Machine's Users from Odoo.
- Upload new users into the machines from Odoo's Employee database.
- Auto Map Machine Users with Odoo employee base on Badge ID mapping, or name search mapping if no Badge ID match is found.
- Store Machine Attendance data permanently.
- Manual/Automatic download attendance data from all your machines into Odoo (using scheduled actions).
- Manual/Automatic synchronize machine attendance data with HR Attendance so that you can access them in your salary rules for payslip computation.
- Automatically Clear Attendance Data from the machines periodically, which is configurable.
- Designed to work with all attendance machines that based on ZKTeco platform.
- Fully TESTED with the following machines:
- RONALD JACK B3-C
- ZKTeco K50
- ZKTeco MA300
- ZKTeco U580
- ZKTeco T4C
- ZKTeco G3
- RONALD JACK iClock260
- ZKTeco K14
- iFace702
- ZKTeco H5L
- Uface 800 (worked with finger and face)
- Reported by clients that the module has worked great with the following machines
- ZKTeco K40
- ZKTeco K20
- ZKTeco U580
- ZKTeco F18
- ZKTeco F19
- iFace402/ID
- iFace800
- iClock3000
- iClock880-H
- iclock 700
- Ronald Jack T8
- Ronald jack 1000Plus
- ZKTeco MB20
- ZKteco IN0A-1
- ZKTeco H5L
- Uface 800
- SpeedFace V5L
- VF680
- RSP10k1
- ... (please advise us your machines. Tks!)
- Fully TESTED with the following machines:
Credit
Tons of thanks to Fananimi for his pyzk library @ https://github.com/fananimi/pyzk
We got inspired from that and customize it for more features (machine information, Python 3 support, TCP/IP support, etc) then we integrated into Odoo by this great Attendance Machine application
Known Issue
- To make this module work perfectly, your device will need to be available on internet (in case you use online platform like odoo.sh or self-hosted)
- Don't worry if the device is connected but still cannot download data, it could be one of following reason:
- Wrong device mode (we support mode call 'Time Attendance' other mode like 'Access Control' will not work)
- Lacking device configuration (by default some device will ignore the in/out checking stuff therefore we can not download your attendance data)
Whatever the case is, you can always contact us at https://viindoo.com/ticket/team/8 for troubleshooting.
Editions Supported
- Community Edition
- Enterprise Edition
Installation
- Navigate to Apps;
- Find with keyword to_attendance_device;
- Press Install.
Usages
Instruction video: Biometric Attendance Machines Integration
Concepts
Machine Position is a model to store locations where your attendance machines are installed. Each location consists of the following information:
- Name: the name of the location.
- Time zone: the time zone of the location. This is to support attendance logs at multiple locations in different time zones.
Attendance State is a model to store states of attendance activity that can be defined by users. States could be Check-in, Check-out, Overtime Check-in, Overtime Start, etc. Please navigate to Attendance > Configuration > Attendance Status to see the list of default states that were created during the installation of this application.
Attendance Activity is a model that classifies attendance in activities such as Normal Working, Overtime, etc. Navigate to Attendance > Configuration > Attendance Activity to see the list of default activities that were created during the installation of this application. Each Attendance Activity is defined with the following:
- Name: the unique name of the activity.
- Attendance Status: list of the attendance states that are applied to this activity.
Machine User is a model that stores all the machines' users in your Odoo instance and map such users with Employees in the system. Each Machine User consists of (but is not limited to) the following information:
- Name: the name of the user stored in the machine.
- Attendance Machine: the machine to which this user belongs.
- UID: The ID (technical field) of the user in the machine storage, which is usually invisible at the machine's interface/screen.
- ID Number: the ID Number of the user/employee in the machine storage. It is also known as "User ID" in some machines.
- Employee: the employee that is mapped with this user. If you have multiple machines, each employee may map with multiple corresponding machine users.
User Attendance is a model that stores all the attendance records downloaded from all the machines. In other words,it is a central database of attendance logs for all your machines. This log will be used as the base to create HR Attendance. During that creation, the software will also check for the validity of the attendance to ensure that the HR Attendance data is clean and valid.
HR Attendance is a model offered by Odoo's standard module hr_attendance and is extended to have the following fields:
- Check-in: the time of check-in.
- Check-out: the time of check-out.
- Employee: the related employee.
- Checkin Machine: the attendance machine that logged the check-in.
- Checkout Machine: the attendance machine that logged the check-out.
HR Attendance records are created automatically and periodically by the Scheduled Action named Synchronize attendances schedule.
Employee is a model in Odoo that is extended for the additional following information:
- Unmapped Machines: to show the list of attendance machines that have not to gotten this employee mapped.
- Created from Machine: to indicate if the employee profile was created from a machine (e.g. Download users -> auto create employee-> auto map them). This will helps you filter your employees to see ones that were or were not created from machines.
Attendance Machine is a model that stores all the information of an attendance machine. It also provides a lot of tools such as:
- Upload Users: to upload all your employee to an attendance machine (e.g a new and fresh machine).
- Download Users: to download all the machine's users' data into odoo and map those users with employees (if an auto mapping is set).
- Map Employee: to map machine users with employees in your Odoo instance.
- Check connection: to check if your Odoo instance could connect to the machine.
- Get Machine Info: to get the most important information about the machine (e.g. OEM Vendor, Machine Name, Serial Number, Firmware Version, etc).
- Download Attendance: to download manually all the attendance data from the machine into your Odoo database, although this could be done automatically by the scheduled action named "Download attendances scheduler".
- Restart: to restart the machine.
- Clear Data: this is to empty your data. It is a very DANGEROUS function and is visible to and accessible by the HR Attendance Manager only.
- And many more...
Setup a new attendance machine
- Navigate to Attendances > Attendance Machines > Machines Manager.
- Click Create button to open a machine form view.
- Input the name of the machine (optional).
- Enter the IP of the machine. It must be accessible from your Odoo server. If your Odoo instance is on the Internet while the machine is in your office, behind a router, please ensure that port forwarding is enabled and the machine's network configuration is properly set to allow accessing your machine from outside via the Internet. You may need to refer to your router manufacturers for documentation on how to do NAT/port forwarding.
- Port: the port of the machine. It is usually 4370.
- Protocol: which is either UDP or TCP. Most modern machines nowadays support both. TCP is more reliable but may not be supported by a behind-a-decade machine.
- Location: the location where the machine is physically installed. The time zone of the location must be correct.
- You may want to see other options (e.g. Map Employee Before Download, Time zone, Generate Employees During Mapping, etc).
- Hit the Save button to create a new machine in your Odoo.
- Hit Check Connection to test if the connection works. If it did not work, please troubleshoot for the following cases:
- Check network settings inside the physical machine: IP, Gateway, Port, Net Mask.
- Check your firewall/router to see if it blocks connection from your Odoo instance.
- Try on switching between UDP and TCP.
Refer to the article Biometric attendance device intergration.
Map Machines Users and Employees
- If this is a fresh machine without any data stored inside:
- Click Upload users.
- If this is not a fresh machine:
- You may want to clear data before doing step 10.1 mentioned above.
- Or, you may want to Download Users and map them to an existing employee or create a new employee accordingly.
- Validate the result:
- All Machine Users should link to a corresponding employee.
- No unmapped employees are shown on the machine form view.
Refer to the article Link Attendance device users with employees in Viindoo system.
- Test Attendance Data download and synchronization:
- Do some check-in and check-out at the physical machine:
- Wait for seconds between check-in and check-out.
- Try some wrong actions: check-in a few times before checking-out.
- Come back to the machine form view in Odoo:
- Hit Download Attendance Data and wait for its completion. For just a few attendance records, it may take only a couple of seconds even if your device is located in a country other than the Odoo instance's.
- Validate the result:
- Navigate to Attendances > Attendance Machines > Attendance Data to validate if the attendance log is recorded there.
- If found, you are done now. You can continue with the following steps to bring the new machine into production:
- Clear the sample attendance data you have created:
- Navigate to Attendances > Attendance Machines > Attendance Data, find and delete those sample records.
- Navigate to Attendances > Attendance Machines > Synchronize and hit Clear Attendance Data button.
- Hit the Confirmed state in the header of the machine form view. If you don't do it, the schedulers will ignore the machine during their runs.
- Clear the sample attendance data you have created:
- If not found, there should be some trouble that needs further investigation:
- Check the connection.
- Try to get the machine information.
- Check the work codes of the machine if they match the ones specified in the "Attendance Status Codes" table in the machine form view.
- Contact the author of the "Attendance Machine" application if you could not solve the problem yourself.
- Do some check-in and check-out at the physical machine:
Set up for a new Employee
- Create an employee as usual.
- Hit the Action button in the header area of the employee form view to find the menu item "Upload to Attendance Machine" in the dropped-down list.
- Select the machine(s) that will be used for this employee then hit the Upload Employees button.
- You can also do mass upload by selecting employees from the employee list view. Or go to the machines.
How the automation works
There are two scheduled actions:
- Download attendances scheduler: by default, it runs every 30 minutes to:
- Download the attendance log/data from all your machines that are set in Confirmed status. Machines that are not in this status will be ignored.
- Create User Attendance records in your Odoo database.
- Depending on the configuration you made on the machines, it may also do the following automatically:
- Create new employees and map with the corresponding machine users if new users are found in the machines.
- Clear the attendance data from the machine if it's time to do it.
- Synchronize attendances scheduler: by default, it runs every 30 minutes to:
- Find the valid attendance in the user attendance log.
- Create HR Attendance records from such the log.
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
Report comment
Any abuse of this reporting system will be penalizedThere are no ratings yet!
Query - Will it work with ZKteko - G3 Pro
I see that you have mentioned that G3 works fine. Please confirm if this works with G3 Pro and also can it be connected to Wi-Fi network of our remote offices (without static IP), and we can connect to a PC remotely and fetch the attendance data monthly or as required.
oooo la la !
People are asking for the Odoo 16 version of this module since March 2023.
We are now 13 months after the golive of Odoo V16, but your module is still not upgraded.
When will you provide a V16 version?
Odoo V16
Hello,
is this module already available for V16?
Thanks + regards
Bass
Do you have plugin for supreme machines?
qaddomy2005@yahoo.com
Compatible ZKteco model ZK-SPEEDFACE-V3L-FP-W
Good morning
I have a ZKteco model ZK-SPEEDFACE-V3L-FP-W
I currently have Odoo enterprise hosted on Odoo SH
I would like to know if your program is compatible with this model
It is urgent
Thank you!
ZKTeco Model MB2000 and Odoo 16.0
Dears,
I'm interested in purchase this app, I have the some questions:
Attendance State
En el caso de que para Attendance State, devuelva el valor 3. Donde puede ver que nombre configurarle a ese valor?
Saludos
works with Odoo SH?
hello, i'm interested in purchase this app, I have the question:
-it is compatible with OdooSH?
-how it works if my device it has a LOCAL IP (192.168.x.x) and my Database it is hosted in OdooSH
thank you for your attention
Re: works with Odoo SH?
1. Yes, it is.
2. You could ask your local network administrator to NAT/Portforward to expose the device to the internet. Please see the Documentation tab for more information.
v16
is it available for odoo 16 Enterprise ?
is it available for odoo 16?
Re: is it available for odoo 16?
Not yet. But it will soon. Please contact Viindoo Sales if you need immediate upgrade.
ZKTeco MB2000
Did your module support this version "ZKTeco MB2000" , and if you can provide me with a demo video of using the the module .
Re: ZKTeco MB2000
Please contact Viindoo Sales for a private demo instance.
Hello , is it compatible with I face 880 model?
Re:
Yes, it is
Device Support
Can this module support Zkteco MB460 device?
Re: Device Support
Yes, it can.
password authentication
Can you explain how will we use password authentication for each ZK Teco device? It seems from our ZK Teko devices do not have password authentication.
ZKTeco MB20
connect but not download
Working on Sh?
Hello does it work for Odoo Sh?
Also We have a f22 device
Configuration
Hello,
I have set up ZKMA-300 with this app in odoo.
I have assigned an IP to the device but odoo still can't find it
Any Pointers?
Re: Configuration
Please use your customer portal to request support. Or, you can direct contact the author here: https://viindoo.com/ticket