Philips Air Purifier

yes, it is not there :frowning:
this is my configuration.yaml

# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# http:
#   base_url: example.duckdns.org:8123

# Text to speech
tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
panel_iframe:
  configurator:
    title: 'Configurator'
    url: 'http://192.168.100.XXX:XXX'
    icon: mdi:wrench 
tado:
  username: 
  password: 
device_tracker:
  - platform: tado
    username: 
    password: 
    home_id: 
fan:
  - platform: philips-airpurifier
    host: 192.168.100.36
    protocol: 2
    name: Philips Air Purifier
binary_sensor:
  - platform: car_wash
    weather: weather.gismeteo_daily

I see my air purifier connected in network under name MiCO, it is model PHILIPS AC3033/10.

I attempted to install hass.io with a vmdx file on my Hyper V (architecture x86_64), went through the install of the HACS and then the Philips AirPurifier (with COAP) integration. I had copied the same fan configuration as you except mine is at Protocol: 1.

The install first moaned about a missing coap module but after restarting the box I just got the custom integration for philips-airpurifier warning and it connected fine to the air purifier and the Phlips Air Purifier fan is visible

can you ping mico (possibly from the synology)? Does it resolve to 192.168.100.36? And can you port test that IP - I’m assuming the COAP port is 5683? Mine (on protocol level 1 responds on port 80)
Alternatively you could test a similar config if you can put it in a virtual machine if it’s something to do with Synology?

So I did the same thing. I have used virtual ubuntu on virtualbox and install hass.io + hacs and then Philips AirPurifier (with COAP). I also get the same message like you. After restart the message was gone. But I do not see my purifier at all. I have also tried to use protocol 1 and 2. No luck.

I can ping the 192.168.100.36 in cmd, I am getting response. I have tried to use advanced port scanner to find open ports but it shows me nothing. Only what i found is the name of manufacturer: Shanghai MXCHIP Information Technology Co., Ltd. and name: MiCO.

Basically I see same behavior like on Synology.

Strange - unless this one doesn’t have any open ports - does the AirMatters app work on the mobile? In which case are you able to Network capture what goes through to the air purifier to see if there is any traffic destined from a working device.

Also for your home assistant have you got other devices attached that can communicate outside of docker ok?

Not sure if others on here have the same model that will be able to confirm if it works for them?

Hi, are you able to try the component https://github.com/shexbeer/philips-airpurifier instead as found by @ondrabanov making sure you set the Protocol version to 2?

1 Like

Home assistant is working. There is also communication with my tado (discovered in network) and my smart plugs.

App air matters is also getting info from purifier.
I have tried to port scan from laptop the ip address of purifier up to 50000 and nothing.
I think i need something to monitor traffic between router and purifier itself.

Meybe somebody can use this, i have found a Chinese web with firmwares for this purifier… i think.

https://code.aliyun.com/MXCHIP_iotad_zhaohongyu_projects/mico-os/commit/b0d0359787faebe664c5fc1c2c9a7af03d3255f6
My air purifier has firmware

Firmware Version: [email protected]

Hello,
of course this still doesn’t work for me, and I had not too much time. I dumped the communication of my phone and my purifier. It doesn’t use any icmp packet -which is not part of the CoAP- but doesn’t really matter if we send it. I think it’s just a misunderstaning though. In the dump I’ve found for asking the /sys/dev/info so I’ve tried and the purifier answered a json:

{"product_id":"<cut>","device_id":"<cut>","name":"Living Room","type":"AC3858","modelid":"AC3858/50","swversion":"Ms4102","option":"1"}

The product_id and the device_id seems like an md5 sum. The purifier didn’t answer any other request yet. The /sys/dev/control requests should be encoded, I don’t know yet what kind of encoding -probably aes- it uses and it answers probably the same method to the /sys/dev/status query. If someone has time -and knowledge- to debug I can provide the tcpdump.
It doesn’t matter if you try to portscan and it doesn’t find any open TCP port, seems the newer ones are communicating with UDP now.

Hi! I’ve tried to add my AC2889/10 to HA via your custom component, but I get the following error log when starting HA:

Protokolldetails ( ERROR )
Logger: homeassistant.core
Source: custom_components/philips-airpurifier/airctrl.py:4 
First occurred: 22:30:50 (4 occurrences) 
Last logged: 22:37:58
	•	Error executing service <ServiceCall homeassistant.restart (c:cbb96c66f7c140a1b1bf69196ab3aa75)>
	•	Error executing service <ServiceCall homeassistant.restart (c:e5bf3ff2453b4ae0a28c01e517ae5fba)>
	•	Error executing service <ServiceCall homeassistant.restart (c:10f9544aacf049e798df67f065bd0ded)>
	•	Error executing service <ServiceCall homeassistant.restart (c:391fc482025641288f3278793861b329)>
Traceback (most recent call last):
  File "/Users/myuser/homeassistant/lib/python3.8/site-packages/homeassistant/core.py", line 1240, in _safe_execute
    await self._execute_service(handler, service_call)
  File "/Users/myuser/homeassistant/lib/python3.8/site-packages/homeassistant/core.py", line 1255, in _execute_service
    await handler.func(service_call)
  File "/Users/myuser/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/service.py", line 476, in admin_handler
    await result
  File "/Users/myuser/homeassistant/lib/python3.8/site-packages/homeassistant/components/homeassistant/__init__.py", line 107, in async_handle_core_service
    errors = await conf_util.async_check_ha_config_file(hass)
  File "/Users/myuser/homeassistant/lib/python3.8/site-packages/homeassistant/config.py", line 821, in async_check_ha_config_file
    res = await check_config.async_check_ha_config_file(hass)
  File "/Users/myuser/homeassistant/lib/python3.8/site-packages/homeassistant/helpers/check_config.py", line 164, in async_check_ha_config_file
    platform = p_integration.get_platform(domain)
  File "/Users/myuser/homeassistant/lib/python3.8/site-packages/homeassistant/loader.py", line 276, in get_platform
    cache[full_name] = importlib.import_module(
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/myuser/.homeassistant/custom_components/philips-airpurifier/fan.py", line 3, in <module>
    from . import airctrl as air
  File "/Users/myuser/.homeassistant/custom_components/philips-airpurifier/airctrl.py", line 4, in <module>
    from coapthon.client.helperclient import HelperClient
  File "/Users/myuser/homeassistant/lib/python3.8/site-packages/coapthon/client/helperclient.py", line 6, in <module>
    from coapthon.client.coap import CoAP
  File "/Users/myuser/homeassistant/lib/python3.8/site-packages/coapthon/client/coap.py", line 14, in <module>
    from coapthon.serializer import Serializer
  File "/Users/myuser/homeassistant/lib/python3.8/site-packages/coapthon/serializer.py", line 223
    print values
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(values)?

what can I do to solve this? Thanks in advance :blush: