Electrolux / AEG connected appliances integration anyone?

Amazing progress. Would love to jump in, could you create github repo with some starting info? We could cook something up

Hi,
i’m using openhab, not home assistant :slight_smile: and am currently trying to developp a binding for my electrolux washing machine.
However, for the sake of sharing knowledge, here is some information about what i found so far by reverse engineering the android mobile app:

The logic :

  1. Authenticate to obtain a token
  2. Register a “device” (vitual in our case) to be able to subscribe to IBM MQTT
  3. Read MQTT messages :slight_smile:

Here are some (linux) command to illustrate the proof of concept :

Some variables:

username='<your_electrolux/aeg_account_email>'
user_pwd='<your password>'
user_agent="okhttp/4.9.1"
country_isocode="FR"
# You can change the country code to any of one supported by the app

# Electrolux ID
brand_id="E6EB88D2-BD0E-4C8A-8DB9-766C22FDB641"
# AEG id is : A426680A-45DC-4582-9555-519BE6B57CDF

# "My care" app ID
app_id="CC51E7D3-02B0-4846-818C-857BF095FDFA"

# A 36 characters random device ID
device_id=$(cat /dev/urandom | tr -dc '[:alpha:]' | fold -w ${1:-36} | head -n 1)

Let’s do it:

Disclaimer : i was too lazy to get the server’s certificate so i used “–insecure” for testing purpose

  1. Get the session token (ibm client-id, authorization, and api key used in the requests are hard-coded into the app):
session_token=$(curl --insecure -s -X POST -A $user_agent "https://api.emea.ecp.electrolux.com/authentication/authenticate"  -H "x-ibm-client-id: 2a94cd2e-4248-4113-ace9-93540b43b18f" -H "Content-Type: application/json" -H "authorization: Basic dXNlcjpwYXNz" -H "x-api-key: 2a94cd2e-4248-4113-ace9-93540b43b18f" -d '
{
    "brand": "Electrolux",
    "country": "'"$country_isocode"'",
    "deviceId": "'"$device_id"'",
    "fields": {},
    "password": "'"$user_pwd"'",
    "username": "'"$username"'"
}' | jq -r '.data.sessionKey')

Note: (i cannot test, but you maybe need to replace “Electrolux” by “AEG” if you are rich and own one of those :slight_smile:)

  1. Register the virtual device to create an access to the MQTT topic
curl --insecure -s -X POST -A $user_agent "https://api.emea.ecp.electrolux.com/livesubscribe/livestream/register" -H "x-ibm-client-id: 2a94cd2e-4248-4113-ace9-93540b43b18f" -H "Content-Type: application/json" -H "session_token: $session_token" -H "x-api-key: 2a94cd2e-4248-4113-ace9-93540b43b18f"
  1. Use the data in the previous response to subscribe to the MQTT topic :
mosquitto_sub -h 4r8kqw.messaging.internetofthings.ibmcloud.com -p 8883 --cafile ./ibm_cert.crt -i "<ClientID from last curl call>" -u "use-token-auth" -P "<DeviceToken from last curl call>" -t 'iot-2/cmd/live_stream/fmt/json'

And here is the ibm_cert.crt cert file content :


-----BEGIN CERTIFICATE-----
MIIGXzCCBEegAwIBAgITGgAAAtCN3I1Z30hkPgAAAAAC0DANBgkqhkiG9w0BAQsF
ADBQMRMwEQYDVQQKEwpFbGVjdHJvbHV4MR0wGwYDVQQLExRDb25uZWN0ZWQgQXBw
bGlhbmNlczEaMBgGA1UEAxMRSW5mcmFzdHJ1Y3R1cmUgQ0EwHhcNMjEwOTIxMTA0
MDM4WhcNMjMwOTIxMTA0MDM4WjBtMRMwEQYDVQQKEwpFbGVjdHJvbHV4MR0wGwYD
VQQLExRDb25uZWN0ZWQgQXBwbGlhbmNlczE3MDUGA1UEAxMuNHI4a3F3Lm1lc3Nh
Z2luZy5pbnRlcm5ldG9mdGhpbmdzLmlibWNsb3VkLmNvbTCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAOe3EXaGEtr7sps+odeVO/CNLhFThiIVplMJriSM
EP0snJlZcO2D8MfZkRUq9BsiRwRY1MTmNrjn4ijihGNgtPN5R+hsUi5srNHBc4om
T2sebtlvHiOiuon0Xyy9a5Klc2sgdLvc15gyoVYdajQCqEwqkQEHWL3nTdpvSOBt
BUUPg2eJxktYZDkLkchu3pRrbwbVdYVRjs7fqKChai1yPD3+wj5+birPS/fWavel
AqxCFyg551dCLysCRKRR+RZL7UEZCyt5fuKo3DQ3gpW9rQV+HkP0VKV0xDvTAM80
JuiccWnj15Zvu5aaEWl5wIBWqpTEVNxXULE8NsiT5iQRkpUCAwEAAaOCAhMwggIP
MDkGA1UdEQQyMDCCLjRyOGtxdy5tZXNzYWdpbmcuaW50ZXJuZXRvZnRoaW5ncy5p
Ym1jbG91ZC5jb20wHQYDVR0OBBYEFAqrGVImhbBHMMsjdoE2R+TGvVDwMB8GA1Ud
IwQYMBaAFNMZZ1BFY0XMRYBykf5qiW2oeFNuMEQGA1UdHwQ9MDswOaA3oDWGM2h0
dHA6Ly9pb3RlY2EuZWxlY3Ryb2x1eC5jb20vY2RwL2luZnJhc3RydWN0dXJlLmNy
bDB+BggrBgEFBQcBAQRyMHAwPwYIKwYBBQUHMAKGM2h0dHA6Ly9pb3RlY2EuZWxl
Y3Ryb2x1eC5jb20vYWlhL2luZnJhc3RydWN0dXJlLmNydDAtBggrBgEFBQcwAYYh
aHR0cDovL2lvdGVjYS5lbGVjdHJvbHV4LmNvbS9vY3NwMA4GA1UdDwEB/wQEAwIF
oDA8BgkrBgEEAYI3FQcELzAtBiUrBgEEAYI3FQiGzsw/gv/PCYL9nQqM00KGxLQO
YYbf7UKCtsNjAgFkAgETMBMGA1UdJQQMMAoGCCsGAQUFBwMBMBsGCSsGAQQBgjcV
CgQOMAwwCgYIKwYBBQUHAwEwTAYDVR0gBEUwQzBBBgsrBgEEAYKvZAMBATAyMDAG
CCsGAQUFBwIBFiRodHRwOi8vaW90ZWNhLmVsZWN0cm9sdXguY29tL3BvbGljeQAw
DQYJKoZIhvcNAQELBQADggIBAEdyd4CYyIC+SAHzInki+Rwje7Mo8oC/oK5jOMxA
cR89kAiQIqRx2uhX8WIy8uCwsmbTwALTdWvLIUaphWANMtcU0vC6/9ddyN6WGJu/
4KgSSR6H59iI0g+N3um2qgTNb8s5sQkQl1ckg5J6xR6KJ0QFtzA3MCRN+C0NH+se
gKJFOKg4Fwqhc7pI6BbZzjCC1bZNUYLUw51CmZ53ShDIRCEQ2tKrNQRpc72whulL
PYmkgB3s/R2g5PHqlabABGq3yzTIAF/HIYx9BMUzCRB06YVj/gUrb8T9wtVF9M1t
rwX8KFbn/Pz/HXUKSlwxqZJ5DM4Pl2ADFI6K2cPVi3bbx0VgPEfrQMqkfjWNhmm/
UZXMDibFdy2KFYl5Qjlmf/HIbZuI75TNFf6peBAoxBMVz/1bejc1bNinBa0g6Xv3
LcSDCHsrBTTfmp9am7bJ68s3bdxuFiopvY8hDUqL9iQk7L6Z/uOB8y+nq/YSlF4m
5CHFpuPMXM1M20Zg3cDbmLvg3XqkgE+gLqG6PSai0x4jkeshcJy1YHWMlCMol9+g
Wsk5UnJGq2+GAeIh2gCv6CTbYjWdT0CK/hkp79Td0aylYDB3aG8lNuMkpxlp6rQ5
YhZQq8PtxU8tCwyd1dysicJT+XdyLFgi0dlu6oQmludFY68uQwqbcJyFPkuxNsg1
AVT2
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFZzCCA0+gAwIBAgIQEyXwe6Vvg7xBmE4edvyY+jANBgkqhkiG9w0BAQsFADBG
MRMwEQYDVQQKEwpFbGVjdHJvbHV4MR0wGwYDVQQLExRDb25uZWN0ZWQgQXBwbGlh
bmNlczEQMA4GA1UEAxMHUm9vdCBDQTAeFw0xNjExMTUxMDQyNTJaFw00MDExMTUx
MDUyNTFaMEYxEzARBgNVBAoTCkVsZWN0cm9sdXgxHTAbBgNVBAsTFENvbm5lY3Rl
ZCBBcHBsaWFuY2VzMRAwDgYDVQQDEwdSb290IENBMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEAzSRatzjTTcUqqvdESTkC+7LBVyWfonW/PTAzeeLMH7FO
KMAXQx7H7pj2S49jRbUwJmf+Ub08HakhAt4IUZIKIw17fGm8j7NlVjg3mh5/7o81
APhSG9auAG7i58RQZdA/EwrF5zcDGj+fJMJQtJLUXOxJ/aCvVMO2MER6myrjLMVj
DKV1n0d2iF/7F1f1oIJyWIP3I+2e2MEePAsyTtgcw32/hcMFU6r1SsJj/JHpk/Mb
i6yjyJByP3v1ZHyG8awvWe1pqvjADFrrevObSmRv79bACnwjM0CH+BGaEtV9HEJn
ooBFjOzy4MjEM2KbIFnmo2C3/BxgAZxKjE8uiA88pEWIIFmFI2GnRwLBhvlDDXLb
kAZQ/xRZqFkv1aEyKxYxAIhmHbipzBX6AOhSug7qnhzp9LqCoa2MWX5cjs4bKwoI
ITuamU4DJpHhGs4g1oDOZpQQw87c1cxyQycTEn7v1MnxsJsjYaOSUJ96rlOgva2A
r6ywE7vS3m7wK7mGcETHgFOQtBha+Tybg3de+/PbAwbheAVqsEdKJ2WQhvdHzWWL
Dez1KavlclezXo0PHjEwPq3pKgAD5fLbPI1fSl/1ZP3GLu1ngOquc1xfQWIAUjWS
hv56+rQzfk3j15L7VaZiaqAXXw6pP6/Q2A9Wf0RWCYVN1IO91+MjsX5OTZrbX5sC
AwEAAaNRME8wCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
FPkyCFwf0B9PCbtmxu6wTDuoavM+MBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3
DQEBCwUAA4ICAQAUZRh9OxdCZ8ruWEucIx+VICAnNxKJwCPkulh4PBTmZf9O9VU8
ELCybA5/456SF4a7Oz0xjO944Z4jHf0ydP6onankBTKMJYyzM3zMnyqnqWsR8Zah
23zwlxTLZwI6Jj6awuLPh+vAC4iVOrYY/U2Nf+alT/9CWcGlnjCG6JF/U0a7j9iG
BQBGhFiAR11qjKGCZL9/lldKK3eBS3nutmVMFXGC/9PBBeBQoGRCkAeZ5B31R+je
NcdFwy1XthGTjYYzZd/A8HIfg0qlPIAErQHxJwP6Dfddd8neewiWPESVkbV9h7tv
I7JFfCsL2xzSsvnlpVuzG/nb+QhNh+Mi0R4k/COYCAsibhEcPkuB9ETMsCMX6zbV
wtYJXLZTsqwNP4L82pEssQVeQE7oW5iu8Xg551oP3SysfHTvqa8N5Sj1b+SI/J1n
ZGvgMhYlpsXVqTPViiMuLqfr1t9YeTqafWS4VV/BAhARIYfqJymS/Z/J3kU5p16Y
zXx225gxQHQRTJzUlKVolHu45lllR2k5v1d4b86zmXr+jBqkrHQ5RvUrueG4MPwk
aCKaaZs9J7OCFHJvhvyUs9fiVyeCYFh3qLPbcTJypyE+B+YuyZBCfOCceeIYXxX8
f3xADikdOTnUStJTkOBsxq1aIeZ28MHohhDD+VHShtRyVDYtPmluoaf3fw==
-----END CERTIFICATE-----

Have fun.

2 Likes

Hi.
After some research, i’ve written some Python code… Please, check this: https://github.com/tomeko12/pyelectroluxconnect
With this module (available also via PyPi: https://pypi.org/project/pyelectroluxconnect), You can:

  • get list appliances paired with Electrolux account
  • get appliance profile with translations
  • get last appliance state from a cloud
  • send command to appliance
  • register/unregister client with Electrolux MQTT cloud based broker

Maybe, this will help somebody to write HA integration.

4 Likes

@tomeko12
Thx for your work, but when i use your work i get an error.
when i use:

import pyelectroluxconnect
ses = pyelectroluxconnect.Session(username, password)   
ses.login()

(i have set my username and password)

i get the error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.8/dist-packages/pyelectroluxconnect/Session.py", line 624, in login
    self._getAppliancesList()
  File "/usr/local/lib/python3.8/dist-packages/pyelectroluxconnect/Session.py", line 165, in _getAppliancesList
    self._getApplianceConfiguration(device['appliance_id'])
  File "/usr/local/lib/python3.8/dist-packages/pyelectroluxconnect/Session.py", line 214, in _getApplianceConfiguration
    self._applianceProfiles[applianceId] = self._createApplianceProfile(
  File "/usr/local/lib/python3.8/dist-packages/pyelectroluxconnect/Session.py", line 392, in _createApplianceProfile
    _container = self._parseApplianceProfileContainer(applianceId, _profval, applianceParsedProfile)
  File "/usr/local/lib/python3.8/dist-packages/pyelectroluxconnect/Session.py", line 340, in _parseApplianceProfileContainer
    _subcontainer["list"] = self._parseApplianceProfileContainer(applianceId, _idlist, applianceParsedProfile)
  File "/usr/local/lib/python3.8/dist-packages/pyelectroluxconnect/Session.py", line 350, in _parseApplianceProfileContainer
    result[_idlist["id"]]["steps"][_containerstepkey]["transl"] = self._getTranslation(applianceId, _containerstepvalue["locale_key"])
  File "/usr/local/lib/python3.8/dist-packages/pyelectroluxconnect/Session.py", line 554, in _getTranslation
    elif(self._language in self._applianceTranslations[applianceId][langKey]
KeyError: 'com.electrolux.ApcV1.Hacl4AlertEvent.Code.steps.Cooking323'

Ciao All,

I just implement the Home Assistant Integration using the @tomeko12 's python Library.
You can find here: https://github.com/mauro-midolo/homeassistant_electrolux_status

It works correctly with my Electrolux Dryer.

7 Likes

What is Your appliance’s "appliance_type", or "pnc" and "elc" values from appliances resoponse? Must be request/response display enabled:
ses = pyelectroluxconnect.Session(username, password, raw = True)

i dont get an appliances response because at ses.login() or appllist = ses.getAppliances() i get the same error.

When i print(ses)
status":"OK","code":"ECP0000","message":"success","data":[{"configuration_id":"944066697_00_00","configuration_description":{"brand":"Electrolux","pnc":"944066697","elc":"00","serial_number_from":0,"serial_number_to":99999999,"cpv":"00","schema_version":"0.5.a","version":"1.0019","state":"production","author_id":"toppaste-postman-v2","timestamp":1619442978994},"configuration_file":{"944066697_00_00.zip":{"content_type":"application/zip","revpos":11,"digest":"md5-dba62e812b7152ff5420a1a6f786823e","length":0,"stub":false}}}]}

Package updated. @Cinamon, You can check…

Ciao Mauro,

I can get the connection status thanks to your integration, but I can’t read any other detail…just the “connected” or “disconnected” status.

Maybe I did something wrong? :thinking:

Ciao @Cupra1979 ,

It’s correct, I only implemented status right now.
I’m working in order to integrate “TimeToEnd” property.

4 Likes

Mauro, just two words “Thank You”

Thank you. Though I am unable to make integration work, after login I get error, I’ve made issue on github.

Thank you @MauroM .

I was successfully able to install the integration and can get the status of my Dishwasher from Electrolux and Washer-Dryer from AEG. Maybe the sensor can be changed from seconds to minutes by default? Also, connected should maybe be changed to “On”?

Hi @MauroM !!

I have installed the integration and it is working with my dishwasher AEG FSE74718P :star_struck:

I know this integration is just starting now, but it would be interesting to know if you think in the future it might be possible to have more attributes by retrieving other information from the Electrolux app (when it needs dishwasher rinse aid, salt, or a cleaning and machine care cycle). That would be very interesting.

Thank you!

1 Like

Hi. I’m trying to make this work for the APAC region (country code AU), but it looks like this is only implemented for EMEA.
I’ve tried to download the certificate for the APAC url with no success - any help would be appreciated!

1 Like

Hi. I have added option in pyelectoluxconnect library to change default EMEA server to other (i think, https://api.apac.ecp.electrolux.com in Your case)

Hi @tomeko12
Thanks for adding this to the library. I tested it with:

import pyelectroluxconnect
ses = pyelectroluxconnect.Session("myemailaddress", "mypassword", tokenFileName = ".electrolux-token", country = "AU", language = None, deviceId = "CustomeDeviceId", raw = False, verifySsl = True, regionServer= "https://api.apac.ecp.electrolux.com")
ses.login()

And the output:

Traceback (most recent call last):
  File "/home/ed/.local/lib/python3.8/site-packages/pyelectroluxconnect/Session.py", line 139, in _createToken
    self._requestHttp(
  File "/home/ed/.local/lib/python3.8/site-packages/pyelectroluxconnect/Session.py", line 594, in _requestHttp
    raise ResponseError(response.status_code, response.text)
pyelectroluxconnect.Session.ResponseError: Invalid response, status code: 401 - Data: { "httpCode":"401", "httpMessage":"Unauthorized", "moreInformation":"Invalid client id or secret." }

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ed/.local/lib/python3.8/site-packages/pyelectroluxconnect/Session.py", line 625, in login
    self._createToken()
  File "/home/ed/.local/lib/python3.8/site-packages/pyelectroluxconnect/Session.py", line 144, in _createToken
    and json.loads(ex.text)["code"] == "AER0802"):
KeyError: 'code'

Not sure what I may be doing wrong, I’m new to Python. Appreciate any guidance!

Hi @correct_horse . Probably, there’s are differences with communication beetwen mobile app and Electrolux infrastructure on other regions. I have only EMEA account, mobile app and appliace, so I can’t check what’s a problem with other regions.

@correct_horse , please update pyelectroluxconnect, and try:

import pyelectroluxconnect
ses = pyelectroluxconnect.Session("myemailaddress", "mypassword", tokenFileName = ".electrolux-token", country = "AU", language = None, deviceId = "CustomeDeviceId", raw = False, verifySsl = True, region="apac")
ses.login()
1 Like

@tomeko12 - works like a charm with my Electrolux Fridge. Thanks a lot!

For reference, I’m pasting the transcript of the session:

>>> import pyelectroluxconnect
>>> ses = pyelectroluxconnect.Session("myemailaddress", "mypassword", tokenFileName = ".electrolux-token", country = "AU", language = None, deviceId = "CustomeDeviceId", raw = False, verifySsl = True, region="apac")
>>> ses.login()
>>> appllist = ses.getAppliances()
>>> print(appllist)
{'04XXXX66-443EXXXXXX13': {'alias': 'My Fridge', 'pnc': '92XXXXXX4', 'elc': '05', 'sn': '048XXXX6', 'mac': '443EXXXXXX13', 'cpv': '00', 'brand': 'Electrolux', 'group': 'Refrigeration', 'model': 'EHE6799SA'}}

Once again thanks a lot. Hoping @MauroM can add this to his Home Assistant Integration :slightly_smiling_face: