{ "info": { "author": "Ardexa Pty Limited", "author_email": "support@ardexa.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "# Purpose\nSunspec Alliance (https://sunspec.org/) is a trade alliance of more than 100 solar and storage distributed energy industry participants, together pursuing information standards to enable \u201cplug & play\u201d system interoperability. SunSpec standards address operational aspects of solar PV power and energy storage plants on the smart grid\u2014including residential, commercial, and utility-scale systems\u2014thus reducing cost, promoting technology innovation, and accelerating industry growth.\n\n# How does it work\nThis application is written in Python, to query Sunspec compatible devices connected via Ethernet or RS485. This application will query 1 or more connected devices at regular intervals. Data will be written to log files on disk in a directory specified by the user. Usage and command line parameters are as follows:\n\n## Install\nOn a raspberry Pi, or other Linux machines (arm, intel, mips or whetever), make sure Python is installed (which it should be). Then install the dependancies and this package as follows:\n```\ngit clone --recursive https://github.com/sunspec/pysunspec.git\ncd pysunspec\nsudo python setup.py install\nsudo pip install sunspec_ardexa\n```\n\n## Usage\nTo scan the whole (1-255) or part of the Sunspec address range and print out the device metadata, do the following\nNote that the `port` default is `502` if not specified, and `baud` default is `115200` if not specified. Here are is the usage and some examples:\n```\nUsage: sunspec_ardexa discover IP_address/Device_Node Bus_Addresses\nExample 1: sunspec_ardexa discover 192.168.1.3 1-5\nExample 2: sunspec_ardexa discover 192.168.1.3 1,3-5 --port=502\nExample 3: sunspec_ardexa discover /dev/ttyUSB0 1,3,5 --baud 115200\nExample 4: sunspec_ardexa discover /dev/ttyUSB0 1\n```\n\nTo send production data to a file on disk \n```\nUsage: sunspec_ardexa log IP_address/Device_Node Bus_Addresses Output_directory\nExample 1: sunspec_ardexa log 192.168.1.3 1-5 /opt/ardexa\nExample 2: sunspec_ardexa log 192.168.1.3 1,3-5 /opt/ardexa --port=502\nExample 3: sunspec_ardexa log /dev/ttyUSB0 1,3,5 /opt/ardexa --baud 115200\nExample 4: sunspec_ardexa log /dev/ttyUSB0 1 /opt/ardexa\n```\n\n- IP_address/Device_Node = ..something like: `192.168.1.4` or `/dev/ttyUSB0`\n- Bus_Addresses = List of bus addresses using commas and hyphens, e.g. `1-4,6,10-20` (this is an RS485 address, NOT Ethernet). \n- Output_directory = logging directory; eg; /opt/ardexa. The data will be written to subdirectories, and the latest data is stored in a `latest.csv`. All data is kept for historical purposes. \n- To view debug output, increase the verbosity using the `-v` flag. Standard (no messages, except errors), `-v` (discovery messages) or `-vv` (all messages)\n\n## Sunspec devices\nIn this project, please take a look at the 'docs' directory. This is a document from Sunspec that details their specification (not subject to change). Ardexa currently collecs `inverter` and `storage` types. However the `discover` will show all devices.\n- `Inverter` types collected are Sunspec Models `101`, `103` and `113`. \n- `Storage` type collected are Sunspec Model `124`. \n- `Strings` type collected are Sunspec Model `160`. \n- `String Combiner` type collected are Sunspec Model `403`. \n\n## Inverter Types:\n- Delta Inverters use 19200 baud by default\n- Solaredge Inverters use 115200 baud by default\n\n## Collecting to the Ardexa cloud\nCollecting to the Ardexa cloud is free for up to 3 Raspberry Pis (or equivalent). Ardexa provides free agents for ARM, Intel x86 and MIPS based processors. To collect the data to the Ardexa cloud do the following:\n- Create a `RUN` scenario to schedule the Ardexa Sunspec script to run at regular intervals (say every 300 seconds/5 minutes).\n- Then use a `CAPTURE` scenario to collect the csv (comma separated) data from the filename `latest.csv` in `/opt/ardexa/...`. \n- The `Docs` directory contains a sample of the mapping and Ardexa yaml file.\n\n## Help\nContact Ardexa at support@ardexa.com, and we'll do our best efforts to help.\n\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/ardexa/sunspec-inverters", "keywords": "sunspec solar inverter ardexa", "license": "", "maintainer": "", "maintainer_email": "", "name": "sunspec-ardexa", "package_url": "https://pypi.org/project/sunspec-ardexa/", "platform": "", "project_url": "https://pypi.org/project/sunspec-ardexa/", "project_urls": { "Bug Reports": "https://github.com/ardexa/sunspec-inverters/issues", "Homepage": "https://github.com/ardexa/sunspec-inverters", "Source": "https://github.com/ardexa/sunspec-inverters/" }, "release_url": "https://pypi.org/project/sunspec-ardexa/1.3.10/", "requires_dist": [ "Click", "ardexaplugin", "future" ], "requires_python": ">=2.7", "summary": "Collect from Sunspec Inverters and send the data to your cloud using Ardexa", "version": "1.3.10" }, "last_serial": 5998829, "releases": { "1.3.10": [ { "comment_text": "", "digests": { "md5": "1cc84d72363fedb43e4b9eb66da0995f", "sha256": "41b01783461710e893816a0b019c4a2c0e64e1ec5acb39d9afea82f3dea05721" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1cc84d72363fedb43e4b9eb66da0995f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 11003, "upload_time": "2019-10-19T05:38:27", "url": "https://files.pythonhosted.org/packages/30/a7/96972fafe34bdaff4e554872fcd3b269efb553c6f5d85ca4af93b5af6155/sunspec_ardexa-1.3.10-py2.py3-none-any.whl" } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "5d23b16ed71143c7516b0f5b95621b6c", "sha256": "0443b690b0d152b1d0809902b87b4bc41030ae90ff339b437fdfaaa903366dc5" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5d23b16ed71143c7516b0f5b95621b6c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 9830, "upload_time": "2018-08-21T01:53:42", "url": "https://files.pythonhosted.org/packages/61/9b/de29a39bb2208dccf86ad636e96e718aeed8a944acc0c7a911646b475a01/sunspec_ardexa-1.3.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "643b63037ec991eee5bba463b77b6c60", "sha256": "c01124d6ed8d23543dee9e13ff8521c14152ef53517b0d173243a60cddead577" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.4.tar.gz", "has_sig": false, "md5_digest": "643b63037ec991eee5bba463b77b6c60", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 7357, "upload_time": "2018-08-21T01:53:44", "url": "https://files.pythonhosted.org/packages/a1/6f/d152bda3bbe9f9687d4d14f612bc376fe7f587ea89288083c14385bb1d52/sunspec_ardexa-1.3.4.tar.gz" } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "2cfc9e42bac61a181555d1acde4ffdc7", "sha256": "c3997bcd3b51c4d7e20a9d6f7e69fbd858a2056650a5ef44f370c773c6f600ac" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2cfc9e42bac61a181555d1acde4ffdc7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 10323, "upload_time": "2018-08-23T05:16:23", "url": "https://files.pythonhosted.org/packages/29/25/9e046c33b50419774513c1fef0cd101ab9569c9b406724e98867d577662f/sunspec_ardexa-1.3.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c801dc3a0c2004c066396ee49dd2a9cc", "sha256": "23c51108b0d1f3168bd9b2d95a92f1a94c475ecdce0be9a344142d60f40ec259" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.5.tar.gz", "has_sig": false, "md5_digest": "c801dc3a0c2004c066396ee49dd2a9cc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 7830, "upload_time": "2018-08-23T05:16:25", "url": "https://files.pythonhosted.org/packages/ae/64/31c1f1a7be28076ba249caefc860d6da7df638d491da3e412e58637d1ae1/sunspec_ardexa-1.3.5.tar.gz" } ], "1.3.6": [ { "comment_text": "", "digests": { "md5": "ade60dfd583df9e7536a19554e87aadc", "sha256": "3d431aab5757b20b9f6b70928cebf8456d08399426630322f922c126c5442b16" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ade60dfd583df9e7536a19554e87aadc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 10554, "upload_time": "2018-09-05T04:51:13", "url": "https://files.pythonhosted.org/packages/36/25/ebc8acd1a713bb6027b1f3c4ba0846f2b99856b1ab41bc490b6e34750d2a/sunspec_ardexa-1.3.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5e03daae62a0d58e304f3ddad66f9ed", "sha256": "9815ae4a661b3273fbc366acf7e3874921f48fe20ed7c4e21368e053b9f0fb7e" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.6.tar.gz", "has_sig": false, "md5_digest": "a5e03daae62a0d58e304f3ddad66f9ed", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 8012, "upload_time": "2018-09-05T04:51:15", "url": "https://files.pythonhosted.org/packages/fc/9d/2dd2dd7f4c69fda0a1de58fcd889a43aea42f6bf2c1955970d7d946011a4/sunspec_ardexa-1.3.6.tar.gz" } ], "1.3.7": [ { "comment_text": "", "digests": { "md5": "b9535195fa23dff8e402ce717d69c7c4", "sha256": "bec5caafad5d85d04cc4dbf15f0eb6d75fb002158652d17564d001733b3602ee" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9535195fa23dff8e402ce717d69c7c4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 10571, "upload_time": "2018-10-30T00:32:36", "url": "https://files.pythonhosted.org/packages/c4/b5/3a6c03f68fcbd6629de2e9ca2ad0a3e086bcff25cc6ce08db83d25c944ee/sunspec_ardexa-1.3.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6582052a008ab71ed8a8e7403c793cd", "sha256": "7e9aed05fa1aaaae003f735f4966c4224710faff96b95c751cb2fa0bdd5d2c09" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.7.tar.gz", "has_sig": false, "md5_digest": "a6582052a008ab71ed8a8e7403c793cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 7999, "upload_time": "2018-10-30T00:32:38", "url": "https://files.pythonhosted.org/packages/43/91/1e33e97ca210b52480f9bb40d19c3d5b670804c2f82600d30f0c8dc99b2f/sunspec_ardexa-1.3.7.tar.gz" } ], "1.3.8": [ { "comment_text": "", "digests": { "md5": "79a1228f11a2dcd144fa1c609ac84043", "sha256": "e9873bfd7d4765e87a271078fe74932d7d4d01806c925d3892d13f60a6de0422" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "79a1228f11a2dcd144fa1c609ac84043", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 7923, "upload_time": "2018-12-04T21:02:07", "url": "https://files.pythonhosted.org/packages/ac/12/f74eee3791a7231ac55fde0e0bd9896541b3273893812712376c290a3fb2/sunspec_ardexa-1.3.8-py2.py3-none-any.whl" } ], "1.3.9": [ { "comment_text": "", "digests": { "md5": "0b9d48081b2f134c5df8e9fcf59492d0", "sha256": "92aa3c576db34c99784b2b95be3fe338d3fed12ce45fe68d325f4feb436e4253" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b9d48081b2f134c5df8e9fcf59492d0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 10773, "upload_time": "2019-04-30T23:52:41", "url": "https://files.pythonhosted.org/packages/46/02/b63c6e12298aaca79138201d1f2a894df6c6377913bcf92dc8a263ff9d85/sunspec_ardexa-1.3.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ffc2012090555ee124190a7be9864e0", "sha256": "3f431cd96fe83aca779d80c0030443e0067d25a5f07fb52f52f49c13a05ef36d" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.9.tar.gz", "has_sig": false, "md5_digest": "7ffc2012090555ee124190a7be9864e0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 8244, "upload_time": "2019-04-30T23:52:43", "url": "https://files.pythonhosted.org/packages/ad/13/fc1548ce3e4ea67ae5eaeb48ff2666ba8a450e0de289750caccc8745c610/sunspec_ardexa-1.3.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1cc84d72363fedb43e4b9eb66da0995f", "sha256": "41b01783461710e893816a0b019c4a2c0e64e1ec5acb39d9afea82f3dea05721" }, "downloads": -1, "filename": "sunspec_ardexa-1.3.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1cc84d72363fedb43e4b9eb66da0995f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7", "size": 11003, "upload_time": "2019-10-19T05:38:27", "url": "https://files.pythonhosted.org/packages/30/a7/96972fafe34bdaff4e554872fcd3b269efb553c6f5d85ca4af93b5af6155/sunspec_ardexa-1.3.10-py2.py3-none-any.whl" } ] }