{ "info": { "author": "David Bonnes", "author_email": "zxdavb@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "[![CircleCI](https://circleci.com/gh/zxdavb/incomfort-client.svg?style=svg)](https://circleci.com/gh/zxdavb/incomfort-client)\n\n# incomfort-client\n\nPython client library for **Intergas boilers** accesible via a **Lan2RF gateway** by abstracting its HTTP API. It includes a basic CLI to demonstrate how to use the library.\n\nThis library was previously called **intouch-client**, as it is known in the UK as **InTouch**, but in mainland Europe (especially the Netherlands, where is it popular) it is known as **Incomfort**.\n\nIt is written for Python v3.6.7. It is available as a [PyPi package](https://pypi.org/project/incomfort-client/).\n\n### Porting from syncio libraries\nThis library is based upon https://github.com/bwesterb/incomfort, but uses **aiohttp** rather than synchronous I/O (such as **requests** or **httplib**).\n\nWhere possible, it uses uses the same methods and properties as **bwesterb/incomfort**, but with the following differences:\n\n - **`Gateway`** class\n - added kwargs: `username`, `password` (used for newer versions of firmware)\n\n - **`Heater`** class\n - renamed: `is_burning`, `is_failed`, `is_pumping`, `is_tapping`\n - moved: `room_temp`, `setpoint`, `setpoint_override`, `set` to **`Room`** class\n - new/added: `update`, `status`, `rooms`\n\n - **`Room`** class has been added, and some methods moved in from **`Heater`**\n - same name: `room_temp`, `setpoint`\n - renamed: `override`, `set_override`\n - new/added: `status`\n\n### Basic CLI included\nThere is a very basic CLI (this output has been formatted for readability):\n```bash\n(venv) root@hostname:~/$ python inclient.py ${HOSTNAME}\n{\n 'display_code': 126,\n 'display_text': 'standby',\n 'fault_code': 0,\n\n 'is_burning': False,\n 'is_failed': False,\n 'is_pumping': False,\n 'is_tapping': False,\n\n 'heater_temp': 31.22,\n 'tap_temp': 27.91,\n 'pressure': 1.23,\n 'serial_no': '175t23072',\n\n 'nodenr': 200,\n 'rf_message_rssi': 38,\n 'rfstatus_cntr': 0,\n\n 'room_1': {'room_temp': 26.4, 'setpoint': 19.5, 'override': 19.5},\n 'room_2': {'room_temp': None, 'setpoint': None, 'override': 19.0}\n}\n```\n\n### QA/CI via CircleCI\nQA includes comparing JSON from **cURL** with output from this app using **diff** (note the `--raw` switch):\n```bash\n(venv) root@hostname:~/$ curl -X GET http://${HOSTNAME}/data.json?heater=0 | \\\n python -c \"import sys, json; print(json.load(sys.stdin))\" > a.out\n\n(venv) root@hostname:~/$ python inclient.py ${HOSTNAME} --raw > b.out\n\n(venv) root@hostname:~/$ diff a.out b.out\n```\nNewer versions of the gateway require authentication:\n```bash\n(venv) root@hostname:~/$ python inclient.py ${HOSTNAME} -u ${USER} -p ${PASS}\n\n(venv) root@hostname:~/$ curl --user ${USER}:${PASS} -X GET http://${HOSTNAME}/protect/data.json?heater=0\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/zxdavb/incomfort-client/archive/VERSION.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/zxdavb/incomfort-client", "keywords": "intergas,incomfort,intouch,lan2rf", "license": "", "maintainer": "", "maintainer_email": "", "name": "incomfort-client", "package_url": "https://pypi.org/project/incomfort-client/", "platform": "", "project_url": "https://pypi.org/project/incomfort-client/", "project_urls": { "Download": "https://github.com/zxdavb/incomfort-client/archive/VERSION.tar.gz", "Homepage": "https://github.com/zxdavb/incomfort-client" }, "release_url": "https://pypi.org/project/incomfort-client/0.4.4/", "requires_dist": null, "requires_python": "", "summary": "A aiohttp-based client for Intergas InComfort/InTouch Lan2RF systems", "version": "0.4.4", "yanked": false, "yanked_reason": null }, "last_serial": 9729346, "releases": { "0.2.7": [ { "comment_text": "", "digests": { "md5": "a1f87c3575fb83d72084aad4f7422042", "sha256": "b9afb30a9544edb4c07c1f5440953dab5535797c03fdc624557cf8b2c4e43f9d" }, "downloads": -1, "filename": "incomfort-client-0.2.7.tar.gz", "has_sig": false, "md5_digest": "a1f87c3575fb83d72084aad4f7422042", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5476, "upload_time": "2019-05-06T21:14:54", "upload_time_iso_8601": "2019-05-06T21:14:54.747485Z", "url": "https://files.pythonhosted.org/packages/93/64/99b265add5d87238457431bed5225869e5f64fca12189d7043c0d9080d0f/incomfort-client-0.2.7.tar.gz", "yanked": true, "yanked_reason": "dated" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "3d6578e98a77929cb9deefa4d2915e92", "sha256": "4d5856efbd3c2c9b1b6a152e81667b13e5f4f1b250c58d5bc4285a1084f33c5e" }, "downloads": -1, "filename": "incomfort-client-0.2.8.tar.gz", "has_sig": false, "md5_digest": "3d6578e98a77929cb9deefa4d2915e92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5740, "upload_time": "2019-05-07T08:11:50", "upload_time_iso_8601": "2019-05-07T08:11:50.987618Z", "url": "https://files.pythonhosted.org/packages/fd/59/04070178aec2967ac01ea1c51b071213521b776c75c23443946108672c93/incomfort-client-0.2.8.tar.gz", "yanked": true, "yanked_reason": "dated" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "7ce13f975ce92e753cf0cb6b702ff41e", "sha256": "e0f6a95f42a85c77d1473e11e25ded0e612e0d296f1eb96104791a693ec58471" }, "downloads": -1, "filename": "incomfort-client-0.2.9.tar.gz", "has_sig": false, "md5_digest": "7ce13f975ce92e753cf0cb6b702ff41e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5735, "upload_time": "2019-05-12T09:10:06", "upload_time_iso_8601": "2019-05-12T09:10:06.538210Z", "url": "https://files.pythonhosted.org/packages/e1/d0/001ae41f0b282d6ba31a450152c7bc2a99a30705a40ce601fc0a4f55de19/incomfort-client-0.2.9.tar.gz", "yanked": true, "yanked_reason": "dated" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "1caf576e6dbf515ee39b67cb615b6ac8", "sha256": "d39ba4930028231b13663b5129db2cf6087d0021c27a1876bd252fe424176b39" }, "downloads": -1, "filename": "incomfort-client-0.3.0.tar.gz", "has_sig": false, "md5_digest": "1caf576e6dbf515ee39b67cb615b6ac8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5739, "upload_time": "2019-05-12T17:13:45", "upload_time_iso_8601": "2019-05-12T17:13:45.998628Z", "url": "https://files.pythonhosted.org/packages/f2/c8/888f43d840c3d77bbb9691960a7e71ec2df8f9a355014316dbb8e1db09ca/incomfort-client-0.3.0.tar.gz", "yanked": true, "yanked_reason": "dated" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "681589ceb3c59d4766aa46fffe1630a2", "sha256": "05950bfeea0dfe6ecd6b65acabc06301ed75b1b8a3ee62cffa884553f8f94051" }, "downloads": -1, "filename": "incomfort-client-0.3.1.tar.gz", "has_sig": false, "md5_digest": "681589ceb3c59d4766aa46fffe1630a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5928, "upload_time": "2019-08-06T15:10:35", "upload_time_iso_8601": "2019-08-06T15:10:35.960376Z", "url": "https://files.pythonhosted.org/packages/4f/7a/e2bf726ffa78b486cf8550ed823c5c502a0b1a83c8d531df56816ac8befd/incomfort-client-0.3.1.tar.gz", "yanked": true, "yanked_reason": "dated" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "e5c3b353797540643ef117e8e8ac5c6e", "sha256": "25b52030db79d192db0c83d3898113e0a13c4380a12884b8f454ffec85282c09" }, "downloads": -1, "filename": "incomfort-client-0.3.2.tar.gz", "has_sig": false, "md5_digest": "e5c3b353797540643ef117e8e8ac5c6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6348, "upload_time": "2019-09-24T21:11:09", "upload_time_iso_8601": "2019-09-24T21:11:09.032679Z", "url": "https://files.pythonhosted.org/packages/4c/3d/24100a244e0d7b82008d068de0c2f291b8c3e04d3466fa1c8faab9dd0d8a/incomfort-client-0.3.2.tar.gz", "yanked": true, "yanked_reason": "dated" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "ce41a63e7d58ee66b011767f4049b5ac", "sha256": "56aa29222468be664f3def71033786429542e99c7ea8856985d3a992068ddabc" }, "downloads": -1, "filename": "incomfort-client-0.3.3.tar.gz", "has_sig": false, "md5_digest": "ce41a63e7d58ee66b011767f4049b5ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6441, "upload_time": "2019-09-28T22:36:31", "upload_time_iso_8601": "2019-09-28T22:36:31.218903Z", "url": "https://files.pythonhosted.org/packages/5f/86/655f8d6fdb8bd2f4f1f5a53287ecf548ef02a529eb307cbb667a080a23c3/incomfort-client-0.3.3.tar.gz", "yanked": true, "yanked_reason": "dated" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "ba76762124017f82c364702c53991fff", "sha256": "38410501a4b1a03d39727a894f0c5ed4ce301763a094fe1711448115d654c1a3" }, "downloads": -1, "filename": "incomfort-client-0.3.4.tar.gz", "has_sig": false, "md5_digest": "ba76762124017f82c364702c53991fff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6704, "upload_time": "2019-09-29T21:24:14", "upload_time_iso_8601": "2019-09-29T21:24:14.784345Z", "url": "https://files.pythonhosted.org/packages/6e/4b/7d8599159235dfe19e933bb8eaea8c05793347c4b61827e69eb7e85c5717/incomfort-client-0.3.4.tar.gz", "yanked": true, "yanked_reason": "dated" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "8f1fc10083c2bf087b32ea06f5767f4d", "sha256": "d20fab7beb9aa7123559d5247e003977d22a948100c0bd82447dc5cc4615bb91" }, "downloads": -1, "filename": "incomfort-client-0.3.5.tar.gz", "has_sig": false, "md5_digest": "8f1fc10083c2bf087b32ea06f5767f4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6634, "upload_time": "2019-09-29T21:40:17", "upload_time_iso_8601": "2019-09-29T21:40:17.080709Z", "url": "https://files.pythonhosted.org/packages/de/75/c1064bbb696a9945f03227ccc4127cb5644a734d126b1fd278d6a54ee39a/incomfort-client-0.3.5.tar.gz", "yanked": true, "yanked_reason": "dated" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "ef58c10b607c934e4820481ace3947f6", "sha256": "5d8360fb0639d715976fadf704d3a5c2e9fc788fc8f4a47b8e5f1b3cf70631bc" }, "downloads": -1, "filename": "incomfort-client-0.4.0.tar.gz", "has_sig": false, "md5_digest": "ef58c10b607c934e4820481ace3947f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6147, "upload_time": "2019-10-29T20:44:35", "upload_time_iso_8601": "2019-10-29T20:44:35.783864Z", "url": "https://files.pythonhosted.org/packages/ea/e1/a1dbfc2fd66bd097b511b883ed433637ff05d4d26173564a03269171082b/incomfort-client-0.4.0.tar.gz", "yanked": true, "yanked_reason": "insecure dependencies" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "cd5445c02ad788da836fbeed8479ac97", "sha256": "e4f11c63c79add3feab93464df20eff1a5ffc2957d07e04c1c89a5553ce9f65a" }, "downloads": -1, "filename": "incomfort-client-0.4.4.tar.gz", "has_sig": false, "md5_digest": "cd5445c02ad788da836fbeed8479ac97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6342, "upload_time": "2021-03-10T13:48:57", "upload_time_iso_8601": "2021-03-10T13:48:57.267789Z", "url": "https://files.pythonhosted.org/packages/19/39/0ccafa5e6d670930623e41332cadc21c78cddd6ba5cade26e20c5a48a996/incomfort-client-0.4.4.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd5445c02ad788da836fbeed8479ac97", "sha256": "e4f11c63c79add3feab93464df20eff1a5ffc2957d07e04c1c89a5553ce9f65a" }, "downloads": -1, "filename": "incomfort-client-0.4.4.tar.gz", "has_sig": false, "md5_digest": "cd5445c02ad788da836fbeed8479ac97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6342, "upload_time": "2021-03-10T13:48:57", "upload_time_iso_8601": "2021-03-10T13:48:57.267789Z", "url": "https://files.pythonhosted.org/packages/19/39/0ccafa5e6d670930623e41332cadc21c78cddd6ba5cade26e20c5a48a996/incomfort-client-0.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }