{ "info": { "author": "Colin Panisset", "author_email": "github@clabber.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Home Automation" ], "description": "PyRAVEn\n=======\n\n|travis-badge| |pypi-badge|\n\n.. |travis-badge| image:: https://img.shields.io/travis/nonspecialist/pyraven.svg\n :target: https://travis-ci.org/nonspecialist/pyraven\n :alt: Travis build badge for pyraven\n\n.. |pypi-badge| image:: https://img.shields.io/pypi/v/pyraven.svg\n :target: https://pipy.python.org/pypi/pyraven\n :alt: PyPI version badge\n\nSome code to talk to the Rainforest Automation \"Radio Adapter for Viewing\nEnergy\" (RAVEn).\n\nInstallation\n------------\n\nThe easiest way would be ``pip install pyraven``\n\nYou could also install direct from this repository:\n\n#. Clone this repo\n#. In the top-level directory (where this ``README.rst`` is) run\n ``pip install --upgrade .``\n\nSetup\n-----\n\nPrerequisites\n~~~~~~~~~~~~~\n\nYou should have already bound (paired) your USB stick to your smart meter.\n\nBinding/pairing your smart meter\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nUnlike many other devices, the RAVEn doesn't require a specific \"bind\nto the meter\" command to be issued to it. Instead, your energy\nwholesaler or retailer will have to configure your smart meter to bind\nwith the RAVEn stick. Once the meter has been told to bind to the\ndevice, there will usually be a 10-minute window during which you\nsimply have to have the USB stick plugged in and close enough to the\nmeter. The LED will stop flashing, and will turn on solidly once the\nstick is bound.\n\nDifferent retailers and wholesalers will have different methods of\nsetting up a binding. Some I know of are:\n\n* Powercor/Citipower (Melbourne):\n * They have a \"My Energy\" portal that you can sign up for at\n https://customermeterdata.portal.powercor.com.au/customermeterdata/\n (correct as of Jan 2017). Once you've signed up, there's a\n pulldown from your name that allows you to \"Manage my HAN\n devices\", wherein you can bind your RAVEn to the meter.\n* Jemena (Melbourne):\n * Use their portal at https://electricityoutlook.jemena.com.au/ to\n bind your USB device\n* AusNet Services:\n * Use the portal at https://connect.ausnetservices.com.au/webui/\n to bind your device\n* United Energy:\n * they have a *startlingly similar* portal to Jemena, located at\n https://energyeasy.ue.com.au/ that you can use to set up a\n binding\n\nUsage\n-----\n\nThere's a simple CLI, used to assist in the development of the library\nitself. Once your USB stick is set up and bound to your meter, you\ncan use the CLI to monitor the current instantaneous demand reported\nby your meter:\n\n.. code:: shell\n\n localhost$ raven\n {'status': 'Connected', 'shortaddr': '0xd131', 'link_strength': 100, 'extpanid': 1234567890123456L, 'is_connected': True, 'channel': 11, 'description': 'Successfully Joined'}\n {'divisor': 1000, 'summation_delivered': 2220.575, 'raw_summation_received': 0, 'timstamp': '2018-03-27T02:45:45Z', 'raw_summation_delivered': 2220575, 'multiplier': 1, 'summation_received': 0.0}\n {'divisor': 1000, 'summation_delivered': 2220.575, 'raw_summation_received': 0, 'timstamp': '2018-03-27T02:45:45Z', 'raw_summation_delivered': 2220575, 'multiplier': 1, 'summation_received': 0.0}\n {'timestamp': '2018-03-27T02:47:56Z', 'raw_demand': 142, 'multiplier': 1, 'divisor': 1000, 'demand': 0.142}\n ...\n\nand so on.\n\nInstantaneous readings show the current demand, and the summation\nincludes power delivered to the grid (eg from a PV array).\n\nThe frequency of different types of data delivery are set\nby the schedule in the USB stick. By default, they are:\n\n- Instantaneous demand: 8 seconds\n- Summation: 240 seconds\n- Profile data: disabled\n- Scheduled prices: 90 seconds\n- Price: 90 seconds\n- Messages: 120 seconds\n- Time: 900 seconds (reports the current time known to the meter)\n\nHowever, the meter I have has no pricing data (this seems to be common\nin Australia, because wholesalers and retailers are different\nentities, and the retailer applies the pricing based on their own\npeculiar calculations from the raw consumption data) and so the price\nelements are never emitted.\n\nSimilarly, if there are no messages to be consumed, the RAVEn will not\nemit a message element.\n\nIn practice, this means that you'll usually only get the instantaneous\ndemand and summation outputs.\n\nDocumentation\n-------------\n\nThe XML protocol specification can be `downloaded from\nRainforest Automation `__\n\nOther works\n-----------\n\nThere are other open-source projects which cover some of the same\nground. My intents in re-inventing this wheel were to provide a more\ncomplete and standardised Python implementation that could be used as a\nlibrary by others, instead of the fairly implementation-specific versions\nalready out there.\n\n* `Entropy `__\n * Python\n * streams data to plot.ly\n* `python-raven `__\n * Python\n * publishes data to a Mosquitto server (MQTT)\n* `node-raven `__\n * NodeJS\n * publishes to an MQTT server", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nonspecialist/pyraven", "keywords": "usb energy raven smart meter", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "pyraven", "package_url": "https://pypi.org/project/pyraven/", "platform": "", "project_url": "https://pypi.org/project/pyraven/", "project_urls": { "Homepage": "https://github.com/nonspecialist/pyraven" }, "release_url": "https://pypi.org/project/pyraven/0.1.6/", "requires_dist": null, "requires_python": "", "summary": "Interface with the Rainforest Automation RAVEn USB stick", "version": "0.1.6" }, "last_serial": 5944188, "releases": { "0.1.3": [ { "comment_text": "", "digests": { "md5": "6cb134e84f4ca7798bf3db8451fe9939", "sha256": "db5fa399cac40f70e0ed8e11acebfdf54834c614014397de765f910a96a24aaa" }, "downloads": -1, "filename": "pyraven-0.1.3.tar.gz", "has_sig": false, "md5_digest": "6cb134e84f4ca7798bf3db8451fe9939", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7910, "upload_time": "2018-03-27T02:29:18", "url": "https://files.pythonhosted.org/packages/c9/70/cd256e12ac1140183e304865544b2472c435d894dce9ce3d8e73568256f2/pyraven-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "23cdec78ab0f4b4d8fb15f3ec48098dd", "sha256": "e9d030d1f5c406dc24ce9bc712c9f4a971527cb74489f1aad788a3d8091a3e3d" }, "downloads": -1, "filename": "pyraven-0.1.4.tar.gz", "has_sig": false, "md5_digest": "23cdec78ab0f4b4d8fb15f3ec48098dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8411, "upload_time": "2018-03-27T03:12:56", "url": "https://files.pythonhosted.org/packages/9e/a5/109a9fff88c0d28fba469caed215f1c781063ab8b486138ccaac88a90416/pyraven-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "0073cf2ff2faaebe6a1e190db2611d43", "sha256": "597599648d7a0eb322c24af603286cbb7f5854f552c8e7fee8509cc4a182e9a7" }, "downloads": -1, "filename": "pyraven-0.1.5.tar.gz", "has_sig": false, "md5_digest": "0073cf2ff2faaebe6a1e190db2611d43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8457, "upload_time": "2018-03-27T04:57:15", "url": "https://files.pythonhosted.org/packages/c9/51/25d1ae23835da23ac2677268a39013eb13f8be8be297f4033ab44de418e5/pyraven-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "8b72503dc7341f5ce42d1c8db018421f", "sha256": "a2d5f4414770ae209d79feb98a55c485a390f290fb6178185d38a8ca6e326ddd" }, "downloads": -1, "filename": "pyraven-0.1.6.tar.gz", "has_sig": false, "md5_digest": "8b72503dc7341f5ce42d1c8db018421f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8544, "upload_time": "2019-10-08T10:38:08", "url": "https://files.pythonhosted.org/packages/9f/2b/aa4da6827ac20b2caf045efa36c45bf6d073b96e55ae36fa74ad321b1631/pyraven-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8b72503dc7341f5ce42d1c8db018421f", "sha256": "a2d5f4414770ae209d79feb98a55c485a390f290fb6178185d38a8ca6e326ddd" }, "downloads": -1, "filename": "pyraven-0.1.6.tar.gz", "has_sig": false, "md5_digest": "8b72503dc7341f5ce42d1c8db018421f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8544, "upload_time": "2019-10-08T10:38:08", "url": "https://files.pythonhosted.org/packages/9f/2b/aa4da6827ac20b2caf045efa36c45bf6d073b96e55ae36fa74ad321b1631/pyraven-0.1.6.tar.gz" } ] }