No-Neutral-Schalter ohne Decoupling als smarter Eingang für smarte Lampe

- Veröffentlicht unter Makerspace von

Hinweis: Der Beitrag wurde von KI entworfen und manuell nachbearbeitet. Er basiert auf einer echten Installation; Gerätespezifika wurden anonymisiert.

🛒 = Affiliate-Link (Werbung). Wenn du über diesen Link etwas kaufst, erhalte ich eine kleine Provision – für dich bleibt der Preis gleich.


Projektziel

Ein günstiger No-Neutral-Relais-Schalter (zum Beispiel Acmerota Weißer Smart Light Switch für ZigBee-Fernbedienungs-Lichtschalter 🛒) ohne Decoupling-Funktion soll eine bereits smarte Lampe steuern, ohne ihr dauerhaft die Stromversorgung zu entziehen. Der Tastendruck soll wie ein normaler Schalter wirken, die Lampe aber nur virtuell über Home Assistant geschaltet werden.


Hintergrund

No-Neutral-Schalter benötigen keinen Neutralleiter und schalten deshalb direkt die Phase. Viele Modelle bieten eine „Decoupling“-Option, um den Taster von der Last zu trennen – dieser Schalter jedoch nicht. Er würde beim Ausschalten tatsächlich die Spannung der Lampe trennen, was bei WLAN- oder Zigbee-Lampen problematisch ist: Sie verschwinden aus Home Assistant, lassen sich nicht mehr ansteuern und müssen neu booten.

Da gerade kein anderer Schalter verfügbar war, entstand ein einfacher Workaround: Der Schalter schaltet beim Drücken kurz aus und sofort wieder ein, bleibt also im Endeffekt an, während Home Assistant die Lampe selbst über eine Automation steuert.


Idee

  • Der physische Schalter dient nur noch als Trigger.
  • Ein input_boolean merkt sich den letzten bekannten Zustand der Lampe.
  • Jeder Tastendruck toggelt den Status der Lampe, ohne sie dauerhaft stromlos zu machen.
  • Falls die Lampe nach dem kurzen Aus noch nicht sofort erreichbar ist, wiederholt Home Assistant den Schaltbefehl automatisch, bis der gewünschte Zustand erreicht ist.

Automation 1 – Taster → Lampe mit Status-Tracking

alias: Smarter Schalter toggelt Lampe über Status-Tracking (mit Abbruch bei Erfolg)
description: ""
triggers:
  - trigger: state
    entity_id: switch.schalter_1
    to: "off"
conditions:
  - condition: template
    value_template: "{{ trigger.to_state.context.user_id is none }}"
actions:
  - variables:
      last_state: >
        {{ 'on' if is_state('input_boolean.statusspeicher_lampe', 'on') else 'off' }}
      zielzustand: "{{ 'off' if last_state == 'on' else 'on' }}"
  - action: switch.turn_on
    target:
      entity_id: switch.schalter_1
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ zielzustand == 'on' }}"
        sequence:
          - action: input_boolean.turn_on
            target:
              entity_id: input_boolean.statusspeicher_lampe
      - conditions:
          - condition: template
            value_template: "{{ zielzustand == 'off' }}"
        sequence:
          - action: input_boolean.turn_off
            target:
              entity_id: input_boolean.statusspeicher_lampe
  - repeat:
      count: 5
      sequence:
        - choose:
            - conditions:
                - condition: template
                  value_template: |
                    {{ not is_state('light.lampe', zielzustand) }}
              sequence:
                - action: light.turn_{{ zielzustand }}
                  target:
                    entity_id: light.lampe
                  continue_on_error: true
                - delay: "00:00:02"
          default:
            - stop: Lampe hat den gewünschten Zustand erreicht.
mode: restart

Automation 2 – Lampenzustand merken

alias: Letzten bekannten Zustand der Lampe speichern
triggers:
  - trigger: state
    entity_id: light.lampe
    to:
      - "on"
      - "off"
conditions:
  - condition: template
    value_template: >
      {{ trigger.to_state.state not in ['unavailable', 'unknown'] }}
actions:
  - choose:
      - conditions:
          - condition: state
            entity_id: light.lampe
            state: "on"
        sequence:
          - action: input_boolean.turn_on
            target:
              entity_id: input_boolean.statusspeicher_lampe
      - conditions:
          - condition: state
            entity_id: light.lampe
            state: "off"
        sequence:
          - action: input_boolean.turn_off
            target:
              entity_id: input_boolean.statusspeicher_lampe

Funktionsweise

  • Der Schalter sendet beim Drücken ein kurzes off.
  • Die Automation schaltet ihn sofort wieder auf on, damit das Relais geschlossen bleibt.
  • Die Lampe erhält einen Schaltbefehl für den berechneten Zielzustand.
  • Die Schleife (repeat) prüft mehrmals, ob der Zustand tatsächlich erreicht wurde, und stoppt bei Erfolg.
  • Der input_boolean speichert den zuletzt bekannten Status und dient beim nächsten Tastendruck als Referenz.

Hinweis zu smarten Lampen

Einige Lampenmodelle (z. B. Tapo-Serien) schalten beim Start nach einer kurzen Stromunterbrechung immer auf „An“, unabhängig vom vorherigen Zustand. Die Wiederhol-Logik in der Automation gleicht das automatisch aus, indem sie den Zielzustand explizit setzt. Dadurch bleibt das Verhalten auch bei Lampen mit festem Einschaltzustand stabil.


Vorteile

  • Keine dauerhafte Stromunterbrechung → Lampe bleibt in Home Assistant verfügbar oder ist zumindest schnell wieder online.
  • Funktioniert vollständig lokal, ohne App oder Cloud.
  • Ideal, um günstige No-Neutral-Relais-Schalter ohne Decoupling sinnvoll mit smarten Leuchten (oder anderen Geräten) zu nutzen.
  • Robustes Verhalten dank Status-Tracking und Wiederholversuchen.

Mögliche Erweiterungen

  • Anti-Reset-Schutz: Manche smarte Lampen interpretieren mehrere schnelle Stromunterbrechungen als Anlern- oder Reset-Sequenz. Eine kleine Sperrzeit (z. B. 3–5 Sekunden) kann verhindern, dass die Automation sofort erneut auslöst, wenn man zu schnell hintereinander drückt.

  • Verfügbarkeits-Wartezeit: Einige Lampen melden ihren Status erst verzögert zurück. Eine optionale wait_for_trigger-Phase kann sicherstellen, dass Home Assistant wartet, bis die Lampe nach dem kurzen Power-Blip wieder erreichbar ist.

  • Optisches Feedback: Wer eine schnelle Rückmeldung möchte, kann beim Tastendruck zusätzlich eine Status-LED oder ein kleines Symbol im Dashboard ansteuern.


Fazit

Mit zwei kurzen Automationen wird ein günstiger No-Neutral-Schalter zu einem vollwertigen smarten Taster. Er reagiert wie gewohnt auf Tastendruck, steuert aber smarte Lampen softwareseitig – stabil, zuverlässig und ohne Decoupling-Funktion.