Umzug ins Zelt, Automatisierung

Die kleine Pflanze bekommt ihr neues Zuhause im Keller. Im Zuge des Umzugs beschäftige ich mich endlich wieder mehr mit der geplanten Automatisierung. Um auch von unterwegs mehr steuern zu können, entscheide ich mich für eine Umsetzung via Home Assistant und ESPhome und verwerfe den speziellen Code und die Anzeige über ein Display. Home Assistant läuft lokal auf einem Raspberry Pi, von unterwegs wird der Zugriff über ein VPN gewährt.

Folgende ESPHome Konfiguration werden verwendet:

  • Bodenfeuchtigkeitssensor: die Werte für die Kalibrierung, sowie der Pin müssen entsprechend angepasst werden, für jeden Sensor anlegen, es empfiehlt sich die Verwendung von <<: !include für gleiche Konfigurationen
sensor:
  - platform: adc
    raw: true
    icon: "mdi:cup-water"
    update_interval: 200ms
    attenuation: 11db
    filters:
      - calibrate_linear:
            datapoints:
              - 2575 -> 0.0
              - 945 -> 100.0
      - lambda: if (x < 0) return 0;
            else if (x > 100) return 100;
            else return (x);
      - median:
            window_size: 9
            send_every: 5
            send_first_at: 5
    accuracy_decimals: 1
    unit_of_measurement: "%"
    pin: GPIO36
    name: "Sensor 1"
  • BME280: i²c Pins und eventuell address müssen angepasst werden
i2c:
  sda: GPIO21
  scl: GPIO22

sensor:
  - platform: bme280_i2c
    address: 0x76
    temperature:
      name: "Temperature"
    pressure:
      name: "Pressure"
    humidity:
      name: "Humidity"
  • Relais Steuerung: Pin muss angepasst werden, switch und buttons entsprechend der Anzahl an Relais anlegen
number:
  - platform: template
    name: Relay Duration
    icon: "mdi:camera-timer"
    id: lcw_pump_delay
    optimistic: true
    min_value: 1
    max_value: 60
    step: 1
    initial_value: 5

switch:
  - platform: gpio
    pin: GPIO27
    id: relay1

button:
  - platform: template
    name: Relay 1
    icon: "mdi:water-pump"
    id: relaybutton1
    on_press:
      - switch.turn_on: relay1
      - delay: !lambda "return id(lcw_pump_delay).state  * 1000;"
      - switch.turn_off: relay1