# Miele@home Binding

This binding integrates Miele@home appliances. Miele@home allows controlling Miele appliances that are equipped with special communication modules. There are devices that communicate through ZigBee and others that use WiFi.

See www.miele.de (opens new window) for the list of available appliances.

# Supported Things

This binding requires the XGW3000 gateway from Miele as all integration with openHAB is done through this gateway. While users with ZigBee-enabled Miele appliances usually own such a gateway, this is often not the case for people that have only WiFi-enabled appliances.

The types of appliances that are supported by this binding are:

  • Coffeemachine
  • Dishwasher
  • Fridge
  • Fridge/Freezer combination
  • Hob
  • Hood
  • Oven
  • Microwave/Oven combination
  • Tumbledryer
  • Washingmachine

# Discovery

The binding is able to auto-discover the Miele XGW3000 gateway. When an XGW3000 gateway is discovered, all appliances can be subsequently discovered.

# Thing Configuration

Each appliance needs the device UID as a configuration parameter. The UID is nowhere to be found on the appliances, but since the discovery works quite reliably, a manual configuration is not needed.

Once you got hold of the IDs, a manual configuration looks like this:

Bridge miele:xgw3000:dilbeek [ipAddress="192.168.0.18", interface="192.168.0.5"] {
Things:
Thing fridgefreezer freezer [uid="00124b000424be44#2"]
Thing hood hood [uid="001d63fffe020685#210"]
Thing fridge fridge [uid="00124b000424bdc0#2"]
Thing oven oven [uid="001d63fffe020390#210"]
Thing oven microwave [uid="001d63fffe0206eb#210"]
Thing hob hob [uid="00124b000424bed7#2"]
Thing dishwasher dishwasher [uid="001d63fffe020683#210"]
Thing tumbledryer dryer [uid="001d63fffe0200ba#210"]
Thing washingmachine washingmachine [uid="001d63fffe020505#210"]
Thing coffeemachine coffeemachine [uid="001d63fffe020505#190"]
}

# Channels

# Raw values

Some channels represent raw/numeric values for state, program and phase, namely rawState, rawProgram and rawPhase. These channels are more reliable as rule triggers/logic than using their text-based counterparts. Raw values are always available from the gateway even when texts are missing. Only a subset of available raw values are documented here since no official documentation exists.

# State

State Description Appliances
0 Unknown All
1 Off All
2 Stand-By All
3 Programmed Coffee Machine, Dishwasher, Oven, Tumble Dryer, Washing Machine
4 Waiting to Start Coffee Machine, Dishwasher, Oven, Tumble Dryer, Washing Machine
5 Running All
6 Paused Coffee Machine, Dishwasher, Oven, Tumble Dryer, Washing Machine
7 End Coffee Machine, Dishwasher, Oven, Tumble Dryer, Washing Machine
8 Failure All
9 Abort Coffee Machine, Dishwasher, Oven, Tumble Dryer, Washing Machine
10 Idle All
11 Rinse Hold Washing Machine, Tumble Dryer
12 Service All
13 Super Freezing Fridge/Freezer combination
14 Super Cooling Fridge, Fridge/Freezer combination
15 Super Heating Hob
144 Default All
145 Locked All
146 Super Cooling/Super Freezing Fridge/Freezer combination
255 Not Connected All

# Appliances

Channels available for each appliance type are listed below.

# Coffee Machine

Channel Type Read/write Description
state String Read Current status of the appliance
rawState Number Read Current status of the appliance as raw number
program String Read Current program or function running on the appliance
rawProgram Number Read Current program or function running on the appliance as raw number
type String Read Type of the program running on the appliance
phase String Read Current phase of the program running on the appliance
rawPhase Number Read Current phase of the program running on the appliance as raw number
door Contact Read Current state of the door of the appliance
switch Switch Write Switch the appliance on or off

# Dishwasher

Channel Type Read/write Description
state String Read Current status of the appliance
rawState Number Read Current status of the appliance as raw number
program String Read Current program or function running on the appliance
rawProgram Number Read Current program or function running on the appliance as raw number
phase String Read Current phase of the program running on the appliance
rawPhase Number Read Current phase of the program running on the appliance as raw number
start DateTime Read Programmed start time of the program
duration DateTime Read Duration of the program running on the appliance
elapsed DateTime Read Time elapsed in the program running on the appliance
finish DateTime Read Time to finish the program running on the appliance
door Contact Read Current state of the door of the appliance
switch Switch Write Switch the appliance on or off
powerConsumption Number:Power Read Power consumption by the currently running program on the appliance
waterConsumption Number:Volume Read Water consumption by the currently running program on the appliance
# Programs
Program Description
26 Intensive
27 Maintenance programme
28 ECO
30 Normal
32 Automatic
34 SolarSave
35 Gentle
36 Extra Quiet
37 Hygiene
38 QuickPowerWash
42 Tall items
# Phases
Phase Legacy Description
1792 0 None (appliance off)
1794 2 Pre-Wash
1795 3 Main Wash
1796 4 Rinses
1798 6 Final rinse
1799 7 Drying
1800 8 Finished

# Fridge

Channel Type Read/write Description
state String Read Current status of the appliance
rawState Number Read Current status of the appliance as raw number
supercool Switch Read/Write Start or stop Super Cooling
current Number:Temperature Read Current temperature in the fridge
target Number:Temperature Read Target temperature to be reached by the fridge
door Contact Read Current state of the door of the appliance
switch Switch Write Switch the appliance on or off

# Fridge/Freezer combination

Channel Type Read/write Description
state String Read Current status of the appliance
rawState Number Read Current status of the appliance as raw number
freezerstate String Read Current status of the freezer compartment
fridgestate String Read Current status of the fridge compartment
supercool Switch Read/Write Start or stop Super Cooling
superfreeze Switch Read/Write Start or stop Super Freezing
freezercurrent Number:Temperature Read Current temperature in the freezer compartment
freezertarget Number:Temperature Read Target temperature to be reached by the freezer compartment
fridgecurrent Number:Temperature Read Current temperature in the fridge compartment
fridgetarget Number:Temperature Read Target temperature to be reached by the fridge compartment
door Contact Read Current state of the door of the appliance
start Switch Write Switch the appliance on or off

# Hob

Channel Type Read/write Description
state String Read Current status of the appliance
rawState Number Read Current status of the appliance as raw number
plate1power Number Read Power level of heating zone/plate 1
plate1heat Number Read Remaining heat level of heating zone/plate 1
plate1time String Read Remaining time of heating zone/plate 1
plate2power Number Read Power level of heating zone/plate 2
plate2heat Number Read Remaining heat level of heating zone/plate 2
plate2time String Read Remaining time of heating zone/plate 2
plate3power Number Read Power level of heating zone/plate 3
plate3heat Number Read Remaining heat level of heating zone/plate 3
plate3time String Read Remaining time of heating zone/plate 3
plate4power Number Read Power level of heating zone/plate 4
plate4heat Number Read Remaining heat level of heating zone/plate 4
plate4time String Read Remaining time of heating zone/plate 4
plate5power Number Read Power level of heating zone/plate 5
plate5heat Number Read Remaining heat level of heating zone/plate 5
plate5time String Read Remaining time of heating zone/plate 5
plate6power Number Read Power level of heating zone/plate 6
plate6heat Number Read Remaining heat level of heating zone/plate 6
plate6time String Read Remaining time of heating zone/plate 6

# Hood

Channel Type Read/write Description
state String Read Current status of the appliance
rawState Number Read Current status of the appliance as raw number
light Switch Write Switch the appliance on or off
ventilation Number Read Current ventilation power
stop Switch Write Stop the appliance

# Oven

Channel Type Read/write Description
state String Read Current status of the appliance
rawState Number Read Current status of the appliance as raw number
program String Read Current program or function running on the appliance
rawProgram Number Read Current program or function running on the appliance as raw number
type String Read Type of the program running on the appliance
phase String Read Current phase of the program running on the appliance
rawPhase Number Read Current phase of the program running on the appliance as raw number
start DateTime Read Programmed start time of the program
duration DateTime Read Duration of the program running on the appliance
elapsed DateTime Read Time elapsed in the program running on the appliance
finish DateTime Read Time to finish the program running on the appliance
target Number:Temperature Read Target temperature to be reached by the oven
measured Number:Temperature Read Actual measured temperature in the oven
temp1 Number:Temperature Read Program temperature in the oven 1
temp2 Number:Temperature Read Program temperature in the oven 2
door Contact Read Current state of the door of the appliance
switch Switch Write Switch the appliance on or off
stop Switch Write Stop the appliance
# Phases
Phase Legacy Description
3072 0 None (appliance off)
3073 1 Heating
3074 2 Temp. hold
3075 3 Door Open
3076 4 Pyrolysis
3079 7 Lighting
3080 8 Searing phase
3082 10 Defrost
3083 11 Cooling down
3084 12 Energy save phase

# Microwave/Oven combination

See oven.

# Tumble Dryer

Channel Type Read/write Description
state String Read Current status of the appliance
rawState Number Read Current status of the appliance as raw number
program String Read Current program or function running on the appliance
rawProgram Number Read Current program or function running on the appliance as raw number
type String Read Type of the program running on the appliance
phase String Read Current phase of the program running on the appliance
rawPhase Number Read Current phase of the program running on the appliance as raw number
start DateTime Read Programmed start time of the program
duration DateTime Read Duration of the program running on the appliance
elapsed DateTime Read Time elapsed in the program running on the appliance
finish DateTime Read Time to finish the program running on the appliance
door Contact Read Current state of the door of the appliance
switch Switch Write Switch the appliance on or off
step Number Read Current step in the program running on the appliance
# Programs
Program Description
10 Automatic Plus
20 Cottons
23 Cottons hygiene
30 Minimum iron
31 Gentle minimum iron
40 Woollens handcare
50 Delicates
60 Warm Air
70 Cool air
80 Express
90 Cottons
100 Gentle smoothing
120 Proofing
130 Denim
131 Gentle denim
140 Shirts
141 Gentle shirts
150 Sportswear
160 Outerwear
170 Silks handcare
190 Standard pillows
220 Basket programme
240 Smoothing
65000 Cottons (auto load control)
65001 Minimum iron (auto load control)
# Phases
Phase Legacy Description
512 0 None (appliance off)
513 1 Programme running
514 2 Drying
515 3 Drying Machine iron
516 4 Drying Hand iron (2)
517 5 Drying Normal
518 6 Drying Normal+
519 7 Cooling down
520 8 Drying Hand iron (1)
522 10 Finished

# Washing Machine

Channel Type Read/write Description
state String Read Current status of the appliance
rawState Number Read Current status of the appliance as raw number
program String Read Current program or function running on the appliance
rawProgram Number Read Current program or function running on the appliance as raw number
type String Read Type of the program running on the appliance
phase String Read Current phase of the program running on the appliance
rawPhase Number Read Current phase of the program running on the appliance as raw number
start DateTime Read Programmed start time of the program
duration DateTime Read Duration of the program running on the appliance
elapsed DateTime Read Time elapsed in the program running on the appliance
finish DateTime Read Time to finish the program running on the appliance
door Contact Read Current state of the door of the appliance
switch Switch Write Switch the appliance on or off
target Number:Temperature Read Temperature of the selected program (10 °C = cold)
spinningspeed String Read Spinning speed in the program running on the appliance
powerConsumption Number:Power Read Power consumption by the currently running program on the appliance
waterConsumption Number:Volume Read Water consumption by the currently running program on the appliance
# Programs
Program Description
1 Cottons
3 Minimum iron
4 Delicates
8 Woollens
9 Silks
17 Starch
18 Rinse
21 Drain/Spin
22 Curtains
23 Shirts
24 Denim
27 Proofing
29 Sportswear
31 Automatic Plus
37 Outerwear
39 Pillows
50 Dark Garments
53 First wash
75 Steam care
76 Freshen up
91 Maintenance wash
95 Down duvets
122 Express 20
129 Down filled items
133 Cottons Eco
146 QuickPowerWash
65532 Mix
# Phases
Phase Legacy Description
256 0 None (appliance off)
257 1 Pre-wash
260 4 Washing
261 5 Rinses
263 7 Clean
265 9 Drain
266 10 Spin
267 11 Anti-crease
268 12 Finished

# Configuration Examples

# things/miele.things

Bridge miele:xgw3000:home [ipAddress="192.168.0.18", interface="192.168.0.5"] {
    Things:
        Thing fridgefreezer freezer [uid="00124b000424be44#2"]
        Thing hood hood [uid="001d63fffe020685#210"]
        Thing fridge fridge [uid="00124b000424bdc0#2"]
        Thing oven oven [uid="001d63fffe020390#210"]
        Thing oven microwave [uid="001d63fffe0206eb#210"]
        Thing hob hob [uid="00124b000424bed7#2"]
        Thing dishwasher dishwasher [uid="001d63fffe020683#210"]
        Thing tumbledryer tumbledryer [uid="001d63fffe0200ba#210"]
        Thing washingmachine washingmachine [uid="001d63fffe020505#210"]
        Thing coffeemachine coffeemachine [uid="001d63fffe020505#190"]
}

# items/miele.items

String Dishwasher_State                                     {channel="miele:dishwasher:home:dishwasher:state"}
Number Dishwasher_RawState                                  {channel="miele:dishwasher:home:dishwasher:rawState"}
String Dishwasher_Program "Program [%s]"                    {channel="miele:dishwasher:home:dishwasher:program"}
String Dishwasher_Phase "Phase [%s]"                        {channel="miele:dishwasher:home:dishwasher:phase"}
DateTime Dishwasher_ElapsedTime "Elapsed time" <time>       {channel="miele:dishwasher:home:dishwasher:elapsed"}
DateTime Dishwasher_FinishTime "Remaining time" <time>      {channel="miele:dishwasher:home:dishwasher:finish"}
Number:Power Dishwasher_PowerConsumption                    {channel="miele:dishwasher:home:dishwasher:powerConsumption"}
Number:Volume Dishwasher_WaterConsumption                   {channel="miele:dishwasher:home:dishwasher:waterConsumption"}

String Fridge_State                                         {channel="miele:fridge:home:fridge:state"}
Contact Fridge_Door                                         {channel="miele:fridge:home:fridge:door"}
Switch Fridge_SuperCool                                     {channel="miele:fridge:home:fridge:supercool"}
Number:Temperature Fridge_CurrentTemperature <temperature>  {channel="miele:fridge:home:fridge:current"}
Number:Temperature Fridge_TargetTemperature  <temperature>  {channel="miele:fridge:home:fridge:target"}
Switch Fridge_Start                                         {channel="miele:fridge:home:fridge:start"}

String Oven_State                                           {channel="miele:oven:home:oven:state"}
Number Oven_RawState                                        {channel="miele:oven:home:oven:rawState"}
String Oven_Program "Program [%s]"                          {channel="miele:oven:home:oven:program"}
String Oven_Phase "Phase [%s]"                              {channel="miele:oven:home:oven:phase"}
DateTime Oven_ElapsedTime "Elapsed time" <time>             {channel="miele:oven:home:oven:elapsed"}
DateTime Oven_FinishTime "Remaining time" <time>            {channel="miele:oven:home:oven:finish"}
Number:Temperature Oven_CurrentTemperature <temperature>    {channel="miele:oven:home:oven:measured"}
Number:Temperature Oven_TargetTemperature <temperature>     {channel="miele:oven:home:oven:target"}
Switch Oven_Stop                                            {channel="miele:oven:home:oven:stop", autoupdate="false"}

String WashingMachine_State                                 {channel="miele:washingmachine:home:washingmachine:state"}
Number WashingMachine_RawState                              {channel="miele:washingmachine:home:washingmachine:rawState"}
String WashingMachine_Program "Program [%s]"                {channel="miele:washingmachine:home:washingmachine:program"}
String WashingMachine_Phase "Phase [%s]"                    {channel="miele:washingmachine:home:washingmachine:phase"}
Number:Temperature WashingMachine_Temperature <temperature> {channel="miele:washingmachine:home:washingmachine:target"}
String WashingMachine_SpinningSpeed                         {channel="miele:washingmachine:home:washingmachine:spinningspeed"}
DateTime WashingMachine_ElapsedTime "Elapsed time" <time>   {channel="miele:washingmachine:home:washingmachine:elapsed"}
DateTime WashingMachine_FinishTime "Remaining time" <time>  {channel="miele:washingmachine:home:washingmachine:finish"}
Number:Power WashingMachine_PowerConsumption                {channel="miele:washingmachine:home:washingmachine:powerConsumption"}
Number:Volume WashingMachine_WaterConsumption               {channel="miele:washingmachine:home:washingmachine:waterConsumption"}

String TumbleDryer_State                                    {channel="miele:tumbledryer:home:tumbledryer:state"}
Number TumbleDryer_RawState                                 {channel="miele:tumbledryer:home:tumbledryer:rawState"}
String TumbleDryer_Program "Program [%s]"                   {channel="miele:tumbledryer:home:tumbledryer:program"}
String TumbleDryer_Phase "Phase [%s]"                       {channel="miele:tumbledryer:home:tumbledryer:phase"}
DateTime TumbleDryer_ElapsedTime "Elapsed time" <time>      {channel="miele:tumbledryer:home:tumbledryer:elapsed"}
DateTime TumbleDryer_FinishTime "Remaining time" <time>     {channel="miele:tumbledryer:home:tumbledryer:finish"}

# sitemaps/miele.sitemap

sitemap miele label="Miele" {
    Frame label="Miele" {
        Text item=Oven_State label="Oven [%s]" icon="kitchen" {
            Text item=Oven_Program visibility=[Oven_RawState>1]
            Text item=Oven_Phase visibility=[Oven_Phase!=UNDEF]
            Text item=Oven_ElapsedTime
            Text item=Oven_FinishTime
            Switch item=Oven_Stop
        }
        Text item=WashingMachine_State label="Washing Machine [%s]" icon="washingmachine" {
            Text item=WashingMachine_Program visibility=[WashingMachine_RawState>1]
            Text item=WashingMachine_Temperature visibility=[WashingMachine_Program!=UNDEF]
            Text item=WashingMachine_SpinningSpeed visibility=[WashingMachine_Program!=UNDEF]
            Text item=WashingMachine_Phase visibility=[WashingMachine_Phase!=UNDEF]
            Text item=WashingMachine_ElapsedTime
            Text item=WashingMachine_FinishTime
            Text item=WashingMachine_PowerConsumption
            Text item=WashingMachine_WaterConsumption
        }
        Text item=TumbleDryer_State label="Tumble Dryer [%s]" icon="dryer" {
            Text item=TumbleDryer_Program visibility=[TumbleDryer_RawState>1]
            Text item=TumbleDryer_Phase visibility=[TumbleDryer_Phase!=UNDEF]
            Text item=TumbleDryer_ElapsedTime
            Text item=TumbleDryer_FinishTime
        }
        Text item=Dishwasher_State label="Dishwasher [%s]" icon="dryer" {
            Text item=Dishwasher_Program visibility=[Dishwasher_RawState>1]
            Text itemDishwasher_Phase visibility=[Dishwasher_Phase!=UNDEF]
            Text item=Dishwasher_ElapsedTime
            Text item=Dishwasher_FinishTime
            Text item=Dishwasher_PowerConsumption
            Text item=Dishwasher_WaterConsumption
        }
        Text item=Fridge_CurrentTemperature label="Fridge" icon="climate" {
            Text item=Fridge_CurrentTemperature
            Text item=Fridge_TargetTemperature
            Switch item=Fridge_SuperCool icon="snow"
        }
    }
}