# Luftdaten / Airrohr in ESPHome

Hier ist die Funktion des Projekts von [luftdaten.info](https://luftdaten.info/) bzw. [sensor.community](https://sensor.community/) in ESPHome umgesetzt. Es fehlt hier natürlich die Anbindung an die offiziellen externen APIs oder Schnittstellen außerhalb von Home Assistant (z.B: InfluxDB).

```YAML
esphome:
  name: luftdaten1
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: !secret iot_wifi_ssid
  password: !secret iot_wifi_password
  manual_ip:
    static_ip: 172.16.72.102
    gateway: 172.16.72.1
    subnet: 255.255.255.0
    dns1: 172.16.71.1

  ap:
    ssid: "Luftdaten Fallback Hotspot"
    password: !secret fallback_password

captive_portal:

# Enable logging, but use UART1 as UART0 is used by the sds011 sensor
logger:
  hardware_uart: UART1

api:

ota:

# serial communication SDS011 particle matter concentration sensor
uart:
  rx_pin: D1
  tx_pin: D2
  baud_rate: 9600

sensor:
  # SDS011 particle matter concentration sensor
  - platform: sds011
    pm_2_5:
      name: "Luftdaten Feinstaubkonzentration <2.5µm"
    pm_10_0:
      name: "Luftdaten Feinstaubkonzentration <10.0µm"
    update_interval: 5min

  # DHTP22
  - platform: dht
    pin: D7
    temperature:
      name: "Luftdaten Temperatur"
    humidity:
      name: "Luftdaten Luftfeuchtigkeit"
    update_interval: 60s

  - platform: wifi_signal
    name: "Luftdaten WiFi Signal"
    id: luftdaten_wifi_signal
    update_interval: 60s
    
  - platform: template
    name: "Luftdaten WiFi Quality"
    update_interval: 60s
    unit_of_measurement: "%"
    icon: "mdi:wifi"
    lambda: |-
      if (id(luftdaten_wifi_signal).state <= -100) {
        return 0;
      } else if (id(luftdaten_wifi_signal).state >= -50) {
        return 100;
      } else {
        return 2 * (id(luftdaten_wifi_signal).state + 100);
      }
```