JQ-300/200/100 Indoor Air Quality Meter

Home assistant JQ300 stopped working with HA 2022.3.3
I was getting errors after upgrading HA, so I had to remove the HACS integration and the configuration on configuration.yaml file
Obviously this disables the integration completely!
What do I need to recover it?

Thanks

2 Likes

I’m getting the following error:

Unable to install package paho-mqtt==1.5.1: ERROR: Cannot install paho-mqtt==1.5.1 because these package versions have conflicting dependencies. ERROR: ResolutionImpossible: for help visit Dependency Resolution - pip documentation v22.1.dev0 WARNING: You are using pip version 22.0.3; however, version 22.0.4 is available. You should consider upgrading via the ‘/usr/local/bin/python3 -m pip install --upgrade pip’ command.

Any help, please?

same problem.

This is what it worked for me:
edit this file on the pi:
/config/custom_components/jq300/manifest.json
under the requirements section replace the code so it says:
“requirements”: [
“paho-mqtt==1.6.1”

After saving the file you will need to restart HA

1 Like

I confirm it works now. Thanks!

The most recent patch fixed the manifest error for me…but a few days later I’m now getting an error on startup and no readings from the sensors.

Anyone else seeing the same thing?

1 Like

@Limych the latest version 2022.12 the sensors have stopped working.

Thank you

Is anyone still using this? Mine stopped working years ago, and I noticed that the perthings apps have been removed from both google and apple stores. Are those devices dead weight? Maybe someone managed to flash esphome on it? It looks like it’s an esp8266e chip inside. There are unmarked tx and rx terminals - right by the chp. I’ll try to flash it and will keep you posted if I’m successful.

I have one still new in the box that I haven’t gotten around to opening yet - definitely plan to use it! An Esphome conversion would be great, so I am keen to hear your results.

I was wrong - the two exposed pins is a TX from UART1 and ground - can only be used for debugging. Here is a very comprehensive description of the device, board annotation and options for flashing it with Tasmota. TL;DR - to flash it the soic-14 chip must be desoldered, or the spi should be programmed directly somethink like this. I’ve ordered one to give it a try to flash esphome, and rewirte this as lambda. I don’t have heat gun, and am afraid that I’ll just ruin it trying to de-solder the chip with an iron… I’ll keep you guys posted if you’re interested. At this point, I’m not sure if the device is worth the effort, but since I already have it - it’s an interesting undertaking.

From the thread mentioned in my last reply it’s clear that an OTA update is not possible. You either have to program the SPI directly, or do some soldering to flash - which is not going to be an acceptable option for most of the community.

Taking the chip off to reflash is a bit more invested than I am prepared to get! I will hold onto it in the hope that a slightly easier option emerges… I remain interested in hearing anything you find out. Thanks.

I actually had some good progress with that. You can easily flash the spi with by clipping onto it a CH341A flasher (without desoldering). See this comment for more info. I’ll post my esphome configuration once I’ll finish implementing it.

Update. Here’s what I’ve got: GitHub - grinco/jq300_esphome: JQ300 ESPHome Configuration and flashing instructions
The work is based on the thread that I mentioned earlier, however, I have challenges trusting the data. I would appreciate if someone tries to reverse engineer the values sent by the on-board chip and how those can be translated to real world values.

2 Likes

That sounds very promising, thanks - I would be willing to give that a go!

I really appreciate your work on this, but my basic level of knowledge has me struggling to follow. Did you use the clip to flash the ESP8266 directly or a different IC? It doesn’t look like the clip will fit the ESP? Did you need to connect to anywhere else on the PCB (for example to enable programming mode), or just use the clip on the appropriate chip?

@TopsideWings - next to the esp8266 chip there is a smaller 8-pin SPI Flash on which the firmware is stored. You need to use an 8-pin clip that comes with the CH341A SPI flasher to write the firmware directly to the chip (without the use of ESP8266) - once this is done, you can power the board on and the ESP will boot from the image you’ve written to the SPI.

1 Like

Thanks for the extra explanation - I suspected that’s what you had done. I will keep following, and go and research flashing SPI chips! I have a CH340G that I bought for flashing - do I need the CH341A specifically, or can I use the one I have after I get an 8-pin clip?

Update. Ok, it looks like they are different things, so I’ll get a CH341A flasher with the clip. No, I clearly don’t know what I am doing here, but I am having fun learning!

I don’t see CH340G in the list of supported hardware here.

Based on a reddit post: The chips aren’t functionally equivalent- The CH340G is just a simple USB to UART interface, with limited GPIO support, while the CH341A supports I2C and SPI in addition to a UART and GPIO.

1 Like

i can’t reset JQ-300 device
pressing reser button for any time doesn’t help, green led blinking slow
is there possible to perform factory reset?

Thank you grinco! I just flashed one of my many JQ-300 and it is now active on ESPHome. It wasn’t too bad using AsProgrammer on Windows. I’d be curious how to get the CO2, HCHO and TVOC readings in the future, but having Humidity, PM2.5 and Temperature in the current iteration makes the sensors better than a paperweight again.