Wiser by Feller µGateway API
Project description
Wiser by Feller API Async Python Library
A modern async Python library to control and integrate Wiser by Feller smart light switches, cover controls, and scene buttons, hvac controls and weather stations into your Python applications.
[!IMPORTANT] This integration implements Wiser by Feller and not Wiser by Schneider Electric, which is a competing Smart Home platform (and is not compatible). It is even more confusing, as Feller (the company) is a local subsidiary of Schneider Electric, catering only to the Swiss market.
[!CAUTION] Warning: This project is under heavy development and does not yet have a stable release. Expect breaking changes in susequent beta releases. All breaking changes will be documented in the release notes including resultion advisories.
📦 Installation
pip install aiowiserbyfeller
🧑💻 Usage
import asyncio
import aiohttp
from aiowiserbyfeller import Auth, WiserByFellerAPI
async def main():
async with aiohttp.ClientSession() as session:
auth = Auth(session, "192.168.0.42") # Replace with the IP of your µGateway
api = WiserByFellerAPI(auth)
info = await api.async_get_info()
print(info)
asyncio.run(main())
🧰 Basic Functionality
Wiser by Feller devices (except hvac controllers and weather stations) consist of two parts: The control front and the base module. There are switching base modules (for light switches and cover controllers) and non-switching base modules (for scene buttons and secondary controls).
Because the functionality changes when the same base module is used with a different front, the combination of the two is considered an unique device.
Devices are connected with each other by a proprietary K+ bus system. One (and only one) device acts as a WLAN gateway (called µGateway) to interface with the system.
Learn more about Wiser devices on the official website and API documentation.
🚀 Features
Here's what this library offers:
✨ Easy to use framework
The library abstracts API functionality and allows for easy authentication, interaction with devices and data validation. Work with device classes, allowing for strongly typed implementations. Helper methods and properties abstract as much complexity of the API as possible, while retaining full flexibility.
🚨 Status LEDs
Each front features a configurable RGB LED edge for their buttons, that you would normally configure in the Wiser Home app. They can be configured in color and brightness. For buttons controlling a load, there can be two different brightnesses: One for if the load is on and one for if it is off. For others (e.g. scene buttons) there can only be one brightness, as there is no logical "on" state.
The library offers an intuitive way to update status LEDs without the need for complex back and forth with the API, allowing you to use them to represent other information than just the device state (e.g. completion of the washing machine program or motion in another room).
[!IMPORTANT] Due to the implementation on the devices, the status light is not suited for fast updating, as multiple slow API calls are necessary.
🔌 WebSockets
The µGateway offers a Websocket connection, allowing for instant updates about state changes. This library offers a convenient way to establish a connection and tap into the update notifications.
🧪 Robust test suite
Extensive unit test coverage ensures high stability and confidence even if new functionality is added.
⚠️ Known Limitations
- The µGateway supports REST and WebSockets only. MQTT exists but is not publicly accessible.
- Device names appear in German only, due to limited international support.
- Status LED updates are slow, as they require multiple API calls.
🔗 Related Projects
- Check out the Home Assistant integration built using this library.
🤝 Contributing
We welcome contributions! To get started:
- Create a virtual environment:
python -m venv .venv - Install dependencies:
pip install ".[test]" - Make your changes.
- Write or update unit tests.
- Run tests with
pytest - Open a Pull Request 🎉
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 aiowiserbyfeller-1.0.0b23.tar.gz.
File metadata
- Download URL: aiowiserbyfeller-1.0.0b23.tar.gz
- Upload date:
- Size: 58.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8224ae6696c3c597a9fc6a634b6f93b00f83a04024c447d5afd6524eb15ef06
|
|
| MD5 |
41e4657ed286c4e64093572ff0be353f
|
|
| BLAKE2b-256 |
5156b1752e314e24a89564b03f31959e5151108a744b7130061c7235c2985c76
|
File details
Details for the file aiowiserbyfeller-1.0.0b23-py3-none-any.whl.
File metadata
- Download URL: aiowiserbyfeller-1.0.0b23-py3-none-any.whl
- Upload date:
- Size: 48.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84abb518a0e30b9bb03723e705346357f8bfb5c2cb69cb9745a78ddc5873290a
|
|
| MD5 |
5ea47fb5cfe6d4722a9bad315da030de
|
|
| BLAKE2b-256 |
0003eda64ed6dd58d06d3c4076b4897539d7aa2a48146346ca19573e06b8ea60
|