Electrolux / AEG connected appliances integration anyone?

I’m redoing my kitchen and AEG / Electrolux has a line of connected appliances that seems quite interesting. Washing machines / Dryers and ovens (some even with a camera inside!).
The oven at least has Google Assistant integration. Not alexa tho.

However I couldn’t find any records of anyone integrating them in Home Assistant or IFTTT.

Has anyone tried?

7 Likes

Hi all

Sorry to dig up this topic but I’m interested in this too.

Can someone help us on this??

I can give some machines to test, a washer and a dryer.

Thank you all

also interested. Does anyone have more information?
Is AEG/Electrolux using the HomeConnect as Siemens or AllJoyn from Open Connectivity Foundation?

1 Like

Don’t take my word for it, but I believe they aren’t. That’s why I’m probably going all BSH-group on the new home (bosch, siemens, balay, neff… All sub-brands of that group use HomeConnect).

Electrolux is using Alljoyn. You can actually read the values with the IoT Explorer for Alljoyn in Win10 (search Microsoft Store). I’m seaching for some way to get this into HA and would apreciate if anyone have suggestions.

BR

Johan

Example:

2 Likes

I wish I could help…

Now the only thing I could do is to submit a request for a new feature:

3 Likes

Bumping :slight_smile:
I just got a nice air conditioner which I didn’t know initially could connect to Google Home - The PX71-265WT.
I would love to see an official integration in Home Assistant ! :hugs:

So no luck here? Deciding to get a bosch or an electrolux dryer. Looks like the second one is a hands down winner

I bought Bosch/Balay appliances (washing machine, dishwasher and oven) with HomeConnect and they have been detected by home assistant correctly after following the steps in the integration. I can see the status of their sensors like remaining time, door open and all sort of stuff. I haven’t tried to remotely start a program tho, I just integrated them past weekend. It would be pretty cool if I could ask alexa to set the oven to 180°C by voice. Not very useful, but cool.

1 Like

Any people working on this integration yet? Unable to do it myself, but would love this feature.

1 Like

Yeah I’m very keen for it too! I would imagine it wouldn’t take too long for some person (a lot smarter than myself) to nut out the integration; given the protocol Electrolux and AEG use is open source (Alljoyn).

Virtual beer for anyone who does!

Plus one for a beer to anyone who can have this integration done. Having an electrolux dryer and basic skills in sniffing etc. Can provide debug data etc

1 Like

Same here. I have an Eletrolux fridge. I’ve been looking at the AllJoyn protocol. It looks like it’s a pretty old IoT standard that didn’t really take off… I downloaded IoT Explorer for Alljoyn and can actually see the device in the network, along with someinformation that (I guess) can be used to interact with it, but that’s as fas as I got unfortunately…

ping.

Hi, I want to follow this thread. I’m since a few weeks the proud owner of an AEG washing machine en AEG dryer (is that the correct name?). Since AEG is Electrolux under the hood and it also uses this silly AllJoyn I want to get all info possible.

AllJoin didn’t show any result for me. Allthrough, after some sleepless night I’ve finally reversed aeg kitchen app fof android. Long story short, currently it use ibm iot cloud. It is possible to register a listening device from emulator and take connection credentials as well as certificate from there. Finally I was able to connect using mqttspy, connection didnt get stale for a week for now.

4 Likes

Hi, can i have more informations please?

Could please share any more information how your current setup looks like.
For instance how you communicate with the IBM iot cloud.

Thanks

Hey sure. There seem to besome issue with updating the values for some reason, but session seems to be correct.
Allthrough I’m short in time, would be happy to help on developing the integration.
I have some experience on different programming languages, but no experience programming HASS integration.

I use external mqtt server and convert payload to sensordata in nodered:

MQTT config:

connection ibm-aeg
address 4r8kqw.messaging.internetofthings.ibmcloud.com:8883
topic iot-2/cmd/+/fmt/+ both 
try_private false
remote_clientid d:4r8kqw:mobile:***
remote_password ****
remote_username use-token-auth
bridge_tls_version tlsv1.2
bridge_protocol_version mqttv311
bridge_attempt_unsubscribe false
cleansession true
notifications false
bridge_cafile /mosquitto/config/ca_certs/ca-aeg.crt
  • cert and ‘4r8kqw’ are extracted from mobile app.
  • remote_password is provided by some requests (you can see it if mitm the traffic)
  • remote_clientid - have special format. It is explained in IBM cloud site

nodered-flow

[
    {
        "id": "f6f2187d.f17ca8",
        "type": "tab",
        "label": "Aeg MQTT convert",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "b68f72ed8cf34377",
        "type": "mqtt in",
        "z": "f6f2187d.f17ca8",
        "name": "",
        "topic": "iot-2/#",
        "qos": "0",
        "datatype": "auto",
        "broker": "1c8d6e9520da9934",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 90,
        "y": 60,
        "wires": [
            [
                "ee4c699d5b4375d6"
            ]
        ]
    },
    {
        "id": "ee4c699d5b4375d6",
        "type": "json",
        "z": "f6f2187d.f17ca8",
        "name": "",
        "property": "payload",
        "action": "obj",
        "pretty": true,
        "x": 91.53846153846153,
        "y": 160,
        "wires": [
            [
                "2390fce960eb3ddc"
            ]
        ]
    },
    {
        "id": "dad3fda7142f80ef",
        "type": "debug",
        "z": "f6f2187d.f17ca8",
        "name": "Error",
        "active": true,
        "tosidebar": true,
        "console": true,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 300,
        "y": 460,
        "wires": []
    },
    {
        "id": "2390fce960eb3ddc",
        "type": "switch",
        "z": "f6f2187d.f17ca8",
        "name": "Devices",
        "property": "payload.device.deviceType",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "911434689_01",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "944188505_00",
                "vt": "str"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 3,
        "x": 123.07692307692308,
        "y": 240,
        "wires": [
            [
                "74930aea3d827fb2"
            ],
            [
                "74930aea3d827fb2"
            ],
            [
                "83fc196e304f2cb2"
            ]
        ]
    },
    {
        "id": "1808dbf5a07fef60",
        "type": "mqtt out",
        "z": "f6f2187d.f17ca8",
        "name": "",
        "topic": "",
        "qos": "",
        "retain": "false",
        "respTopic": "",
        "contentType": "application/json",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "1c8d6e9520da9934",
        "x": 730,
        "y": 360,
        "wires": []
    },
    {
        "id": "551ca972c22abd1a",
        "type": "function",
        "z": "f6f2187d.f17ca8",
        "name": "single topic ",
        "func": "var name = msg.payload.payload.components[0].name \nvar value = msg.payload.payload.components[0].value\n\nvar topic = \"homeassistant/sensor/\"\n            + msg.payload.device.deviceType + \"/\"\n            + name + \"/state\";\n\nvar message = {\n    name: name,\n    value: value,\n    attrs: msg.payload.payload.components\n}\n\nreturn {payload: message, topic: topic};",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 510,
        "y": 160,
        "wires": [
            [
                "aa726e8975ce45b3",
                "ad55233bc47a6888"
            ]
        ]
    },
    {
        "id": "aa726e8975ce45b3",
        "type": "debug",
        "z": "f6f2187d.f17ca8",
        "name": "item",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 730,
        "y": 60,
        "wires": []
    },
    {
        "id": "c28b7b099b12179e",
        "type": "mqtt out",
        "z": "f6f2187d.f17ca8",
        "name": "",
        "topic": "nodered/error",
        "qos": "",
        "retain": "true",
        "respTopic": "",
        "contentType": "application/json",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "1c8d6e9520da9934",
        "x": 300,
        "y": 520,
        "wires": []
    },
    {
        "id": "74930aea3d827fb2",
        "type": "switch",
        "z": "f6f2187d.f17ca8",
        "name": "single or more?",
        "property": "payload.payload.components.length",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "1",
                "vt": "str"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 327.69230769230774,
        "y": 160,
        "wires": [
            [
                "551ca972c22abd1a"
            ],
            [
                "157e77a1c0eb8564"
            ]
        ]
    },
    {
        "id": "157e77a1c0eb8564",
        "type": "switch",
        "z": "f6f2187d.f17ca8",
        "name": "guard",
        "property": "payload.payload.components[0].value",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "Container",
                "vt": "str"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 310,
        "y": 240,
        "wires": [
            [
                "b908443daaf31ae7"
            ],
            [
                "2444a4778572d6b2"
            ]
        ]
    },
    {
        "id": "83fc196e304f2cb2",
        "type": "change",
        "z": "f6f2187d.f17ca8",
        "name": "Unknon device",
        "rules": [
            {
                "t": "set",
                "p": "payload.error",
                "pt": "msg",
                "to": "Unknon device",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 120,
        "y": 320,
        "wires": [
            [
                "1abb91513272a023"
            ]
        ]
    },
    {
        "id": "1abb91513272a023",
        "type": "function",
        "z": "f6f2187d.f17ca8",
        "name": "merge",
        "func": "\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 110,
        "y": 460,
        "wires": [
            [
                "dad3fda7142f80ef",
                "c28b7b099b12179e"
            ]
        ]
    },
    {
        "id": "2444a4778572d6b2",
        "type": "change",
        "z": "f6f2187d.f17ca8",
        "name": "Unknon component",
        "rules": [
            {
                "t": "set",
                "p": "payload.error",
                "pt": "msg",
                "to": "Unknon component",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 370,
        "y": 380,
        "wires": [
            [
                "1abb91513272a023"
            ]
        ]
    },
    {
        "id": "b908443daaf31ae7",
        "type": "function",
        "z": "f6f2187d.f17ca8",
        "name": "container topic ",
        "func": "var name = msg.payload.payload.components[0].name \nvar value = msg.payload.payload.components[0].value\n\nvar arr = msg.payload.payload.components\nswitch(name) {\n    case \"UserSelections\":\n        value = arr[8].value;\n        break;\n    case \"DisplayTemperature\":\n    case \"TargetTemperature\":\n    case \"DisplayFoodProbeTemperature\":\n    case \"TargetFoodProbeTemperature\":\n        value = arr[2].value;\n        break;\n        \n}\n\nvar topic = \"homeassistant/sensor/\"\n            + msg.payload.device.deviceType + \"/\"\n            + name + \"/state\";\n\nvar message = {\n    name: name,\n    value: value,\n    attrs: msg.payload.payload.components\n}\n\nreturn {payload: message, topic: topic};",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 520,
        "y": 260,
        "wires": [
            [
                "ad55233bc47a6888"
            ]
        ]
    },
    {
        "id": "ad55233bc47a6888",
        "type": "function",
        "z": "f6f2187d.f17ca8",
        "name": "fix attrs",
        "func": "\nvar dict = {}\nvar arr = msg.payload.attrs\n\nfor (let i = 0; i < arr.length; i++) {\n  dict[arr[i].name] = arr[i]\n}\n\nmsg.payload.attrs = dict\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 740,
        "y": 200,
        "wires": [
            [
                "1808dbf5a07fef60"
            ]
        ]
    },
    {
        "id": "1c8d6e9520da9934",
        "type": "mqtt-broker",
        "name": "",
        "broker": "mqtt",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "5",
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "sessionExpiry": ""
    }
]

The list of sensors in config yaml:

Dishwasher


- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/RemoteControl/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/RemoteControl/state"
  name: "Dishwasher RemoteControl"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/ApplianceState/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/ApplianceState/state"
  name: "Dishwasher ApplianceState"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

## ---

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/ConnectivityState/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/ConnectivityState/state"
  name: "Dishwasher ConnectivityState"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/CyclePhase/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/CyclePhase/state"
  name: "Dishwasher CyclePhase"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/DoorState/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/DoorState/state"
  name: "Dishwasher DoorState"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/LinkQualityIndicator/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/LinkQualityIndicator/state"
  name: "Dishwasher LinkQualityIndicator"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/PreSelectLast/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/PreSelectLast/state"
  name: "Dishwasher PreSelectLast"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/RinseAidLevel/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/RinseAidLevel/state"
  name: "Dishwasher RinseAidLevel"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/StartTime/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/StartTime/state"
  name: "Dishwasher StartTime"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/State/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/State/state"
  name: "Dishwasher State"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/TimeToEnd/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/TimeToEnd/state"
  name: "Dishwasher TimeToEnd"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/TotalCycleCounter/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/TotalCycleCounter/state"
  name: "Dishwasher TotalCycleCounter"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/UserSelections/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/UserSelections/state"
  name: "Dishwasher UserSelections"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/911434689_01/WaterHardness/state"
  json_attributes_topic: "homeassistant/sensor/911434689_01/WaterHardness/state"
  name: "Dishwasher WaterHardness"
  icon: mdi:dishwasher
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

Oven

- platform: mqtt
  state_topic: "homeassistant/sensor/944188505_00/ApplianceState/state"
  json_attributes_topic: "homeassistant/sensor/944188505_00/ApplianceState/state"
  name: "Oven ApplianceState"
  icon: mdi:stove
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/944188505_00/RemoteControl/state"
  json_attributes_topic: "homeassistant/sensor/944188505_00/RemoteControl/state"
  name: "Oven RemoteControl"
  icon: mdi:stove
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

# ---

- platform: mqtt
  state_topic: "homeassistant/sensor/944188505_00/OvenProcessIdentifier/state"
  json_attributes_topic: "homeassistant/sensor/944188505_00/OvenProcessIdentifier/state"
  name: "Oven OvenProcessIdentifier"
  icon: mdi:stove
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/944188505_00/CavityLight/state"
  json_attributes_topic: "homeassistant/sensor/944188505_00/CavityLight/state"
  name: "Oven CavityLight"
  icon: mdi:stove
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/944188505_00/DisplayTemperature/state"
  json_attributes_topic: "homeassistant/sensor/944188505_00/DisplayTemperature/state"
  name: "Oven DisplayTemperature"
  icon: mdi:stove
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/944188505_00/DisplayFoodProbeTemperature/state"
  json_attributes_topic: "homeassistant/sensor/944188505_00/DisplayFoodProbeTemperature/state"
  name: "Oven DisplayFoodProbeTemperature"
  icon: mdi:stove
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/944188505_00/TargetFoodProbeTemperature/state"
  json_attributes_topic: "homeassistant/sensor/944188505_00/TargetFoodProbeTemperature/state"
  name: "Oven TargetFoodProbeTemperature"
  icon: mdi:stove
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/944188505_00/TargetTemperature/state"
  json_attributes_topic: "homeassistant/sensor/944188505_00/TargetTemperature/state"
  name: "Oven TargetTemperature"
  icon: mdi:stove
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"

- platform: mqtt
  state_topic: "homeassistant/sensor/944188505_00/DoorState/state"
  json_attributes_topic: "homeassistant/sensor/944188505_00/DoorState/state"
  name: "Oven DoorState"
  icon: mdi:stove
  value_template: "{{ value_json.value }}"
  json_attributes_template : "{{ value_json.attrs | tojson }}"
2 Likes

In case you didn’t know this site, it might help in the development of an integration for this. Unfortunately I don’t have the right skills to help you I’m afraid

Would be great to have a little more detail on how to establish the IOT connection with IBM cloud.
Have have no issues with using node red as “integration” for aeg instead of a native HA integration.

1 Like