Giter Club home page Giter Club logo

homebridge-electrolux-devices's Introduction

Homebridge Electrolux Devices

NPM Downloads NPM Version GitHub Actions Workflow Status

This is a plugin for connecting Electrolux devices which are controlled by the Electrolux app to Homekit.

🧰 Installation

  1. Connect all your Electrolux devices to the app and ensure you are able to control them.
  2. Install this plugin using the npm install -g homebridge-electrolux-devices command
  3. Configure the plugin using the schema.

🌡️ Supported devices

  • Comfort 600 air conditioner
  • Well A5/AX 5 air purifier
  • Well A7 air purifier
  • Pure A9/AX 9 air purifier
  • UltimateHome 500 air purifier

If your device is not on the list, please create the issue. I'll be more than happy to implement the support for your device. 😄

🐛 Known issues

Air conditioners

When air conditioner is set to Auto mode the maximum range value is set to 32, and the target temperature is set by changing minimum range value. If someone knows how to disable the temperature range in Auto mode, and allow to set the target temperature the same way as in Cool and Heat mode the PR will be more than welcome. :)

homebridge-electrolux-devices's People

Contributors

tomekkleszcz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

homebridge-electrolux-devices's Issues

Can't login

Describe The Bug:

To Reproduce:

Expected behavior:

Logs:

:37 PM] [homebridge-electrolux-devices] Restarting Process...
[10/17/2023, 4:10:38 PM] [homebridge-electrolux-devices] Launched child bridge with PID 76964
[10/17/2023, 4:10:38 PM] Registering platform 'homebridge-electrolux-devices.HomebridgeElectroluxDevices'
[10/17/2023, 4:10:38 PM] [homebridge-electrolux-devices] Loaded homebridge-electrolux-devices v0.0.4-beta.1 child bridge successfully
[10/17/2023, 4:10:38 PM] [homebridge-electrolux-devices] Signing in to Electrolux...
[10/17/2023, 4:10:38 PM] Homebridge v1.6.1 (HAP v0.11.1) (homebridge-electrolux-devices) is running on port 51826.
[10/17/2023, 4:10:38 PM] [homebridge-electrolux-devices] Couldn't not sign in to Electrolux!
[10/17/2023, 4:10:38 PM] [homebridge-electrolux-devices] Discovering devices...

/usr/local/lib/node_modules/homebridge-electrolux-devices/node_modules/axios/lib/core/settle.js:19
reject(new AxiosError(
^
AxiosError: Request failed with status code 401
at settle (/usr/local/lib/node_modules/homebridge-electrolux-devices/node_modules/axios/lib/core/settle.js:19:12)
at IncomingMessage.handleStreamEnd (/usr/local/lib/node_modules/homebridge-electrolux-devices/node_modules/axios/lib/adapters/http.js:572:11)
at IncomingMessage.emit (node:events:526:35)
at endReadableNT (node:internal/streams/readable:1408:12)
at processTicksAndRejections (node:internal/process/task_queues:82:21)
[10/17/2023, 4:10:38 PM] [homebridge-electrolux-devices] Child bridge process ended
[10/17/2023, 4:10:38 PM] [homebridge-electrolux-devices] Process Ended. Code: 1, Signal: null

Screenshots:

Environment:

  • Plugin Version:
  • Homebridge Version:
  • Node.js Version:
  • NPM Version:
  • Operating System:

Support oven 8000 CombiQuick

Describe Your Problem:

Logs:

[1/20/2024, 12:38:02 PM] [HomebridgeElectroluxDevices] Accessory not found for model:  OV

Plugin Config:

        {
            "email": "*****@gmail.com",
            "password": "******",
            "pollingInterval": 30,
            "carbonDioxideSensorAlarmValue": 1000,
            "platform": "HomebridgeElectroluxDevices"
        }

Environment:

  • Plugin Version:
  • Homebridge Version: 1.7.0
  • Node.js Version: 18.18.2
  • NPM Version: 9.8.1
  • Operating System: Docker

Access Token not being refreshed when expired (after 12h)

First of all, thanks a lot for this project, it's great!

Describe The Bug:

After the token expires (12h since being issued), it's not refreshed automatically. This results in a "flat line" in my graphs, showing that the plugin reports last known value as current. Had this happen 3 times in a row (in 12h intervals), restarting the plugin via Homebridge UI helps. Also no "Refreshing access token" is seen in logs, as expected by this line.

A dummy fix also seems to show that the logic itself is fine, it's just not being called (probably this can be solved in a cleaner way with some setIntervals, but I don't really know JS), I haven't seen the issue anymore with it applied.

My use-case might be a bit special, as I basically only use it for polling. It wouldn't really be visible without having graphs, just stuck on the last known value. But I think it breaks the "issuing commands" functionality.

To Reproduce:

Start the plugin and let it poll for more than 12 hours without restarts.

Expected behavior:

Access token is refreshed correctly and no downtime is seen.

Logs:
Collected with debug mode enabled:

(Click the arrow to get the full trace) The gist is that we get a 403 with: data: { Message: 'User is not authorized to access this resource with an explicit deny' } [8/7/2023, 3:08:29 PM] [homebridge-electrolux-devices] Polling error: AxiosError: Request failed with status code 403 at settle (/homebridge/node_modules/homebridge-electrolux-devices/node_modules/axios/lib/core/settle.js:19:12) at IncomingMessage.handleStreamEnd (/homebridge/node_modules/homebridge-electrolux-devices/node_modules/axios/lib/adapters/http.js:570:11) at IncomingMessage.emit (node:events:525:35) at endReadableNT (node:internal/streams/readable:1359:12) at processTicksAndRejections (node:internal/process/task_queues:82:21) { code: 'ERR_BAD_REQUEST', config: { transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }, adapter: [ 'xhr', 'http' ], transformRequest: [ [Function: transformRequest] ], transformResponse: [ [Function: transformResponse] ], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: { FormData: [Function], Blob: [class Blob] }, validateStatus: [Function: validateStatus], headers: AxiosHeaders { Accept: 'application/json', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Charset': 'utf-8', 'x-api-key': 'REDACTED', 'User-Agent': 'Ktor client', Authorization: 'Bearer REDACTED' }, baseURL: 'https://api.eu.ocp.electrolux.one/appliance/api/v2', method: 'get', url: '/appliances', data: undefined }, request: ClientRequest { _events: [Object: null prototype] { abort: [Function (anonymous)], aborted: [Function (anonymous)], connect: [Function (anonymous)], error: [Function (anonymous)], socket: [Function (anonymous)], timeout: [Function (anonymous)], finish: [Function: requestOnFinish] }, _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: false, _last: true, chunkedEncoding: false, shouldKeepAlive: false, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: false, socket: TLSSocket { _tlsOptions: [Object], _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, secureConnecting: false, _SNICallback: null, servername: 'api.eu.ocp.electrolux.one', alpnProtocol: false, authorized: true, authorizationError: null, encrypted: true, _events: [Object: null prototype], _eventsCount: 10, connecting: false, _hadError: false, _parent: null, _host: 'api.eu.ocp.electrolux.one', _closeAfterHandlingError: false, _readableState: [ReadableState], _maxListeners: undefined, _writableState: [WritableState], allowHalfOpen: false, _sockname: null, _pendingData: null, _pendingEncoding: '', server: undefined, _server: null, ssl: [TLSWrap], _requestCert: true, _rejectUnauthorized: true, parser: null, _httpMessage: [Circular *1], [Symbol(res)]: [TLSWrap], [Symbol(verified)]: true, [Symbol(pendingSession)]: null, [Symbol(async_id_symbol)]: 202536, [Symbol(kHandle)]: [TLSWrap], [Symbol(lastWriteQueueSize)]: 0, [Symbol(timeout)]: null, [Symbol(kBuffer)]: null, [Symbol(kBufferCb)]: null, [Symbol(kBufferGen)]: null, [Symbol(kCapture)]: false, [Symbol(kSetNoDelay)]: false, [Symbol(kSetKeepAlive)]: true, [Symbol(kSetKeepAliveInitialDelay)]: 60, [Symbol(kBytesRead)]: 0, [Symbol(kBytesWritten)]: 0, [Symbol(connect-options)]: [Object] }, _header: 'GET /appliance/api/v2/appliances HTTP/1.1\r\n' + 'Accept: application/json\r\n' + 'Accept-Encoding: gzip, deflate, br\r\n' + 'Accept-Charset: utf-8\r\n' + 'x-api-key: REDACTED\r\n' + 'User-Agent: Ktor client\r\n' + 'Authorization: Bearer REDACTED\r\n' + 'Host: api.eu.ocp.electrolux.one\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: Agent { _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, defaultPort: 443, protocol: 'https:', options: [Object: null prototype], requests: [Object: null prototype] {}, sockets: [Object: null prototype], freeSockets: [Object: null prototype] {}, keepAliveMsecs: 1000, keepAlive: false, maxSockets: Infinity, maxFreeSockets: 256, scheduling: 'lifo', maxTotalSockets: Infinity, totalSocketCount: 1, maxCachedSessions: 100, _sessionCache: [Object], [Symbol(kCapture)]: false }, socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/appliance/api/v2/appliances', _ended: true, res: IncomingMessage { _readableState: [ReadableState], _events: [Object: null prototype], _eventsCount: 4, _maxListeners: undefined, socket: [TLSSocket], httpVersionMajor: 1, httpVersionMinor: 1, httpVersion: '1.1', complete: true, rawHeaders: [Array], rawTrailers: [], joinDuplicateHeaders: undefined, aborted: false, upgrade: false, url: '', method: null, statusCode: 403, statusMessage: 'Forbidden', client: [TLSSocket], _consuming: false, _dumped: false, req: [Circular *1], responseUrl: 'https://api.eu.ocp.electrolux.one/appliance/api/v2/appliances', redirects: [], [Symbol(kCapture)]: false, [Symbol(kHeaders)]: [Object], [Symbol(kHeadersCount)]: 16, [Symbol(kTrailers)]: null, [Symbol(kTrailersCount)]: 0 }, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'api.eu.ocp.electrolux.one', protocol: 'https:', _redirectable: Writable { _writableState: [WritableState], _events: [Object: null prototype], _eventsCount: 3, _maxListeners: undefined, _options: [Object], _ended: true, _ending: true, _redirectCount: 0, _redirects: [], _requestBodyLength: 0, _requestBodyBuffers: [], _onNativeResponse: [Function (anonymous)], _currentRequest: [Circular *1], _currentUrl: 'https://api.eu.ocp.electrolux.one/appliance/api/v2/appliances', [Symbol(kCapture)]: false }, [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype] { accept: [Array], 'accept-encoding': [Array], 'accept-charset': [Array], 'x-api-key': [Array], 'user-agent': [Array], authorization: [Array], host: [Array] }, [Symbol(errored)]: null, [Symbol(kUniqueHeaders)]: null }, response: { status: 403, statusText: 'Forbidden', headers: AxiosHeaders { date: 'Mon, 07 Aug 2023 13:08:29 GMT', 'content-type': 'application/json', 'content-length': '83', connection: 'close', 'x-amzn-requestid': 'REDACTED', 'x-amzn-errortype': 'AccessDeniedException', 'x-amz-apigw-id': 'REDACTED', 'x-amzn-trace-id': 'REDACTED' }, config: { transitional: [Object], adapter: [Array], transformRequest: [Array], transformResponse: [Array], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: [Object], validateStatus: [Function: validateStatus], headers: [AxiosHeaders], baseURL: 'https://api.eu.ocp.electrolux.one/appliance/api/v2', method: 'get', url: '/appliances', data: undefined }, request: ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: false, _last: true, chunkedEncoding: false, shouldKeepAlive: false, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: false, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: 0, _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: false, socket: [TLSSocket], _header: 'GET /appliance/api/v2/appliances HTTP/1.1\r\n' + 'Accept: application/json\r\n' + 'Accept-Encoding: gzip, deflate, br\r\n' + 'Accept-Charset: utf-8\r\n' + 'x-api-key: REDACTED\r\n' + 'User-Agent: Ktor client\r\n' + 'Authorization: Bearer REDACTED\r\n' + 'Host: api.eu.ocp.electrolux.one\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'GET', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/appliance/api/v2/appliances', _ended: true, res: [IncomingMessage], aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: 'api.eu.ocp.electrolux.one', protocol: 'https:', _redirectable: [Writable], [Symbol(kCapture)]: false, [Symbol(kBytesWritten)]: 0, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype], [Symbol(errored)]: null, [Symbol(kUniqueHeaders)]: null }, data: { Message: 'User is not authorized to access this resource with an explicit deny' } } }

Plugin Config:

{
    "bridge": {
        "name": "Homebridge 5921",
        "username": "REDACTED",
        "port": 51931,
        "pin": "REDACTED",
        "advertiser": "bonjour-hap"
    },
    "accessories": [
        {
            "name": "report-sensors",
            "serial": "REDACTED",
            "cron": "* * * * *",
            "_bridge": {
                "username": "REDACTED",
                "port": 47981
            },
            "accessory": "Schedule"
        }
    ],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "platform": "config"
        },
        {
            "platform": "WizSmarthome",
            "name": "WizSmarthome",
            "_bridge": {
                "username": "REDACTED",
                "port": 35551
            },
            "devices": [
                {
                    "host": "REDACTED"
                }
            ]
        },
        {
            "email": "REDACTED",
            "password": "REDACTED",
            "region": "eu",
            "pollingInterval": 55,
            "carbonDioxideSensorAlarmValue": 1000,
            "_bridge": {
                "username": "REDACTED",
                "port": 45909
            },
            "platform": "HomebridgeElectroluxDevices"
        }
    ],
    "disabledPlugins": [
        "homebridge-linak"
    ]
}

Screenshots:

Flatline between 1PM and 4PM is the time "after 12h, but before the restart".
Carbon Dioxide level is a good indicator for this issue as it changes basically with every reading, when working as expected.
obraz

Environment:

  • Plugin Version: 0.0.4-beta.1
  • Homebridge Version: 1.6.1
  • Node.js Version: v18.6.0
  • NPM Version: 9.5.1
  • Operating System: docker, homebridge/homebridge:latest@sha256:fc32b594be5b50bbdfa209cb781817a494a2ce832de79b5d32cee118912415be

Carbon dioxide sensor alarm on A9 and A9 mini

Describe The Bug:
The CO2 alarm is triggered on A9 and A9 mini. When the window is opened the CO2 sensor detects 1500 ppm with the closed window it shows 3500 ppm. I'm pretty sure that my home is well-ventilated. I do not see these readings in an Electrolux app.

Is the sensor bad and shows wrong values? or is the plugin showing the wrong reading on A9 air purifiers?

To Reproduce:
N/A

Expected behaviour:

From what I read online the correct or in other words healthy value is between 500 - 1500 ppm. I assume that having A9 next to the opened window I should be in that range :-) ? ATM I set CO2 alarm at 4000ppm just to clear the alarms but it would be nice to have a real reading.

Logs:
N/A

Show the Homebridge logs here, and remove any sensitive information.
N/A

Plugin Config:
N/A

Screenshots:
N/A

Environment:

  • Plugin Version: 0.0.4-beta1
  • Homebridge Version: 1.6.1
  • Node.js Version: 18.16.0
  • NPM Version: 9.5.1
  • Operating System: Raspbian 11.7 / hb-service 4.50.6

Support for new region "Taiwan"

There are only five regions supported on the list. I tried to select these regions trying to login, but it does not work.
Here is the log.
[3/10/2024, 2:14:38 PM] [homebridge-electrolux-devices] Signing in to Gigya...
[3/10/2024, 2:14:38 PM] [homebridge-electrolux-devices] Polling error: Couldn't not sign in to Electrolux: Gigya API accounts.login failed with error code 301001 and message This API key is served by another data center.

Hope it will be supported for other regions.

Support for Washing machine and Owens

Is your feature request related to a problem? Please describe:

Describe the solution you'd like:

Describe alternatives you've considered:

Additional context:

So we have 3 devices:
1 Washing Machine: Elextrolux EW8F 169SA,
1 Owen: AEG BSK999330M
1 Microwave oven: AEG KME968000M (this also has a built in camera)

I also have several IDs in my Electrolux app let me know if you need them. Also happy to help if you need.

Best regards,
Zoltan Feher

AC model support

Hi can you add support for the Cool Connect Smart Portable AC model FGPC1244T1?

Thanks in advance.

Log level setup option.

Is your feature request related to a problem? Please describe:
At the moment plugin floods HomeBridge logs with constant:

[12/10/2023, 13:16:32] [HomebridgeElectroluxDevices] Polling appliances status...
[12/10/2023, 13:16:33] [HomebridgeElectroluxDevices] Appliances status polled!

Describe the solution you'd like:
It would be nice to have log level setup so that only warnings or errors are logged for stable setups. Or debug level if one is playing with the configuration.

Describe alternatives you've considered:
N/A

Additional context:
N/A

Thank you for your great work!

Adding Electrolux 9kg Ultimate Care Heat Pump Dryer

Is your feature request related to a problem? Please describe:
No problems

Describe the solution you'd like:
I would like to see the Electrolux 9kg Ultimate Care Heat Pump Dryer added to the supported appliances please.

Describe alternatives you've considered:
No alternatives

Additional context:
N/A

Couldn't not sign in to Electrolux: self signed certificate in certificate chain

With version 0.2.0 of the plugin (but even with the previous one before), I am getting the following on logs:

03/04/2024, 20:06:29 AEG PurifierHomebridgeElectroluxDevicesFetching JWT token...
03/04/2024, 20:06:29 AEG PurifierHomebridgeElectroluxDevicesWARNINGCouldn't not sign in to Electrolux: self signed certificate in certificate chain 

It's only following the steps in this comment #28 (comment) from a previously closed ticket that allow me to get the plugin to connect.

It seems a newer certificate is needed to be bundled.

Please add support for AEG Model: AX51

Hi there, since David's version of the AEG/Electrolux plugin is deprecated, I'd be delighted to see support for the AEG AX51 aircleaner added to this plugin as well.
Thanks in advance for your efforts.

Temp sensor request

First of all, thank you so much for this awesome plugin!

I noticed that the Comfort 600 also communicates current temperature to HK. In order to automate the AC turning on at a specific room temp, would it be possible to expose its temp info as a sensor to allow this automation? Thanks!

AEG Comfort 6000 - Target Heater-Cooler State invalid value / undefined

Describe The Bug:
Homebridge logs a warning message regarding the Target Heater-Cooler state as it receives the value as undefined.
As far as I can see, there isn't really any issue except the warning message. Haven't tested the device thoroughly yet though.

To Reproduce:
Basically default behaviour when adding the device

Expected behavior:
According to https://github.com/homebridge/homebridge/wiki/Characteristic-Warnings

If you see this message in the log, the plugin attempted to set an invalid value for a certain characteristic. This is just an informative warning message, Homebridge will automatically correct the value to a valid one.

Logs:

[5/26/2024, 9:09:23 AM] [homebridge-electrolux-devices] This plugin generated a warning from the characteristic 'Current Heater-Cooler State': characteristic value expected valid finite number and received "undefined" (undefined). See https://homebridge.io/w/JtMGR for more info.
[5/26/2024, 9:09:23 AM] [homebridge-electrolux-devices] Error: 
    at CurrentHeaterCoolerState.Characteristic.characteristicWarning (/homebridge/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:3011:105)
    at CurrentHeaterCoolerState.Characteristic.validateUserInput (/homebridge/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2903:14)
    at CurrentHeaterCoolerState.<anonymous> (/homebridge/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:2405:24)
    at step (/homebridge/node_modules/homebridge/node_modules/tslib/tslib.js:195:27)
    at Object.next (/homebridge/node_modules/homebridge/node_modules/tslib/tslib.js:176:57)
    at fulfilled (/homebridge/node_modules/homebridge/node_modules/tslib/tslib.js:166:62)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)

Plugin Config:

json
        {
            "email": "*reducted*",
            "password": "*reducted*",
            "pollingInterval": 30,
            "carbonDioxideSensorAlarmValue": 1000,
            "vocMolecularWeight": 30.026,
            "platform": "HomebridgeElectroluxDevices",
            "_bridge": {
                "username": "MA:CA:DD:RE:SS",
                "port": 31464
            }
        },

Screenshots:
image

Environment:

  • Plugin Version: 0.2.0
  • Homebridge Version: 1.8.2
  • Node.js Version: 20.12.2
  • NPM Version: 10.5.0
  • Operating System: Raspbian: Linux 6.6.28+rpt-rpi-2712 ; Docker version 26.1.3, build b72abbb

Setting fan speed to zero turns off the air conditioner, every other value makes no effect

Unfortunatelly, I guess the fan speed controller does not work as intended:

When you move the slider near specific values (as I read in code: 0, 33, 66 and 100), you can hear the beep on the air conditioner, but nothing changes, I usually put it on AUTO, moving the slider to 100, does not change the state of LED light of fan speed on conditioner nor in Electrolux app. When I change the speed manually by clicking a button on conditioner or in Electrolux app, the slider moves in Home app.
Next thing is when you move the slider from default zero to any other value, and then come back to zero, air conditioner turns off.

Here's some kind of demonstration as a screen recording (I suppose you're Polish, so I won't bother myself with translating the stuff here)

https://imgur.com/a/ywzu4JV

Please add support for Electrolux Well A5 / AEG AX5 air purifiers

Hi!

it would be great to add support for the A5 air purifier. It’s pretty much identical to the A7 you already support, but doesn’t have the ionization function as far as I know. It also lacks the temperature, humidity and CO2 sensors. At least those are not exposed to the native app and won’t probably be exposed to HomeKit.

Logging

Please can you add a switch into the settings that will allow us to turn off logging? The polling and update messages every 30 seconds can clog the logs very quickly!

absolutely love the plugin though! Thanks!

IMG_3981

Cannot create HK Automation using temp sensor

The plugin works great — thanks!

What confuses me is that I can't seem to set an Automation in HomeKit to start the device automatically as soon as it recognizes that the room temp goes over a certain amount. I can choose the AC's room temp measurement as an "if" statement, but in the "then" part, I cannot seem to find the AC in the list.

Is there any way around that?

Thanks!

Possibility of adding a fan mode as an alternative?

Hi, Is there a way to incorporate a fan mode into the existing functionality of the plugin? If so, I would be sincerely grateful for your assistance in making this feature available.
I have the Electrolux AC model EXP40U339CW. My modell missing the heating mode hardware but is still available as options in Homekit. I just wanted to convey it to you, if there is any way it could be disable for this model it would be great.

I wanted to express my appreciation for the excellent work and initiative put into developing this plugin.

Log flooded with 'VOC Density' exceeded maximum of 1000.

Describe The Bug:
Home bridge log flooded with messages:

[03/03/2024, 10:05:35] [homebridge-electrolux-devices] This plugin generated a warning from the characteristic 'VOC Density': characteristic was supplied illegal value: number 1184 exceeded maximum of 1000. See https://homebridge.io/w/JtMGR for more info.
[03/03/2024, 10:05:35] [homebridge-electrolux-devices] This plugin generated a warning from the characteristic 'VOC Density': characteristic was supplied illegal value: number 1343 exceeded maximum of 1000. See https://homebridge.io/w/JtMGR for more info.
[03/03/2024, 10:06:05] [homebridge-electrolux-devices] This plugin generated a warning from the characteristic 'VOC Density': characteristic was supplied illegal value: number 1148 exceeded maximum of 1000. See https://homebridge.io/w/JtMGR for more info.
[03/03/2024, 10:06:05] [homebridge-electrolux-devices] This plugin generated a warning from the characteristic 'VOC Density': characteristic was supplied illegal value: number 1290 exceeded maximum of 1000. See https://homebridge.io/w/JtMGR for more info.
  • Plugin Version: 0.0.8
  • Homebridge Version: Homebridge v1.7.0 UI v4.55.1
  • Node.js Version: 20.11.1
  • Operating System: Raspbian hb-service

I believe this was introduced sometime between 0.0.6 and 0.0.8

Fan speed for the Well A7 air purifier

First of all, as usual, thank you so much for the plugin, everything related to Comfort 600 air conditioner works perfectly fine (well at least there's nothing that's not mentioned in current issues :D)

Is there a possibility to turn the Well A7 air purifier to manual mode and control the fan speed?

Support boiler

Please add support for Electrolux EWH 100 SI BE EEC
It is a boiler/water heater.
It has a built in wifi and can controll it via their app.

Couldn't login the electrolux

Hi, I've installed your plugin with Great Thanks, however, the plugin causes a reboot loop.
I've checked the ID/pass several times, and re-make the Electrolux account, but it doesn't solve it.
I have left the logs as below and please give me advice to solve the issue if you found.
The Electrolux device is Pure A9.

Logs

[11/07/2023, 01:45:00] [homebridge-electrolux-devices] Signing in to Electrolux...
[11/07/2023, 01:45:01] Homebridge v1.6.1 (HAP v0.11.1) (homebridge-electrolux-devices) is running on port 32113.
[11/07/2023, 01:45:02] [homebridge-electrolux-devices] Couldn't not sign in to Electrolux!
[11/07/2023, 01:45:02] [homebridge-electrolux-devices] Discovering devices...
3Address 192.168.68.144, 
4EOJ [ 15, 32, 1 ]
4EOJ [ 2, 145, 1 ]
3Address 192.168.68.101
4EOJ [ 3, 187, 1 ]
Initializing e817a4a9-64e0-408e-9efd-da2462d1040e 192.168.68.xxx [ 2, 145, 1 ]
Initialized brightness e817a4a9-64e0-408e-9efd-da2462d1040e 0
4EOJ [ 2, 145, 2 ]
Initializing 1003e392-6616-4b1a-b71c-5e5f1d2ca8be 192.168.68.xxx [ 2, 145, 2 ]

/var/lib/homebridge/node_modules/homebridge-electrolux-devices/node_modules/axios/lib/core/settle.js:19
    reject(new AxiosError(
           ^
AxiosError: Request failed with status code 500
    at settle (/var/lib/homebridge/node_modules/homebridge-electrolux-devices/node_modules/axios/lib/core/settle.js:19:12)
    at IncomingMessage.handleStreamEnd (/var/lib/homebridge/node_modules/homebridge-electrolux-devices/node_modules/axios/lib/adapters/http.js:570:11)
    at IncomingMessage.emit (node:events:525:35)
    at endReadableNT (node:internal/streams/readable:1359:12)
    at processTicksAndRejections (node:internal/process/task_queues:82:21)
Config.json

    "email": "xxxxxxxxxx",
    "password": "xxxxxxxxxxx",
    "pollingInterval": 30,
    "carbonDioxideSensorAlarmValue": 1000,
    "platform": "HomebridgeElectroluxDevices",
    "_bridge": {
        "username": "0E:XX:XX:XX:XX:XX",
        "port": 00000

Environment:
GMT+0900 (JAPAN)
OS	Raspbian GNU/Linux Bullseye (11)
hostname	homebridge
IPv4 (wlan0)	192.168.xxx.xxx
IPv6 (wlan0)	xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Node.js バージョン	[v18.16.0](https://homebridge.io/w/JTKEF)
ユーザ	pi
lacation	/var/lib/homebridge
config	/var/lib/homebridge/config.json
plugin	/var/lib/homebridge/node_modules
Service mode	Yes

Support for dishwasher

Is your feature request related to a problem? Please describe:
I'm always frustrated when I can't monitor and control my dishwasher through my smart home setup. As an avid user of the Homebridge plugin, I've noticed that there's no out of the box support for Dishwasher devices except using Home Assistant and then connecting it into Homebridge. This means I can't integrate my dishwasher into my smart home ecosystem, limiting my ability to receive updates, track cycles, and conveniently start or stop the dishwasher remotely.

Describe the solution you'd like:
I would like to request the addition of Dishwasher device support to the Homebridge Electrolux Devices plugin. This would involve creating a new accessory type specifically designed for dishwashers. The accessory should allow for monitoring of essential information such as current cycle status (idle, running, paused), cycle type (normal, heavy, eco, etc.), and remaining time. Additionally, the ability to start or pause a cycle remotely via HomeKit would greatly enhance the usability of this feature.

Describe alternatives you've considered:
While there is currently no direct support for dishwashers, I have considered workarounds such as using generic switches or outlets within the Homebridge plugin. However, these alternatives lack the specificity and functionality required to truly integrate a dishwasher, as they don't provide accurate status information or control over different cycle types.

Additional context:
Zmywarka Electrolux EEQ67410W - 60cm

Can be used with Electrolux Kitchen app, I can change the program, start, stop, get notifications about missing salt or something.
Will happily work toghether to provide all the details and do some testing. The minimal valuable product would be to get information how long there is left to end washing cycle and status on/off of washing cycle.

AEG 6000 Comfort is working and can be added to the list

Just a short Update for the supported device list. An AEG 6000 Comfort is working. The only thing that is not supported (as far as I have seen so far) is the pure fan mode.
What works is:

  • Cooling
  • Heating
  • Auto
  • set temperature
  • Osziloscope
  • Fan speed
  • Child safety

What does not work/is not visible:

  • Fan mode (like a normal fan)

AEG 6000 Comfort

Support for smart oven

Is your feature request related to a problem? Please describe:
I'm facing the inconvenience of not being able to monitor and control my smart oven within the context of my home automation setup. Currently, there's no direct integration unless I take the circuitous route of using Home Assistant as an intermediary before incorporating it into Homebridge. This absence of streamlined support hinders my ability to seamlessly include my smart oven in my smart home ecosystem. This means I can't receive real-time updates on cooking progress, preheat the oven remotely, or adjust cooking settings via HomeKit.

Describe the solution you'd like:
I'm submitting a request for the integration of Smart Oven device compatibility into the Homebridge Electrolux Devices plugin. This extension would involve the creation of a new accessory category tailored specifically for smart ovens. Within this category, users should have the capability to effortlessly monitor essential information like the current cooking status (off, preheating, cooking), cooking temperature, remaining cooking time, and even specific cooking modes (bake, broil, convection, etc.). A paramount aspect of this feature would be the ability to initiate preheating or adjust cooking parameters remotely via HomeKit, adding a layer of convenience and control to the cooking process.

Describe alternatives you've considered:
While direct support for smart ovens is lacking, I've explored temporary solutions such as repurposing generic switches or outlets within the Homebridge plugin. However, these makeshift solutions fall short in delivering the nuanced functionality and accuracy required to holistically integrate a smart oven. They lack the ability to provide real-time cooking updates or offer fine-grained control over cooking settings.

Additional context:
My smart oven is an integral part of my kitchen setup, and it belongs to the Electrolux product lineup. The oven is accessible via the Electrolux Kitchen app, affording me the capability to set cooking modes, adjust temperatures, and receive notifications related to cooking progress or check temperature. I'm excited to collaborate in bringing this feature to fruition, offering comprehensive details and participating in rigorous testing. I would love for this feature to provide visibility into the current temperature status and allow users to turn the oven on or off remotely with set temperature and mode.

Piekarnik ELECTROLUX LOD6C77WZ SteamBake Elektyczny parowy Czarny A+
https://www.mediaexpert.pl/agd-do-zabudowy/piekarniki-do-zabudowy/piekarnik-electrolux-lod6c77wz?utm_medium=e-mail&utm_campaign=produkt

Used within Electrolux Kitchen app.

Plugin Polling error: Unauthorized

Hi,
I have updated to v0.2.0. But the plugin keeps showing Unauthorized.

m[homebridge-electrolux-devices] Polling error: Unauthorized
[4/10/2024, 12:36:56 PM] [homebridge-electrolux-devices] Refreshing access token...
[4/10/2024, 12:36:56 PM] [homebridge-electrolux-devices] Polling error: Unauthorized
[4/10/2024, 12:37:11 PM] [homebridge-electrolux-devices] Refreshing access token...
[4/10/2024, 12:37:11 PM] [homebridge-electrolux-devices] Polling error: Unauthorized
[4/10/2024, 12:37:26 PM] [homebridge-electrolux-devices] Refreshing access token...
[4/10/2024, 12:37:26 PM] [homebridge-electrolux-devices] Polling error: Unauthorized
[4/10/2024, 12:37:41 PM] [homebridge-electrolux-devices] Refreshing access token...
[4/10/2024, 12:37:41 PM] [homebridge-electrolux-devices] Polling error: Unauthorized
[4/10/2024, 12:37:56 PM] [homebridge-electrolux-devices] Refreshing access token...
[4/10/2024, 12:37:56 PM] [homebridge-electrolux-devices] Polling error: Unauthorized
[4/10/2024, 12:38:11 PM] [homebridge-electrolux-devices] Refreshing access token...
[4/10/2024, 12:38:11 PM] [homebridge-electrolux-devices] Polling error: Unauthorized

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.