FHEM - Hausautomations-Systeme > Sonstige Systeme

[Neues Modul] Miele@Home

(1/46) > >>

choenig:
Hi,

Das Modul ist seit dem 09.11.2020 ins offizielle FHEM-svn eingecheckt.

im Anhang findet Ihr ein Modul im Beta-Stadium, mit dem Ihr eure Miele@Home-fähigen Geräte in FHEM einbinden könnt (nur monitoring).

Ich habe das Modul bereits vor 6 Monaten geschrieben, und so lange arbeitet es für mich einwandfrei und liest die Informationen meiner Waschmaschine aus der Miele-Cloud aus.

Aktuell werden nur Waschmaschinen unterstützt, da ich nix anderes zur Hand habe. Ich geh' davon aus, dass andere Geräte auch angezeigt werden, jedoch noch nicht alle Readings erzeugt werden (z.B. Kühlschränke). Wenn ihr mich dabei unterstützt, füge ich jedoch gerne weitere Gerätetypen hinzu :).

Das Modul kommuniziert mit der Miele 3rd-Party-Cloud-API, für die Ihr euch zwingend registrieren müsst. Folgende Schritte sind nötig (die in der CommandRef genauer dokumentiert sind):

* Registrierung für die Miele 3rd-Party-Cloud-API
* Definieren des MieleAtHome-Connection Devices
* Setzen der Attribute login und clientId
* Setzen von password und clientSecret via set
* Erzeugen der Geräte-Instanzen via set <MY_MieleAtHome_Connection_Device> autocreate
Benutzung des Moduls auf eigene Gefahr!

Aktuelle CommandRef:

--- Code: ---MieleAtHome - Controls Miele@home Devices

About

The MieleAtHome module uses the Miele 3rd Party Cloud API. You need a Miele Developer Account to use it! See below for details.
To use the MieleAtHome module you first have to define a device which will act als shared provider for your credentials. When this one is set up, you can use the autocreate-feature to create devices for your appliances.

Miele Developer Account:

To use this module you need to register as a developer at https://www.miele.com/f/com/en/register_api.aspx. After you successfully registered, you will receive a clientId and a clientSecret which you'll need to configure in your <gateway>-device.

Define

(1) Setup gateway:
define <gateway> MieleAtHome

(2a) Autocreate devices:
set <gateway> autocreate

(2b) Manually create devices:
define <MieleDevice> MieleAtHome <DeviceId>@<gateway> [Interval]

Example

(1) Setup gateway:
define MieleConnection MieleAtHome
attr MieleConnection login mylogin@example.com
attr MieleConnection clientId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
set MieleConnection password mypassword
set MieleConnection clientSecret yyyyyyyyyyyyyyyyyyyy

This instance (MieleConnection) will be used to share the credentials. You have to set the attributes login and clientId. Then you have to set password and clientSecret via set MieleConnection-command.

(2a) Autocreate devices:
set MieleConnection autocreate

This will create a device called Miele_xxxxxxxxxxxxx. You can rename autocreated devices afterwards.

(2b) Manually create devices:
define Waschmaschine MieleAtHome 000123456789@MieleConnection 120

This statement creates the instance of your specific Miele@home appliance with the name Waschmaschine and the DeviceId 000123456789 and a refresh-interval of 120 seconds. The interval is optional, its default is 1800 seconds.

Set
autocreate
autocreate fhem-devices for each Miele@home appliance found in your account. Needs login, clientId, password and clientSecret to be configured properly. Only available for the gateway device.
clientSecret <secret>
sets the clientSecret of your Miele@home-developer Account and stores it in a file (base64-encoded if you have MIME::Base64 installed).
light [enable|disable]
enable/disable the light of your device. only available depending on the type and state of your appliance.
on
power up your device. only available depending on the type and state of your appliance.
off
power off your device. only available depending on the type and state of your appliance.
password <pass>
set the password of your Miele@home Account and stores it in a file (base64-encoded if you have MIME::Base64 installed).
pause
pause your device. only available depending on the type and state of your appliance.
start
start your device. only available depending on the type and state of your appliance.
stop
stop your device. only available depending on the type and state of your appliance.
startSuperFreezing
start super freezing your device. only available depending on the type and state of your appliance.
stopSuperFreezing
stop super freezing your device. only available depending on the type and state of your appliance.
startSuperCooling
start super cooling your device. only available depending on the type and state of your appliance.
stopSuperCooling
stop super cooling your device. only available depending on the type and state of your appliance.
update
instantly update all readings.
ventilationStep [Step1|Step2|Step3|Step4]
set the ventilation step of your device. only available depending on the type and state of your appliance.

Get
listDevices
lists the devices associated with your Miele@home-account. Needs login, clientId, password and clientSecret to be configured properly.

Attributes
clientId
set the clientId of your Miele@home-developer account.
login
set the login of your Miele@home account.
disable
disables this MieleAtHome-instance.
lang [de|en]
request the readings in either german or english. en is default.
--- Ende Code ---


Changelog
0.5.0

* first public release0.6.0

* implement all processActions as setters

* START
* STOP
* PAUSE
* START SUPERFREEZING
* STOP SUPERFREEZING
* START SUPERCOOLING
* STOP SUPERCOOLING0.6.1

* implement set <DEV> light <enable|disable>
* implement set <DEV> ventilationStep <Step1|Step2|Step3|Step4>
* implement set <DEV> startTime <hh:mm>0.7.0

* update commandref0.8.0

* urlEncode all data sent for oauth2
* fix warning about $action hiding other variable0.9.0

* set default interval to 120s (was 1800s before)
* fix crash when calling 'autocreate', but the device was not ready, yet (thanks @JoWiemann)0.10.0

* (try to) fix initial authorization
* add attribute country (default is Deutschland/de-DE)
* extend logging when verbose=50.11.0

* workaround an encoding bug by using german country names instead of localized (thanks @Florie for reporting and @amenomade for the investigation) 0.12.0

* rename IODev -> IODevName to not interfere with FHEM expecting IODev to contain a HASH
* enhance renaming of devices0.13.0

* fix bug that deleted clientSecret and password from uniqueID when rereadcfg was called0.14.0

* fix minor bug that prevented proactive token refresh within the last 24h of validity
* refresh token using REFRESH_TOKEN after first authorization0.15.0

* replace unicode chars with ascii ones in COUNTRIES1.0.0

* add ecoFeedback values
* first official version in FHEM-svn
Viel Spass und LG
Christian

xerion:
Hi Christian,

danke für das Modul. Habe das gerade mal installiert und hat auf Anhieb funktioniert. Ich werde das mal parallel zu meiner vorhandenen Installation von meiner Waschmaschine beobachten.
Hast du auch vor die "PUT" Befehle zu integrieren? Da ich das jetzt schon für meine PV-Anlage nutze um die WM anzuschalten.

Danke und Gruß
Frank

choenig:
Hi,

PUT für powerOn und powerOff habe ich bereits implementiert. Den Rest implementiere ich gerne, wenn interesse besteht :)

Das sind in Deinem Fall die 'processActions' START und STOP und PAUSE?

Ich weiss ehrlich gesagt gar nicht mehr, wieso ich die PUTs nicht alle schon implementiert habe.

LG
Christian

xerion:
Hi,

oh stimmt habe ich glatt übersehen. Ich nutze nur den Fernstart ({"processAction":1}, diese setzte aber voraus, das die WM entsprechend vorbereitet ist, das Frage ich per DOIF ab.
Aber das könnte ich jetzt ja über remoteEnableFullRC und remoteEnableSmartGrid.

Ideal wäre es natürlich wenn du für den jeweiligen processAction die PreCondoition abfragen könntest und wenn diese nicht True sind, das es einen Fehler gibt wenn man die dazugehörige ProcessAction ausführen möchte. Also in meinen Beispiel den Fernstart wo (fullRemoteControl==true) && (status==4) sein muss.

LukeSky007:
Hi Christian,
hab dein Modul gerade mal auf unsere neue WCI860  losgelassen ... und geht ;-)   - supi - vielen Dank für dein Modul.

Was schön wäre, wenn man die Einstellung von INTERVAL  nachträglich  ändern könnte, so was wie Set <Device> Interval <value>|<default>

Viele Grüße
Luke


Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln