Implementierung einer Wechselschaltung führt zu unvorhergesehenen Zuständen.

manicminer

New member
Hallo bin noch relativ neu in HA.
Suche eine Lösung für eine Wechselschaltung (Treppenhaus) um das Treppenlicht von
mehreren Stellen an und aus zu schalten. Habe jeweils einen Tuya TS00012/TS00013/TS00002/TS00003 (von BSEED) verbaut.
Ich verwende die Schalter nur als Sensor, die Lampen haben eigene Aktoren.

In der Automation frage ich die Zustandsänderung der Schalter ab und schalte dann die Entitäten der Lampen an.
Das gleiche muss ich auch für die Schalter machen, damit die Zustände richtig angezeigt werden.

Es funktioniert immer eine unbestimmte Zeit lang ohne Fehler und gerät dann aus dem Tritt.
Wildes Ein,- und Ausschalten ist die Folge.
Manchmal gehen die Lampen dadurch in Programmiermodus und fallen dann aus
der Konfiguration.

Automation für die Küche ( 2 Schaltstellen - 3 Gäng )

YAML:
alias: Test Left
description: ""
triggers:
  - type: turned_on
    device_id: 3598b3d08613df6fee17c09c7ec1963f
    entity_id: 401e585df7b031a599afd067e0a3f87d
    domain: switch
    trigger: device
    id: 1 ein
  - type: turned_on
    device_id: 7cc1aa6f26f0cd8848a12f066aa492d0
    entity_id: e9d76edfdc3d60f86b0e42940c76b9dd
    domain: switch
    trigger: device
    id: 1 ein
  - type: turned_off
    device_id: 3598b3d08613df6fee17c09c7ec1963f
    entity_id: 401e585df7b031a599afd067e0a3f87d
    domain: switch
    trigger: device
    id: 1 aus
  - type: turned_off
    device_id: 7cc1aa6f26f0cd8848a12f066aa492d0
    entity_id: e9d76edfdc3d60f86b0e42940c76b9dd
    domain: switch
    trigger: device
    id: 1 aus
  - type: turned_on
    device_id: 3598b3d08613df6fee17c09c7ec1963f
    entity_id: 2568ce59954845c475cae6ce2513edcd
    domain: switch
    trigger: device
    id: 2 ein
    enabled: true
  - type: turned_on
    device_id: 7cc1aa6f26f0cd8848a12f066aa492d0
    entity_id: 0b3e169c6d98b454f21b0b5376d2d798
    domain: switch
    trigger: device
    id: 2 ein
    enabled: true
  - type: turned_off
    device_id: 3598b3d08613df6fee17c09c7ec1963f
    entity_id: 2568ce59954845c475cae6ce2513edcd
    domain: switch
    trigger: device
    id: 2 aus
    enabled: true
  - type: turned_off
    device_id: 7cc1aa6f26f0cd8848a12f066aa492d0
    entity_id: 0b3e169c6d98b454f21b0b5376d2d798
    domain: switch
    trigger: device
    id: 2 aus
    enabled: true
  - type: turned_on
    device_id: 3598b3d08613df6fee17c09c7ec1963f
    entity_id: 5948cfd90368963a1462791df6268858
    domain: switch
    trigger: device
    id: 3 ein
  - type: turned_on
    device_id: 7cc1aa6f26f0cd8848a12f066aa492d0
    entity_id: 46fc27d0d624fc7388cc02cd54b98d87
    domain: switch
    trigger: device
    id: 3 ein
  - type: turned_off
    device_id: 3598b3d08613df6fee17c09c7ec1963f
    entity_id: 5948cfd90368963a1462791df6268858
    domain: switch
    trigger: device
    id: 3 aus
  - type: turned_off
    device_id: 7cc1aa6f26f0cd8848a12f066aa492d0
    entity_id: 46fc27d0d624fc7388cc02cd54b98d87
    domain: switch
    trigger: device
    id: 3 aus
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - 1 ein
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_a_r_l_1
                - switch.k_as_s_1_left
                - switch.k_as_s_2_left
            enabled: true
      - conditions:
          - condition: trigger
            id:
              - 1 aus
        sequence:
          - action: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_as_s_1_left
                - switch.k_as_s_2_left
                - switch.k_a_r_l_1
            enabled: true
      - conditions:
          - condition: trigger
            id:
              - 2 ein
            enabled: true
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_as_s_1_center
                - switch.k_as_s_2_center
            enabled: true
          - action: light.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: light.k_h_l_1
            enabled: true
      - conditions:
          - condition: trigger
            id:
              - 2 aus
            enabled: true
        sequence:
          - action: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_as_s_1_center
                - switch.k_as_s_2_center
            enabled: true
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.k_h_l_1
            enabled: true
      - conditions:
          - condition: trigger
            id:
              - 3 ein
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_as_s_1_right
                - switch.k_as_s_2_right
                - switch.sonoff_100244015e
            enabled: true
      - conditions:
          - condition: trigger
            id:
              - 3 aus
        sequence:
          - action: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_as_s_1_right
                - switch.k_as_s_2_right
                - switch.sonoff_100244015e
            enabled: true
mode: single

Ich habe es auch schon mit Helfergruppen versucht.
Auswertung ist einfacher , Effekt ist der gleiche.
Mache ich was prinzipiell falsch?
 
woher weiß der Trigger, ob ein- oder ausgeschaltet wird?
Hätte bei action ein abfrage des Lampenzustandes erwartet.
 
YAML:
description: ""
mode: single
triggers:
  - trigger: state
    entity_id:
      - switch.1
      - switch.2
      - switch.3
    id: 1
  - trigger: state
    entity_id:
      - switch.4
      - switch.5
      - switch.6
    id: 2
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - 1
        sequence:
          - action: switch.toggle
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_a_r_l_1
                - switch.k_as_s_1_left
                - switch.k_as_s_2_left
      - conditions:
          - condition: trigger
            id:
              - 2
        sequence:
          - action: switch.toggle
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_as_s_1_center
                - switch.k_as_s_2_center
 
Neuer Ansatz

Ein Raum, drei Licht quellen zwei Schalter mit drei Gängen

Es gibt für jeden Gang der Schalter zwei Gruppen (6 Gruppen).
Eine ODER Gruppe und eine UND Gruppe (Option alle Entitäten eingeschaltet).
In der Automation frage ich zum Einschalten die Statusänderung von aus zu ein der ODER Gruppe ab und setze die ID nein (mit n=1,2,3),
zum Ausschalten frage ich die Statusänderung von ein zu aus der UND Gruppe ab und setze die ID naus (s.o.).

Wird ein Schalter betätigt wird die ODER Gruppe eingeschaltet
Die Automation wird getriggert setzt die ID nein, verzweigt unter Aktion zu der Option zur Definition der ID und schaltet den Lichtaktor und die "gleichgeschalteten" Schalter ein.
Die UND Gruppe wechselt zum Zustand ein (alle Mitglieder sind eingeschaltet

Das Licht sollte jetzt eingeschaltet sein, die "gleichgeschalteten" Schalter auch.

Wird einer der gleichgeschalteten Schalter ausgeschaltet, geht die UND Gruppe in den Zustand aus.

Die Automation wird getriggert und setzt die ID naus, verzweigt unter Aktion zu der Option zur Definition der ID und schaltet den Lichtaktor und die "gleichgeschalteten" Schalter aus.

Die ODER Gruppe wechselt zum Zustand aus (Kein Mitglied eingeschaltet)

Das Licht sollte jetzt ausgeschaltet sein, die "gleichgeschalteten" Schalter auch.


Leider funktioniert das nicht zuverlässig. Zu einem nicht vorherbesimmbaren Zeitpunkt "synchronisieren" die Schalter nicht
oder das Licht geht nicht an oder aus.
Dann wie von Geisterhand fangen Licht und Schalter an erratisch zu toggeln. Ich schalte dann die Automation ab und
lade die Konfiguration neu.

Code:
alias: Test Left
description: ""
triggers:
  - trigger: state
    entity_id:
      - switch.k_h_g_s_1_or
    from: "off"
    to: "on"
    id: 1ein
    for:
      hours: 0
      minutes: 0
      seconds: 1
  - trigger: state
    entity_id:
      - switch.k_h_g_s_1_and
    from: "on"
    to: "off"
    id: 1aus
    for:
      hours: 0
      minutes: 0
      seconds: 1
  - trigger: state
    entity_id:
      - switch.k_h_g_s_2_or
    from: "off"
    to: "on"
    id: 2ein
    for:
      hours: 0
      minutes: 0
      seconds: 1
  - trigger: state
    entity_id:
      - switch.k_h_g_s_2_and
    from: "on"
    to: "off"
    for:
      hours: 0
      minutes: 0
      seconds: 1
    id: 2aus
  - trigger: state
    entity_id:
      - switch.k_h_g_s_3_or
    from: "off"
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 1
    id: 3ein
  - trigger: state
    entity_id:
      - switch.k_h_g_s_3_and
    from: "on"
    to: "off"
    for:
      hours: 0
      minutes: 0
      seconds: 1
    id: 3aus
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - 1ein
          - condition: state
            entity_id: switch.k_a_r_l_1
            state: "off"
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_a_r_l_1
                - switch.k_as_s_1_left
                - switch.k_as_s_2_left
      - conditions:
          - condition: trigger
            id:
              - 1aus
          - condition: state
            entity_id: switch.k_a_r_l_1
            state: "on"
        sequence:
          - action: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_a_r_l_1
                - switch.k_as_s_1_left
                - switch.k_as_s_2_left
      - conditions:
          - condition: trigger
            id:
              - 2ein
          - condition: state
            entity_id: light.k_h_l_1
            state: "off"
        sequence:
          - action: light.turn_on
            metadata: {}
            data: {}
            target:
              entity_id:
                - light.k_h_l_1
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_as_s_1_center
                - switch.k_as_s_2_center
      - conditions:
          - condition: trigger
            id:
              - 2aus
          - condition: state
            entity_id: light.k_h_l_1
            state: "on"
        sequence:
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id:
                - light.k_h_l_1
          - action: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_as_s_1_center
                - switch.k_as_s_2_center
      - conditions:
          - condition: trigger
            id:
              - 3ein
          - condition: state
            entity_id: switch.sonoff_100244015e
            state: "off"
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_as_s_1_right
                - switch.k_as_s_2_right
                - switch.sonoff_100244015e
      - conditions:
          - condition: trigger
            id:
              - 3aus
          - condition: state
            entity_id: switch.sonoff_100244015e
            state: "on"
        sequence:
          - action: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.k_as_s_1_right
                - switch.k_as_s_2_right
                - switch.sonoff_100244015e
mode: single
 
Bevor ich mich da einlese, wann wer wo was machen soll...
Hast Du mal in TRACES geschaut, ob überhaupt HA der Auslöser für das durcheinander ist ?
Und wenn ja, sieht man j auch, wer der Auslöser war.
 
Hi Manicminer,
bei dem was du da schreibst fliegt einem ja der Schädel weg! 😉
Schau dir nochmal den Vorschlag von IvoryBalboa90 an. Du musst nur drei Gruppen bilden statt wie vorgeschlagen zwei. Dann sollte das problemlos funktionieren.
Der Vorteil bei seinem Weg ist, dass es völlig egal ist wie die Schalter gerade stehen und ob das Licht gerade an oder aus ist.
Versuchs mal und genieß das restliche Wochenende!
 

Neueste Beiträge

Letzte Anleitungen

Statistik des Forums

Themen
6.524
Beiträge
62.739
Mitglieder
6.732
Neuestes Mitglied
para1
Zurück
Oben