{ "info": { "author": "Paul Brown", "author_email": "paul90brown@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Chinese RFID Access Control Library\n========================\n\nThis library allows python to control one of the most common RFID Access Control Systems sold in China. Now you can integrate an access \ncontrol system with your software to do things like remove an user when they have failed to pay their bill. \n\nThe goal of this project is to provide the ability to automate an inexpensive, out-of-the-box RFID Access Control solution. This is \nespecially made for businesses that rely on access control + monthly billing (hackerspaces, makerspaces, and gyms).\n\nMain Features\n-----\n\n- Programmatically add and remove users to/from the access control system\n- Programmatically trigger the relay to open the door\n- Convert the 10-digit format RFID numbers to comma format or vice versa\n\nHardware Requirement\n-----\nThis library currently only works with a single type of controller which goes by a wide variety of model numbers. The controller can \nbe found by searching for \"TCP access control\" on Ebay, Aliexpress, and Amazon. It costs around $30-85 (depending on the number of \ndoors). You can know which one to buy by looking for one that looks like this:\n\n![alt tag](https://raw.githubusercontent.com/pawl/Chinese-RFID-Access-Control-Library/master/access_controller.png)\n\nOne of the awesome things this controller has is a web interface. You can also add users, remove users, view logs, and change settings \nmanually through that interface. Pictures of the interface are available here: http://imgur.com/a/Mw04Y\n\nRFID Card Number Explanation\n-----\n![alt tag](https://raw.githubusercontent.com/pawl/Chinese-RFID-Access-Control-Library/master/rfid_card_number_explanation.png)\n\nThere are two numbers on the card. The access controller only uses the right number which I'm calling comma-format.\n\nMy usage example below shows an example of a function which converts the number on the left (which I'm calling 10-digit format) \nto the number on the right (comma format).\n\nUsage\n-----\nInstall:\n\n\tpip install Chinese-RFID-Access-Control-Library\n\nAdd user (using 10-digit format RFID number):\n\n\tfrom rfid import ten_digit_to_comma_format, RFIDClient\n\n\tip_address = '192.168.1.20' # IP address of the controller\n\tcontroller_serial = 123106461 # serial number written on the controller\n\tclient = RFIDClient(ip_address, controller_serial)\n\n\tbadge = ten_digit_to_comma_format(11111111) # badge number needs to be converted to \"comma format\"\n\n\tclient.add_user(badge, [1, 2]) # add privileges for door 1 & 2\n\nRemove user (using 10-digit format RFID number):\n\n\tfrom rfid import ten_digit_to_comma_format, RFIDClient\n\n\tip_address = '192.168.1.20' # IP address of the controller\n\tcontroller_serial = 123106461 # serial number written on the controller\n\tclient = RFIDClient(ip_address, controller_serial)\n\n\tbadge = ten_digit_to_comma_format(11111111) # badge number needs to be converted to \"comma format\"\n\n\tclient.remove_user(badge)\n\t\nOpen door #1:\n\n\tfrom rfid import RFIDClient\n\n\tip_address = '192.168.1.20'\n\tcontroller_serial = 123106461\n\tclient = RFIDClient(ip_address, controller_serial)\n\n\tclient.open_door(1)\n\t\nTODO\n-----\n- Add an optional name parameter to add_user. The access controller also stores the user's name.\n- The controller also stores the user's 2-factor pin for when the keypad is enabled. Need to add an optional parameter to add_user for a pin.\n- Add a get_users method to RFIDClient that outputs a list of all the users currently in the controller.\n- Add a get_logs method to RFIDClient which outputs the card swipe logs.\n\nSpecial Thanks\n-----\n- Thanks to Brooks Scharff for figuring out the cool stuff that this access controller could do and keeping me interested in the project.\n- Thanks to Dallas Makerspace for letting me implement and test it at their facility. \n- Thanks to Mike Metzger for his work on starting to reverse engineer Dallas Makerspace's first access control system and documenting it to show me how to do it. https://dallasmakerspace.org/wiki/ReverseEngineeringRFIDReader", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/pawl/Chinese-RFID-Access-Control-Library/tarball/master#egg=package-0.0.6", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pawl/Chinese-RFID-Access-Control-Library", "keywords": "rfid,access control", "license": "The MIT License (MIT)\n\nCopyright (c) 2014 Paul Brown\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.", "maintainer": null, "maintainer_email": null, "name": "Chinese-RFID-Access-Control-Library", "package_url": "https://pypi.org/project/Chinese-RFID-Access-Control-Library/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/Chinese-RFID-Access-Control-Library/", "project_urls": { "Download": "https://github.com/pawl/Chinese-RFID-Access-Control-Library/tarball/master#egg=package-0.0.6", "Homepage": "https://github.com/pawl/Chinese-RFID-Access-Control-Library" }, "release_url": "https://pypi.org/project/Chinese-RFID-Access-Control-Library/0.0.6/", "requires_dist": null, "requires_python": null, "summary": "A library for interfacing with one of the most common RFID Access Control System sold in China.", "version": "0.0.6" }, "last_serial": 1071204, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "5a8a305781b42c237d4796b0a7eb7984", "sha256": "e6880e7a26c2b2370d03da19a43ebda3071e149680efc17d989c1d552ab6c670" }, "downloads": -1, "filename": "Chinese-RFID-Access-Control-Library-0.0.3.zip", "has_sig": false, "md5_digest": "5a8a305781b42c237d4796b0a7eb7984", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9070, "upload_time": "2014-04-20T19:13:48", "url": "https://files.pythonhosted.org/packages/00/b5/10c6c86d4a39a133262a6289e297f7b74b1d554b1f28a82cc14ba34b45ed/Chinese-RFID-Access-Control-Library-0.0.3.zip" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "cd7ed4fe3f9dfaa224254a3aa58bf975", "sha256": "e96c4873ec852879d3ebf465da67a01e7da212a72d6174162477fa1f4dd010ce" }, "downloads": -1, "filename": "Chinese-RFID-Access-Control-Library-0.0.4.zip", "has_sig": false, "md5_digest": "cd7ed4fe3f9dfaa224254a3aa58bf975", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11793, "upload_time": "2014-04-20T19:28:34", "url": "https://files.pythonhosted.org/packages/d4/19/0d613ff4e7f8a95c6bc3eead8eddd86e84dff11a0db9d875268eacf51f61/Chinese-RFID-Access-Control-Library-0.0.4.zip" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "d4c100441c0fab7a0720a8e9e5ce59e7", "sha256": "a106bfb7c95659111fcb986917898b1258c1920bf2d66429c0dd6e6aa6ab8789" }, "downloads": -1, "filename": "Chinese-RFID-Access-Control-Library-0.0.5.zip", "has_sig": false, "md5_digest": "d4c100441c0fab7a0720a8e9e5ce59e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12267, "upload_time": "2014-04-22T01:15:03", "url": "https://files.pythonhosted.org/packages/3c/3e/a6aade2e72fb5fdebe2e942d5e269f75e66bd1118610223c4da12f70e960/Chinese-RFID-Access-Control-Library-0.0.5.zip" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "823f0ee22faa6bd834801acdf586b12a", "sha256": "0eead63a62da6aeeb826416107d67301143f4a8c2ccc660a57f60ce778a495e3" }, "downloads": -1, "filename": "Chinese-RFID-Access-Control-Library-0.0.6.zip", "has_sig": false, "md5_digest": "823f0ee22faa6bd834801acdf586b12a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12559, "upload_time": "2014-04-25T03:33:45", "url": "https://files.pythonhosted.org/packages/86/80/241a400e09ff7e13c1984a0dea1abfce5c2194b42053cd7a8a129089f77d/Chinese-RFID-Access-Control-Library-0.0.6.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "823f0ee22faa6bd834801acdf586b12a", "sha256": "0eead63a62da6aeeb826416107d67301143f4a8c2ccc660a57f60ce778a495e3" }, "downloads": -1, "filename": "Chinese-RFID-Access-Control-Library-0.0.6.zip", "has_sig": false, "md5_digest": "823f0ee22faa6bd834801acdf586b12a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12559, "upload_time": "2014-04-25T03:33:45", "url": "https://files.pythonhosted.org/packages/86/80/241a400e09ff7e13c1984a0dea1abfce5c2194b42053cd7a8a129089f77d/Chinese-RFID-Access-Control-Library-0.0.6.zip" } ] }