Electrolux / AEG connected appliances integration anyone?

Thanks for this works great with my washer. Would be nice to have time to end in minutes instead of seconds

There are a lot of requests to change time to end from seconds to minutes,
I will change it soon.

Ciao @correct_horse,
I already implemented “Region” parameter.
Is it work correctly? or some other integrations are required?

Ciao @MauroM,
Thanks for adding support for the Region parameter. The authentication process works with no issues. However the integration doesn’t seem to support my appliance yet, Electrolux EHE6899SA. As soon as I add the appliance, the integration gets stuck at “Retrying setup”.
I’ll see if I can find more information as to why this is not working.

Hi @correct_horse ,
Could You share output of following code? (Remember to hide sensitive data)

import pyelectroluxconnect
from pprint import pprint
ses = pyelectroluxconnect.Session("myemailaddress", "mypassword", tokenFileName = ".electrolux-token", country = "AU", language = None, deviceId = "CustomeDeviceId", raw = True, verifySsl = True, region="apac")
ses.login()
appllist = ses.getAppliances()
print(appllist)
for appliance in appllist:
    pprint(ses.getApplianceProfile(appliance))
    print("-------------------------------------------------------------------------------------------")
    pprint(ses.getApplianceState(appliance, rawOutput = False))

Hi @tomeko12,

Sure, not a problem. I’m splitting the output in two responses as I’m reaching the character limit.

First part:

>>> import pyelectroluxconnect
>>> from pprint import pprint
>>> ses = pyelectroluxconnect.Session("[email protected]", "XXXXXXXXXXXX", tokenFileName = ".electrolux-token", country = "AU", language = None, deviceId = "CustomeDeviceId", raw = True, verifySsl = True, region="apac")
>>> ses.login()
--- token file found
--- url: GET https://api.apac.ecp.electrolux.com/user-appliance-reg/users/XXXXXXXXXXXX%40gmail.com/appliances
--- respose body---
{"status":"OK","code":"ECP0000","message":"success","data":[{"appliance_type":"XXXXXXXXXXXX_05","appliance_id":"XXXXXXXXXXXX-XXXXXXXXXXXX","pnc":"XXXXXXXXXXXX","elc":"05","sn":"XXXXXXXXXXXX","mac":"XXXXXXXXXXXX","cpv":"00","nickname":"My Fridge"}]}
--- raw ending ---
--- url: GET https://api.apac.ecp.electrolux.com/config-files/configurations/search?pnc=XXXXXXXXXXXX&elc=05&serial_number=XXXXXXXXXXXX
--- respose body---
{"status":"OK","code":"ECP0000","message":"success","data":[{"configuration_id":"XXXXXXXXXXXX_05_00","configuration_description":{"brand":"Electrolux","pnc":"XXXXXXXXXXXX","elc":"05","serial_number_from":0,"serial_number_to":99999999,"cpv":"00","schema_version":"0.5.a","version":"1.0021","state":"production","author_id":"marcosan","timestamp":1643993692556},"configuration_file":{"XXXXXXXXXXXX_05_00.zip":{"content_type":"application/zip","revpos":11,"digest":"md5-d177c3ffcc75b7c27fb52646e96217a8","length":0,"stub":false}}}]}
--- raw ending ---
>>> appllist = ses.getAppliances()
>>> print(appllist)
{'XXXXXXXXXXXX-XXXXXXXXXXXX': {'alias': 'My Fridge', 'pnc': 'XXXXXXXXXXXX', 'elc': '05', 'sn': 'XXXXXXXXXXXX', 'mac': 'XXXXXXXXXXXX', 'cpv': '00', 'group': 'Refrigeration', 'brand': 'Electrolux', 'model': 'EHE6799SA'}}

>>> for appliance in appllist:
...     pprint(ses.getApplianceProfile(appliance))
...     print("-------------------------------------------------------------------------------------------")
...     pprint(ses.getApplianceState(appliance, rawOutput = False))
...
{'0x0002': {'access': 'read',
            'data_format': 'string',
            'name': 'SerialNumber',
            'nameTransl': 'S/N:',
            'path': '/HaclV4/CR1',
            'visibility': 'visible'},
 '0x0007': {'access': 'read',
            'data_format': 'string',
            'name': 'AppliancePnc',
            'nameTransl': 'PNC:',
            'path': '/HaclV4/CR1',
            'visibility': 'visible'},
 '0x000A': {'access': 'read',
            'data_format': 'string',
            'name': 'ApplianceElc',
            'nameTransl': 'ELC:',
            'path': '/HaclV4/CR1',
            'visibility': 'visible'},
 '0x0011': {'access': 'read',
            'data_format': 'string',
            'name': 'SwVersion',
            'nameTransl': 'NIUx SW Version:',
            'path': '/HaclV4/NIU',
            'visibility': 'visible'},
 '0x0016': {'access': 'read',
            'data_format': 'string',
            'name': 'ApplianceMainBoardSwVersion',
            'nameTransl': 'Main Board SW Version',
            'path': '/HaclV4/CR1',
            'visibility': 'hidden'},
 '0x0017': {'access': 'read',
            'data_format': 'string',
            'name': 'ApplianceMainBoardConfigVersion',
            'path': '/HaclV4/CR1',
            'visibility': 'hidden'},
 '0x0018': {'access': 'read',
            'data_format': 'string',
            'name': 'SwAnc',
            'nameTransl': 'Niu Sw Anc:',
            'path': '/HaclV4/NIU',
            'visibility': 'visible'},
 '0x0030': {'access': 'read',
            'data_format': 'array(byte)',
            'name': 'MacAddress',
            'nameTransl': 'MAC address:',
            'path': '/HaclV4/NIU',
            'visibility': 'visible'},
 '0x0032': {'access': 'read',
            'data_format': 'uint8',
            'name': 'LinkQualityIndicator',
            'nameTransl': 'Signal strength:',
            'path': '/HaclV4/NIU',
            'steps': [{'0': 'No Signal'},
                      {'1': '1/5'},
                      {'2': '2/5'},
                      {'3': '3/5'},
                      {'4': '4/5'},
                      {'5': '5/5'}],
            'visibility': 'visible'},
 '0x0060': {'access': 'read',
            'data_format': 'uint8',
            'name': 'State',
            'nameTransl': 'OTA Status',
            'path': '/HaclV4/NIU',
            'steps': [{'0': 'Idle'},
                      {'1': 'Description Available'},
                      {'2': 'Downloading Description'},
                      {'3': 'Description Ready'},
                      {'4': 'Downloading SW'},
                      {'5': 'SW Signature Check'},
                      {'6': 'Ready To Update'},
                      {'7': 'SW Update Running'},
                      {'8': 'Sw Update Check'},
                      {'9': 'Sw Update OK'},
                      {'10': 'Sw Update Error'},
                      {'11': 'Sw Update Abort'},
                      {'12': 'Waiting Authorization'},
                      {'13': 'Waiting for starting downloading SW'}],
            'visibility': 'visible'},
 '0x0070': {'access': 'read',
            'data_format': 'string',
            'name': 'Ssid',
            'path': '/HaclV4/NIU',
            'visibility': 'hidden'},
 '0x0400': {'access': 'read',
            'data_format': 'uint8',
            'name': 'ApplianceMode',
            'nameTransl': 'Appliance Mode',
            'path': '/HaclV4/CR1',
            'steps': [{'0': 'Appliance in Normal Mode'},
                      {'1': 'Appliance in Demo Mode'},
                      {'2': 'Appliance in Service Mode'}],
            'visibility': 'visible'},
 '0x0415': {'access': 'readwrite',
            'data_format': 'int32',
            'increment': '60',
            'max_value': '2700',
            'min_value': '1200',
            'name': 'ReminderTime',
            'nameTransl': 'Drink Chill',
            'path': '/HaclV4/CR1',
            'unit': 'UNIT_SSS',
            'visibility': 'visible'},
 '0x0420': {'access': 'read',
            'data_format': 'uint8',
            'max_value': '0',
            'min_value': '0',
            'name': 'TemperatureRepresentation',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'steps': [{'0': 'Celsius'}],
            'visibility': 'visible'},
 '0x0424': {'access': 'readwrite',
            'data_format': 'uint8',
            'name': 'VacationHolidayMode',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'steps': [{'0': 'Off'}, {'1': 'On'}],
            'visibility': 'visible'},
 '0x0430': {'access': 'read',
            'container': [{'0': {'access': 'read',
                                 'data_format': 'uint8',
                                 'max_value': '0',
                                 'min_value': '0',
                                 'name': 'Unit',
                                 'nameTransl': '',
                                 'steps': {'0': {'transl': 'Celsius'}},
                                 'visibility': 'hidden'},
                           '1': {'access': 'read',
                                 'data_format': 'int16',
                                 'name': 'Coefficient',
                                 'nameTransl': '',
                                 'visibility': 'hidden'},
                           '3': {'access': 'read',
                                 'data_format': 'int8',
                                 'max_value': '0',
                                 'min_value': '0',
                                 'name': 'Exponent',
                                 'nameTransl': '',
                                 'visibility': 'hidden'}}],
            'data_format': 'struct',
            'name': 'AmbientTemperature',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'type': 'Container',
            'visibility': 'hidden'},
 '0x0463': {'access': 'readwrite',
            'data_format': 'uint8',
            'name': 'UiLockMode',
            'nameTransl': 'Fridge Settings Lock',
            'path': '/HaclV4/CR1',
            'steps': [{'0': 'OFF'}, {'1': 'ON'}],
            'visibility': 'visible'},
 '0x0465': {'access': 'readwrite',
            'data_format': 'uint8',
            'name': 'Ui2LockMode',
            'nameTransl': 'Ice & Water Dispenser Lock',
            'path': '/HaclV4/CR1',
            'steps': [{'0': 'Unlocked'}, {'1': 'Locked'}],
            'visibility': 'visible'},
 '0x0470': {'access': 'read',
            'container': [{'0': {'access': 'read',
                                 'data_format': 'uint8',
                                 'name': 'Number',
                                 'nameTransl': 'Number',
                                 'visibility': 'visible'},
                           '1': {'access': 'read',
                                 'data_format': 'array(struct)',
                                 'list': {'0.0': {'access': 'read',
                                                  'data_format': 'uint8',
                                                  'name': 'Severity',
                                                  'nameTransl': 'Severity',
                                                  'steps': {'0': {'key': 'WARNING',
                                                                  'transl': 'Warning'},
                                                            '1': {'key': 'ALERT',
                                                                  'transl': 'Alarm'},
                                                            '2': {'key': 'FAULT',
                                                                  'transl': 'Fault'},
                                                            '3': {'key': 'DIAGNOSTIC',
                                                                  'transl': 'Diagnostic'},
                                                            '4': {'key': 'ALERT_UNDER_TEST',
                                                                  'transl': 'Alert '
                                                                            'Under '
                                                                            'Test'}},
                                                  'visibility': 'visible'},
                                          '0.6': {'access': 'read',
                                                  'data_format': 'uint8',
                                                  'name': 'AcknowledgeStatus',
                                                  'nameTransl': 'Acknowledge '
                                                                'Status',
                                                  'steps': {'0': {'key': 'NOT_NEEDED',
                                                                  'transl': ' '
                                                                            'Not '
                                                                            'Needed'},
                                                            '1': {'key': 'PENDING',
                                                                  'transl': 'Pending'},
                                                            '2': {'key': 'DONE',
                                                                  'transl': 'Done'}},
                                                  'visibility': 'visible'},
                                          '1': {'access': 'read',
                                                'data_format': 'uint16',
                                                'name': 'Code',
                                                'nameTransl': 'Code',
                                                'steps': {'1': {'key': 'POWER_FAILURE_ALARM',
                                                                'transl': 'Combi '
                                                                          'Refrigerator '
                                                                          'Power '
                                                                          'Failure '
                                                                          'Alarm'},
                                                          '12': {'key': 'HUMIDITY_SENSOR_BROKEN',
                                                                 'transl': 'Combi '
                                                                           'Refrigerator '
                                                                           'Humidity '
                                                                           'Sensor '
                                                                           'Broken'},
                                                          '13': {'key': 'HUMIDITY_SENSOR_OPEN_CIRCUIT',
                                                                 'transl': 'Combi '
                                                                           'Refrigerator '
                                                                           'Humidity '
                                                                           'Sensor '
                                                                           'Open '
                                                                           'Circuit'},
                                                          '14': {'key': 'HUMIDITY_SENSOR_SHORT_CIRCUIT',
                                                                 'transl': 'Combi '
                                                                           'Refrigerator '
                                                                           'Humidity '
                                                                           'Sensor '
                                                                           'Short '
                                                                           'Circuit'},
                                                          '2': {'key': 'COMMUNICATION_ALARM',
                                                                'transl': 'Combi '
                                                                          'Refrigerator '
                                                                          'Communication '
                                                                          'Alarm'},
                                                          '3': {'key': 'DRINK_CHILL_EXPIRED',
                                                                'transl': 'Combi '
                                                                          'Refrigerator '
                                                                          'Drink '
                                                                          'Chill '
                                                                          'Expired'},
                                                          '6': {'key': 'AIR_SENSOR_BROKEN',
                                                                'transl': 'Combi '
                                                                          'Refrigerator '
                                                                          'Air '
                                                                          'Sensor '
                                                                          'Broken'},
                                                          '7': {'key': 'AIR_SENSOR_OPEN_CIRCUIT',
                                                                'transl': 'Combi '
                                                                          'Refrigerator '
                                                                          'Air '
                                                                          'Sensor '
                                                                          'Open '
                                                                          'Circuit'},
                                                          '8': {'key': 'AIR_SENSOR_SHORT_CIRCUIT',
                                                                'transl': 'Combi '
                                                                          'Refrigerator '
                                                                          'Air '
                                                                          'Sensor '
                                                                          'Short '
                                                                          'Circuit'}},
                                                'visibility': 'visible'},
                                          '3': {'access': 'read',
                                                'data_format': 'uint32',
                                                'name': 'UnixTime',
                                                'visibility': 'hidden'}},
                                 'name': 'List',
                                 'visibility': 'hidden'}}],
            'data_format': 'struct',
            'name': 'Hacl4AlertEvent',
            'path': '/HaclV4/CR1',
            'type': 'Container',
            'visibility': 'hidden'},
 '0x0473': {'access': 'read',
            'container': [{'0': {'access': 'read',
                                 'data_format': 'uint8',
                                 'name': 'Number',
                                 'nameTransl': 'Niu Alert Event Number',
                                 'visibility': 'visible'},
                           '1': {'access': 'read',
                                 'data_format': 'array(struct)',
                                 'list': {'0': {'access': 'read',
                                                'data_format': 'uint8',
                                                'name': 'Severity',
                                                'nameTransl': 'Niu Alert Event '
                                                              'Severity',
                                                'steps': {'0': {'key': 'WARNING',
                                                                'transl': 'Warning'},
                                                          '1': {'key': 'ALERT',
                                                                'transl': 'Alert'},
                                                          '2': {'key': 'FAULT',
                                                                'transl': 'Fault'}},
                                                'visibility': 'visible'},
                                          '1': {'access': 'read',
                                                'data_format': 'uint16',
                                                'name': 'Code',
                                                'nameTransl': 'Niu Alert Event '
                                                              'Code',
                                                'steps': {'1': {'key': 'LOST_COMMUNICATION_APPLIANCE_NIU',
                                                                'transl': 'Lost '
                                                                          'Communication '
                                                                          'between '
                                                                          'Appliance '
                                                                          'and '
                                                                          'NIU'}},
                                                'visibility': 'visible'},
                                          '3': {'access': 'read',
                                                'data_format': 'uint32',
                                                'name': 'UnixTime',
                                                'nameTransl': 'Niu Alert Event '
                                                              'Code',
                                                'visibility': 'hidden'}},
                                 'name': 'List',
                                 'visibility': 'hidden'}}],
            'data_format': 'struct',
            'name': 'NiuAlertEvent',
            'nameTransl': 'Alarm:',
            'path': '/HaclV4/NIU',
            'type': 'Container',
            'visibility': 'hidden'},
 '0x04A0': {'access': 'read',
            'container': [{'0': {'access': 'read',
                                 'data_format': 'int16',
                                 'name': 'Coefficient',
                                 'visibility': 'hidden'},
                           '2': {'access': 'read',
                                 'data_format': 'int8',
                                 'name': 'Exponent',
                                 'visibility': 'hidden'}}],
            'data_format': 'struct',
            'name': 'CompressorSpeed',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'type': 'Container',
            'visibility': 'hidden'},
 '0x04A1': {'access': 'read',
            'data_format': 'uint8',
            'name': 'CompressorState',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'steps': [{'0': 'Off'}, {'1': 'On'}],
            'visibility': 'hidden'},
 '0x04EB': {'access': 'read',
            'data_format': 'uint8',
            'name': 'SensorHumidity',
            'path': '/HaclV4/CR1',
            'visibility': 'hidden'},
 '0x0C03': {'access': 'read',
            'data_format': 'uint8',
            'name': 'WaterFilterState',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'steps': [{'0': 'Good'},
                      {'1': 'Buy'},
                      {'2': 'Change'},
                      {'3': 'Clean'}],
            'visibility': 'visible'},
 '0x0C04': {'access': 'write',
            'data_format': 'void',
            'name': 'WaterFilterStateReset',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'visibility': 'visible'},
 '0x0C05': {'access': 'read',
            'data_format': 'uint8',
            'name': 'AirFilterState',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'steps': [{'0': 'Good'},
                      {'1': 'Buy'},
                      {'2': 'Change'},
                      {'3': 'Clean'}],
            'visibility': 'visible'},
 '0x0C06': {'access': 'write',
            'data_format': 'void',
            'name': 'AirFilterStateReset',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'visibility': 'visible'},
 '0x0C11': {'access': 'read',
            'data_format': 'uint8',
            'name': 'WaterDispenserState',
            'path': '/HaclV4/CR1',
            'visibility': 'hidden'},
 '0x0C1A': {'access': 'read',
            'data_format': 'int32',
            'name': 'WaterFilterLifeTime',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'unit': 'UNIT_SSS',
            'visibility': 'hidden'},
 '0x0C1B': {'access': 'read',
            'container': [{'0': {'access': 'read',
                                 'data_format': 'int16',
                                 'name': 'Coefficient',
                                 'nameTransl': '',
                                 'visibility': 'visible'},
                           '2': {'access': 'read',
                                 'data_format': 'int8',
                                 'max_value': '0',
                                 'min_value': '0',
                                 'name': 'Exponent',
                                 'nameTransl': '',
                                 'visibility': 'visible'}}],
            'data_format': 'struct',
            'name': 'WaterFilterFlow',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'type': 'Container',
            'visibility': 'visible'},
 '0x0C1C': {'access': 'read',
            'data_format': 'int32',
            'name': 'AirFilterLifeTime',
            'nameTransl': '',
            'path': '/HaclV4/CR1',
            'unit': 'UNIT_SSS',
            'visibility': 'visible'},
 '0x0C22': {'access': 'read',
            'data_format': 'uint8',
            'name': 'DefrostRoutineState',
            'path': '/HaclV4/CR1',
            'visibility': 'hidden'},
 '0x0C25': {'access': 'read',
            'data_format': 'uint8',
            'name': 'CoolingValveState',
            'path': '/HaclV4/CR1',
            'visibility': 'hidden'}}

Second part:

-------------------------------------------------------------------------------------------
--- url: GET https://api.apac.ecp.electrolux.com/elux-ms/appliances/latest?pnc=XXXXXXXXXXXX&elc=05&sn=XXXXXXXXXXXX&includeSubcomponents=true
--- respose body---
{"status":"OK","code":"ECP0000","message":"Successfully retrieved latest appliance states...","data":[{"spkTimestamp":1647982535,"description":"Alert Event","haclCode":"0470","source":"CR1","containers":[{"propertyName":"Number","tId":"0","group":0,"numberValue":0,"translation":"Number"}]},{"spkTimestamp":1647916154000,"description":"Ambient Temperature","haclCode":"0430","source":"CR1","containers":[{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":28,"translation":"Coefficient"},{"propertyName":"Exponent","tId":"3","group":0,"numberValue":0,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"}]},{"stringValue":"05","spkTimestamp":1606481363000,"description":"Appliance ELC","haclCode":"000A","source":"CR1","containers":[]},{"stringValue":"004995A5","spkTimestamp":1606481368000,"description":"Appliance MainBoard Cfg ver.","haclCode":"0017","source":"CR1","containers":[]},{"stringValue":"JHB10U00","spkTimestamp":1606481368000,"description":"Appliance MainBoard SW ver.","haclCode":"0016","source":"CR1","containers":[]},{"numberValue":0,"stringValue":"Normal","spkTimestamp":1606481368000,"description":"Appliance Mode","haclCode":"0400","source":"CR1","containers":[]},{"stringValue":"XXXXXXXXXXXX","spkTimestamp":1606481362000,"description":"Appliance PNC","haclCode":"0007","source":"CR1","containers":[]},{"spkTimestamp":1647982535000,"description":"Compressor Speed","haclCode":"04A0","source":"CR1","containers":[{"propertyName":"Coefficient","tId":"0","group":0,"numberValue":1700,"translation":"Coefficient"},{"propertyName":"Exponent","tId":"2","group":0,"numberValue":0,"translation":"Exponent"}]},{"numberValue":1,"stringValue":"On","spkTimestamp":1647974649000,"description":"Compressor State","haclCode":"04A1","source":"CR1","containers":[]},{"numberValue":-1,"spkTimestamp":1606481369000,"description":"Reminder Time","haclCode":"0415","source":"CR1","containers":[]},{"numberValue":49,"spkTimestamp":1647982317000,"description":"Undefined","haclCode":"04EB","source":"CR1","containers":[]},{"stringValue":"XXXXXXXXXXXX","spkTimestamp":1606481364000,"description":"Appliance Serial Number","haclCode":"0002","source":"CR1","containers":[]},{"numberValue":0,"stringValue":"Celsius","spkTimestamp":1606481369000,"description":"Temperature Representation","haclCode":"0420","source":"CR1","containers":[]},{"numberValue":0,"stringValue":"ChildLockOFF","spkTimestamp":1606481370000,"description":"UI Lock Mode","haclCode":"0463","source":"CR1","containers":[]},{"numberValue":4313553,"spkTimestamp":1647980203000,"description":"Air Filter Life Time","haclCode":"0C1C","source":"CR1","containers":[]},{"numberValue":0,"stringValue":"Good","spkTimestamp":1646741010000,"description":"FPS-Air Filter State","haclCode":"0C05","source":"CR1","containers":[]},{"numberValue":3,"spkTimestamp":1647981637000,"description":"FPS-Cooling Valve State","haclCode":"0C25","source":"CR1","containers":[]},{"numberValue":1,"spkTimestamp":1647953497000,"description":"FPS-Defrost Routine State","haclCode":"0C22","source":"CR1","containers":[]},{"numberValue":1,"spkTimestamp":1647980793000,"description":"FPS-Water Dispenser State","haclCode":"0C11","source":"CR1","containers":[]},{"spkTimestamp":1647957321000,"description":"Water Filter Flow","haclCode":"0C1B","source":"CR1","containers":[{"propertyName":"Coefficient","tId":"0","group":0,"numberValue":130,"translation":"Coefficient"},{"propertyName":"Exponent","tId":"2","group":0,"numberValue":0,"translation":"Exponent"}]},{"numberValue":6839615,"spkTimestamp":1647980203000,"description":"Water Filter Life Time","haclCode":"0C1A","source":"CR1","containers":[]},{"numberValue":0,"stringValue":"Good","spkTimestamp":1606481371000,"description":"FPS-Water Filter State","haclCode":"0C03","source":"CR1","containers":[]},{"numberValue":0,"stringValue":"Off","spkTimestamp":1641254451000,"description":"Vacation/Holiday Mode","haclCode":"0424","source":"CR1","containers":[]},{"numberValue":0,"stringValue":"Unlocked","spkTimestamp":1606481370000,"description":"UI2 Lock Mode","haclCode":"0465","source":"CR1","containers":[]},{"spkTimestamp":1647982535,"description":"Alert Event","haclCode":"0470","source":"RC1","containers":[{"propertyName":"Number","tId":"0","group":0,"numberValue":0,"translation":"Number"}]},{"numberValue":2,"stringValue":"On","spkTimestamp":1606481368000,"description":"Appliance State","haclCode":"0401","source":"RC1","containers":[]},{"numberValue":0,"stringValue":"Closed","spkTimestamp":1647978413000,"description":"Door State","haclCode":"0460","source":"RC1","containers":[]},{"numberValue":0,"spkTimestamp":1647981926000,"description":"Evaporator Fan State","haclCode":"0451","source":"RC1","containers":[]},{"spkTimestamp":1647982395000,"description":"Actual Sensor Temperature","haclCode":"0433","source":"RC1","containers":[{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":13,"translation":"Coefficient"},{"propertyName":"Exponent","tId":"3","group":0,"numberValue":-1,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"}]},{"spkTimestamp":1646741007000,"description":"Target Temperature","haclCode":"0432","source":"RC1","containers":[{"propertyName":"Exponent","tId":"3","group":0,"numberValue":-1,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"},{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":20,"translation":"Coefficient"}]},{"spkTimestamp":1647982398000,"description":"FPS-Defrost Temperature","haclCode":"0C08","source":"RC1","containers":[{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":-87,"translation":"Coefficient"},{"propertyName":"Exponent","tId":"3","group":0,"numberValue":-1,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"}]},{"numberValue":0,"stringValue":"Off","spkTimestamp":1647150976000,"description":"FPS-Fast Mode","haclCode":"0C00","source":"RC1","containers":[]},{"numberValue":0,"spkTimestamp":1647150975000,"description":"FPS-Fast Mode Time To End","haclCode":"0C12","source":"RC1","containers":[]},{"spkTimestamp":1647982535,"description":"Alert Event","haclCode":"0470","source":"FC1","containers":[{"propertyName":"Number","tId":"0","group":0,"numberValue":0,"translation":"Number"}]},{"numberValue":2,"stringValue":"On","spkTimestamp":1606481369000,"description":"Appliance State","haclCode":"0401","source":"FC1","containers":[]},{"numberValue":0,"stringValue":"Closed","spkTimestamp":1647839353000,"description":"Door State","haclCode":"0460","source":"FC1","containers":[]},{"numberValue":1,"spkTimestamp":1647981637000,"description":"Evaporator Fan State","haclCode":"0451","source":"FC1","containers":[]},{"spkTimestamp":1647982396000,"description":"Actual Sensor Temperature","haclCode":"0433","source":"FC1","containers":[{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":-219,"translation":"Coefficient"},{"propertyName":"Exponent","tId":"3","group":0,"numberValue":-1,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"}]},{"spkTimestamp":1641254451000,"description":"Target Temperature","haclCode":"0432","source":"FC1","containers":[{"propertyName":"Exponent","tId":"3","group":0,"numberValue":-1,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"},{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":-220,"translation":"Coefficient"}]},{"spkTimestamp":1647982398000,"description":"FPS-Defrost Temperature","haclCode":"0C08","source":"FC1","containers":[{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":-267,"translation":"Coefficient"},{"propertyName":"Exponent","tId":"3","group":0,"numberValue":-1,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"}]},{"numberValue":0,"stringValue":"Off","spkTimestamp":1647172481000,"description":"FPS-Fast Mode","haclCode":"0C00","source":"FC1","containers":[]},{"numberValue":0,"spkTimestamp":1647172479000,"description":"FPS-Fast Mode Time To End","haclCode":"0C12","source":"FC1","containers":[]},{"spkTimestamp":1647982535,"description":"Alert Event","haclCode":"0470","source":"XC1","containers":[{"propertyName":"Number","tId":"0","group":0,"numberValue":0,"translation":"Number"}]},{"numberValue":2,"stringValue":"On","spkTimestamp":1606481369000,"description":"Appliance State","haclCode":"0401","source":"XC1","containers":[]},{"numberValue":0,"stringValue":"Closed","spkTimestamp":1647939993000,"description":"Door State","haclCode":"0460","source":"XC1","containers":[]},{"numberValue":0,"stringValue":"Off","spkTimestamp":1647982080000,"description":"Fan State","haclCode":"0450","source":"XC1","containers":[]},{"spkTimestamp":1647980903000,"description":"Actual Sensor Temperature","haclCode":"0433","source":"XC1","containers":[{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":0,"translation":"Coefficient"},{"propertyName":"Exponent","tId":"3","group":0,"numberValue":-1,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"}]},{"spkTimestamp":1641254451000,"description":"Target Temperature","haclCode":"0432","source":"XC1","containers":[{"propertyName":"Exponent","tId":"3","group":0,"numberValue":-1,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"},{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":-5,"translation":"Coefficient"}]},{"numberValue":0,"stringValue":"Off","spkTimestamp":1606481372000,"description":"Clone Target Temperature Mode","haclCode":"0C1E","source":"XC1","containers":[]},{"numberValue":0,"stringValue":"None","spkTimestamp":1618485026000,"description":"FPS-Temperat. Adjusting State","haclCode":"0C09","source":"XC1","containers":[]},{"spkTimestamp":1647982535,"description":"Alert Event","haclCode":"0470","source":"IC1","containers":[{"propertyName":"Number","tId":"0","group":0,"numberValue":0,"translation":"Number"}]},{"numberValue":2,"stringValue":"On","spkTimestamp":1618627732000,"description":"Appliance State","haclCode":"0401","source":"IC1","containers":[]},{"numberValue":0,"spkTimestamp":1647981734000,"description":"Evaporator Fan State","haclCode":"0451","source":"IC1","containers":[]},{"spkTimestamp":1647982398000,"description":"Actual Sensor Temperature","haclCode":"0433","source":"IC1","containers":[{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":-92,"translation":"Coefficient"},{"propertyName":"Exponent","tId":"3","group":0,"numberValue":-1,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"}]},{"spkTimestamp":1647982399000,"description":"FPS-Defrost Temperature","haclCode":"0C08","source":"IC1","containers":[{"propertyName":"Coefficient","tId":"1","group":0,"numberValue":-215,"translation":"Coefficient"},{"propertyName":"Exponent","tId":"3","group":0,"numberValue":-1,"translation":"Exponent"},{"propertyName":"Unit","tId":"0","group":0,"numberValue":0,"translation":"Unit"}]},{"numberValue":0,"spkTimestamp":1647978394000,"description":"FPS-Ice Dispenser State","haclCode":"0C10","source":"IC1","containers":[]},{"numberValue":1,"stringValue":"NormalPressure","spkTimestamp":1606481372000,"description":"Ice Tray Water Fill Setting","haclCode":"0C1D","source":"IC1","containers":[]},{"stringValue":"v5.3.1","spkTimestamp":1641254439000,"description":"Connectivity Node SW version","haclCode":"0011","source":"NIU","containers":[]},{"numberValue":0,"stringValue":"Idle","spkTimestamp":1647901788000,"description":"NIU FW Update State","haclCode":"0060","source":"NIU","containers":[]},{"numberValue":3,"stringValue":"Good","spkTimestamp":1647974515000,"description":"Link Quality Indicator","haclCode":"0032","source":"NIU","containers":[]},{"stringValue":"XXXXXXXXXXXX","spkTimestamp":1618451558000,"description":"MAC Address","haclCode":"0030","source":"NIU","containers":[]},{"spkTimestamp":1606481369000,"description":"NIU Alert Event","haclCode":"0473","source":"NIU","containers":[{"propertyName":"Number","tId":"0","group":0,"numberValue":0,"translation":"Number"}]},{"stringValue":"ThingsWifi","spkTimestamp":1618451558000,"description":"Network Name","haclCode":"0070","source":"NIU","containers":[]},{"stringValue":"connect","spkTimestamp":1647826489561,"description":"ConnectivityState","haclCode":"0000","source":"APL","containers":[]}]}
--- raw ending ---
Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
  File "/home/user/.local/lib/python3.8/site-packages/pyelectroluxconnect/Session.py", line 739, in getApplianceState
    return self._parseApplianceState(
  File "/home/user/.local/lib/python3.8/site-packages/pyelectroluxconnect/Session.py", line 463, in _parseApplianceState
    self._applianceProfiles[applianceId][_hexHacl]["container"],
KeyError: '0x0433'
>>>

@correct_horse , what is Your appliance PNC number?

@tomeko12 PNC It’s 925060324

@correct_horse thanks.
Please update pyelectroluxconnect to 0.1.11 and check if is there any error?

Hi @tomeko12. I updated pyelectroluxconnect to 0.1.11 and tested as instructed before. This time the queries were completed with no errors.

I can confirm that Fridge EHE6899SA works since version 1.10.0 of the integration. However, the only non-diagnostic sensor available is the door state (binary_sensor).

I am now interpreting the queries through pyelectroluxconnect in an attempt to contribute with more sensors.

In doing so I understand the following piece of query can be converted into a sensor with the below code:

 '0x0460': {'access': 'read',
            'name': 'DoorState',
            'nameTransl': 'Door Status',
            'numberValue': 0,
            'source': 'XC1',
            'spkTimestamp': 1648087139000,
            'stringValue': 'Closed',
            'valueTransl': 'Door is closed',
            'visibility': 'visible'},

This is how the integration makes the query:

            ApplianceBinary(
                name=f"{data.get_name()} Door",
                attr='DoorState', field='numberValue',
                device_class=DEVICE_CLASS_DOOR,
            ),

Now if the sensor is within a container, I would like to understand how to write the query for the integration. Example below:

 '0x0430': {'access': 'read',
            'container': {'0': {'access': 'read',
                                'data_format': 'uint8',
                                'group': 0,
                                'name': 'Unit',
                                'nameTransl': '',
                                'numberValue': 0,
                                'propertyName': 'Unit',
                                'tId': '0',
                                'visibility': 'hidden'},
                          '1': {'access': 'read',
                                'data_format': 'int16',
                                'group': 0,
                                'name': 'Coefficient',
                                'nameTransl': '',
                                'numberValue': 28,
                                'propertyName': 'Coefficient',
                                'tId': '1',
                                'visibility': 'hidden'},
                          '3': {'access': 'read',
                                'data_format': 'int8',
                                'group': 0,
                                'name': 'Exponent',
                                'nameTransl': '',
                                'numberValue': 0,
                                'propertyName': 'Exponent',
                                'tId': '3',
                                'visibility': 'hidden'}},
            'name': 'AmbientTemperature',
            'nameTransl': '',
            'source': 'CR1',
            'spkTimestamp': 1648038502000,
            'visibility': 'hidden'},

Any assistance would be appreciated.

Hi @correct_horse .
In real, Your appliance have 3 door sensors and few Temp sensors. New pyelectroluxconnect is handling this (HA integration not, yet).
I think, temperature should be computed (i guess temp=CoefficientExponent). But in Your case 280=1, it’s correct?

Hi @tomeko12 . At first I thought that would be the correct calculation, however that may actually be the ambient temperature at 28C, but I’m not 100% sure yet.

I’ll wait for the changes in the integration.

Also, there are some read/write parameters that could be translated into switches, for example vacation mode, etc. Not sure if this will come in the future as well. Thanks!

Hey, i feel really good to see this component is starting out nicely, and thanks for the hard work you both put into it. :wink:

I tried to fire it up on my instance, for a test, i have an Electrolux branded steam oven, and combi microwave oven, and I use the “My Electrolux Kitchen” application on my phone.

Sadly the underlying python package fails during authentication, because the downloaded profile.json file not contains the brand. o.O I verified this by pulling the package locally and give it a try, the zip file is got downloaded, but it fails at Session.py:275

If its helpful i can share my profile.json or anytrhing else i can help with.

@zolli07, I’ve updated package to support empty brands. Please check again.

Hi guys, I’m trying to add integration into my instance of hassio (docker) but when I want to enable integration so I get:

Could someone give me any hint?
The log is empty - any error / warning.

Edit: it’s magically fixed, I have enabled debug logging and works like a charm with my ELECTROLUX SENSE 900 MaxiFlex KEZA9310W

Whoo, that was quick, sure it fixed the issue and now i`m able to get the registered appliances. :wink: I assume I need to add the new properties to the integration to get this working on HA side as well. If @MauroM is intrested i can share de descriptors for the 2 appliances i have.

Had a problem logging in with a password containing an exclamtion mark. Registered to a new account and everything went well

Confirm this model of PerfectCare 900 Working - EW9H1R89B

Ciao @zolli07,

what are the parameters to integrate?