{ "info": { "author": "Erik Eriksson", "author_email": "error.errorsson@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "[![Build Status](https://travis-ci.org/molobrakos/tellsticknet.svg?branch=master)](https://travis-ci.org/molobrakos/tellsticknet)\n\nInterface with a Tellstick Net device on the local network bypassing the Telldus Live cloud service (events are still passed through the Telldus Live cloud service).\n\nUse cases\n- The Tellstick Net device is on a poor connection, such as a mobile broadband subscription in the summer house\n- Archival of sensor readings\n- Faster sensor updates than from the Telldus live service\n- Instant updates for sensors such as door sensors.\n\nThere is no support for local access to Tellstick Net in the [telldus-core][1] or [tellcore][2] libraries. This Python implementation tries to fill the gap. Unfortunately, the [Protocol::decodeData method][3] is not exposed in the telldus-core library, so the protocol parsing is reimplemented in Python.\n \n[1]: https://github.com/telldus/telldus/search?utf8=%E2%9C%93&q=TELLSTICK_CONTROLLER_TELLSTICK_NET\n[2]: https://github.com/erijo/tellcore-py\n[3]: https://github.com/telldus/telldus/blob/master/telldus-core/service/Protocol.cpp#L216\n\nExamples:\n\nDiscovery\n```bash\n> ./script/discover # (or python3 -m tellsticknet.discover)\n[('192.168.1.106', ['TellStickNet', '', '', '17'])]\n```\n\nListen for received packets and print parsed values\n```bash\n> ./script/listen 2>/dev/null # or python3 -m tellsticknet\n{'model': 'temperaturehumidity', 'data': {'humidity': 31, 'temp': 18.1}, 'lastUpdated': 1459502928, 'sensorId': 104, 'protocol': 'mandolyn', 'class': 'sensor'}\n{'model': 'temperaturehumidity', 'data': {'humidity': 34, 'temp': 16.7}, 'lastUpdated': 1459503006, 'sensorId': 135, 'protocol': 'fineoffset', 'class': 'sensor'}\n(...)\n```\n\nListen for raw packets and dump to file\n```bash\n> ./script/listen raw 2>/dev/null | tee packets.log\n2016-04-01T11:39:15 7:RawDatah5:class6:sensor8:protocolA:fineoffset4:datai41B03B4DAAss\n2016-04-01T11:39:17 7:RawDatah5:class6:sensor8:protocol8:mandolyn5:model13:temperaturehumidity4:datai13413986ss\n(...)\n```\n\nParse previously dumped packets\n```bash\n> cat packets.log | ./script/parse\n{\"class\": \"sensor\", \"data\": {\"temp\": 5.9, \"humidity\": 77}, \"model\": \"temperaturehumidity\", \"sensorId\": 27, \"lastUpdated\": 1459503555, \"protocol\": \"fineoffset\"}\n{\"class\": \"sensor\", \"data\": {\"temp\": 7.5, \"humidity\": 65}, \"model\": \"temperaturehumidity\", \"sensorId\": 11, \"lastUpdated\": 1459503557, \"protocol\": \"mandolyn\"}\n(...)\n\n```\nDisplay all sensors\n```bash\n> cat packets.log | ./script/parse | jq \".sensorId\" | sort -n | uniq\n11\n27\n135\n(...)\n```\n\nExport temperature readings as csv\n```bash\n> cat packets.log | ./script/parse | jq '[.sensorId, .lastUpdated, .data[\"temp\"]] | @csv'\n\"136,1459504835,3.6\"\n\"104,1459504848,18.6\"\n(...)\n```\n\nArchive all packets, one file per day\n```bash\n> ./script/dump | tee >(cronolog packets.%Y-%m-%d.log)\n```\n\nStart MQTT gateway, forwarding all sensor readings to a MQTT server (where Home Assistant can be a subscriber), also receive any commands from the server (e.g. from Home Assistant)\n```bash\n> ./script/tellsticknet mqtt -vv\n```", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/molobrakos/tellsticknet", "keywords": "tellstick", "license": "?", "maintainer": "", "maintainer_email": "", "name": "tellsticknet", "package_url": "https://pypi.org/project/tellsticknet/", "platform": "", "project_url": "https://pypi.org/project/tellsticknet/", "project_urls": { "Homepage": "https://github.com/molobrakos/tellsticknet" }, "release_url": "https://pypi.org/project/tellsticknet/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "Listen for UDP sensor broadcasts from a Tellstick", "version": "0.1.2" }, "last_serial": 4694282, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "41449ace98568d93eba7964414c173a0", "sha256": "0b9ad402da91c99bb2b84c81cada48ad115e678be9f7404ea3a8e745b6c54f3f" }, "downloads": -1, "filename": "tellsticknet-0.1.1.tar.gz", "has_sig": false, "md5_digest": "41449ace98568d93eba7964414c173a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13049, "upload_time": "2018-03-29T18:12:42", "url": "https://files.pythonhosted.org/packages/05/44/91eb2764882a0b91285aaf65e157800a618838e0a3737dfcf6efbe631ecf/tellsticknet-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "4446be33d96effdf97d7a3ae90916396", "sha256": "b7ba014efc6f5c2f87f9aaf7c3234f61ee58840269434e29e1bec59015cee0c8" }, "downloads": -1, "filename": "tellsticknet-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4446be33d96effdf97d7a3ae90916396", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19994, "upload_time": "2019-01-14T13:58:59", "url": "https://files.pythonhosted.org/packages/4f/75/c25cc4a909aec438df135f96a6471b0582f27431a21c0273fa2ceb40400a/tellsticknet-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4446be33d96effdf97d7a3ae90916396", "sha256": "b7ba014efc6f5c2f87f9aaf7c3234f61ee58840269434e29e1bec59015cee0c8" }, "downloads": -1, "filename": "tellsticknet-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4446be33d96effdf97d7a3ae90916396", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19994, "upload_time": "2019-01-14T13:58:59", "url": "https://files.pythonhosted.org/packages/4f/75/c25cc4a909aec438df135f96a6471b0582f27431a21c0273fa2ceb40400a/tellsticknet-0.1.2.tar.gz" } ] }