Inhaltsverzeichnis
- Funktionsumfang
- Voraussetzungen
- Installation
- Funktionsreferenz
- Konfiguration
- Anhang
- Versions-Historie
Unter dem Begriff Miele@Home wird von Miele die Vernetzung von entsprechend ausgestatteten Haushaltsgeräten angeboten. Zur Vernetzung dienen verschiedene Protokolle (WLAN, Z-Wave, ...) die dann, ggfs. über einen Gateway, mit der Cloud von Miele kommunizieren, Über diese Cloud kann der Benutzer mit der entsprechenden App von Miele den Status der Geräte kontrollieren und in gewissem Umfang steuern.
Unter dem Begriff Miele@Home-third-party-API bietet Miele einen Zugriff auf diesen Daten an. Neben dem Abruf von Daten ist auch eine gewisse Steuerung möglich.
Mit diesem Modul können diese Daten, passend zu den Gerätetypen, in IP-Symcon visualisiert werden und die vorhandenen Steuerungsmöglichkeiten genutzt werden.
- IP-Symcon ab Version 6.0
- Miele@Home-Account
- entweder IP-Symcon Connect oder Zugangsdaten zu Miele@Home-third-party-API
Die Webconsole von IP-Symcon mit http://<IP-Symcon IP>:3777/console/ öffnen.
Anschließend oben rechts auf das Symbol für den Modulstore (IP-Symcon > 5.1) klicken
Im Suchfeld nun Miele eingeben, das Modul auswählen und auf Installieren drücken.
Die Webconsole von IP-Symcon mit http://<IP-Symcon IP>:3777/console/ aufrufen.
Anschließend den Objektbaum öffnen.
Die Instanz Modules unterhalb von Kerninstanzen im Objektbaum von IP-Symcon mit einem Doppelklick öffnen und das Plus Zeichen drücken.
Im Feld die folgende URL eintragen und mit OK bestätigen:
https://github.com/demel42/IPSymconMieleAtHome.git
Anschließend erscheint ein Eintrag für das Modul in der Liste der Instanz Modules.
Es wird im Standard der Zweig (Branch) master geladen, dieser enthält aktuelle Änderungen und Anpassungen. Nur der Zweig master wird aktuell gehalten.
Sollte eine ältere Version von IP-Symcon abs 5.0 eingesetzt werden, ist auf das Zahnrad rechts in der Liste zu klicken. Es öffnet sich ein weiteres Fenster,
hier kann man auf einen anderen Zweig wechseln, für ältere Versionen sind entsprechende Zweige auszuwählen.
Es wird ein Account bei Miele@Home benötigt, das macht man am einfachsten über die App oder legt direkt bei Miele ein Benutzerkonto an.
Um Zugriff auf die Miele@Home Daten zu bekommen, gibt es zwei Möglichkeiten.
Hierzu wird ein aktives IP-Symcon Connect benötigt und den normalen Miele@Home Benutzernamen und Passwort.
Für den Zugriff der auf die Miele@Home-third-party-API benötigt man zusätzliche Zugriffschlüssel; diese bekommn man, indem man eine (formlose) Mail an developer@miele.com schickt (siehe auch https://www.miele.com/developer).
In IP-Symcon nun unterhalb von I/O Instanzen die Funktion Instanz hinzufügen (CTRL+1) auswählen, als Hersteller Miele und als Gerät Miele@Home I/O auswählen.
Im Konfigurationsformular nun den gewünschten Zugang wählen, entweder als Nutzer über IP-Symcon Connect oder als Entwickler mit eigenem Entwicklerschlüssel
Hierzu auf Registrieren drücken. Es öffnet sich ein Browserfenster mit der Anmeldeseite von Miele.
Auf der Anmeldeseite von Miele wird der Miele Benutzername (E-Mail) und das Passwort eingetragen. Das passende Land ist auszuwählen.
nachdem die Authentifizierung von IP-Symcon bei Miele@Home erfolgreich war erscheint folgende Meldung.
Weiterhin muss man die Erlaubnis zum Zugriff auf die Miele-Geräte erteilen.
Das Browser Fenster kann nun geschlossen werden und wieder zu IP-Symcon zurückgekeht werden.
Die geforderten Daten eintragen - wichtig, das Feld VG-Auswahl muss anscheinend dem Land entsprechen, in dem das Gerät betrieben wird. Dann den Zugriff mit Zugang prüfen testen.
In IP-Symcon nun unterhalb von Konfigurator Instanzen die Funktion Instanz hinzufügen (CTRL+1) auswählen, als Hersteller Miele und als Gerät Miele@Home Konfigurator auswählen. In der Liste nun das zu erstellende Gerät auswählen, das man erstellen will. Der Konfigurator legt dann eine Geräte Instanz an.
Eine manuelle Einrichtung eines Gerätemoduls ist nicht erforderlich, das erfolgt über den Konfigurator. In dem Geräte-Modul ist ggfs nur das Abfrage-Intervall anzupassen, die anderen Felder, insbesondere die Seriennummer (diese ist die Identifikation des Gerätes) und die Geräte-Typ-ID (diese steuert, welche Variablen angelegt werden) müssen unverändert bleiben.
Wichtig: da keine vollständige Dokumentation vorliegt, welche Geräte es gibt bzw. welche Geräte sinnvollerweise welche Variablen füllen, ist die Liste der unterstützten Geräte unvollständig und muss dann im Bedarfsfall erweitert werden.
siehe https://www.miele.com/developer/swagger-ui/put_additional_info.html
boolean MieleAtHome_Start(integer $InstanzID)
boolean MieleAtHome_Stop(integer $InstanzID)
boolean MieleAtHome_Pause(integer $InstanzID)
boolean MieleAtHome_StartSuperfreezing(integer $InstanzID)
boolean MieleAtHome_StopSuperfreezing(integer $InstanzID)
boolean MieleAtHome_StartSupercooling(integer $InstanzID)
boolean MieleAtHome_StopSupercooling(integer $InstanzID)
boolean MieleAtHome_LightEnable(integer $InstanzID)
boolean MieleAtHome_LightDisable(integer $InstanzID)
boolean MieleAtHome_PowerOn(integer $InstanzID)
Anmerkung: es ist unklar, bei welchen Gerätetypen es funktioniert, das Geräte aus dem ausgeschalteten Zustand einzuschalten.
boolean MieleAtHome_PowerOff(integer $InstanzID)
boolean MieleAtHome_SetStarttime(integer $InstanzID, int $hour, int $min)
Eigenschaft | Typ | Standardwert | Beschreibung |
---|---|---|---|
Instanz deaktivieren | boolean | false | Instanz temporär deaktivieren |
Verbindugstyp | integer | 0 | Auswahl der Art der Verbindung (OAuth oder Developer) |
- nur bei Developer - | |||
Benutzer (EMail) | string | Miele@Home-Konto: Benutzerkennung | |
Passwort | string | Miele@Home-Konto: Passwort | |
Client-ID | string | Miele@Home API-Zugangsdaten: Client-ID | |
Client-Secret | string | Miele@Home API-Zugangsdaten: Client-Secret | |
VG-Selector | string | Bedenutung unklar, muss anscheinend auf dem Wert des Landes stehen, wo das Gerät gekauft/betrieben wird | |
Sprache | string | Sprache von Text-Ausgaben der API |
Bezeichnung | Beschreibung |
---|---|
Zugang prüfen | Prüft, ob die Angaben korrekt sind |
Eigenschaft | Beschreibung |
---|---|
Kategorie | opt. Angabe einer Kategorie, unterhalb der die Instanzen angelegt werden |
Gerät | Auswahlliste der Geräte des angegebenen Miele-Kontos |
Eigenschaft | Typ | Standardwert | Beschreibung |
---|---|---|---|
Modul ist deaktiviert | boolean | false | Modul temporär deaktivieren |
Geräete-Typ-ID | integer | wird im Konfigurator gesetzt und darf nicht geändert werden, bestimmte die auszugebenden Felder | |
Geräte-Typ | string | wird im Konfigurator gesetzt | |
Seriennummer | string | wird im Konfigurator gesetzt und darf nicht geändert werden | |
Modell | string | wird im Konfigurator gesetzt | |
Update-Intervall | integer | 60 | Intervall der Datenabfrage in Minuten |
Code in Text übersetzen | Übersetzte Statustexte aus der API ignoreiren und selbst umsetzen | ||
... Status | boolean | false | |
... Programm | boolean | false | |
... Phase | boolean | false | |
... Trockenstufe | boolean | false | |
... Entlüftungsstufe | boolean | false |
Bezeichnung | Beschreibung |
---|---|
Daten aktualisieren | Abfrage der aktuellen Daten |
Bisher unterstützte Gerätetypen
Geräete-Typ-ID | Geräte-Typ |
---|---|
1 | Waschmaschine |
2 | Wäschetrockner |
7 | Geschirrspüler |
12 | Backofen |
13 | Backofen mit Mikrowelle |
21 | Kühl/Gefrier-Kombination |
25 | Wärmeschublade |
27 | Induktions-Kochfeld |
31 | Dampfgarer mit Backofen-Funktion |
45 | Dampfgarer mit Mikrowelle |
-
Boolean
MieleAtHome.Door, MieleAtHome.YesNo -
Integer
MieleAtHome.Action, MieleAtHome.BatteryLevel, MieleAtHome.Duration, MieleAtHome.Light, MieleAtHome.OperationMode, MieleAtHome.PlateStep MieleAtHome.PowerSupply, MieleAtHome.SpinningSpeed, MieleAtHome.Status, MieleAtHome.Supercooling, MieleAtHome.Superfreezing, MieleAtHome.Temperature, MieleAtHome.WorkProgress -
Float
MieleAtHome.Energy, MieleAtHome.Water
GUIDs
- Modul:
{122A97CE-7642-4D77-B656-242B3E08AEA9}
- Instanzen:
- MielelAtHomeSplitter:
{996743FB-1712-47A3-9174-858A08A13523}
- MielelAtHomeConfig:
{1381CC46-77BF-4EA7-B954-85A0FDD28997}
- MielelAtHomeDevice:
{C2672DE6-E854-40C0-86E0-DE1B6B4C3CAB}
- MielelAtHomeSplitter:
- Nachrichten:
{AE164AF6-A49F-41BD-94F3-B4829AAA0B55}
: an MieleAtHomeSplitter{D39AEB86-E611-4752-81C7-DBF7E41E79E1}
: an MieleAtHomeConfig, MieleAtHomeDevice{40C8346D-9284-1D83-67C7-F9B46EF28C05}
: an MieleAtHomeDevice
Verweise:
-
2.4.2 @ 24.02.2024 13:16
- Fix: weiteres Sempahore-Problem
-
2.4.1 @ 24.02.2024 08:56
- Fix: Problem (mit einem Semaphore) bei der Anmeldung mit dem Entwicklerschlüssel
- update submodule CommonStubs
-
2.4 @ 09.02.2024 11:00
- Neu: Unterstützung von Induktionskochfeldern
-
2.3 @ 07.02.2024 17:26
- Fix: auch bei der Anmeldung via IP-Symcon wird eine Angabe der Sprache benötigt
- Fix: Absicherung von Zugriffen auf andere Instanzen in Konfiguratoren
-
2.2 @ 29.01.2024 10:37
- Änderung: Medien-Objekte haben zur eindeutigen Identifizierung jetzt ebenfalls ein Ident
- Neu: Schalter, um Daten zu API-Aufrufen zu sammeln Die API-Aufruf-Daten stehen nun in einem Medienobjekt zur Verfügung
- update submodule CommonStubs
-
2.1 @ 10.12.2023 10:43
- Neu: ab IPS-Version 7 ist im Konfigurator die Angabe einer Import-Kategorie integriert, daher entfällt die bisher vorhandene separate Einstellmöglichkeit
-
2.0.5 @ 22.11.2023 11:43
- Fix: Variable "PowerSupply" bei Kühlschränken löschen
-
2.0.4 @ 20.11.2023 17:29
- Neu: Unterstützung des Betriebsmodus (Normal, Sabbat, Party, Urlaub) von Kühl- und Gefrierschränken Achtung! Die API ist an dieser Stelle fehlerhaft und möglicherweise nicht voll funktionsfähig
-
2.0.3 @ 20.11.2023 10:53
- Fix: README korrigiert
- Verbesserung: wenn Superfrost/Schnellkühlen aktiv ist, darf die Zieltemperatur nicht geändert werden
-
2.0.2 @ 16.11.2023 18:29
- Fix: Reihenfolgeproblem bei der Verarbeitung von Action-Events
- Fix: Berechnung der Endzeit angepasst
-
2.0.1 @ 10.11.2023 11:37
- Fix: Zugang via Entwicklerschlüssel geht wieder (zu Version 2.0)
-
2.0 @ 07.11.2023 10:50
- Neu: Benutzung der Event-Schnittstelle von Miele (Server-Sent Events) Hierüber werden alle Änderungsmeldung der Geräte zeitnah empfangen ohne zyklischen Datenabruf! Ein aktiver Abruf ist nur noch unter bestimmten Umständen sinnvoll und kann daher auf ein langes Intervall gesetzt werden; dieses wird nun in Minuten angegeben. Diese Änderung erfordert, das die Miele@Home-I/O-Instanz nun als Splitter-Instanz geführt wird; das erfolgt beim Modul-Update automatisch.
- update submodule CommonStubs
-
1.34 @ 15.10.2023 13:51
- Neu: Ermittlung von Speicherbedarf und Laufzeit (aktuell und für 31 Tage) und Anzeige im Panel "Information"
- Fix: die Statistik der ApiCalls wird nicht mehr nach uri sondern nur noch host+cmd differenziert
- update submodule CommonStubs
-
1.33 @ 11.07.2023 11:42
- Fix: Setzen von Kühl-/Tiefkühl-Temperatur
- Neu: Unterstützung der Miele-API-Version 1.0.7 (05.07.2023)
- Kerntemperatur (bei Öfen)
- bislang nicht unterstützt (mangels Testmöglichkeit):
- Abzugshaube: Einschaltdauer sowie Farbe des Umgebungslichts
-
1.32 @ 05.07.2023 17:02
- Vorbereitung auf IPS 7 / PHP 8.2
- Neu: Schalter, um die Meldung eines inaktiven Gateway zu steuern
- update submodule CommonStubs
- Absicherung bei Zugriff auf Objekte und Inhalte
-
1.31 @ 27.04.2023 18:08
- Neu: Auswertung von "Hinweis" (signalInfo)
-
1.30.2 @ 11.01.2023 14:35
- Fix: Handling des Datencache abgesichert
- update submodule CommonStubs
-
1.30.1 @ 21.12.2022 09:43
- Verbesserung: Text zum Datencache verbessert und unter dem Konfigurator positioniert
- update submodule CommonStubs
-
1.30 @ 18.12.2022 09:45
- Neu: Typ 19(Kühlschrank) und 20 (Gefrierschrank) hinzugefügt
- Neu: Möglichkeit, die Temperatur zu setzen für Kühl- und Gefrierschränke
- Neu: Führen einer Statistik der API-Calls im IO-Modul, Anzeige als Popup im Experten-Bereich
- Neu: Verwendung der Option 'discoveryInterval' im Konfigurator (ab 6.3) zur Reduzierung der API-Calls: nur noch ein Discovery/Tag
- Neu: Daten-Cache für Daten im Konfigurator zur Reduzierung der API-Aufrufe, wird automatisch 1/Tag oder manuell aktualisiert
- Fix: Variablenprofil "MieleAtHome.Status" korrigiert
- update submodule CommonStubs
-
1.29.5 @ 12.10.2022 14:44
- Korrektur zu 1.29.4
-
1.29.4 @ 12.10.2022 11:35
- Ergänzung zu 1.29.3
-
1.29.3 @ 12.10.2022 10:08
- Konfigurator betrachtet nun nur noch Geräte, die entweder noch nicht angelegt wurden oder mit dem gleichen I/O verbunden sind
- update submodule CommonStubs
-
1.29.2 @ 07.10.2022 13:59
- update submodule CommonStubs Fix: Update-Prüfung wieder funktionsfähig
-
1.29.1 @ 16.08.2022 10:10
- update submodule CommonStubs Fix: in den Konfiguratoren war es nicht möglich, eine Instanz direkt unter dem Wurzelverzeichnis "IP-Symcon" zu erzeugen
-
1.29 @ 07.07.2022 11:50
- Verbesserung: IPS-Status wird nur noch gesetzt, wenn er sich ändert
- update submodule CommonStubs Fix: keine korrekte Registrierung für OAuth
-
1.28.3 @ 22.06.2022 10:33
- Fix: Angabe der Kompatibilität auf 6.2 korrigiert
-
1.28.2 @ 29.05.2022 15:07
- Fix: RegisterOAuth() war doppelt vorhanden
-
1.28.1 @ 28.05.2022 11:37
- update submodule CommonStubs Fix: Ausgabe des nächsten Timer-Zeitpunkts
-
1.28 @ 28.05.2022 10:04
- Konfigurator: nur bei unbekannten Geräten wird der der API.Call "ident" (Name, Seriennummer, ...) noch durchgeführt führt insgesamt zu ca. 50% weniger API-Calls
- update submodule CommonStubs
- einige Funktionen (GetFormElements, GetFormActions) waren fehlerhafterweise "protected" und nicht "private"
- interne Funktionen sind nun entweder private oder nur noch via IPS_RequestAction() erreichbar
-
1.27.2 @ 17.05.2022 15:38
- update submodule CommonStubs Fix: Absicherung gegen fehlende Objekte
-
1.27.1 @ 12.05.2022 18:54
- update submodule CommonStubs
- SetLocation() -> GetConfiguratorLocation()
- weitere Absicherung ungültiger ID's
-
1.27 @ 01.05.2022 18:03
- Anpassungen an IPS 6.2 (Prüfung auf ungültige ID's)
- IPS-Version ist nun minimal 6.0
- Anzeige der Referenzen der Instanz incl. Statusvariablen und Instanz-Timer
- Implememtierung einer Update-Logik
- diverse interne Änderungen
-
1.26 @ 14.07.2021 18:12
- PHP_CS_FIXER_IGNORE_ENV=1 in github/workflows/style.yml eingefügt
- API-Version 1.0.4 (ecoFeedback)
- Typ 25(Wärmeschublade) und 45(Dampfgarer mit Mikrowelle) hinzugefügt
-
1.25 @ 20.09.2020 21:14
- URL's haben kein '/' mehr am Ende
-
1.24 @ 05.09.2020 11:12
- LICENSE.md hinzugefügt
- Nutzung von HasActiveParent(): Anzeige im Konfigurationsformular sowie entsprechende Absicherung von SendDataToParent()
- interne Funktionen sind nun "private"
- lokale Funktionen aus common.php in locale.php verlagert
- define's durch statische Klassen-Variablen ersetzt
-
1.23 @ 08.04.2020 16:45
- define's durch statische Klassen-Variablen ersetzt
- Fix in MielelAtHomeDevice: 'Geräte-Typ-ID' wird nun als NumberSpinner angeboten
-
1.22 @ 06.03.2020 20:14
- Wechsel des Verbindungstyp wird nun automatisch erkannt
- Verwendung des OAuth-AccessToken korrigiert
- OAuth allgemein weiter abgesichert
-
1.21 @ 10.02.2020 10:03
- Umsetzung der letzten Änderungen der Miele-API:
- PowerOn/PowerOff
- Auswertung des neuen API-GET-Aufrufs "actions" um setzen zu können, welchen Aktionen zu diesem Zeitpunkt möglich sind
- Umsetzung der letzten Änderungen der Miele-API:
-
1.20 @ 06.01.2020 11:17
- Nutzung von RegisterReference() für im Modul genutze Objekte (Scripte, Kategorien etc)
-
1.19 @ 01.01.2020 18:52
- Anpassungen an IPS 5.3
- Formular-Elemente: 'label' in 'caption' geändert
- Schreibfehler korrigiert
- Anpassungen an IPS 5.3
-
1.18 @ 13.10.2019 13:18
- Anpassungen an IPS 5.2
- IPS_SetVariableProfileValues(), IPS_SetVariableProfileDigits() nur bei INTEGER, FLOAT
- Dokumentation-URL in module.json
- Umstellung auf strict_types=1
- Umstellung von StyleCI auf php-cs-fixer
- Anpassungen an IPS 5.2
-
1.17 @ 09.08.2019 14:32
- Schreibfehler korrigiert
-
1.16 @ 02.08.2019 08:41
- Übernahme von Programmbezeichnung
- Korrektur von Drehzahl
-
1.15 @ 30.07.2019 18:46
- Anlage ohne gesetzte Import-Kategorie erfolgt in der Kategorie IP-Symcon/IP-Symcon
-
1.14 @ 29.07.2019 12:17
- Absturz beim Aufruf des Konfigurators bei nicht eingerichteter IO-Instanz
-
1.13 @ 25.07.2019 09:22
- Kompatibilität zu 5.2 (CC_GetUrl())
- Absicherung bei fehlerhafter ImportCategoryID
-
1.12 @ 12.07.2019 14:47
- OAuth hinzugefügt (Dank an Fonzo) Wichtiger Hinweis für ein Update: in der IO-Instanz den Verbindungstyp auf Developer Key setzen!
- Konfigurator als Konfigurationsformular
- Modul-Prefixe auf MieleAtHome vereinheitlicht
-
1.11 @ 23.04.2019 17:59
- weitere Text für Phase bei Backofen/Dampfgarer
- Tabellenausrichtung in README.md
- Konfigurator um Sicherheitsabfrage erweitert
-
1.10 @ 29.03.2019 16:19
- SetValue() abgesichert
-
1.9 @ 21.03.2019 17:04
- Schalter, um eine Instanz (temporär) zu deaktivieren
- Konfigurations-Element IntervalBox -> NumberSpinner
- Dampfgarer/Backofen-Kombination hinzugefügt, diverse WARNING auf NOTIFY verringert
-
1.8 @ 23.01.2019 18:18
- curl_errno() abfragen
- Trockner: Trockenstufe 7 ('Glätten') hinzugefügt (fehlt in der API-Doku), Übersetzung angepasst
-
1.7 @ 12.01.2019 12:56
- geänderte Login-Methode implementiert Achtung: die VG-Auswahl muss im IO-Modul neu gesetzt werden
-
1.6 @ 10.01.2019 22:40
- Länderauswahl ergänzt um Östereich
-
1.5 @ 30.12.2018 16:57
- die Aktionen (HTTP-PUT-Aufrufe) stehen nun als Variablen mit Standard-Aktionen zur Verfügung
- der Status ist nun kein String mehr sondern ein Integer mit entsprechendem Variablenprofil
-
1.4 @ 28.12.2018 15:33
- Anpassung an aktuelle API-Dokumentation
- Ergänzung um die neuen HTTP-PUT-Aufrufe
-
1.3 @ 22.12.2018 12:25
- Fehler in der http-Kommunikation nun nicht mehr mit echo (also als ERROR) sondern mit LogMessage als NOTIFY ausgegeben
- Fix in einer DebugMessage
-
1.2 @ 21.12.2018 13:10
- Standard-Konstanten verwenden
-
1.1 @ 27.11.2018 17:03
- optional die Statuscodes selbst übersetzen
-
1.0 @ 04.11.2018 10:49
- Initiale Version