Mit esp8266 2 analoge Sensoren Messen

Hallo, ich würde gern sowas mit esphome machen. I dachte es mit einem script und mqtt tipo so was zu machen:

mqtt:
broker: !secret mqtt_broker
username: !secret mqtt_user
password: !secret mqtt_password
on_message:
- topic: ota_mode
payload: ‘ON’
then:
- logger.log: ‘Deep Sleep Disabled’
- script.execute: analogsensormessungen
- topic: ota_mode
payload: ‘OFF’
then:
- script.execute: analogsensormessungen
- delay: 20s
- deep_sleep.enter: deep_sleep_enabled

captive_portal:

switch:

  • platform: gpio
    pin: D1
    name: “Power Plant sensor”
    id: spower1
    restore_mode: ALWAYS_OFF
    internal: true
    setup_priority: 1000

  • platform: gpio
    pin: D2
    name: “Power Water sensor”
    id: spower2
    restore_mode: ALWAYS_ON
    internal: true
    setup_priority: 1000

sensor:

#***** DH22 sensor **********

  • platform: dht
    model: dht22
    pin: D4
    temperature:
    name: “ciof Temperature”
    humidity:
    name: “ciof Humidity”
    update_interval: 8s

#***** Wasserstand sensor ************

  • platform: adc
    pin: A0
    id: wasserstandinvolt
    name: “wasserstand in volt”

update_interval: 3s

unit_of_measurement: 'V'
accuracy_decimals: 1
discovery: disable
  • platform: template
    name: “waterlevel”
    id: waterlevel
    unit_of_measurement: “%”
    discovery: disable

    filters:

    • calibrate_linear:

      0.1v = 0%

      1v = 100%

      • 0.42 → 10
      • 0.47 → 50
      • 0.50 → 90
      • 0.53 → 100
        icon: “mdi:water-percent”
        update_interval: 1s
        accuracy_decimals: 1
        lambda: |-
        return id(wasserstandinvolt).state;

#PLANTSENSOR***

  • platform: adc
    pin: A0
    name: “plant”
    id: plant

update_interval: 8s

unit_of_measurement: '%'
filters:
  - multiply: 300
discovery: disable

script:

  • id: analogsensormessungen
    mode: queued
    then:
    • delay: 10s
    • switch.turn_on: spower2
    • delay: 2s
    • mqtt.publish:
      topic: thermoplant/waterlevel/state
      payload: “analogmessung1”
      #payload: !lambda |-

      return to_string(id(waterlevel).state);

    • mqtt.publish:
      topic: thermoplant/wasserstandinvolt/state
      payload: “analogmessung2”
      #payload: !lambda |-

      return to_string(id(wasserstandinvolt).state);

    • switch.turn_off: spower2
    • delay: 1s
    • switch.turn_on: spower1
    • delay: 2s
    • mqtt.publish:
      topic: thermoplant/plant/state
      payload: “analogmessung3”
      #payload: !lambda |-

      return to_string(id(plant).state);

    • switch.turn_off: spower1

deep_sleep:
id: deep_sleep_enabled
sleep_duration: 1h

funktioniert aber nicht…
Eine Idee wie ich es eventuell anders lösen könnte?
Danke
lg
Christian