Asynchronous Python client for Salus iT600 local gateways
Project description
salus-it600-client
Asynchronous Python client for Salus iT600 devices.
For end users
See https://github.com/Jordi-14/homeassistant_salus to use this in Home Assistant.
FHEM users might be interested in https://github.com/dominikkarall/fhempy which provides subset of functionality.
About
This package allows you to control and monitor your Salus iT600 smart home devices locally through Salus UG600 universal gateway. Currently heating thermostats, binary sensors, temperature sensors, covers and switches are supported. You have any other devices and would like to contribute - you are welcome to create an issue or submit a pull request.
Installation
pip install salus-it600-client
Migration from pyit600
salus-it600-client is a renamed maintained successor of pyit600. It does
not provide the old pyit600 import namespace, so callers must update imports:
from salus_it600.gateway import IT600Gateway
from salus_it600.exceptions import IT600ConnectionError
If another project depends on this package, replace the old dependency with:
salus-it600-client>=0.1.0
The first maintained release is 0.1.0. It keeps the public API close to
pyit600 0.5.1, while moving compatibility fixes for current Salus gateway
payloads into this library.
Usage
- Instantiate the IT600Gateway device with local ip address and EUID of your gateway. You can find EUID written down on the bottom of your gateway (eg.
001E5E0D32906128). - Status can be polled using the
poll_status()command. - Callbacks to be notified of state updates can be added with the
add_climate_update_callback(method)oradd_sensor_update_callback(method)method.
Basic example
from salus_it600.gateway import IT600Gateway
async with IT600Gateway(host=args.host, euid=args.euid) as gateway:
await gateway.connect()
await gateway.poll_status()
climate_devices = gateway.get_climate_devices()
print("All climate devices:")
print(repr(climate_devices))
for climate_device_id in climate_devices:
print(f"Climate device {climate_device_id} status:")
print(repr(climate_devices.get(climate_device_id)))
print(f"Setting heating device {climate_device_id} temperature to 21 degrees celsius")
await gateway.set_climate_device_temperature(climate_device_id, 21)
Supported devices
Thermostats:
- HTRP-RF(50)
- TS600
- VS10WRF/VS10BRF
- VS20WRF/VS20BRF
- SQ610
- SQ610RF
- FC600
Binary sensors:
- SW600
- WLS600
- OS600
- SD600 (sometimes gateway may not expose required information for these devices to be detected, reason is unknown)
- TRV10RFM (only heating state on/off)
- RX10RF (only heating state on/off)
Temperature sensors:
- PS600
Switch devices:
- SPE600
- RS600
- SR600
Cover devices:
- RS600
Unsupported devices
Buttons perform actions only in Salus Smart Home app:
- SB600
- CSB600
Untested devices
These switch devices have not been tested, but may work:
- SP600
These binary sensors have not been tested, but may work:
- MS600
Troubleshooting
If you can't connect using EUID written down on the bottom of your gateway (which looks something like 001E5E0D32906128), try using 0000000000000000 as EUID.
Also check if you have "Local Wifi Mode" enabled:
- Open Smart Home app on your phone
- Sign in
- Double tap your Gateway to open info screen
- Press gear icon to enter configuration
- Scroll down a bit and check if "Disable Local WiFi Mode" is set to "No"
- Scroll all the way down and save settings
- Restart Gateway by unplugging/plugging USB power
Contributing
If you want to help to get your device supported, open GitHub issue and add your device model number and output of main.py program. Be sure to run this program with --debug option.
Release publishing is documented in RELEASE.md.
Project origin
This project is a maintained fork/successor of epoplavskis/pyit600.
It was renamed from the pyit600 Python import namespace to salus_it600
to avoid collisions with the original unmaintained package while preserving
the original MIT license and attribution.
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 salus_it600_client-0.2.0.tar.gz.
File metadata
- Download URL: salus_it600_client-0.2.0.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0dcaf408e146042655bfcd31b16dac867d7769d0be99a5ecd248032861cf307
|
|
| MD5 |
a7648c3faf7f74d6e5a4db418539940c
|
|
| BLAKE2b-256 |
8592b1101bc77abf84157956e419a25d6cec58e0f60e0912fcb0a129b5165674
|
Provenance
The following attestation bundles were made for salus_it600_client-0.2.0.tar.gz:
Publisher:
publish.yml on Jordi-14/salus-it600-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
salus_it600_client-0.2.0.tar.gz -
Subject digest:
c0dcaf408e146042655bfcd31b16dac867d7769d0be99a5ecd248032861cf307 - Sigstore transparency entry: 1395593831
- Sigstore integration time:
-
Permalink:
Jordi-14/salus-it600-client@d8c7acd3d1951b19134b1ac71fa95b5f0b1b2fb7 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Jordi-14
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d8c7acd3d1951b19134b1ac71fa95b5f0b1b2fb7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file salus_it600_client-0.2.0-py3-none-any.whl.
File metadata
- Download URL: salus_it600_client-0.2.0-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97e0b6bf929b36d518a0be809bd502374271a45367704755da1be7c87d9aaafd
|
|
| MD5 |
aabfe34c720d2e80cc519a2502d84070
|
|
| BLAKE2b-256 |
e1ee8efa17529f4f09c01cf56a1f0f9ba6d501e9cb7fa9d4ec32dfd607b7d28e
|
Provenance
The following attestation bundles were made for salus_it600_client-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on Jordi-14/salus-it600-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
salus_it600_client-0.2.0-py3-none-any.whl -
Subject digest:
97e0b6bf929b36d518a0be809bd502374271a45367704755da1be7c87d9aaafd - Sigstore transparency entry: 1395593915
- Sigstore integration time:
-
Permalink:
Jordi-14/salus-it600-client@d8c7acd3d1951b19134b1ac71fa95b5f0b1b2fb7 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Jordi-14
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d8c7acd3d1951b19134b1ac71fa95b5f0b1b2fb7 -
Trigger Event:
push
-
Statement type: