>>> Join Us in the Fight Against Air Pollution

AirGradient Forum

Where to set up MQTT?

Hi. I was asked to set a bunch of AirGradient Open Airs to send data by MQTT. I got one to test, and it gave reasonable values when I read /dev/ttyACM0. Also I got it connected to WLAN, it has now dynamic IP 192.168.0.14 and nmap shows tcp 80 open. But going to http://192.168.0.14 gives just “Not found: /”. How should I configure this?

I suppose this is told in the web pages, but I did not find it.

This might help:

Thanks, that was easy and I already got CO2-level etc. with mosquitto. All seems to be ready, except one thing: What about password? I suppose that unsecured mqtt is fine, but now everyone can also change parameters. Devices will mostly be behind some kind on NAT, but what if somebody connect a device directly to net?

Good point. Some kind of password or authentication would be good.
Somebody here has specific ideas?

The page you linked says “If the monitor is set up on the AirGradient dashboard, it will also receive configurations from there. In case you do not want this, please set configurationControl to local. In case you set it to cloud and want to change it to local, you need to make a factory reset.” So there is a secure way already, but then there should be a server giving commands to the devices.

For my case it would suffice to have configurationControl option none, so that settings would be set once and then only hard reset would work for re-setting them. Or then just a simple password, so the request would be something like curl ... PUT ... http://.../config/mysecretpassword. Not a perfect solution of course.

However, to clarify: If I put configurationControl to cloud and postDataToAirGradient to false, how much unnecessary network traffic it will make to Airgradient server?

Current firmware supported the MQTT broker URL: mqtt://Username:Password@Host:Port

Example: mqtt://user1:pass1234@192.168.1.1:1883

True, that works for the MQTT. But it does not protect from anyone using https put and change settings, if the device is visible in the network.

This did not work: After setting "configurationControl":"cloud" I was still able to change it back to local without reset.