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.
