An aiohttp-based client for Intergas InComfort/InTouch Lan2RF systems.
Project description
incomfort-client
Python client library for Intergas boilers accessible via a Lan2RF gateway by abstracting its HTTP API. It includes a basic CLI to demonstrate how to use the library.
This 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.
It is written for Python v3.9+. It is available as a PyPi package.
With many thanks, the code was refactored by @zxdavb and maintained for about 5 years, and maintenance now has been taken over by @jbouwh to be able to continue support.
The library is used as backend code for the Intergas InComfort/Intouch Lan2RF gateway integration with Home Assistant.
Porting from syncio libraries
This library is based upon https://github.com/bwesterb/incomfort, but uses aiohttp rather than synchronous I/O (such as requests or httplib).
Where possible, it uses the same methods and properties as bwesterb/incomfort, but with the following differences:
-
Gatewayclass- added kwargs:
username,password(used for newer versions of firmware)
- added kwargs:
-
Heaterclass- renamed:
is_burning,is_failed,is_pumping,is_tapping - moved:
room_temp,setpoint,setpoint_override,settoRoomclass - new/added:
update,status,rooms
- renamed:
-
Roomclass has been added, and some methods moved in fromHeater- same name:
room_temp,setpoint - renamed:
override,set_override - new/added:
status
- same name:
Basic CLI included
There is a very basic CLI (this output has been formatted for readability):
(venv) root@hostname:~/$ python inclient.py ${HOSTNAME}
{
'display_code': 126,
'display_text': 'standby',
'fault_code': 0,
'is_burning': False,
'is_failed': False,
'is_pumping': False,
'is_tapping': False,
'heater_temp': 31.22,
'tap_temp': 27.91,
'pressure': 1.23,
'serial_no': '175t23072',
'nodenr': 200,
'rf_message_rssi': 38,
'rfstatus_cntr': 0,
'room_1': {'room_temp': 26.4, 'setpoint': 19.5, 'override': 19.5},
'room_2': {'room_temp': None, 'setpoint': None, 'override': 19.0}
}
QA/CI via CircleCI
QA includes comparing JSON from cURL with output from this app using diff (note the --raw switch):
(venv) root@hostname:~/$ curl -X GET http://${HOSTNAME}/data.json?heater=0 | \
python -c "import sys, json; print(json.load(sys.stdin))" > a.out
(venv) root@hostname:~/$ python inclient.py ${HOSTNAME} --raw > b.out
(venv) root@hostname:~/$ diff a.out b.out
Newer versions of the gateway require authentication:
(venv) root@hostname:~/$ python inclient.py ${HOSTNAME} -u ${USER} -p ${PASS}
(venv) root@hostname:~/$ curl --user ${USER}:${PASS} -X GET http://${HOSTNAME}/protect/data.json?heater=0
Note that at the moment CircleCI is not active.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file incomfort_client-0.6.12.tar.gz.
File metadata
- Download URL: incomfort_client-0.6.12.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83dd3ee88ad95bcf6c7f452dcf204fee95a26fe8587347b593a0a46c56b48029
|
|
| MD5 |
74419ef4ddcde410308bb009ffc0fdd0
|
|
| BLAKE2b-256 |
057a7a99917aa03ef42bc40dc63b88831e62b65e84ab10b872b27e1cadfdff9c
|
File details
Details for the file incomfort_client-0.6.12-py3-none-any.whl.
File metadata
- Download URL: incomfort_client-0.6.12-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0505d3bdd901f6471422f9eb316c0c2d6894a486f82b7e5237ef7eba3b1a57f
|
|
| MD5 |
75c25d8782e93eb836e78d221ee69fdc
|
|
| BLAKE2b-256 |
54d8b1c3730d68b9c066c588a0625a8a358a5e351411bd20d02979be1a4fe1d5
|