A partial implementation of the Miele Professional IP Profile API
Project description
washpy
washpy offers a partial implementation of the Miele Professional IP Profile API.
The project focusses on implementing the parts of the API for washing machines from Miele Professional.
Getting started
Documentation
Read the documentation of washpy.
Project with washpy usage
washpy is used in the dorfwash project. You can have a look there on how to use washpy in practice.
Installation
washpy is available on PyPI,
so washpy can be installed via pip
, poetry,
or any other tool that interfaces with PyPI.
Hardware setup
I have tested this library on Miele Professional PWM 507 machines, with the Miele XKM 3200-WL-PLT KOM module.
- slide the KOM module into the slot of your machine
- connect the RJ45 jack of the module to your network
- at the time of writing (2024), the modules need a network with DHCP, they do not support static IP addresses
Set up your KOM module
You have to somehow find out the IP addresses of your machines. For that, I can recommend arp-scan to discover all hosts in your IPv4 network.
Now, give your machine a visit with your web browser, and if your browser asks you about the SSL certificate being untrustworthy, tell the browser to trust the certificate:
https://{your.device.ip.address}/Devices/
From there, you can get your machines' fabrication number. This is important for all further calls to the API
Activate the admin user
On the KOM module, there exists the Admin
default user,
with the default password ""
(the empty string).
I had to activate the admin user by changing its password:
from washpy import post_new_password
post_new_password(
"https://192.168.1.251/Devices/000116343328", "Admin", "", "verySecurePassword!"
)
Add new User
from washpy import DeviceUser
from washpy.user import User
d = DeviceUser(
"https://192.168.1.251/Devices/000116343328", "Admin", "verySecurePassword!"
)
user = User(
ID=102,
LoginName="MyUser",
Password="evenStrongerPassword!",
Description="My first User",
Roles=[1, 2],
)
# user the Admin standard user to add a new user
d.post_new_user(user)
Interact with a device
The core of washpy is the DeviceUser
class. Once constructed,
it provides many methods to control the Miele device.
The script
from washpy import DeviceUser
my_device = DeviceUser(
"https://192.168.1.251/Devices/000116343328", "Admin", "verySecurePassword!"
)
print(my_device.get_state().Status)
will yield
<Status.RUNNING: 5>
See also the exapmles folder for more usage examples.
Is there documentation of the IP Profile API?
Yes, you have to request access to it from Miele Professional.
known issues
Do not upgrade requests, as it will upgrade to urllib3 version 2.x
.
Problem: you will get handshake errors:
SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] ssl/tls alert handshake failure (_ssl.c:1006)'))
Also see this GitHub Issue.
License
Project details
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
File details
Details for the file washpy-0.6.0.tar.gz
.
File metadata
- Download URL: washpy-0.6.0.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.11.5-arch1-1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6afd94c84c615b0dedfcfafef619f4723912c434704689c4b5c0f1482e6dc319 |
|
MD5 | a0efe030f65be3239eee059ab140075b |
|
BLAKE2b-256 | 02b8f1c122bc5c12ec2e586f20c9bb63eeb1c410ca2521500c5e09ccd8a73bf1 |
File details
Details for the file washpy-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: washpy-0.6.0-py3-none-any.whl
- Upload date:
- Size: 28.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.11.5-arch1-1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb330e803275a5f91fb854997f9b0a9ce3db96a8d019ba2c3523c0bb1096501f |
|
MD5 | 76a5d3d42dd388146e1b22b57f8c99be |
|
BLAKE2b-256 | ab6603b835ce16efbcfe5c010ebabd08d2bd94bd3c8c278dd7350b4efed49023 |