(1) First make sure you have Winix C545 units, I do not believe any of these projects support other types of Winix air purifiers. But follow their work for changes.
Listed below, these are the smart folks that did all the heavy lifting that I learned from:
(2) Then you get your device keys:
This is probably the most complicated step, so take your time.
Basically you need to these ‘keys’ to query and command each of your C545’s. This key is a long character string that for each device looks something like:
32373252AEC3_3a4d99ew13
One of these for each of your units, put them somewhere safe and DO NOT share them. These are what will allow ANYONE to control your units.
Here is a nice set of instructions for getting your unit keys. You will need the Winix app up and working with your units on a Android or iOS device. Then you will need a Apple Mac, Windows or Linux computer on the same WiFi network as your Winix units and your Android or iOS phone.
(3) Once you have your device keys you can control and query your units with software other than the Winix app. The keys you downloaded work until you remove your device from the Winix app. If you add the same device back, you will have to do the step above to get the new key for the device. Once deleted from the app, the key is no longer valid with the device.
Which points to an important thing to understand about controlling and querying the Winix C545’s. Neither the factory app on your phone nor any software you use with your keys talk directly to the devices on your local WiFi network. Every conversation the devices have goes up to the Winix cloud and then down to the phone app or your software. NO direct conversation or control. So if the cloud is down or your devices are off WiFi, the only way to control the units is from their front panel buttons.
The second part of this important operating model, is that if one of devices disconnects from WiFi, the only information you can get from the device is the last status from the cloud. Or go over to the device and look at the lights.
I have found the Winix C545’s very reliable and quick to respond to changes sent the Winix cloud. So, so far, it has been pretty successful.
(4) The little crude python program I wrote and published is based off the work of the other folks cited above. It basically uses MQTT to interface with the Winix devices via the Winix cloud. You publish MQTT commands to control each of your C545’s and one a regular basis, the program queries the Winix cloud for the status of your units and publishes this information to MQTT.
Since I run Home Assistant and Apple HomeKit in parallel in my home, I don’t try and connect these two home control systems directly, I try and run all my sensors and controllers via MQTT. Since HomeKit has a very nice open source component call HomeBridge, and HomeBridge works very nicely with MQTT devices. As does Home Assistant.
The downside of this design, is that you need to keep this python program running in parallel with your Home Assistant and/or HomeBridge instance. And it requires a MQTT server to be running somewhere.
I use Docker to run my various device programs, MQTT server, Home Assistant and HomeBridge. It does a very nice job of organizing and running these multiple programs. Downside, another thing to learn.
To run my program, you put it in a directory somewhere on your home server. Get a current version of Python 3, and install all the Python 3 requirements listed. Then you edit the winix-02.yaml file and enter the needed info. Then fire up the program. You should see it publish information to MQTT.
The other techie bit of info you will need to get from your WiFi network is the MAC address for each of your units, this is how I reference each of the units. The IP address of the units is NOT used currently.
so to turn on one of your units from the command prompt:
if it’s MAC address is: aa:bb:cc:dd:ee:ff
and your MQTT server is at IP address: 192.168.xxx.yyy
and your MQTT topic is set to ‘winix’ in the YAML file
mosquitto_pub -h 192.168.xxx.yyy -t winix/aa:bb:cc:dd:ee:ff/control/power -m "ON"
(5) Now you have to create some Lovelace UI components to view info about each unit and command each unit. I have had the viewing part working for a number of months now (see prior post). But I am still trying figure out a new set of Lovelace UI components to control the units. TBA, I just upgraded to HA 0.118 and I am hoping some of the new user interface components will offer some good ways to command the Winix air purifiers.
Good luck with your units and keep watching for others to come with some better tools. I see that Costco is offering a fairly good sale on the units again.