{ "info": { "author": "EnergieID.be", "author_email": "jan@energieid.be", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering" ], "description": "# Cloogy\nPython client for Cloogy\n\n## See Demo.ipynb for a working Jupyter Notebook\n\n\n# 0. Install cloogy\n\nIn your terminal: `pip3 install cloogy`\n\nor in a python shell or notebook:\n\n```python\nimport pip\npip.main(['install', 'cloogy'])\n```\n\n\n```python\nimport yaml\n\nfrom cloogy import CloogyClient\n```\n\n# 1. Get your credentials\n\nGet your login and password.\n\nIn this example we'll load it from a YAML file.\n\n\n```python\nwith open('credentials.yaml', 'r') as f:\n credentials = yaml.load(f)\n```\n\n\n```python\nlogin = credentials['login']\npassword = credentials['password']\n```\n\n# 2. Create a CloogyClient\n\nIf you supply a login and password, authentication will be handled for you.\n\n\n```python\nclient = CloogyClient(login=login, password=password)\n```\n\n# 3. List your Units\n\n\n```python\nunits = client.get_units()\n```\n\n\n```python\nunits\n```\n\n# 4. Get a specific Unit by ID\n\n\n```python\n# Lets grab the first ID from the list above\nunit_id = units[0]['Id']\nprint(unit_id)\n```\n\n\n```python\nunit = client.get_unit(unit_id=unit_id)\n```\n\n\n```python\nunit\n```\n\n# 5. Find out some stuff about your unit\n\nThe `Unit` class is an extension to the regular python dict. This means it behaves like a normal dict, but adds some extra features.\n\n\n```python\n# Get date and time of the last communication\nunit.get_last_communication_date()\n```\n\n# 6. List all available Tags for your login\n\n\n```python\nclient.get_tags()\n```\n\n# 7. List available Tags for a Unit\n\n\n```python\ntags = unit.get_tags()\n```\n\n\n```python\ntags\n```\n\n\n```python\n[tag['Id'] for tag in tags]\n```\n\n# 8. Get a specific Tag directly\n\n\n```python\ntag_id = tags[0]['Id']\nprint(tag_id)\n```\n\n\n```python\ntag = client.get_tag(tag_id=tag_id)\n```\n\n\n```python\ntag\n```\n\n\n```python\ntag.get_last_communication_date()\n```\n\n# 9. Get consumptions\n\n\n```python\n# pick a start and end time, as POSIX timestamp\n\nimport pandas as pd\nstart = int(pd.Timestamp('20180414').timestamp() * 1000)\nend = int(pd.Timestamp('20180416').timestamp() * 1000)\nprint(start, end)\n```\n\n\n```python\nclient.get_consumptions(\n granularity='hourly', # can be Instant, Hourly, Daily, Monthly, Yearly\n start=start,\n end=end,\n tags=[tag_id], # List of tag Id's\n instants_type=None # How instant measurements should be aggregated. Can be Avg, Max, Min, Stdev. Default is Avg.\n)\n```\n\n# 10. Get consumptions as a DataFrame\n\nFor some easy analysis, methods to get data as a Pandas DataFrame are included\n\nLet's say we want to analyse the active energy consumption, which has TagTypeId 20001\n\n\n```python\ntags = client.get_tags(where='TagTypeId=20001')\ntag_ids = [tag['Id'] for tag in tags]\n\nstart = pd.Timestamp('20180101')\nend = pd.Timestamp('20180417')\n```\n\n\n```python\nclient.get_consumptions_dataframe(granularity='monthly', start=start, end=end, tags=tag_ids)\n```\n\nA flat table like this is nice, but it can contain multiple TagIds, and it has way to many columns we don't need.\n\nWe can also get a table for only the readings:\n\n\n```python\ndf = client.get_readings_dataframe(granularity='monthly', start=start, end=end, tags=tag_ids, metric='Read')\n```\n\n\n```python\ndf\n```\n\n\n```python\n# make a plot!\n\n%matplotlib inline\ndf.plot.bar()\n```\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/energieid/cloogy", "keywords": "cloogy data monitoring api", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "cloogy", "package_url": "https://pypi.org/project/cloogy/", "platform": "", "project_url": "https://pypi.org/project/cloogy/", "project_urls": { "Homepage": "https://github.com/energieid/cloogy" }, "release_url": "https://pypi.org/project/cloogy/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "A python API Client for Cloogy", "version": "0.0.2" }, "last_serial": 4210285, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "7a013a39956abc7ccb44ef877252e2c6", "sha256": "7383fd77a63843855d133dedb2f248f94657f2a735ca44f47997984334eb418f" }, "downloads": -1, "filename": "cloogy-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7a013a39956abc7ccb44ef877252e2c6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7998, "upload_time": "2018-04-17T23:06:39", "url": "https://files.pythonhosted.org/packages/18/d9/394e43faa25115c94445fe8ed1260659ea9fa615828681e5c00365f3e6fd/cloogy-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "214624993a352d3dfc35e21715535861", "sha256": "d7f9b6f26ce7cd08147963efc1dc52cbfa7ed96b7542acf8f174771369de5898" }, "downloads": -1, "filename": "cloogy-0.0.1.tar.gz", "has_sig": false, "md5_digest": "214624993a352d3dfc35e21715535861", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5859, "upload_time": "2018-04-17T23:06:37", "url": "https://files.pythonhosted.org/packages/8e/13/fb2366c2723a0ce5670330926b69e2eace572a8c7285bf922493292bc4aa/cloogy-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "9df7701e2021b98fae9754a7dcd46e23", "sha256": "4a0eb0b6626fc15135a3934ccbf5ae7fbde997cd3bed407661b5ace3831c8b0f" }, "downloads": -1, "filename": "cloogy-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9df7701e2021b98fae9754a7dcd46e23", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8012, "upload_time": "2018-08-27T08:27:10", "url": "https://files.pythonhosted.org/packages/3f/7d/5cd47d04271e3f36572794b87318ffda304030f59c7c1e5ebaf30cd2a030/cloogy-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f32614a4314c971a3de9f7b1189e067", "sha256": "64b5e6535a8e87f7e3be3842e34b25d4fe6624ffb0b68dc278c2ed365a532ffc" }, "downloads": -1, "filename": "cloogy-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8f32614a4314c971a3de9f7b1189e067", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5886, "upload_time": "2018-08-27T08:27:08", "url": "https://files.pythonhosted.org/packages/9d/50/62d68b6c3e39678debc93a30ed4e14fb17c11b550267e68389552a97ed48/cloogy-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9df7701e2021b98fae9754a7dcd46e23", "sha256": "4a0eb0b6626fc15135a3934ccbf5ae7fbde997cd3bed407661b5ace3831c8b0f" }, "downloads": -1, "filename": "cloogy-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9df7701e2021b98fae9754a7dcd46e23", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8012, "upload_time": "2018-08-27T08:27:10", "url": "https://files.pythonhosted.org/packages/3f/7d/5cd47d04271e3f36572794b87318ffda304030f59c7c1e5ebaf30cd2a030/cloogy-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f32614a4314c971a3de9f7b1189e067", "sha256": "64b5e6535a8e87f7e3be3842e34b25d4fe6624ffb0b68dc278c2ed365a532ffc" }, "downloads": -1, "filename": "cloogy-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8f32614a4314c971a3de9f7b1189e067", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5886, "upload_time": "2018-08-27T08:27:08", "url": "https://files.pythonhosted.org/packages/9d/50/62d68b6c3e39678debc93a30ed4e14fb17c11b550267e68389552a97ed48/cloogy-0.0.2.tar.gz" } ] }