{ "info": { "author": "Yann B\u00fcchau", "author_email": "nobodyinperson@gmx.de", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)" ], "description": "# SenseMAPI - Pythonic access to the OpenSenseMap API\n\n[![pipeline status](https://gitlab.com/tue-umphy/co2mofetten/python3-sensemapi/badges/master/pipeline.svg)](https://gitlab.com/tue-umphy/co2mofetten/python3-sensemapi/commits/master) [![coverage report](https://gitlab.com/tue-umphy/co2mofetten/python3-sensemapi/badges/master/coverage.svg)](https://tue-umphy.gitlab.io/co2mofetten/python3-sensemapi/coverage-report/)\n[![documentation](https://img.shields.io/badge/docs-sphinx-brightgreen.svg)](https://tue-umphy.gitlab.io/co2mofetten/python3-sensemapi/) [![PyPI](https://badge.fury.io/py/sensemapi.svg)](https://badge.fury.io/py/sensemapi)\n\n`sensemapi` is a Python package to access the [OpenSenseMap\nAPI](https://api.opensensemap.org).\n\n> ## Disclaimer\n>\n> This software was developed within the context of a\n> [CO2 monitoring project](https://gitlab.com/tue-umphy/co2mofetten)\n> of the University of T\u00fcbingen, Germany. The developer is not in any\n> way affiliated with the [senseBox project](https://www.sensebox.de/en/).\n\n## What can `sensemapi` do?\n\nWith `sensemapi`, you can do the most important things that you can also do via\nthe [OpenSenseMap user interface](https://opensensemap.org).\n\nSee some examples:\n\n### Access an OpenSenseMap account\n\n```python\naccount = sensemapi.account.SenseMapAccount(\n email = \"SENSEMAP_EMAIL\",\n password = os.environ.get(\"SENSEMAP_PASSWORD\")\n )\n```\n\n### Create new senseBoxes\n\n```python\n# set up a senseBox (offline)\nbox = sensemapi.senseBox.senseBox(\n exposure = \"outdoor\",\n name=\"My senseBox\",\n current_lat=50.5,\n current_lon=10.1)\n# add a temperature sensor to the box (offline)\nbox.new_sensor(\n title=\"temperature\",\n unit=\"\u00b0C\",\n type=\"SHT31\",\n icon=\"osem-temperature-celsius\")\n# create the senseBox (online)\naccount.new_box(box)\n```\n\n### Modify senseBoxes and sensors\n\n```python\n# retreive the account's boxes\naccount.get_own_boxes()\n# choose the first box\nbox = account.boxes[0]\n# change the box\nbox.name = \"My supercool senseBox\"\n# ... do anything with the box object ...\n# upload the changes\nbox.upload_metadata()\n```\n\n### Upload measurements\n\n```python\n# select the box's first sensor\nsensor = box.sensors[0]\n# reset the time to use the current time\nsensor.last_time = None\n# specify measurement value\nsensor.last_value = 25.2\n# upload the measurement\nsensor.upload_measurement()\n```\n\n### Delete a senseBox\n\n```python\n# delete the account's first senseBox\naccount.delete_box(account.boxes[0].id, really=True)\n```\n\n### Retreive any senseBox by its ID\n\n```python\n# with an account\naccount.get_box(id = \"57000b8745fd40c8196ad04c\")\n# without an account\nsensemapi.client.SenseMapClient().get_box(id = \"57000b8745fd40c8196ad04c\")\n```\n\n### Retreive measurements of a senseBox sensor\n\n```python\n# get a box\nbox = sensemapi.client.SenseMapClient().get_box(id=\"57000b8745fd40c8196ad04c\")\n# the box' first sensor\nsensor = box.sensors[0]\n# get the sensor's latest measurements as pandas.Series\nseries = sensor.get_measurements().series\n```\n\nMore features are likely to follow...\n\n## Installation\n\nThe `sensemapi` package is best installed via `pip3`. Run from anywhere:\n\n```bash\npip3 install --user sensemapi\npip3 install --user pandas # if you want pandas support\n```\n\nThis downloads and installs the package from the [Python Package\nIndex](https://pypi.org).\n\nYou may also install `sensemapi` via `pip3` from the repository root:\n\n```bash\npip3 install --user .\n```\n\n## Documentation\n\nDocumentation of the `sensemapi` package can be found [here on\nGitLab](https://tue-umphy.gitlab.io/co2mofetten/python3-sensemapi/).\n\n## Development\n\nThe following might only be interesting for developers\n\n### Tests\n\nSince this is an API library, you need to specify an account to run the tests:\n\n```bash\nexport SENSEMAP_EMAIL=\"user@email.com\" # specify either the email...\nexport SENSEMAP_USER=\"username\" # or the username\nexport SENSEMAP_PASSWORD=\"5uP3rP45sW0Rd\"\n```\n\nYou may also specifiy this sensitive data in a file which can then be\n`source`d.\n\nTo run the test suite, run from the repository root\n\n```bash\n./setup.py test\n```\n\nTo get a test coverage, run\n\n```bash\nmake coverage\n```\n\n### Versioning\n\nThis project uses [bumpversion](https://pypi.org/project/bumpversion/) to\nincrease version numbers.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/tue-umphy/co2mofetten/python3-sensemapi", "keywords": "opensensemap,sensemap,api", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "sensemapi", "package_url": "https://pypi.org/project/sensemapi/", "platform": "", "project_url": "https://pypi.org/project/sensemapi/", "project_urls": { "Homepage": "https://gitlab.com/tue-umphy/co2mofetten/python3-sensemapi" }, "release_url": "https://pypi.org/project/sensemapi/0.4.0/", "requires_dist": null, "requires_python": "", "summary": "Pythonic access to the OpenSenseMap API", "version": "0.4.0" }, "last_serial": 5624169, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "49d121b8b03f0be1facfeb67921fb7d1", "sha256": "ed76202e9af8be01cfaf3a3824f283eb22e4634ec71c534057e2f8c003ff4115" }, "downloads": -1, "filename": "sensemapi-0.0.1.tar.gz", "has_sig": false, "md5_digest": "49d121b8b03f0be1facfeb67921fb7d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13094, "upload_time": "2018-08-27T12:59:33", "url": "https://files.pythonhosted.org/packages/0d/df/53084cdb7da1e68640d1a83251798b8445fb1213222e9a6c0f2ebd8cfeae/sensemapi-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "5322cf6e9d2b734024d3cceb0e9fdf86", "sha256": "906a12ec68029f3ee52a87a818688ef1ba9567305160e5b758a1d33830aee73f" }, "downloads": -1, "filename": "sensemapi-0.0.10.tar.gz", "has_sig": false, "md5_digest": "5322cf6e9d2b734024d3cceb0e9fdf86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42371, "upload_time": "2018-10-12T14:53:53", "url": "https://files.pythonhosted.org/packages/f7/03/2bc3ebe93282ebe186718cdbb15e4d6a37401442c565531422f1e90c06ab/sensemapi-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "41c4cd3d61a593c5b9f54f1fe1874cc4", "sha256": "42bdad8b199a33b1c08e1d4970d927575568ac8756ee0662aa7802d861f623a0" }, "downloads": -1, "filename": "sensemapi-0.0.11.tar.gz", "has_sig": false, "md5_digest": "41c4cd3d61a593c5b9f54f1fe1874cc4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44899, "upload_time": "2018-11-22T15:51:18", "url": "https://files.pythonhosted.org/packages/3b/5b/081fba65b9bc79c7f617711d8b188676c4b4158492343cc974bca61380cc/sensemapi-0.0.11.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "0e110469fde4fe698ffc4ce1b3b8d9ff", "sha256": "7290bbb58677c8fa502acc5fffcc68709c250c884b1ef0f054e0058facc335bf" }, "downloads": -1, "filename": "sensemapi-0.0.2.tar.gz", "has_sig": false, "md5_digest": "0e110469fde4fe698ffc4ce1b3b8d9ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13118, "upload_time": "2018-08-27T13:11:26", "url": "https://files.pythonhosted.org/packages/bd/58/67e7131b15b16628bb5f5756903bd0d4ce85056b9c39f1cfde188565ddac/sensemapi-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "416e973c0150e3c61e6b2e8b03b8239e", "sha256": "31fb385da3b8b875fdb2c2ef4afcc2cb00248182a1ca70bc5f83e20989ee6a04" }, "downloads": -1, "filename": "sensemapi-0.0.3.tar.gz", "has_sig": false, "md5_digest": "416e973c0150e3c61e6b2e8b03b8239e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15052, "upload_time": "2018-08-28T11:46:32", "url": "https://files.pythonhosted.org/packages/81/21/bb22e1afe2f58e8f16dba9f927606102f84cd116aabc355259e41b8007f5/sensemapi-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "c198125871f38c2616b421341230b6e1", "sha256": "fa8438b4f50fdae9dcc041c938c6dc0e55e3a0e9e65f78d12f11fac05a9716ae" }, "downloads": -1, "filename": "sensemapi-0.0.4.tar.gz", "has_sig": false, "md5_digest": "c198125871f38c2616b421341230b6e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16992, "upload_time": "2018-08-29T13:24:04", "url": "https://files.pythonhosted.org/packages/81/e1/987a91307f4eb43bf8df5232423821c8403ba71069746e2712a295394c0a/sensemapi-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "94ba0a58af4a8e6d8af291440cf16545", "sha256": "eb9c888f5d026749ce2222589232c4f9ea7c958ff7b4697e36e4ea294edc39c6" }, "downloads": -1, "filename": "sensemapi-0.0.5.tar.gz", "has_sig": false, "md5_digest": "94ba0a58af4a8e6d8af291440cf16545", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17534, "upload_time": "2018-09-15T13:58:27", "url": "https://files.pythonhosted.org/packages/e1/65/b6431bda3d27135359b638baa8eb2a4a826d1f99108b239214d0ab95d820/sensemapi-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "c9e59d851db2e51eccd876ceab9f542b", "sha256": "47dd2996756ba3bdf22129896a2f48d819877b9ff936e287084afc8d2e49fb69" }, "downloads": -1, "filename": "sensemapi-0.0.6.tar.gz", "has_sig": false, "md5_digest": "c9e59d851db2e51eccd876ceab9f542b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32515, "upload_time": "2018-09-19T10:59:38", "url": "https://files.pythonhosted.org/packages/94/47/fc3a85b932842404487aabbd5c025694677db71c3b1c415e073331385dc3/sensemapi-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "31c75d7e0130ed8c5135d784a87c0c41", "sha256": "0f9459a3a42cecc4ffde0f6f5bf173cc94d03970e2c241042d0cc1d3d5054210" }, "downloads": -1, "filename": "sensemapi-0.0.7.tar.gz", "has_sig": false, "md5_digest": "31c75d7e0130ed8c5135d784a87c0c41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39245, "upload_time": "2018-09-28T14:44:07", "url": "https://files.pythonhosted.org/packages/e2/98/584ac875fb6ebe86f7a26fa7a2693b557b5a31e91feaeafb08f83c779641/sensemapi-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "7d7906777548f1f1edf8671cd0772467", "sha256": "cfe386f06f1189eacb50a705af1f4ec26b6745df675562b489a3099fe199ac42" }, "downloads": -1, "filename": "sensemapi-0.0.8.tar.gz", "has_sig": false, "md5_digest": "7d7906777548f1f1edf8671cd0772467", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42146, "upload_time": "2018-10-10T16:11:53", "url": "https://files.pythonhosted.org/packages/5b/15/e99e2dbe85e91f2b6ce40cabc39de8a45ceb16c43be2c466e60caead9b57/sensemapi-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "b7db939e1fd174d6d57dd5d67c1abc92", "sha256": "ea531535227d0fd6b394ebb675a0f8af859074e60a2c0a910d7918b4acf39684" }, "downloads": -1, "filename": "sensemapi-0.0.9.tar.gz", "has_sig": false, "md5_digest": "b7db939e1fd174d6d57dd5d67c1abc92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42347, "upload_time": "2018-10-11T15:33:23", "url": "https://files.pythonhosted.org/packages/df/e6/44f9a76f1d678bf1e6336d61ca18e120300cc7e2cfca7527865343e1cbb4/sensemapi-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "7bb6de9b0de081bddf9921135bd88c05", "sha256": "76333cd2dd2a776055efb34fcaf4394c241f77c44b7e3a85b257ea4de90ec235" }, "downloads": -1, "filename": "sensemapi-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7bb6de9b0de081bddf9921135bd88c05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44938, "upload_time": "2019-02-21T13:31:50", "url": "https://files.pythonhosted.org/packages/33/54/1611e1b1c61811cc20a6caee8c344f6007d430bf8ca7a3fee520878074b3/sensemapi-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a828e63f26df71f5946ab2a570941417", "sha256": "022f2f53ff5168a39f7ef5035ed458e78860baa1116befda06c17377421b7ac3" }, "downloads": -1, "filename": "sensemapi-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a828e63f26df71f5946ab2a570941417", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45003, "upload_time": "2019-03-25T17:50:23", "url": "https://files.pythonhosted.org/packages/fe/62/d6b990d0cfe496ef635e319da6a90aab14cba925f35907dfa97254304474/sensemapi-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d2fffbb62647b4ce654b1b692a0014a3", "sha256": "d079b4e9f8e1cdb0721f8f0aadcd7a05190aa2e05aaa96dd9236e8fbd1d025c0" }, "downloads": -1, "filename": "sensemapi-0.1.2.tar.gz", "has_sig": false, "md5_digest": "d2fffbb62647b4ce654b1b692a0014a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44421, "upload_time": "2019-03-26T15:07:06", "url": "https://files.pythonhosted.org/packages/07/0b/e35f99da9b70bb0a557e7c28dcf3118d285344a78b77e01555955561f1b0/sensemapi-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b1ced8b726509473752338e4f7be9319", "sha256": "07afba714e7d5ba582079a09c3dad9d522faf9d8766a200854d6ad91e99c86cf" }, "downloads": -1, "filename": "sensemapi-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b1ced8b726509473752338e4f7be9319", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44559, "upload_time": "2019-07-23T17:13:14", "url": "https://files.pythonhosted.org/packages/4b/c9/2521d009a7662b299c69bda1b5a8acd029a9584169cd089dc2b89a2f2f3e/sensemapi-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "a013128bc8c6a5d67b27e2128b95b5e0", "sha256": "bb230b223ec5ef37f9a3aefc8e01de0a73a7bc7bb752069f71c6c92ccd59e0cb" }, "downloads": -1, "filename": "sensemapi-0.3.0.tar.gz", "has_sig": false, "md5_digest": "a013128bc8c6a5d67b27e2128b95b5e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44555, "upload_time": "2019-07-27T21:38:14", "url": "https://files.pythonhosted.org/packages/4e/3b/3f58b4aa286373639bd016f3274f7f9d24eb09349e5a50d1124995e4e8cf/sensemapi-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "6a29a9bd26b3cc478a435b168a645517", "sha256": "50f5fc7da5cbc5ed11e037de9cb5cd1a7029f78809b31c949146c19dddccce54" }, "downloads": -1, "filename": "sensemapi-0.4.0.tar.gz", "has_sig": false, "md5_digest": "6a29a9bd26b3cc478a435b168a645517", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44542, "upload_time": "2019-08-02T13:14:04", "url": "https://files.pythonhosted.org/packages/54/36/058e2711fcfd8086df51eef750e49d56ae0e71f6cda0f2c28a0bfc665a70/sensemapi-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6a29a9bd26b3cc478a435b168a645517", "sha256": "50f5fc7da5cbc5ed11e037de9cb5cd1a7029f78809b31c949146c19dddccce54" }, "downloads": -1, "filename": "sensemapi-0.4.0.tar.gz", "has_sig": false, "md5_digest": "6a29a9bd26b3cc478a435b168a645517", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44542, "upload_time": "2019-08-02T13:14:04", "url": "https://files.pythonhosted.org/packages/54/36/058e2711fcfd8086df51eef750e49d56ae0e71f6cda0f2c28a0bfc665a70/sensemapi-0.4.0.tar.gz" } ] }