Klipper¶
🧩 Purpose:¶
You can feed PuffiAir's air quality data (e.g., temperature, humidity, CO₂, VOC) into Klipper using MQTT virtual sensors. This allows dynamic use of real-time environmental values inside G-code macros, such as:
{printer["sensor co2"].value}
{printer["sensor temp"].value}
🛠️ Quick Setup¶
Enable MQTT on PuffiAir¶
Make sure you have filled in the correct MQTT server info on the PuffiAir Setup Page and that it's connected successfully.
Configure Virtual Sensors in moonraker.conf
¶
Edit your Moonraker configuration to include entries like:
[virtual_sensor co2]
mqtt_topic = puffiair/co2
type = float
[virtual_sensor temp]
mqtt_topic = puffiair/temperature
type = float
[virtual_sensor voc]
mqtt_topic = puffiair/voc_index
type = float
You can define as many sensors as needed, matching the MQTT topics published by PuffiAir.
Restart Moonraker / Klipper¶
Once saved, restart the services to apply the changes.
Use Values in G-code Macros¶
Example usage in a macro:
[gcode_macro AIR_QUALITY] gcode: RESPOND PREFIX=AIR QUALITY MSG="CO2 Level: {printer['sensor co2'].value} ppm"
📡 Default MQTT Topics from PuffiAir¶
Measurement | Topic | Example |
---|---|---|
CO₂ (ppm) | puffiair/co2 |
635 |
Temperature (°C) | puffiair/temperature |
25.8 |
Humidity (%) | puffiair/humidity |
53.4 |
VOC Index | puffiair/voc_index |
88 |
Gas Level (ADC) | puffiair/gas |
524 |
PM1.0 (µg/m³) | puffiair/pm1_0 |
2.15 |
PM2.5 (µg/m³) | puffiair/pm2_5 |
3.42 |
PM4.0 (µg/m³) | puffiair/pm4_0 |
4.88 |
PM10 (µg/m³) | puffiair/pm10 |
5.76 |
Air Pressure (hPa) | puffiair/pressure |
1006.2 |
Battery Voltage (V) | puffiair/battery |
3.72 |
Device Status | puffiair/status |
"normal" |