JQ-300/200/100 Indoor Air Quality Meter


Thanks to Tomaae’s financial support, I’ve got a device for measuring harmful substances in the air: JQ-300.

And now — a few days later — the beta version of the component for the Home Assistant smart home system is ready to integrate this device (as well as its younger brothers: JQ-200 and JQ-100).


Topic about it on Patreon: https://www.patreon.com/posts/36272790

Looks good!

I’ve found it difficult to find an affordable, and consistently accurate sensor for AQ readings especially PM.

So I’ll be quite happy if there’s one that’s reliable & easy to integrate with HA.

What could be simpler than a such config? :wink:

# Example configuration.yaml entry
  username: YOUR_EMAIL
  password: YOUR_PASSWORD

Oh, I’d prefer one that wasn’t connected to app credentials in fairness :wink:

1 Like

I would also prefer a device that does not send any data outside of my LAN. But, alas, data from this device can only be obtained through their cloud. Or you have to hack device and fill in your firmware.


Yeah, it would be nice to have it work locally. Cloud with this device is pointless, it just feels forced in.
But well, this device is super cheap and provides sensors which are usually only available in much more expensive devices. So its an acceptable tradeoff.

Thank you Limych, excellent work :+1:

JQ-300 component v0.7.2


JQ-300 component v0.7.5


Big code update of component

  • Improved component stability;
  • Improved stability of HA core when JQ-300 component are enabled.


Good day. I’ve set it up and yesterday it worked fine. But today after upgrading HA to 0.110.0 it does not seem to update the values and an error is in the log. No real explanation.
Will there be an update soon?

Please, open an issue here: https://github.com/Limych/ha-jq300/issues/new?assignees=&labels=bug&template=bug_report.md&title=

Just got this sensor. Where can I download the Android app to connect it to my wifi?

I’m planning on building my home ventilation system around a set of JQ300s and my connection seemed to be blocked for a while, so I was thrilled to see that there’s now an interval that keeps things running smoothly! However, I’m running into an issue and wondering whether it’s related to my settings or to a bug.

I’ve got one of my devices running on Home Assistant again, but my three other devices aren’t working. Home assistant gives me the following error on startup: “Can’t receive sensors list for device ‘XXXX’” (x3) with source “custom_components/jq300/binary_sensor.py:60”.

I’ve tried the following, with no success:

  • “unbinding” a device on the Perthings app and adding it again (the device that is working was removed and added again a few weeks ago);
  • manually listing the devices in the configuration file;
  • removing the device that was working from home assistant (to see whether it was simply the first device in the list that was working).

Is it something I did that caused this or should I submit a bug report?

Your help would be greatly appreciated!

FYI: “XXXX” is the device number, but I’m not sure whether these are uniquely identifiable, plus I don’t know who keeps track of these numbers and where, so I removed it just to be safe.

Please see the exact address in the instructions that come with the device.

The component is currently in beta. Unfortunately, recently there have been problems with its work due to the fact that the owners of the cloud service through which these sensors work began to actively oppose the work of our component. Let’s see what will happen next…

I bought a JQ-300 model, just for the PM 2.5 sensor values, but I don’t get any PM 2.5 values. Do you?

This is my setup within configuration.yaml:

  username: xxxxxxx
  password: xxxxxxx
  devices: jq300
      humidity: sensor.jq300_humidity
      co2: sensor.jq300_eco2
      tvoc: sensor.jq300_tvoc
      hcho: sensor.jq300_hcho
      pm: sensor.jq300_pm25

Any suggestion what could be (done) wrong?

That’s a bummer. Makes me suspicious of their motives… why would they be keen on having full control of the data? Or is it just the added traffic that makes them antsy?

Curious to see how it develops. And if there’s anything I (/we) can do, I’d be happy to contribute. As a last resort, and if possible, some of us could pitch in and/or help convert it to a module that intercepts the data locally.

The task is simple: we need to mimic the behavior of the official application as much as possible. Those, access the cloud in exactly the same way. Then the owners of the cloud will not be able to block us without blocking their application.

Unfortunately, I now have very little free time to study this issue and program the correct behavior of the component. Sorry

Sorry, I don’t know the reason. The component simply transfers data from the cloud to the system. It turns out, for some reason, the cloud gives such information.

Thanks for your reply. Does your device give PM 2.5 values other than 0.0?