{ "info": { "author": "Jon Nordby", "author_email": "jononor@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP" ], "description": "# dlock13\n\nBreakout design (in EAGLE) and source code for our door lock actuator, running on a Raspberry PI(1).\nCommunication with the lock happens over [MQTT](https://en.wikipedia.org/wiki/MQTT).\nDoes not contain user interface, check [door-web](https://github.com/bitraf/door-web) for that.\n\n## MQTT interface\n\nTo open the door, send the *number of seconds to open* to:\n\n /bitraf/door/$door_id/open # Ex: 20\n\nOn success, will output values:\n\n /bitraf/door/$door_id/isopen # Ex: true/false\n /bitraf/door/$door_id/openuntil # Unix timestamp when door will lock again. Ex: 1495469392\n\nOn error, will send a string with an error message:\n\n /bitraf/door/$door_id/error # Ex: \"Time to open is negative\"\n\nWhere `$door_id` is for instance `2floor`, `frontdoor`, `4floor`.\nThe `/bitraf/door/` prefix is configurable, can be set to `/mysystem/doorlocks`.\n\n## Code\n\nAt [dlock13-msgflo/dlock13.cpp](./dlock13-msgflo/dlock13.cpp).\n\nImpementation is in C++11, using [msgflo-cpp](https://github.com/msgflo/msgflo-cpp). \n\n## Python API\n\nAlso provided is a simple Python module which will handle checking the MQTT messages\nbeing sent out on success/error.\n\nInstalling\n\n pip install dlock13\n\nA command-line tool is included\n\n dlock13-open /bitraf/door/$door_id 60\n\nFor how to use programatically, use [dlock13-open](./dlock13-open) as example code.\n\n## Board\n\n![RPI breakout board with components](./doc/rpi-breakout-populated.jpg)\n\nThe board has two MOSFETS for driving standard electronic locks.\nExpansion for two inputs also exists.\n\nSingle-sided board with through-hole components, can easily be CNC milled or etched.\n\n![RPi breakout board schematic](./doc/rpi-breakout-schematic.png)\n\n### Pinout\n\n # Function | Connector pin | BCM SoC pin | WiringPi pin |\n ===\n mosfet1 | 19 | 10 | 12\n mosfet2 | 2 | 11 | 14\n\nBCM SoC pin is the on used for `/sys/class/gpio/gpioNN` and similar.\n\n## Deployment\n\nA systemd service template is normally used to each doorlock: [dlock13@.service](dlock13-msgflo/dlock13@.service).\n\n systemctl status dlock13@2floor\n\nThe following environment variables are used. They can be specified in `/etc/dlock13/$door_id.conf`.\n\n* `MSGFLO_BROKER` - the MQTT broker connection details. Ex: `mqtt://user:password@mqtt.example.net`\n* `DLOCK13_PIN` - the GPIO pin number to use. Ex: `11`", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bitraf/dlock13", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "dlock13", "package_url": "https://pypi.org/project/dlock13/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dlock13/", "project_urls": { "Homepage": "https://github.com/bitraf/dlock13" }, "release_url": "https://pypi.org/project/dlock13/0.4.1/", "requires_dist": null, "requires_python": "", "summary": "Python API for MQTT-based doorlocks", "version": "0.4.1" }, "last_serial": 2933876, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "210bc66ce7f1dd9f9d2c86e62083dc24", "sha256": "5a490801b1e3ff5e315b270367adbc6f16d41aad019395fb28269d96dc4d4e71" }, "downloads": -1, "filename": "dlock13-0.0.1.tar.gz", "has_sig": false, "md5_digest": "210bc66ce7f1dd9f9d2c86e62083dc24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5409, "upload_time": "2017-06-07T23:06:09", "url": "https://files.pythonhosted.org/packages/37/25/a797361412fe2a6824fc7641b001c65e302b4778f2c5df64c3d987fdf266/dlock13-0.0.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "62a52c5def3106f7274ab461d7ff25c6", "sha256": "daa58cf1328307ad7e6dbcd3e3084bb7a34aeb710824944867d3b099ae17bd44" }, "downloads": -1, "filename": "dlock13-0.3.0-py2.7.egg", "has_sig": false, "md5_digest": "62a52c5def3106f7274ab461d7ff25c6", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 8020, "upload_time": "2017-06-07T23:06:11", "url": "https://files.pythonhosted.org/packages/f0/06/694f5a9e1920336f8ee5518a320ce36b9df759d5b404aa8ff8e2cc97ed09/dlock13-0.3.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "5029d5dd870cf338e7775e66675e2a92", "sha256": "8b007eaa263b5b93c2b09e75eda6ccc7b0b8098bcd035eb35910827f9801a8a6" }, "downloads": -1, "filename": "dlock13-0.3.0.tar.gz", "has_sig": false, "md5_digest": "5029d5dd870cf338e7775e66675e2a92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5670, "upload_time": "2017-06-07T23:06:12", "url": "https://files.pythonhosted.org/packages/a1/e8/01f3284a7ccef4514f7c10ee4f4b1235196f53f97af183b4bd8b1bb22b4d/dlock13-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "c70c79fdcc9dba2836d62befb70d2f47", "sha256": "cbb2a7a8ab994c893986583547810235f00a61183ce7cebff7178a5449f25e40" }, "downloads": -1, "filename": "dlock13-0.4.0.tar.gz", "has_sig": false, "md5_digest": "c70c79fdcc9dba2836d62befb70d2f47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5814, "upload_time": "2017-06-07T23:06:13", "url": "https://files.pythonhosted.org/packages/ed/a5/8395f391a017f91fadfa4ba2b0e6a2d85adae2a9d250b7cdb61d44a1fc86/dlock13-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "70a15c31a19518c02607b2502fbc95f7", "sha256": "d06288051b2c1271622d2458e08442dc0ba23d5b36f76489356fcfdd2f791f21" }, "downloads": -1, "filename": "dlock13-0.4.1.tar.gz", "has_sig": false, "md5_digest": "70a15c31a19518c02607b2502fbc95f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5735, "upload_time": "2017-06-07T23:15:32", "url": "https://files.pythonhosted.org/packages/4c/c7/43427bedcc7b1f4e2f7c6e714c8061a9c0805434e760f34b177c19953697/dlock13-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "70a15c31a19518c02607b2502fbc95f7", "sha256": "d06288051b2c1271622d2458e08442dc0ba23d5b36f76489356fcfdd2f791f21" }, "downloads": -1, "filename": "dlock13-0.4.1.tar.gz", "has_sig": false, "md5_digest": "70a15c31a19518c02607b2502fbc95f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5735, "upload_time": "2017-06-07T23:15:32", "url": "https://files.pythonhosted.org/packages/4c/c7/43427bedcc7b1f4e2f7c6e714c8061a9c0805434e760f34b177c19953697/dlock13-0.4.1.tar.gz" } ] }