Closed rachmataditiya closed 4 years ago
ok, on initial check, both your output and the capture.pcap file, the library can't determine the quantity of users and registries. On "older devices" we can call the GET_FREE_SIZEs(CMD:50) to get a struct(28) with all the different sizes, in your case, that command return a single DWORD with value 0. the library can't get the rest of the sizes, so everything seems empty .
on the zktime filter.pcap, it seems to call GET_FREE_SIZES several times, with an unknown argument! and there it seems to respond with a DWORD with actual values!!!
If you didn't add users recently please check with ZKtime, and include the expected sizes (maybe it has a capacity of 1000 users 50000 attendance, 1 user? 4 fingers? 19 attendances? i think it has 4 users and 4 fingers, please add another finger or several users to make the numbers different.
yes, you're right it has 4 users and 4 fingers, I've add 3 additional users:
anyway for adding users with pyzk is still work, and you can also add users or any data to imac.arkana.app for testing, I recommend to add uid after id 20 to avoid conflict
also when I use set_user method on pyzk, it only save firstname so when I put John Doe on name parameter, after I sync with zktime Joen Doe will place on first name on device and the last name is not set
Live capture also does not work here, but work with pyzatt (another github repo) but unstable, crash after capture 3 data
Zktime screenshoot
user added from pyzk
user added from zktime
Sync Added User Yugo Saptoro From ZKTime
Packet Capture while adding user Yugo Saptoro adduser-Yugo-Saptoro.zip
Packet capture when getting user from ZKAccess I used another zkteco software which is zkaccess and I can use the sdk also this is packet capture when I get list of all 7 users zkaccess.zip
Hello, any solution? i have the same problem with the same model of zkteco. Thanks in advance!
I'm very sorry, I couldn't check the issue completely, and can't replicate without an actual device, It would be necessary a lot of tests to implement this, did you checked it with the pyzatt library? they are more up-to-date than us...
I'm closing the issue, but we are open to PR if somebody can re-implement the read_sizes
with this new behavior..
Hello,
@JorgeJuarezCasai would it be possible to copy here the firmware version string? It seems the WL20 is actually an old one most of the time (from 2017).
Tengo el mismo problema con el dispositivo WL20.. estoy enviando a consola las variables que se procesan en el método __send_command() y lo que estoy viendo es que el self.__data siempre va vacío, no recupera algo más para poder pasarlo a ese atributo.
Tengo python 2.7 estoy pensando en subir a python 3 para seguir probando y descartar que la versión de python no tengo algo que ver
el desarrollo se paró hace 4 años creo, y se trabajó con firmware más antiguo, según recuerdo las últimas versiones reportaban los tamaños (sizes) con un comando diferente (o en diferente formato) lo cual hace que no sea compatible con esta librería, ya probaron con pyzatt? tenian mayor soporte que yo recuerde
hola kurenai... voy a revisar el pyzatt... estuve probando comandos del 35 al 56 pensando que hubiera cambiado el comando.. pero solo el 50 responde en ese rango.. ya andaba supercontento porque habia logrado comunicarme con el dispositivo y obtener info, reiniciarlo, setear el date/time y otras cosillas pero cuando empece con la captura de usuarios vi que no estaba recuperando usuarios
si tienes un equipo, descarga el software official ZKAccess y realiza una lectura de usuarios, capturando la comunicación con wireshark, ahi se puede analizar como hace la lectura y replicar aqui
Listo la prueba.. El wireshark muestra un mensaje de 1460 bytes como el más grande test wl20.zip acá viene el archivo del wireshark ... la verdad no le entiendo mucho ha esto de los mensajes de sockets jejeje :D pero yo puesto para ayudar a solventar el bug
Kurenay, para apoyar en la solución del problema puedo brindarte acceso a mi equipo mediante anydesk o zoom en un meet, así puedes interactuar directamente con el código y el dispositivo WL20. Así mismo, puedo apoyar a pyzk con una donación de 500 dlls para solventar el fallo y si me explican un poco el código podría apoyarlos en desarrollo.
Describe the bug get users and get attendance return 0 on wl20 device
To Reproduce Steps to reproduce the behavior:
Packet Capture From Pyzk capture.zip
Packet Captured from ZKTime.Net -Below Packet is working with official apps with returned users and attendance filter.zip
Screenshoot
Expected behavior should return list of users
System (please complete the following information):
Device Access For Trial I have opened public port for this device for testing purpose you can access it here :