#Smoke and BME680 air sensor
web_server:
# wifi
sensor:
- platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
#Air quality sensor
- platform: bme680
temperature:
name: "BME680 Temperature"
oversampling: 16x
pressure:
name: "BME680 Pressure"
humidity:
id: "humidity"
name: "BME680 Humidity"
gas_resistance:
id: "gas_resistance"
name: "BME680 Gas Resistance"
address: 0x77
update_interval: 60s
- platform: template
name: "BME680 Indoor Air Quality"
id: iaq
icon: "mdi:gauge"
# calculation: comp_gas = log(R_gas[ohm]) + 0.04 log(Ohm)/%rh * hum[%rh]
lambda: |-
return log(id(gas_resistance).state) + 0.04 * id(humidity).state;
state_class: "measurement"
#MQ-2 Gas and smoke Analog Sensor
- platform: adc
pin: GPIO2
name: "Smoke sensor"
id: smk
update_interval: 20s
filters:
- multiply: 100
unit_of_measurement: "%"
icon: "mdi:percent"
#Air Quality good or bad converter for Air quality sensor
text_sensor:
- platform: wifi_info
ip_address:
name: ESP IP Address
- platform: template
name: "BME680 IAQ Classification"
icon: "mdi:checkbox-marked-circle-outline"
lambda: |-
if (int(id(iaq).state) <= 50) {
return {"Excellent"};
}
else if (int(id(iaq).state) <= 100) {
return {"Good"};
}
else if (int(id(iaq).state) <= 150) {
return {"Lightly polluted"};
}
else if (int(id(iaq).state) <= 200) {
return {"Moderately polluted"};
}
else if (int(id(iaq).state) <= 250) {
return {"Heavily polluted"};
}
else if (int(id(iaq).state) <= 350) {
return {"Severely polluted"};
}
else if (int(id(iaq).state) <= 500) {
return {"Extremely polluted"};
}
else {
return {"unknown"};
}
#reset buttons
button:
- platform: restart
name: "ESP Reboot"
- platform: safe_mode
name: "ESP(Safe Mode)"
- platform: shutdown
name: "ESP Shutdown"
- platform: factory_reset
name: Restart with Factory Default Settings