{ "info": { "author": "Arnulfo Solis", "author_email": "arnulfojr94@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Remote Sensors API protocol library\n\nThis library translates raw bytearrays into the Remote Sensors API models.\n\nThis implementation uses the [XBee Python library](https://github.com/digidotcom/python-xbee).\nAnd translates the incoming device messages into a Remote Sensors Request and Response.\n\nThis library uses similar syntax than Sanic or Flask.\n\n## Usage\n\n```python\nimport remote_sensors\n\nfrom digi.xbee.devices import XBeeDevice\n\nimport my_settings as settings\n\n\n@remote_sensors.bind_to_device()\n@remote_sensors.request()\ndef access_log(request: remote_sensors.Request, *args, **kwargs):\n \"\"\"Simple Access Logger method.\"\"\"\n logger.info(f'Request: {request.method} - {request.uri}')\n\n\n@remote_sensors.bind_to_device()\n@remote_sensors.request(method='REGISTRATION')\ndef handle_registration(request: remote_sensors.Request, *args, **kwargs):\n \"\"\"Handles the registration request.\"\"\"\n response = remote_sensors.Response(status='ACK',\n transaction=request.transaction)\n\n # do something about it :D\n payload = {\n 'request': request.as_dict(),\n 'response': response.as_dict(),\n 'completed': False,\n }\n\n logger.debug(f'Replying with {response.status} to {sensor_message.addresses}')\n\n # send the response to the device\n return response\n\n\n@remote_sensors.bind_to_device()\n@remote_sensors.request(method='END_REGISTRATION', pass_message=True)\ndef handle_registration_end(request: remote_sensors.Request, sensor_message: remote_sensors.SensorRequest,\n *args, **kwargs):\n \"\"\"Handles the end of registration.\"\"\"\n response = remote_sensors.Response(status='ACK',\n transaction=request.transaction)\n\n # do something about it :D\n payload = {\n 'device': sensor_message.as_dict(),\n 'request': request.as_dict(),\n 'response': response.as_dict(),\n 'completed': True,\n }\n\n logger.debug(f'Device ({sensor_message.addresses}) has finished registration')\n\n return response\n\n\ndevice = XBeeDevice(settings.SERIAL_PORT, settings.BAUD_RATE)\n\ndef main():\n device.open()\n remote_sensors.app.init(device)\n\n while True:\n time.sleep(1)\n\n\nif __name__ == '__main__':\n try:\n main()\n finally:\n if device.is_open():\n device.close()\n\n```\n\n## Contact\n\nArnulfo Solis Ramirez\n\n* arnulfojr94@gmail.com", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://bitbucket.org/kiotsystem/remote-sensors-api/get/0.1.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/kiotsystem/remote-sensors-api", "keywords": "iot,embedded,remote_sensors,arduino,sensors,xbee", "license": "", "maintainer": "", "maintainer_email": "", "name": "remote-sensors", "package_url": "https://pypi.org/project/remote-sensors/", "platform": "any", "project_url": "https://pypi.org/project/remote-sensors/", "project_urls": { "Download": "https://bitbucket.org/kiotsystem/remote-sensors-api/get/0.1.1.tar.gz", "Homepage": "https://bitbucket.org/kiotsystem/remote-sensors-api" }, "release_url": "https://pypi.org/project/remote-sensors/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "Remote Sensors API framework", "version": "0.1.1" }, "last_serial": 4303173, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "43bd5c26cb1207af3ed91a2b4c23ef21", "sha256": "eb690f89f610fa0e9def36b06ed71e7a6f72e628302330e6fd213064ad3b5484" }, "downloads": -1, "filename": "remote_sensors-0.0.1.tar.gz", "has_sig": false, "md5_digest": "43bd5c26cb1207af3ed91a2b4c23ef21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5858, "upload_time": "2018-09-23T16:33:12", "url": "https://files.pythonhosted.org/packages/4a/77/02e171e22006688baf1b24092d233c3c30a2299f1c0f2e3004c1d20e030e/remote_sensors-0.0.1.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "6fc66562022b8d273079af0200c114ef", "sha256": "3b469fe65954279fe7ddc4ecd51c8760e6c7404ca73d9cb781c58ee5a534db46" }, "downloads": -1, "filename": "remote_sensors-0.1.tar.gz", "has_sig": false, "md5_digest": "6fc66562022b8d273079af0200c114ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10158, "upload_time": "2018-09-23T18:17:37", "url": "https://files.pythonhosted.org/packages/5b/72/d98cac5580d16277b3f2c0513d04abf374cf49de4aa4824b9b5458c3e5f7/remote_sensors-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4a176d27ef824837c8acb03b84ebaa8c", "sha256": "4c14527128a52b58820a5b59419a1a39721177920bca11bf609db42970389fe1" }, "downloads": -1, "filename": "remote_sensors-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4a176d27ef824837c8acb03b84ebaa8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10206, "upload_time": "2018-09-23T22:35:12", "url": "https://files.pythonhosted.org/packages/2a/49/86a77550836d56bab788331624b6a4bf96603c7a1ec34849ea6c8c260c8f/remote_sensors-0.1.1.tar.gz" } ], "0.1a0": [ { "comment_text": "", "digests": { "md5": "529f4331e34f8a6a0c9b29b1f4477ad6", "sha256": "6ed1b4d4d420f9e4158b6fd0208c161349f13ae068085c0a620232ca434dfeda" }, "downloads": -1, "filename": "remote_sensors-0.1a0.tar.gz", "has_sig": false, "md5_digest": "529f4331e34f8a6a0c9b29b1f4477ad6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5857, "upload_time": "2018-09-23T16:43:43", "url": "https://files.pythonhosted.org/packages/64/f5/cc36642563e29a7b610d90baf0f5571e0b8fe8b0795d947b77a1a12aac2a/remote_sensors-0.1a0.tar.gz" } ], "0.1a1": [ { "comment_text": "", "digests": { "md5": "6a27bdcf98938025789f7513447ddfda", "sha256": "afa5a79dcb40083d9da37b6a56d2a1238f0b91d0dfd883cab8df5236fe3040ce" }, "downloads": -1, "filename": "remote_sensors-0.1a1.tar.gz", "has_sig": false, "md5_digest": "6a27bdcf98938025789f7513447ddfda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8879, "upload_time": "2018-09-23T16:58:19", "url": "https://files.pythonhosted.org/packages/2c/67/1ceeb5f7fbf9270dd33084a74d622c003288ae8f7cdca5fced253641dfa5/remote_sensors-0.1a1.tar.gz" } ], "0.1b1": [ { "comment_text": "", "digests": { "md5": "a4e8e65ead2799b6783c374cebe92e1f", "sha256": "2ef70721f9bbec7dec746079af11232fd97f9f47aecad85218e58d0a8d4068fc" }, "downloads": -1, "filename": "remote_sensors-0.1b1.tar.gz", "has_sig": false, "md5_digest": "a4e8e65ead2799b6783c374cebe92e1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10162, "upload_time": "2018-09-23T17:41:57", "url": "https://files.pythonhosted.org/packages/94/96/c61fce8e6aa22e0efd5bd834f2f6202c7ea167c6608c02fb85251d8cc664/remote_sensors-0.1b1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4a176d27ef824837c8acb03b84ebaa8c", "sha256": "4c14527128a52b58820a5b59419a1a39721177920bca11bf609db42970389fe1" }, "downloads": -1, "filename": "remote_sensors-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4a176d27ef824837c8acb03b84ebaa8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10206, "upload_time": "2018-09-23T22:35:12", "url": "https://files.pythonhosted.org/packages/2a/49/86a77550836d56bab788331624b6a4bf96603c7a1ec34849ea6c8c260c8f/remote_sensors-0.1.1.tar.gz" } ] }