ESPHome, 'on_value_range' - Automation rechnet nicht korrekt (?!)

cortlieb

Member
Hallo Leute,
ich wollte folgendes erreichen:
eine an einen D1-mini angeschlossene RGB-LED sollte unterschiedliche Farben zeigen, je nach Außentemperatur (ein in HA verfügbarer Sensor).
Dazu habe ich folgenden Code genutzt:
YAML:
sensor:
  - platform: homeassistant
    name: "aussen_temp"
    id: aussen_temp
    entity_id: sensor.abus_multisensor_air_temperature
    on_value_range:
      - below: 10.0
        then:
          - output.turn_off: LED_red
          - output.turn_off: LED_green
          - output.turn_on: LED_blue
          - logger.log: "LED blau"
      - above: 10.0
        below: 20.0
        then:
          - output.turn_off: LED_red
          - output.turn_on: LED_green
          - output.turn_off: LED_blue
          - logger.log: "LED gruen"
      - above: 20.0
        then:
          - output.turn_on: LED_red
          - output.turn_off: LED_green
          - output.turn_off: LED_blue     
          - logger.log: "LED rot"

Das funktioniert auch alles so weit, nur manchmal (und präziser kann ich es leider nicht sagen, trotz einiger Versuche konnte ich keine Systematik feststellen) wird die LED beim Über-/Unterschreiten der jeweiligen Grenze nicht umgeschaltet.
Das Problem ist ja, dass die jeweilige Aktion nur einmal ausgeführt wird, wenn man von außerhalb eines definierten Bereichs in einen definierten Bereich wechselt.
Manchmal wird die Aktion aber nicht ausgelöst (sichtbar auch an der fehlenden Log-Ausgabe). Dann renkt sich das Ganz auch nicht mehr ein, weil die Software schon erkennt, dass sie jetzt im neuen Bereich ist und deswegen auch keine Aktion mehr auslöst, so lange der Bereich nicht wieder verlassen wird. Erst wann man den jeweiligen Bereich dann wieder verlässt und in einem neuen Bereich landet, wird die LED wieder bedient.

Hat vielleicht jemand eine Idee, wo das Problem liegt oder zumindest, in welche Richtung ich weiter schauen könnte?
 
Hi,

das funktioniert immer dann, wenn dein Wert außerhalb der Range liegt und auf einen Wert innerhalb der Range wechselt. Das ist auch genauso auf esphome.io beschrieben.

on_value_range​

With this automation you can observe if a sensor value passes from outside a defined range of values to inside a range. For example you can have an automation that triggers when a humidity crosses a threshold, and then turns on a dehumidifier. This trigger will only trigger when the new value is inside the range and the previous value was outside the range. On startup, the last state before reboot is restored and if the value crossed the boundary during the boot process, the trigger is also executed.
 
Ja, das habe ich verstanden. Aber genau das ist eben nicht immer passiert.
Über einen simulierten Temperaturwert konnte ich genauso sehen, dass manchmal ein Bereich erreicht wurde, ohne dass die definierte Aktion ausgeführt wurde.
Im Moment habe ich das nicht mehr beobachtet.
Ich vermute fast, es hat was mit der Situation mit dem angeschlossenen ST7735-Display zu tun, die in diesem Thread diskutiert wurde, in dem du ja auch kommentiert hast. Ich habe das oben beschriebene Problem auf dem Board mit genau diesem Aufbau.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.666
Beiträge
47.655
Mitglieder
4.312
Neuestes Mitglied
Harway2007
Zurück
Oben