betaboon / philips-airpurifier-coap

💨 Philips AirPurifier custom component for Home Assistant. With support for new Devices with CoAP protocol. Tested on AC2729/10 (bought early 2020)
70 stars 31 forks source link

initial development feedback #1

Closed betaboon closed 3 years ago

betaboon commented 3 years ago

This issue is the place to give me feedback on the initial implementation

tunip commented 3 years ago

First, thanks for your variant of custom implementation.

I have a ac2889/10 air purifier and could use it with your implementation.

Bildschirmfoto 2020-12-22 um 19 58 23

Is in the future planed to also control (mode, speed) the air purifier?

tunip commented 3 years ago

Also have to change from platform: philips-airpurifier (described in the README.md) to platform: philips_airpurifier. Otherwise the platform is unknown.

tunip commented 3 years ago

After 1 hour test run, can't switch off the air purifier anymore (switch in HA goes back to ON).

betaboon commented 3 years ago

@tunip I'm planning on implementing the control-parts in the next couple of days. i just noticed the same thing with turn-on/off not working anymore after a while. I'm trying to figure out why right now.

if you want you could provide me with some debug-logs. adding this to your configuration.yaml:

logger:
  logs:
    custom_components.philips_airpurifier: debug
betaboon commented 3 years ago

@tunip i just pushed some changes:

spider7611 commented 3 years ago

My Series 4000i AC3858/50 "working" only with this: https://github.com/shexbeer/philips-airpurifier tryed all of fork. When I uninstalled it and installed yours in HACS and restart HA not show up philips fan at all. Install back shexbeer fork and "working", but only on and off switch. Not have speed or mode setup. If I switch on or off the purifier manually after in HA not working untill HA restart.

tunip commented 3 years ago

Thx, updated to the newest commit. First small finding, speed value is "null" in entity list.

Bildschirmfoto 2020-12-23 um 11 02 53

And the used speed is not updated in the control panel.

Bildschirmfoto 2020-12-23 um 11 03 18

Debug log if air purifier is running:

2020-12-23 11:07:38,329 - custom_components.philips_airpurifier.fan - DEBUG - {'name': 'Wohnbereich', 'type': 'AC2889', 'modelid': 'AC2889/10', 'swversion': '1.0.7', 'om': '1', 'pwr': '1', 'cl': False, 'aqil': 100, 'uil': '2', 'dt': 0, 'dtrs': 0, 'mode': 'A', 'pm25': 6, 'iaql': 2, 'aqit': 4, 'ddp': '0', 'err': 0, 'fltt1': 'A3', 'fltt2': 'C7', 'fltsts0': 260, 'fltsts1': 4700, 'fltsts2': 2300, 'range': 'Comfort', 'Runtime': 257819, 'WifiVersion': 'AWS_Philips_AIR@62.1', 'ProductId': 'be10acb2e62411e8a1e3061302926720', 'DeviceId': '89361ffcb56411eaa82b16fbed8c6ecd', 'StatusType': 'localcontrol', 'ConnectType': 'Localcontrol'}

and if is switched it off:

2020-12-23 11:10:15,154 - custom_components.philips_airpurifier.fan - DEBUG - {'name': 'Wohnbereich', 'type': 'AC2889', 'modelid': 'AC2889/10', 'swversion': '1.0.7', 'om': '0', 'pwr': '0', 'cl': False, 'aqil': 100, 'uil': '2', 'dt': 0, 'dtrs': 0, 'mode': 'A', 'pm25': 10, 'iaql': 3, 'aqit': 4, 'ddp': '0', 'err': 0, 'fltt1': 'A3', 'fltt2': 'C7', 'fltsts0': 260, 'fltsts1': 4700, 'fltsts2': 2300, 'range': 'Comfort', 'Runtime': 414642, 'WifiVersion': 'AWS_Philips_AIR@62.1', 'ProductId': 'be10acb2e62411e8a1e3061302926720', 'DeviceId': '89361ffcb56411eaa82b16fbed8c6ecd', 'StatusType': 'localcontrol', 'ConnectType': 'Localcontrol'}
betaboon commented 3 years ago

@spider7611 did you see in the readme that i changed the platform-string in this integration to philips_purifier?

your model is not officially supported by my fork. if you want you can provide me with debug-logs so that i can figure out how to support your device.

betaboon commented 3 years ago

@tunip this is kind of expected: py-air-control and the other integrations do alot of mapping of the mode and om field in order to determine the speed of the device. as the several models seem to use different values for mode and om i decided against a fit-all implementation and opted to implement each model individually (eg. your model seems to use mode=A for "Auto-mode" while mine uses mode=AG for "Auto-mode".)

you could assist me by providing me a debug-log of switching all available modes and speeds in the app.

wolfhond commented 3 years ago

Hello,

I have the ac1214/10 this model I can't add. Is there a way that it could work. I have add the log but I cant restart because of this: Logger: homeassistant.components.hassio Source: components/hassio/init.py:420 Integration: Hass.io (documentation, issues) First occurred: 15:03:44 (2 occurrences) Last logged: 15:06:03

Invalid config for [fan.philips_airpurifier]: value is not allowed for dictionary value @ data['model']. Got 'ac1214'. (See ?, line ?).

betaboon commented 3 years ago

@wolfhond that model is currently not supported.

@wolfhond @tunip @spider7611 i just pushed some tooling and documentation (in README.md) on how to help get your model supported

spider7611 commented 3 years ago

@spider7611 did you see in the readme that i changed the platform-string in this integration to philips_purifier?

your model is not officially supported by my fork. if you want you can provide me with debug-logs so that i can figure out how to support your device.

This was the problem: philips_purifier But not working. Tomorrow if I have time will do the debug. Thank Your Help!

spider7611 commented 3 years ago

@spider7611 did you see in the readme that i changed the platform-string in this integration to philips_purifier? your model is not officially supported by my fork. if you want you can provide me with debug-logs so that i can figure out how to support your device.

This was the problem: philips_purifier But not working. Tomorrow if I have time will do the debug. Thank Your Help!

spider2@ubuntu:~$ cd philips-airpurifier spider2@ubuntu:~/philips-airpurifier$ source aioairctrl-shell.sh Requirement already satisfied: pycryptodomex in ./.venv/lib/python3.8/site-packages (3.9.9) Requirement already satisfied: aiocoap==0.4b3 in ./.venv/lib/python3.8/site-packages (0.4b3) (.venv) spider2@ubuntu:~/philips-airpurifier$ aioairctrl --host $192.168.1.102 status --json

and nothing happening. When I change mode or speed with the philips app. :(

betaboon commented 3 years ago

@spider7611

(.venv) spider2@ubuntu:~/philips-airpurifier$ aioairctrl --host $192.168.1.102 status --json

That should have been: aioairctrl --host 192.168.1.102 status --json

bboerendans commented 3 years ago

Hello,

I have the ac1214/10 this model I can't add. Is there a way that it could work. I have add the log but I cant restart because of this: Logger: homeassistant.components.hassio Source: components/hassio/init.py:420 Integration: Hass.io (documentation, issues) First occurred: 15:03:44 (2 occurrences) Last logged: 15:06:03

Invalid config for [fan.philips_airpurifier]: value is not allowed for dictionary value @ data['model']. Got 'ac1214'. (See ?, line ?).

I'm using the same model and here its working. I got the same error messsage, steps taken to get it working:

I had to remove the other airpurifier hacs plugin + remove the fan: component from configration.yaml. Thereafter rebooted HA, installed this repo, rebooted HA, added the information in configuration as described at Usage:, rebooted again and its working :)

Only speed is always at null:

AC1214/10 data:

`speed_list:

spider7611 commented 3 years ago

aioairctrl --host 192.168.1.102 status --json

Here it is:

(.venv) spider2@ubuntu:~/philips-airpurifier$ aioairctrl --host 192.168.1.102 status --json
{"name": "Living Room", "type": "AC3858", "modelid": "AC3858/50", "swversion": "Ms4304", "language": "EN", "DeviceVersion": "3.0.4", "om": "0", "pwr": "0", "cl": false, "aqil": 100, "uil": "1", "uaset": "A", "mode": "AG", "pm25": 35, "iaql": 6, "aqit": 10, "tvoc": 1, "ddp": "1", "rddp": "1", "err": 0, "fltt1": "A3", "fltt2": "none", "fltsts0": 139, "fltsts1": 4176, "fltsts2": 65535, "filna": "AC3036", "filid": "AC30360123456789012", "range": "Mars", "Runtime": 24654929, "WifiVersion": "AWS_Philips_AIR@62.1", "ProductId": "a90161ca13c111e9bc6802024953075e", "DeviceId": "0adc1a12a3d611e9a1e3061302926720", "StatusType": "localcontrol", "ConnectType": "Localcontrol"}
(.venv) spider2@ubuntu:~/philips-airpurifier$ aioairctrl --host 192.168.1.102 status --json
{"name": "Living Room", "type": "AC3858", "modelid": "AC3858/50", "swversion": "Ms4304", "language": "EN", "DeviceVersion": "3.0.4", "om": "2", "pwr": "1", "cl": false, "aqil": 100, "uil": "1", "uaset": "A", "mode": "AG", "pm25": 28, "iaql": 5, "aqit": 10, "tvoc": 1, "ddp": "1", "rddp": "1", "err": 0, "fltt1": "A3", "fltt2": "none", "fltsts0": 139, "fltsts1": 4176, "fltsts2": 65535, "filna": "AC3036", "filid": "AC30360123456789012", "range": "Mars", "Runtime": 24715465, "WifiVersion": "AWS_Philips_AIR@62.1", "ProductId": "a90161ca13c111e9bc6802024953075e", "DeviceId": "0adc1a12a3d611e9a1e3061302926720", "StatusType": "localcontrol", "ConnectType": "Localcontrol"}
(.venv) spider2@ubuntu:~/philips-airpurifier$ aioairctrl --host 192.168.1.102 status --json
{"name": "Living Room", "type": "AC3858", "modelid": "AC3858/50", "swversion": "Ms4304", "language": "EN", "DeviceVersion": "3.0.4", "om": "t", "pwr": "1", "cl": false, "aqil": 100, "uil": "1", "uaset": "A", "mode": "T", "pm25": 27, "iaql": 5, "aqit": 10, "tvoc": 1, "ddp": "1", "rddp": "1", "err": 0, "fltt1": "A3", "fltt2": "none", "fltsts0": 139, "fltsts1": 4176, "fltsts2": 65535, "filna": "AC3036", "filid": "AC30360123456789012", "range": "Mars", "Runtime": 24732432, "WifiVersion": "AWS_Philips_AIR@62.1", "ProductId": "a90161ca13c111e9bc6802024953075e", "DeviceId": "0adc1a12a3d611e9a1e3061302926720", "StatusType": "localcontrol", "ConnectType": "Localcontrol"}
(.venv) spider2@ubuntu:~/philips-airpurifier$ aioairctrl --host 192.168.1.102 status --json
{"name": "Living Room", "type": "AC3858", "modelid": "AC3858/50", "swversion": "Ms4304", "language": "EN", "DeviceVersion": "3.0.4", "om": "s", "pwr": "1", "cl": false, "aqil": 0, "uil": "0", "uaset": "A", "mode": "S", "pm25": 33, "iaql": 6, "aqit": 10, "tvoc": 1, "ddp": "1", "rddp": "1", "err": 0, "fltt1": "A3", "fltt2": "none", "fltsts0": 139, "fltsts1": 4176, "fltsts2": 65535, "filna": "AC3036", "filid": "AC30360123456789012", "range": "Mars", "Runtime": 24746887, "WifiVersion": "AWS_Philips_AIR@62.1", "ProductId": "a90161ca13c111e9bc6802024953075e", "DeviceId": "0adc1a12a3d611e9a1e3061302926720", "StatusType": "localcontrol", "ConnectType": "Localcontrol"}
(.venv) spider2@ubuntu:~/philips-airpurifier$ aioairctrl --host 192.168.1.102 status --json
{"name": "Living Room", "type": "AC3858", "modelid": "AC3858/50", "swversion": "Ms4304", "language": "EN", "DeviceVersion": "3.0.4", "om": "s", "pwr": "1", "cl": false, "aqil": 0, "uil": "0", "uaset": "A", "mode": "S", "pm25": 34, "iaql": 6, "aqit": 10, "tvoc": 1, "ddp": "1", "rddp": "1", "err": 0, "fltt1": "A3", "fltt2": "none", "fltsts0": 139, "fltsts1": 4176, "fltsts2": 65535, "filna": "AC3036", "filid": "AC30360123456789012", "range": "Mars", "Runtime": 24764273, "WifiVersion": "AWS_Philips_AIR@62.1", "ProductId": "a90161ca13c111e9bc6802024953075e", "DeviceId": "0adc1a12a3d611e9a1e3061302926720", "StatusType": "localcontrol", "ConnectType": "Localcontrol"}

firs off, then turn on, then changed modes Merry Christmas to all!

betaboon commented 3 years ago

@spider7611 what app-settings do the individual status-data correspond to? is reading and setting speed in homeassistant working fine for you? it seems like it just might

@bboerendans as mentioned in https://github.com/betaboon/philips-airpurifier/issues/1#issuecomment-750263813 this is kind of expected. you could help us support your model by providing the raw-status-data as described in the README.md

bboerendans commented 3 years ago

@betaboon sure, i have added the data in #3

kongo09 commented 3 years ago

Happy to help, I own the AC2729 and the AC2889. Will provide the data later.

spider7611 commented 3 years ago

what app-settings do the individual status-data correspond to? is reading and setting speed in homeassistant working fine for you? it seems like it just might

When the purifier state off:{"name": "Living Room", "type": "AC3858", "modelid": "AC3858/50", "swversion": "Ms4304", "language": "EN", "DeviceVersion": "3.0.4", "om": "0", "pwr": "0", "cl": false, "aqil": 100, "uil": "1", "uaset": "A", "mode": "S", "pm25": 2, "iaql": 1, "aqit": 10, "tvoc": 1, "ddp": "1", "rddp": "1", "err": 0, "fltt1": "A3", "fltt2": "none", "fltsts0": 139, "fltsts1": 4176, "fltsts2": 65535, "filna": "AC3036", "filid": "AC30360123456789012", "range": "Mars", "Runtime": 91829445, "WifiVersion": "AWS_Philips_AIR@62.1", "ProductId": "a90161ca13c111e9bc6802024953075e", "DeviceId": "0adc1a12a3d611e9a1e3061302926720", "StatusType": "localcontrol", "ConnectType": "Localcontrol"}

This after power on on automatic mode: {"name": "Living Room", "type": "AC3858", "modelid": "AC3858/50", "swversion": "Ms4304", "language": "EN", "DeviceVersion": "3.0.4", "om": "1", "pwr": "1", "cl": false, "aqil": 100, "uil": "1", "uaset": "A", "mode": "AG", "pm25": 6, "iaql": 2, "aqit": 10, "tvoc": 1, "ddp": "1", "rddp": "1", "err": 0, "fltt1": "A3", "fltt2": "none", "fltsts0": 139, "fltsts1": 4176, "fltsts2": 65535, "filna": "AC3036", "filid": "AC30360123456789012", "range": "Mars", "Runtime": 91998274, "WifiVersion": "AWS_Philips_AIR@62.1", "ProductId": "a90161ca13c111e9bc6802024953075e", "DeviceId": "0adc1a12a3d611e9a1e3061302926720", "StatusType": "localcontrol", "ConnectType": "Localcontrol"}

Changed to sleep mode: {"name": "Living Room", "type": "AC3858", "modelid": "AC3858/50", "swversion": "Ms4304", "language": "EN", "DeviceVersion": "3.0.4", "om": "s", "pwr": "1", "cl": false, "aqil": 0, "uil": "0", "uaset": "A", "mode": "S", "pm25": 5, "iaql": 2, "aqit": 10, "tvoc": 1, "ddp": "1", "rddp": "1", "err": 0, "fltt1": "A3", "fltt2": "none", "fltsts0": 139, "fltsts1": 4176, "fltsts2": 65535, "filna": "AC3036", "filid": "AC30360123456789012", "range": "Mars", "Runtime": 92097432, "WifiVersion": "AWS_Philips_AIR@62.1", "ProductId": "a90161ca13c111e9bc6802024953075e", "DeviceId": "0adc1a12a3d611e9a1e3061302926720", "StatusType": "localcontrol", "ConnectType": "Localcontrol"}

Changed to turbo mode: {"name": "Living Room", "type": "AC3858", "modelid": "AC3858/50", "swversion": "Ms4304", "language": "EN", "DeviceVersion": "3.0.4", "om": "t", "pwr": "1", "cl": false, "aqil": 100, "uil": "1", "uaset": "A", "mode": "T", "pm25": 5, "iaql": 2, "aqit": 10, "tvoc": 1, "ddp": "1", "rddp": "1", "err": 0, "fltt1": "A3", "fltt2": "none", "fltsts0": 139, "fltsts1": 4176, "fltsts2": 65535, "filna": "AC3036", "filid": "AC30360123456789012", "range": "Mars", "Runtime": 92170912, "WifiVersion": "AWS_Philips_AIR@62.1", "ProductId": "a90161ca13c111e9bc6802024953075e", "DeviceId": "0adc1a12a3d611e9a1e3061302926720", "StatusType": "localcontrol", "ConnectType": "Localcontrol"}

screen light turn off: {"name": "Living Room", "type": "AC3858", "modelid": "AC3858/50", "swversion": "Ms4304", "language": "EN", "DeviceVersion": "3.0.4", "om": "t", "pwr": "1", "cl": false, "aqil": 0, "uil": "0", "uaset": "A", "mode": "T", "pm25": 6, "iaql": 2, "aqit": 10, "tvoc": 1, "ddp": "1", "rddp": "1", "err": 0, "fltt1": "A3", "fltt2": "none", "fltsts0": 139, "fltsts1": 4176, "fltsts2": 65535, "filna": "AC3036", "filid": "AC30360123456789012", "range": "Mars", "Runtime": 92250845, "WifiVersion": "AWS_Philips_AIR@62.1", "ProductId": "a90161ca13c111e9bc6802024953075e", "DeviceId": "0adc1a12a3d611e9a1e3061302926720", "StatusType": "localcontrol", "ConnectType": "Localcontrol"}

In home assistant I can only turn on and off with this integration: shexbeer/philips-airpurifier If I installed yours in HACS and restart HA and in configuration use philips_purifier show up philips fan but the state not available.

betaboon commented 3 years ago

i just pushed initial support for AC1214, AC2729, AC2889, AC3858. as i own a AC4236 only, it would be highly appreciated if you could test the integration with your models.

to better organize the further discussion on each models-support i created individual issues. please use those issues for any further discussion on the individual models.

[closing in favor of individual issues]