Zahlenwerte für helfer setzen funktioniert nicht - was überseh ich ...?

es liegt vielleicht an weihnachten … :laughing: … aber ich bekomm den Umbau einer automation nicht hin.

folgendes Szenario: zum konsolidieren von mehreren auf eine Automation möchte ich mit Zahlen-Helfern arbeiten, die sozusagen als Stati-Entitäten verwenden. Das hat zur Folge, dass nach abarbeiten der Aktionen eines Status z.B. die nächste Stufe erreicht wird oder ein anderer Status gesetzt werden soll. ich mache das mit einer action number.set_value

problem: in dem Ablauf wird der Nummern-Status nicht gesetzt … warum? ich habe schon an die Modi geacht und parallel oder queued probiert. geht nicht …

hat jemand Weihnachtserleuchtung übrig?

alias: SecuLight v4
description: >-
  Startet Licht mit und ohne Verzögerung, Berücksichtigung Sonnenuntergang


  0 = aus
  1 = warten bis Dämmerung
  2 = Start Verzögerung
  3 = Start beleuchtung
  
triggers:
  - trigger: numeric_state
    entity_id:
      - input_number.helfer_zahl_dev_switch
    id: aus
    below: 1
  - trigger: time
    at: "11:13:30"
    id: sunset
    enabled: true
  - trigger: numeric_state
    entity_id:
      - input_number.helfer_zahl_dev_switch
    above: 0
    id: wait
    below: 2
  - trigger: numeric_state
    entity_id:
      - input_number.helfer_zahl_dev_switch
    above: 1
    id: delay
    below: 3
  - trigger: numeric_state
    entity_id:
      - input_number.helfer_zahl_dev_switch
    above: 2
    id: start
    below: 4
  - trigger: state
    entity_id:
      - timer.helfer_dev_switch_timer_ohne_vorgabe
    to: idle
    id: timer_done
    enabled: true
  - trigger: state
    entity_id:
      - input_boolean.helfer_dev_switch
    to: "off"
    id: manual_off
    enabled: false
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - sunset
        sequence:
          - action: number.set_value
            metadata: {}
            data:
              value: "2"
            target:
              entity_id: input_number.helfer_zahl_dev_switch
          - action: timer.start
            data:
              duration: >-
                {% set next_sunset = state_attr('sun.sun', 'next_setting') |
                as_datetime | as_local %} {% set current_time = now() %} {% set
                diff_seconds = (as_timestamp(next_sunset) -
                as_timestamp(current_time)) | int %} {{diff_seconds}}
            target:
              entity_id:
                - timer.helfer_dev_switch_timer_ohne_vorgabe
      - conditions:
          - condition: trigger
            id:
              - delay
        sequence:
          - action: timer.start
            data:
              duration: 00:00:{{ (range(10, 20)|random|int) }}
            target:
              entity_id:
                - timer.helfer_dev_switch_timer_ohne_vorgabe
          - wait_template: >-
              {{ is_state('timer.helfer_dev_switch_timer_ohne_vorgabe', 'idle')
              }}
          - action: number.set_value
            metadata: {}
            data:
              value: "3"
            target:
              entity_id: input_number.helfer_zahl_dev_switch
      - conditions:
          - condition: trigger
            id:
              - start
        sequence:
          - action: timer.start
            data:
              duration: 00:00:{{ (range(10, 20)|random|int) }}
            target:
              entity_id:
                - timer.helfer_dev_switch_timer_ohne_vorgabe
          - action: switch.turn_on
            data: {}
            target:
              entity_id: input_boolean.helfer_dev_switch
          - action: input_boolean.turn_on
            target:
              entity_id:
                - input_boolean.helfer_dev_switch
            data: {}
          - action: number.set_value
            metadata: {}
            target:
              entity_id:
                - input_number.helfer_zahl_dev_switch
            data:
              value: "0"
            enabled: false
      - conditions:
          - condition: trigger
            id:
              - timer_done
        sequence:
          - choose:
              - conditions:
                  - condition: numeric_state
                    entity_id: input_number.helfer_zahl_dev_switch
                    above: 1
                    below: 3
                sequence:
                  - action: number.set_value
                    metadata: {}
                    data:
                      value: "3"
                    enabled: true
                    target:
                      entity_id: input_number.helfer_zahl_dev_switch
              - conditions:
                  - condition: numeric_state
                    entity_id: input_number.helfer_zahl_dev_switch
                    above: 2
                    below: 4
                sequence:
                  - action: number.set_value
                    metadata: {}
                    data:
                      value: "0"
                    enabled: true
                    target:
                      entity_id: input_number.helfer_zahl_dev_switch
      - conditions:
          - condition: trigger
            id:
              - aus
        sequence:
          - action: number.set_value
            metadata: {}
            data:
              value: "0"
            enabled: true
            target:
              entity_id: input_number.helfer_zahl_dev_switch
          - action: switch.turn_off
            data: {}
            enabled: false
            target:
              entity_id: input_boolean.helfer_dev_switch
          - action: input_boolean.turn_off
            target:
              entity_id:
                - input_boolean.helfer_dev_switch
            data: {}
          - action: timer.cancel
            metadata: {}
            data: {}
            target:
              entity_id:
                - timer.helfer_dev_switch_timer_ohne_vorgabe
            enabled: true
mode: parallel

Wenn du mit input_number arbeiten willst, dann musst auch input_number.set_value verwenden.

Frohe Weihnachten

Ich würde zum Debuggen die Schritte reduzieren und Dich Stück für Stück an den Fehler herantesten. Spontan sehe ich

  • Als Modus würde ich nicht parallel oder queue nehmen sondern single oder restart weil die Aktionen sich überschneiden können
  • action: number.set_value → action: input_number.set_value
  • 00:00:{{ (range(10, 20)|random|int) }} in Anführungszeichen, vielleicht danach einen Delay Schritt von 1-2 s einlegen nur um sicherzugehen

Gutes Gelingen!

Danke @sirector - das war der Fehler!
Danke auch dir @Bacardi - ich hab die Automation up and running. Ich werde noch den Code posten, falls wer interessiert ist. :ok_hand: