SmartSwitch

3 Platinen mir wilden Kabelgewirr

🚫 WARNUNG

Das hier vorgestellte Projekte beinhaltet Arbeiten an 230V Wechselspannung. Diese sollten nur von einer elektrischen Fachkraft durchgeführt werden. Die 5 Sicherheitsregeln müssen jederzeit beachtet werden!

🎯 Motivation

Heutzutage muss ja alles “smart” sein und sich irgendwie in die Heimautomatisierung integrieren lassen. Um eine schnelle Lösung zu haben hatte ich vor einigen Jahren einfache IR-Bewegungsmelder gekauft, damit hatte ich eine autarke Insellösung. Jetzt war es an der Zeit diese mit einem zusätzlichen Wifi-Mikrocontroller auszustatten, sodass dann eine Integration in mein neues HomeAssistent möglich ist.

⚒️ Demontage & Analyse

Im Vorfeld des Projektes wusste ich nicht ob eine Umsetzung mit den bereits vorhandenen Bewegungsmelder möglich sein wird, dies hat sich erst durch einiges experimentieren bestätigt. Grundsätzlich lässt sich alles folgende sicherlich auch mit anderen Bewegungsmeldern realisieren, wer das wirklich nachbauen will empfehle ich “conecto Infrarot Wand-Bewegungsmelder IP20” da ich hier gute Erfahrungen habe.

Als Erstes wurde der Bewegungsmelder komplett zerlegt sodas an den beiden darin befindlichen Platinen gemessen werden konnte.

zwei demontierte Leiterplatten
zwei Leiterplatten mit ihren Verbindungen zueinander

Die im Gehäuse unten befindliche Platine ist der Wechselspannungsteil, diese sollte niemals unter Spannungs angefasst werden! Schnell lässt sich erkennen dass das 12V Relais von einem Transistor geschalten wird. Ein weiterer Spannungsregler erzeugt 3.3Volt für die weitere interne Beschaltung. Über das graue, abgeschnitte Flachbandkabel sind die beiden Platinen miteinander verbunden. Der linke Pin im Kabel ist Masse, ganz rechts außen befindet sich die Versorgungsspannung. Der vorletzte Pin rechts hat sich nach einigen messen als das relevante Signal herausgestellt um das Relais zu schalten, wofür die anderen Leitungen sind habe ich nie rausgefunden. Auf der rechten Platine sind mittig der Infrarotsensor sowie eine Infrarotdiode. Mit den beiden Potis läst sich die Sensitivität einstellen bei welcher Beleuchtungsstärke eine Bewegung erkannt wird sowie die Dauer wie lange der Kontakt angeschalten bleibt. Leider konnte ich nicht mit Sicherheit rausfinden was der IC rechts unten genau ist. Meine Vermutung jedoch ist das es sich um ein Derivat eines NE556 handelt und es damit, zusammen mit den Potis und Kondensatoren, zwei monostabile Kippstufen sind.

provisorischer Aufbau mit allen Komponenten
provisorischer Aufbau mit allen Komponenten

Hier sieht man wie das Flachbandkabel gegen eine provisorische Verdrahtung ausgetauscht wurde. Die beiden blauen Kabelenden im linken Bild sind das Schaltsignal was ich hier händisch betätigen konnte. Da die Platine intern 3.3Volt verwendet versuchte ich lange Zeit den ESP8266 mit dieser Betriebsspannung zu versorgen - leider erfolglos. Ich vermute das durch die zusätzliche Stromaufnahme die Spannungsquelle an ihr Limit kommt und zusammen bricht. Damit war klar das ein zusätzlicher kleiner Spannungswandler mit angeschlossen werden muss. Dieser versorgt sich aus der 12V Leitung. Damit der ESP8266 von seinem Flash bootet müssen die beiden Pins GPIO00 und GPIO02 (während des Bootvorgang) logisch high sein. Dies gilt es zu beachten wenn man ein vorhandenes Signal verbinden will, schließlich wäre es ärgerlich wenn der Kontroller nicht mehr bootet nachdem man alles eingebaut hat.

Somit waren alle relevanten Informationen zusammengetragen und Zeit sich um die Software zu kümmern.

👨‍💻 Software & Controller

Um möglich wenig Software selbst schreiben zu müssen griff ich auf das bestehende espHome zurück. Damit lässt sich innerhalb kürzester Zeit die notwendigen Softwarekomponenten zusammenkonfigureren. Aufgrund des geringen verfügbaren Raums im Gehäuse ist für mir nur ein ESP01 Modul infrage gekommen. Daraus ergab sich eine Konfigurationsdatei wie folgt:

esphome:
  name: esp
  friendly_name: motion
  name_add_mac_suffix: true

esp8266:
  board: esp01_1m

ota:
  password: !secret ota_password

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap: {}
captive_portal:

web_server:
  port: 80
  
mqtt:
  broker: !secret mqtt_broker
  username: !secret mqtt_username
  password: !secret mqtt_password
  discovery: true
  
logger: 
  level: DEBUG
  baud_rate: 0

#dallas:
#  - pin: GPIO0

#sensor:
#  - platform: dallas
#    index: 0
#    name: temperature
#  - platform: adc
#    pin: VCC
#    name: voltage

binary_sensor:
  - platform: gpio
    id: input
    name: presence
    device_class: motion
    pin:
      number: GPIO2
      inverted: false
      mode:
        input: true
        pullup: true
  
switch:
  - platform: gpio
    id: status
    name: led
    pin: 
      number: GPIO1
      inverted: true
  - platform: gpio
    id: output
    name: relay
    pin:
      number: GPIO3

Zugangsdaten zum WLAN sowie MQTT Broker müssen in einer seperaten secrets.yml gesetzt werden. Auskommentiert ist eine zusätzliche Option einen Temperatursensor anzuschließen, dies sollte zwar funktionieren, habe ich jedoch nie versucht. Die Konfiguration lässt sich mit esphome run config.yml über eine serielle Schnittstelle auf den ESP flashen. Jeder weitere Programmiervorgang kann später auch über das WIFI erfolgen. Da ich drei der Sensoren umgebaut habe wurden gleich alle ESP geflashen und mit ihren IPs beschriftet. Das sich alle mit dem Gerätenamen “motion-{id}” melden lassen sich diese sonst später nur schwer unterscheiden.

⚒️ Neumontage

Jetzt ging es daran wieder alles zusammen zu bauen. Dabei waren noch ein paar kleine Modifikationen vorzunehmen:

Sensorplatine

Auf dieser Platine musste der Schiebeschalter ausgelötet werden. Einerseits braucht es diesen nicht mehr da der ESP künftig genau dessen Funktion übernehmen wird, zum anderen ist er schlicht im Weg. Die beiden mittleren Pins wurden mit einem Lötklecks verbunden.

ESP Modul von hinten
ESP Modul von vorne

Am ESP wurden zwei Kabel angelötet und etwas Schrumpfschlauch vorgesehen. Der Widerstand ist ein 220k Pull-Down zwischen GPIO2 und GND, ein 0603 SMD Widerstand sollte sich alternativ auf der Vorderseite gut zwischen die Pins löten lassen. Die Pins VCC, /RESET und CH_PD wurden ebenfalls vorne miteinander verbunden.

DCDC Wandler von vorne
DCDC Wandler von hinten

Der Spannungswandler wir mit je einem roten Kabel für Ein- und Ausgangsspannung, sowie zwei schwarzen Kabeln, vorbereitet. Auf der Rückseite lässt sich über eine Lötstelle die gewünschte Ausgangsspannung einstellen. Auf dem Bild ist noch die Option einer einstellbaren Spannung selektiert, besser ist es eine Lötverbindung bei 3.3V zu machen und den Kontakt bei ADJ zu unterbrechen.

Frontdeckel mit markiertem Ausschnitt
Frontdeckel mit ESP im vergrößertem Ausschnitt
Frontdeckel mit eingefügtem DCDC-Wandler

Um genügend Platz für den ESP zu haben musste die Öffnung, wo bislang der Schiebeschalter drin war, etwas erweitert werden. Ebenfalls ist auf dem Bild zu sehen das, neben den beiden Drehschaltern, ein zusätzliches Loch gebohrt wurde. Hier kommt der Spannungswandler durch.

Frontdeckel von innen mit eingefügten ESP Modul und Verkabellung
Frontdeckel mit DCDC-Wandler und ESP Modul
Frontdeckel mit ESP Modul, DCDC Wandler, sowie beide original PCBs

Nun konnten die Komponenten Stück für Stück zusammen gesetzt werden. Angefangen mit dem ESP selbst, diesen in seine Öffnung reinschieben und dabei darauf achten das alle Kabel um die beiden Öffnungen für Infrarotsensor und -diode frei bleiben. Hierfür muste man die Pins ein klein wenig biegen. Den Spannungsregler ebenfalls einfädeln und die Versorgungspins am ESP anschließen. Die Eingangsspannung des Reglers wurde an einem 12V Punkt von der Wechselspannungsplatine abgenommen.

Verschraubt Frontplatine und eingefügte hintere Platine
geschlossener Front mir herausragenden ESP Modul und DCDC Wandler
Position beim Schließen der Reflektorfront

Anschließend kann die Frontplatine wider auf das Frontgehäuseteil geschraubt werden. Dabei ist darauf zu achten das kein Kabel eingequetscht wird. Ebenso kann es sein dass die Achsen der Potis verdreht sind. Bevor das Frontteil wieder mit dem Unterteil zusammengefügt wurde unbedingt darauf achten dass der durchsichtige Kunststoffisolator wieder an seinem Platz ist! ESP und Spannungsregler kommen dann in den Freiraum des äußersten Gehäuseteils.

geschlossene Frontansicht
geschlossene Frontansicht mit roter LED
geschlossene Frontansicht mit blauer LED

Der Deckel passt drauf, alles ist wieder verbaut! Im ausgeschaltenen Zustand ist von der Modifikation nichts zu sehen. Wenn der Schalter regulär in der Wand verbaut ist wird die rote LED dauerhaft leuchten da es eine einfache Power-on LED auf dem ESP01 Modul ist.

Screenshot der Weboberfläche von espHome

Über das Webinterface des ESP Modules lässt sich dieses einfach bedienen. Mit dem Schiebeschalter “led” geht die blaue LED an/aus. Dies ist nützliche wenn man auf der Suche nach dem richtigem Gerät im Haus ist. Genauso könnte man natürlich auch einfach mit dem Schalter “relay” das Licht ein/aus schalten. Eine Integration ins HomeAssistent erfolgt per MQTT hierfür wurden Topics angelegt:

home/raum1/motion-{id}/presence   # Sensor status
home/raum1/motion-{id}/led ON     # blaue Status LED
home/raum1/motion-{id}/relay OFF  # schaltet den Ausgang aus