{ "info": { "author": "Patrick Fuller", "author_email": "pat@numat-tech.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Natural Language :: English", "Programming Language :: Python", "Topic :: Scientific/Engineering :: Human Machine Interfaces" ], "description": "tripplite\n=========\n\nPython USB interface and command-line tool for TrippLite UPS battery backups.\n\n![](https://www.markertek.com/productImage/450X450/SMART1500LCD.JPG)\n\nBackground\n==========\n\nTrippLite offers [UI software](https://www.tripplite.com/products/power-alert)\nfor monitoring its batteries. However, most of its batteries don't have\nnetwork access, and the existing TrippLite software requires a local install.\n\nI wanted to monitor the UPS from a remote headless Linux server, so I wrote\nthis tool.\n\nInstallation\n============\n\n```\napt install gcc libusb-1.0-0-dev libudev-dev\npip install tripplite\n```\n\nConnect a USB cable from the UPS to your headless server, and you should be\nready to run. If you don't want to run as root, see *Note on Permissions*\nbelow.\n\nCommand Line\n============\n\n```\n$ tripplite\n{\n \"config\": {\n \"frequency\": 60, # Hz\n \"power\": 1500, # VA\n \"voltage\": 120 # V\n },\n \"health\": 100, # %\n \"input\": {\n \"frequency\": 59.7, # Hz\n \"voltage\": 117.2 # V\n },\n \"output\": {\n \"power\": 324, # W\n \"voltage\": 117.2 # V\n },\n \"status\": {\n \"ac present\": true,\n \"below remaining capacity\": true,\n \"charging\": false,\n \"discharging\": false,\n \"fully charged\": true,\n \"fully discharged\": false,\n \"needs replacement\": false,\n \"shutdown imminent\": false\n },\n \"time to empty\": 1004 # s\n}\n```\n\nIf you have multiple TrippLite devices connected to the server, you'll need to\nspecify a product id (findable on `lsusb`). See `tripplite --help` for more.\n\nTo use in shell scripts, parse the json output with something like\n[jq](https://stedolan.github.io/jq/). For example,\n`tripplite | jq '.status.\"ac present\"'` will return whether or not the unit\ndetects AC power.\n\nPython\n======\n\nIf you'd like to link this to more complex behavior (e.g. data logging,\ntext alerts), consider using a Python script.\n\n```python\nfrom tripplite import Battery\nwith Battery() as battery:\n print(battery.get())\n```\n\nThe `state` variable will contain an object with the same format as above. Use\n`state['status']['ac present']` and `state['status']['shutdown imminent']` for\nalerts, and consider logging voltage, frequency, and power.\n\nNote on Permissions\n===================\n\nTo read the TrippLite, you need access to the USB port. You have options:\n\n * Run everything as root\n * Add your user to the `dialout` group to access *all* serial ports\n * Create a group restricted to accessing TrippLite USB devices through `udev`\n\nFor the last option, the rule looks like:\n\n```\necho 'SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"09ae\", GROUP=\"tripplite\"' > /etc/udev/rules.d/tripplite.rules\nudevadm control --reload-rules\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/numat/tripplite/", "keywords": "", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "tripplite", "package_url": "https://pypi.org/project/tripplite/", "platform": "", "project_url": "https://pypi.org/project/tripplite/", "project_urls": { "Homepage": "http://github.com/numat/tripplite/" }, "release_url": "https://pypi.org/project/tripplite/0.2.3/", "requires_dist": [ "hidapi" ], "requires_python": "", "summary": "Python driver for TrippLite UPS battery backups.", "version": "0.2.3" }, "last_serial": 4798319, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8e08bb3e0f1512ede46a1e0e3566de1d", "sha256": "4b2af8acfcc4ad5a05bd74d33456279220f8a19b0c09f566c8f955a8593a7992" }, "downloads": -1, "filename": "tripplite-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8e08bb3e0f1512ede46a1e0e3566de1d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4418, "upload_time": "2018-01-25T23:07:57", "url": "https://files.pythonhosted.org/packages/a3/6d/5df200ca483ea7d10f550e6d13497b6846b88c0fd5b2ba5178bcf229980a/tripplite-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "87a21af0a78de58dc80957f95e8ff37c", "sha256": "0e38f48239133d98e41f3c349629482b8f7bc1aeabfcc5d1858cd0e7dc0c4dee" }, "downloads": -1, "filename": "tripplite-0.1.0.tar.gz", "has_sig": false, "md5_digest": "87a21af0a78de58dc80957f95e8ff37c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3481, "upload_time": "2018-01-25T23:07:55", "url": "https://files.pythonhosted.org/packages/09/e1/b593d5bb9483b87a38ac32c23a6bcf170c13520ba2ffc35c83f4e22f2c13/tripplite-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c831973ea23c667435359ddbf0c26608", "sha256": "f981329fe89c491aa2544bd08eeb5f1c2a192808e933bc25bbe1b2082b309e2f" }, "downloads": -1, "filename": "tripplite-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c831973ea23c667435359ddbf0c26608", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4426, "upload_time": "2018-01-31T15:27:02", "url": "https://files.pythonhosted.org/packages/28/26/3b495394def380d8de85be0b1c0b1a7ad7c4f127075768a90e71f98c23fa/tripplite-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52120d811e0e2e2b80cf177bf7e0c1f6", "sha256": "99266e21828413b885f3eb366190ab146f1d8e18af4f72c63624733a0c407f00" }, "downloads": -1, "filename": "tripplite-0.1.1.tar.gz", "has_sig": false, "md5_digest": "52120d811e0e2e2b80cf177bf7e0c1f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3483, "upload_time": "2018-01-31T15:27:00", "url": "https://files.pythonhosted.org/packages/26/fe/fa495f0d78d036b0cc3c4aee945c9aa09ac5f5c9e48a47d0d4be0afa70a6/tripplite-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "91bfacbe821b6469aa7b9233fadc6747", "sha256": "0d41429a65115d15fa9006cafa5bb55bc41fce29956fe724af8f77af5ec75479" }, "downloads": -1, "filename": "tripplite-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "91bfacbe821b6469aa7b9233fadc6747", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4491, "upload_time": "2018-01-31T20:39:29", "url": "https://files.pythonhosted.org/packages/24/d9/8305acdbcf5e3e92d9c30b35e10c19bea484de2b4379921f6d154cb618f5/tripplite-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be67839eac88d93758204f7306e04ffc", "sha256": "593224adf26c23bae099a98cbfb0e3d56f638f79bf130183c00dabd9c962304c" }, "downloads": -1, "filename": "tripplite-0.2.0.tar.gz", "has_sig": false, "md5_digest": "be67839eac88d93758204f7306e04ffc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3890, "upload_time": "2018-01-31T20:39:26", "url": "https://files.pythonhosted.org/packages/18/a5/2080c0c93f2f80571f991bb4d705c6a710a03d76c89f84c507c1f3eab6d9/tripplite-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "9e053c0a482170e1b218137ae8938b32", "sha256": "38e74167618d2d0754aad06b1ff006b0a541cb928f58276a43d3555461694324" }, "downloads": -1, "filename": "tripplite-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9e053c0a482170e1b218137ae8938b32", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4509, "upload_time": "2018-02-13T02:59:30", "url": "https://files.pythonhosted.org/packages/72/ac/37f5d5470c49309e6a8c3fd55bfdd00e09bab0d4ff3892ae8e6344027028/tripplite-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0390117c0440e181e592535925d9d3a0", "sha256": "a0b409e42151de7bed57fe6946546aa1a6cee72363840d7f7ce68820c15ce0ef" }, "downloads": -1, "filename": "tripplite-0.2.1.tar.gz", "has_sig": false, "md5_digest": "0390117c0440e181e592535925d9d3a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3919, "upload_time": "2018-02-13T02:59:27", "url": "https://files.pythonhosted.org/packages/a1/b0/25340d9aa8e200b7a3a786ac8b4de3e2172f12e6beff6a4de9c5c008771f/tripplite-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "8879f1f99c8ced45aa408261c379cf0d", "sha256": "a569081cb5378145afde514f65b970c5bec4b5749196b15eac501b16e4a4d753" }, "downloads": -1, "filename": "tripplite-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8879f1f99c8ced45aa408261c379cf0d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4542, "upload_time": "2018-02-13T03:03:36", "url": "https://files.pythonhosted.org/packages/6c/87/76378f8a11be2e358d282adc1548802e454560d96c552d9160ed1c021920/tripplite-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9534a60018dc174771cc12c265b3ca0a", "sha256": "f5511f9a48425c2ef29f0e19e16c27bd4ca6149ce25f4f9d3a24a5b550fdff6e" }, "downloads": -1, "filename": "tripplite-0.2.2.tar.gz", "has_sig": false, "md5_digest": "9534a60018dc174771cc12c265b3ca0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3942, "upload_time": "2018-02-13T03:03:34", "url": "https://files.pythonhosted.org/packages/20/37/1aca8c0c9fb2b1cc0e5c073fc68842fdc6eb7c1e31eb2d16ee6917300ccb/tripplite-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "e7d6024e3e2370cdaf08b869390e9377", "sha256": "903fa35e2bc8d9357eebf39678bed9930886bfed74a9bbb5af9f21bf785f0c94" }, "downloads": -1, "filename": "tripplite-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e7d6024e3e2370cdaf08b869390e9377", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11870, "upload_time": "2019-02-09T03:35:33", "url": "https://files.pythonhosted.org/packages/81/0d/77b71aa871e063c3c5fd7e0bd7fa9798f67b6df6ad7411e8995884d1c339/tripplite-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9446480126e18b58412c396ccfb1f2c", "sha256": "72bbabe0dcf5afa76f18e5e7884e13bc1417720e3ddf9d80130d32a8e5298878" }, "downloads": -1, "filename": "tripplite-0.2.3.tar.gz", "has_sig": false, "md5_digest": "c9446480126e18b58412c396ccfb1f2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4369, "upload_time": "2019-02-09T03:35:37", "url": "https://files.pythonhosted.org/packages/1e/0c/535803da6f5df37a856fb36831b80e8f79778ace445ad9f8b87107e8eabc/tripplite-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e7d6024e3e2370cdaf08b869390e9377", "sha256": "903fa35e2bc8d9357eebf39678bed9930886bfed74a9bbb5af9f21bf785f0c94" }, "downloads": -1, "filename": "tripplite-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e7d6024e3e2370cdaf08b869390e9377", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11870, "upload_time": "2019-02-09T03:35:33", "url": "https://files.pythonhosted.org/packages/81/0d/77b71aa871e063c3c5fd7e0bd7fa9798f67b6df6ad7411e8995884d1c339/tripplite-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9446480126e18b58412c396ccfb1f2c", "sha256": "72bbabe0dcf5afa76f18e5e7884e13bc1417720e3ddf9d80130d32a8e5298878" }, "downloads": -1, "filename": "tripplite-0.2.3.tar.gz", "has_sig": false, "md5_digest": "c9446480126e18b58412c396ccfb1f2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4369, "upload_time": "2019-02-09T03:35:37", "url": "https://files.pythonhosted.org/packages/1e/0c/535803da6f5df37a856fb36831b80e8f79778ace445ad9f8b87107e8eabc/tripplite-0.2.3.tar.gz" } ] }