Philips Air Purifier

After some struggle, I feel I’m getting closer with your guys help here! I own two Philips AirPurifier, model AC2889/10 and model AC2729/10.

  • Both are currently remotely connected via the AirMatters app.
  • Both are running the Firmware [email protected]

I can ping them both from the Raspi that runs HA 2020.12.1.

Using the integration from @xMrVizzy installed via HACS didn’t get me anywhere. I then read here about the fork from @shexbeer which I installed as a replacement. Setting the new protocol: setting to 1 left me where the original integration was. However, setting the protocol: setting to 3 created new Entities in HA.

The entities can be visualized in Lovelace with a plain toggle switch, clicking on the name shows some details which reflect the data from the devices. That’s all great!

Now, communication seems to be patchy. I can switch both devices off but I cannot switch them back on. The toggle stays in switched-on state. Clicking it again seems to send a signal to the device as the devices makes its ping sound. But apparently, it is a “please switch off” signal again, as nothing happens. The device doesn’t turn on. I also noticed that the data doesn’t update. E.g. the Pm25 data stays where it was when HA connected in the first place, but when it changes in the room (and on the device), this is not reflected in HA. Waiting for several minutes sees HA updating the state. Then I can switch the device.

My feeling is, that polling is working only at long intervals and HA is not updating the true state of the device. I added scan_interval: 10 to the configuration, but that didn’t help. Being a beginner with HA: how do you tell an entity to update itself? Any suggestions for a next step?

I got mines working (not all features yet) with this repo: https://github.com/betaboon/philips-airpurifier

Just installing the repo, adding 4 lines of code to configuration.yaml :slight_smile:

Mine model is not yet fully supported at that repo, but i’m already getting data in HA, and able to switch between speed etc.

Added the raw data for my model (AC1214) to the dev, to see if he can make it fully supported. So maybe if more users can add their raw data, we can have one good repo with supported models which is very easy to install in HA.

3 Likes

Wow, thank you! It’s working with my model too (ac3858) without any problems. Would be cool to see some of the attributes (for example pm25, tvoc) as a sensor, but made it with sensor template. I’m really happy, thank you! :slight_smile:

1 Like

betaboon’s integration works perfectly for my three AC1214 purifiers.

I will see to adding the data neccessary to make my AC3259 work as well :slight_smile:

Would you mind sharing your configuration? I’ve been having some issues getting my two AC1214’s to recognize as two instead of one device.

You need to add them as a list.

In my configuration.yaml:

fan: !include_dir_merge_list manual_config/fan

And then i have a file called air_purifiers.yaml in that folder, containing the list of purifiers:


  - platform: philips_airpurifier
    host: 192.168.30.16
    model: ac1214

  - platform: philips_airpurifier
    host: 192.168.30.18
    model: ac1214

  - platform: philips_airpurifier
    host: 192.168.30.19
    model: ac1214
1 Like

That did the trick, both showing up now. Thanks for your help!

1 Like

In case anyone is interested: I’ve developed an alternative interface / card to the AC2729 based on @betaboon’s integration work. It makes heavy use of button-card and some other things. You can see the full configuration here.

High air quality, auto fan speed, display light on and humidification activated Somewhat lower air quality, night mode, display light off and humidification deactivated
5 Likes

Hi,

I’m quite new to Home Assistant. I am running it on a RPi4 and got the whole thing as an image from https://www.home-assistant.io/hassio/installation. I tried adding the code from shexbeer’s repository in custom_components, but the component is still unavailable. Can you detail how to install the code from betaboon’s repo ? Tried to follow the instructions in the README there, but I am running the commands in a Terminal add-on and don’t have python or other commands available when I try to execute source aioairctrl-shell.sh.

LE: I have a Philips AC3059/50 air purifier.

Hi. Are you having any issues with the update interval? Can it be set anyway?
For example, when I send a turn off command, the purifier responds instantly, but it takes minutes for the feedback in the entity state.

You should run it in the container bash. Debugging the Home Assistant Operating System | Home Assistant Developer Docs (home-assistant.io)

Basically you first need to properly install aioairctrl using pip3

Hi,
I’ve installed https://github.com/betaboon/philips-airpurifier version yesterday and it works great for it’s own services.
However I have tried to run fan.set_speed and fan.turn_off services with no luck. I have seen that SUPPORT_SET_SPEED is set in fan.py but it is not working for me. Can anybody here tried this?

EDIT: Restarting server and purifier helps

@nicx, here is the most probable reason for your original issue:

Look at the last comments.

I have a 2729/50 purifier/humidifier, and I think managed to connect to it using encrypted CoAP (protocol 3), in shexbeer’s integration (installed via HACS). My HA is in a Docker, on Debian, on a NUC machine.

Seems like some things act strangely:

  • I can set the mode using the philips-purifier entity (Entity card)
  • but I can’t see any philips-purifier services in Developer Tools -> services
  • I have a template sensor getting PM25 attribute of philips-purifier
  • but the data seems very different than the thing I get from Clean-Home app, or from what is displayed on the purifier! Last evening, during vacuuming, the reading on the device went up to 60-80 for a couple of minutes. But the sensor history is showing no peak in that time, but status of 10-15-ish.
  • Also, the attributes of the device don’t seem to get updated. For example, pre-filter replacement timer is stuck at 192 hours, while the app is showing a decreasing number (checked yesterday vs today).

Has anyone had similar issues?

The coap implementations are not perfect and lose connection. On/off commands and status updates stop working after a while.

The best one from my experience is betaboon’s fork. It also loses connection after a while (serverside) but the client/ha can continue to give commands. My automations and service command work seamlessly.

1 Like

Thanks, the betaboon’s one seems much better indeed! Now I just need to figure out the services. Speed/mode is easy, but now sure about changing the light settings yet.

Hi Lucicop - I feel your pain. I’ve spent the entire day going through forums trying to understand how to get this to work. It seems that there is an expectation that there is a base level of knowledge that you pick up at some point, but until you do, you are kind of stuck.

I suspect that other integrations have more detailed install instructions, but since all of these are forked off of the same common base from last year, no one has bothered to update the readme, just assuming that everyone knows how to do it from things they have picked up along the way.

I have a pair of AC3259’s that I am trying to get installed but am also stuck.

Did you ever make any progress?

The install is quite simple, just add the code as per instructions in the read me. No need to work with the scripts, these are pulled automatically.

What you need to establish is if you have http or coap. All new ones (2020 onwards?) seem to be coap, earlier ones http.

For http I recommend @GeorgeSG’s fork https://github.com/GeorgeSG/philips-airpurifier/tree/py-air-ctrl

For coap use betaboon’s fork.

If you have both (like I have) you need to rename one of the plugin’s platform (manifest.json)

Hi Josh,

No, I took a break from configuring HA and didn’t manage yet to add the air purifier. I’m also in need to find a way to trigger iOS shortcuts on specific locations detected by HA, but didn’t find a way to do that as well. It is a steep learning curve and didn’t have the time lately.

Hi Ronald,

Thanks for the guidance.

GeorgeSG’s worked better - I managed to find the air cleaner as an entity and get some data from it

But I have two challenges still

  1. I have multiple air cleaners. How do I add a second one? I’ve tried replicating the fan: line (as below), but it doesn’t find the second one.
fan:
  platform: philips_airpurifier
  host: 192.168.1.173
fan:
  platform: philips_airpurifier
  host: 192.168.1.172

Also, how do I get them to show up as a Device?

Thanks

Josh