JohNan / homeassistant-wellbeing

Get the status from your Electrolux devices connected to Wellbeing
MIT License
83 stars 23 forks source link

Adding support for air conditioning units #124

Open lcavalli opened 3 months ago

lcavalli commented 3 months ago

Hi, thanks for this integration! I have a feature request. Electrolux Wellbeing app supports also air conditioning units. It would be nice being able to control such climate units natively in HA. I own an Electrolux Comfort 600 unit and enabling log in your integration provides the following information (some redacted):

info {
    'serialNumber': '********',
    'pnc': '********',
    'brand': 'ELECTROLUX',
    'deviceType': 'PORTABLE_AIR_CONDITIONER',
    'model': 'COMFORT600',
    'variant': 'AZULTM01',
    'colour': 'WHITE'
}

state {
    'applianceId': '********************************',
    'connectionState': 'Connected',
    'status': 'enabled',
    'properties': {
        'reported': {
            'applianceState': 'running',
            'startTime': 0,
            'stopTime': 0,
            'temperatureRepresentation': 'celsius',
            'sleepMode': 'off',
            'targetTemperatureC': 26,
            'uiLockMode': False,
            'mode': 'auto',
            'fanSpeedSetting': 'auto',
            'verticalSwing': 'off',
            'filterState': 'good',
            'VmNo_MCU': 'V1.0.2',
            'dataModelVersion': 1.0.1',
            'VmNo_NIU': 'VM211_A_03.48.07_AZUL',
            'capabilities': {},
            'tasks': {},
            'schedulerSession': 'off',
            'upgradeState': 'idle',
            'logE': 2502,
            'logW': 343,
            'schedulerMode': 'off',
            '$version': 694,
            'deviceId': '*****************************',
            'ambientTemperatureC': 29,
            'compressorState': 'on',
            'totalRuntime': 332393,
            'compressorCoolingRuntime': 292969,
            'compressorHeatingRuntime': 0,
            'filterRuntime': 332160,
            'networkInterface': {
                'linkQualityIndicator': 'VERY_GOOD',
                'rssi': -49
            },
            'ambientTemperatureF': None,
            'hepaFilterLifeTime': 4480,
            'fourWayValveState': 'off',
            'evapDefrostState': 'off'
        }
    }
}

capabilities {
    'alerts': {
        'access': 'read',
        'type': 'alert',
        'values': {
            'COMMUNICATION_FAULT': {},
            'DC_MOTOR_FAULT': {},
            'DRAIN_PAN_FULL': {},
            'INDOOR_DEFROST_THERMISTOR_FAULT': {},
            'ROOM_TEMPERATURE_THERMISTOR_FAULT': {}
        }
    },
    'ambientTemperatureC': {
        'access': 'read',
        'step': 1,
        'type': 'int'
    },
    'applianceState': {
        'access': 'read',
        'type': 'string',
        'values': {
            'OFF': {},
            'RUNNING': {}
        }
    },
    'executeCommand': {
        'access': 'readwrite',
        'schedulable': True,
        'type': 'string',
        'values': {
            'OFF': {},
            'ON': {}
        }
    },
    'fanSpeedSetting': {
        'access': 'readwrite',
        'schedulable': True,
        'type': 'string',
        'values': {
            'AUTO': {},
            'HIGH': {},
            'LOW': {},
            'MIDDLE': {}
        }
    },
    'fanSpeedState': {
        'access': 'read',
        'type': 'string',
        'values': {
            'HIGH': {},
            'LOW': {},
            'MIDDLE': {}
        }
    },
    'mode': {
        'access': 'readwrite',
        'schedulable': True,
        'triggers': 
        [
            {
                'action': {
                    'fanSpeedSetting': {
                        'access': 'readwrite',
                        'type': 'string',
                        'values': {
                            'HIGH': {},
                            'LOW': {},
                            'MIDDLE': {}
                        }
                    },
                    'sleepMode': {
                        'disabled': True
                    }, 
                    'targetTemperatureC': {
                        'access': 'readwrite', 
                        'default': 23, 
                        'disabled': True, 
                        'max': 23, 
                        'min': 23, 
                        'step': 1, 
                        'type': 'temperature'
                    }
                },
                'condition': {
                    'operand_1': 'value',
                    'operand_2': 'FANONLY',
                    'operator': 'eq'
                }
            },
            {
                'action': {
                    'fanSpeedSetting': {
                        'access': 'read',
                        'type': 'string',
                        'values': {'
                        LOW': {}
                    }
                },
                'sleepMode': {
                    'disabled': True
                },
                'targetTemperatureC': {
                    'access': 'readwrite',
                    'default': 23,
                    'disabled': True,
                    'max': 23,
                    'min': 23,
                    'step': 1,
                    'type': 'temperature'
                }
            },
            'condition': {
                'operand_1': 'value',
                'operand_2': 'DRY',
                'operator': 'eq'
            }
            }, 
            {
                'action': {
                    'fanSpeedSetting': {
                        'access': 'read',
                        'type': 'string',
                        'values': {
                            'AUTO': {}
                        }
                    },
                    'sleepMode': {
                        'disabled': False
                    }, 
                    'targetTemperatureC': {
                        'access': 'readwrite',
                        'default': 16,
                        'max': 32,
                        'min': 16,
                        'step': 1,
                        'type': 'temperature'
                    }
                }, 
                'condition': {
                    'operand_1': 'value',
                    'operand_2': 'AUTO',
                    'operator': 'eq'
                }
            }, 
            {
                'action': {
                    'fanSpeedSetting': {
                        'access': 'readwrite',
                        'type': 'string',
                        'values': {
                            'AUTO': {},
                            'HIGH': {},
                            'LOW': {},
                            'MIDDLE': {}
                        }
                    },
                    'sleepMode': {
                        'disabled': False
                    },
                    'targetTemperatureC': {
                        'access': 'readwrite',
                        'default': 16,
                        'max': 32,
                        'min': 16,
                        'step': 1,
                        'type':
                        'temperature'
                    }
                },
                'condition': {
                    'operand_1': 'value',
                    'operand_2': 'COOL',
                    'operator': 'eq'
                }
            }
        ],
        'type': 'string',
        'values': {
            'AUTO': {},
            'COOL': {},
            'DRY': {},
            'FANONLY': {},
            'OFF': {
                'disabled': True
            }
        }
    },
    'networkInterface': {
        'linkQualityIndicator': {
            'access': 'read', 
            'rssi': {
                'access': 'read',
                'type': 'string'
            },
            'type': 'string',
            'values': {
                'EXCELLENT': {},
                'GOOD': {},
                'POOR': {},
                'UNDEFINED': {},
                'VERY_GOOD': {},
                'VERY_POOR': {}
            }
        },
        'swVersion': {
            'access': 'read',
            'type': 'string'
        }
    },
    'sleepMode': {
        'access': 'readwrite',
        'type': 'string',
        'values': {
            'OFF': {},
            'ON': {}
        }
    },
    'startTime': {
        'access': 'readwrite',
        'max': 86400,
        'min': 0,
        'step': 1800,
        'type': 'number',
        'values': {
            '0': {},
            '10800': {},
            '12600': {},
            '14400': {},
            '16200': {},
            '1800': {}, 
            '18000': {},
            '19800': {},
            '21600': {},
            '23400': {},
            '25200': {},
            '27000': {},
            '28800': {},
            '30600': {},
            '32400': {},
            '34200': {},
            '3600': {},
            '36000': {},
            '39600': {},
            '43200': {},
            '46800': {},
            '50400': {},
            '5400': {},
            '54000': {},
            '57600': {},
            '61200': {},
            '64800': {},
            '68400': {},
            '7200': {},
            '72000': {},
            '75600': {},
            '79200': {},
            '82800': {},
            '86400': {},
            '9000': {}
        }
    },
    'stopTime': {
        'access': 'readwrite',
        'max': 86400,
        'min': 0,
        'step': 1800,
        'type': 'number',
        'values': {
             '0': {},
            '10800': {},
            '12600': {},
            '14400': {},
            '16200': {},
            '1800': {}, 
            '18000': {},
            '19800': {},
            '21600': {},
            '23400': {},
            '25200': {},
            '27000': {},
            '28800': {},
            '30600': {},
            '32400': {},
            '34200': {},
            '3600': {},
            '36000': {},
            '39600': {},
            '43200': {},
            '46800': {},
            '50400': {},
            '5400': {},
            '54000': {},
            '57600': {},
            '61200': {},
            '64800': {},
            '68400': {},
            '7200': {},
            '72000': {},
            '75600': {},
            '79200': {},
            '82800': {},
            '86400': {},
            '9000': {}
        }
    },
    'targetTemperatureC': {
        'access': 'readwrite',
        'default': 16,
        'max': 32,
        'min': 16,
        'schedulable': True,
        'step': 1,
        'type': 'temperature'
    },
    'uiLockMode': {
        'access': 'readwrite',
        'type': 'boolean',
        'values': {
            'OFF': {},
            'ON': {}
        }
    },
    'verticalSwing': {
        'access': 'readwrite',
        'schedulable': True,
        'type': 'string',
        'values': {
            'OFF': {},
            'ON': {}
        }
    }
}
GitPetri commented 3 months ago

I also have a similar product, Model: BTU 12000 Comfort 600 PNC: 950 011 604 Model: EXP34U339CW

Is there anything I could help on getting this model supported?

lcavalli commented 3 months ago

For information only, I found an alternative Electrolux integration that supports several appliances, as well AC units.

GitPetri commented 3 months ago

For information only, I found an alternative Electrolux integration that supports several appliances, as well AC units.

Which integration is that?

lcavalli commented 3 months ago

"Home Assistant Electrolux Care Integration V2" here on GitHub.