Sonntag, 17. September 2017

Wassermelder mit ESP8266


Die grundlegende Sensormechanik ist dem Homematic Wassermelder entlehnt. In ein Industrie Aufputz Gehäuse IP65 mit den Abmessungen 100x67x50 werden im Boden 5 Spikes eingebaut, ein Spike wird gekürzt um die Möglichkeit eines Wasserstandes zu haben.
Damit ergibt sich eine Bodenfreiheit von ca. 13 mm.
Zwei der Spikes bilden den primären Sensor, läuft Wasser auf dem Boden schließt er den Kontakt zwischen beiden Spikes.


Für die Schaltung braucht man im Wesentlichen neben etwas Draht noch einen ESP12F, 2 x 1 MOhm, 100µF Kondensator und eine Batteriehalterung für zwei AA Batterien.
Ein kleines Stück Universalplatine ein 6 poliger und ein 2 poliger Pfostenstecker sorgen für etwas Komfort beim Aufbau.
Das Schaltungsprinzip geht auf diesen Artikel zurück.

Ich habe aber als Software lediglich ESPEasy aufgespielt.

Funktion

Der Eingang RESET und GPIO16 (D0) wird über einen Jumper verbunden. damit kann man das Modul in den Sleep Modus versetzen und es kann zyklisch oder über den EN Eingang aufwachen.
Der Eingang EN (CH_PD) ist normalerweise über einen Widerstand 1 MOhm nach Masse gezogen, das Modul befindet sich im Sleep Modus und verbraucht nur ca. 16 µA.
Wird der Eingang durch Wasser mit dem Pluspol verbunden (normaler Betrieb) startet das Modul und liefert aktuelle Werte an das ESPEasy Modul von FHEM. Diesen Event kann man in FHEM auswerten.
Der Eingang GPIO14 (D5) wird ebenfalls mit einem Widerstand 1 MOhm nach Masse gezogen und ist mit dem abgesägtem Spike verbunden. Mit ihm könnte "Wasserstand  von ca. 5 mm ermittelt werden.

Betriebsarten

Konfiguration

Das Kabel zu den drei Fühlerspitzen wird entfernt.
Der Jumper wird von den Anschlüssen RST und D0 von J2 entfernt und so auf J6 gesteckt, dass EN und VCC gebrückt werden. Damit startet das Modul im normalen Modus.
Vorsicht, jetzt zieht das Modul dauerhaft ca. 80 mA. Wird es jetzt schon mit Batterie versorgt ist diese nach ca 15 Stunden (oder eher) leer.

Bei einem neuen Modul wird jetzt das Netzwerk konfiguriert.
Grundlegend ist die Konfiguration hier beschrieben

Nach dem Neustart unter dem Reiter Config:

  • ein sinnvoller Unit Name vergeben.
  • FHEM Server eintragen
  • Im Reiter Devices
    • Gerät definieren, System RSSI
    • Gerät definieren, Switch, GPIO14, kein Pullup


Nach dem die Geräte in FHEM automatisch angelegt wurden kann man den ESP in den Sleep Mode schicken: Unter Reiter Config Häkchen setzen. Mit der Zeitspanne in µsec kann man erreichen, dass sich der Melder immer wieder schlafen legt und in diesem Abstand eine erneute Meldung absetzt.

Normaler Betrieb

Jetzt zieht man den Jumper von J6 und steckt ihn auf J2 D0-RST
Das Gerät darf jetzt nicht mehr erreichbar sein.
Die Fühlerspitzen werden mit + EN D5 verbunden.

Reset Konfiguration

Ist das ESP Modul nicht mehr erreichbar oder soll neu konfiguriert werden, kann ESP-Easy zurückgesetzt werden. 
  • Das Kabel zu den Fühlerspitzen wird entfernt.
  • Ein zweiter Jumper wird so gesteckt, das an J6 TX und RX verbunden sind.
  • Der Jumper auf J6 wird so gesteckt, dass EN und VCC gebrückt werden.
Betriebsspannung einschalten und warten bis Wlan ESP_0 zu sehen ist. Dies dauert eine Weile!

Test 

Einfach die beiden Spikes mit feuchtem Finger verbinden, die blaue LED am ESP muss kurz aufleuchten und in FHEM muss ein Event erzeugt werden.

Konfiguration in FHEM

Hier noch eine Beispieldefinition
define ESPEasy_Wassermelder_WM1 ESPEasy 192.168.100.137 80 espBridge Wassermelder_WM1
attr ESPEasy_Wassermelder_WM1 IODev espBridge
attr ESPEasy_Wassermelder_WM1 Interval 300
attr ESPEasy_Wassermelder_WM1 event-on-change-reading .*
attr ESPEasy_Wassermelder_WM1 eventMap /gpio 14 on:on/gpio 14 off:off/
attr ESPEasy_Wassermelder_WM1 group ESPEasy Device
attr ESPEasy_Wassermelder_WM1 presenceCheck 1
attr ESPEasy_Wassermelder_WM1 readingSwitchText 1
attr ESPEasy_Wassermelder_WM1 room ESPEasy
attr ESPEasy_Wassermelder_WM1 setState 3

define Wassermelder_DOIF DOIF ([ESPEasy_Wassermelder_WM1:presence] eq "present") (set Wassermelder_dummy on)\
DOELSE (set Wassermelder_dummy off)
attr Wassermelder_DOIF do always
attr Wassermelder_DOIF icon helper_doif
attr Wassermelder_DOIF room Boden

Freitag, 1. September 2017

Homematic Türschließer

Von Homematic gibt es den HM-Sec-Key als automatischen Schließer für jedes normale Türschloß. Die Einrichtung und die mitgelieferte Beschreibung ist nicht so einfach, deshalb hier ein kleines HowTo. Da man sich ganz schnell vertan hat, fange ich mal am Ende der "ersten" Runde an:

Werksreset

Für den Schlossantrieb

  1. Man baut das Gerät vom Schloß ab
  2. Man drückt den kleinen Taster mit einer Spitze für 2 sec, die Anzeige die jetzt erscheint hängt vom vorherigen Zustand ab -> X bei angelernter Master FB oder rotierender Strich in Richtung der Schließrichtung.
  3. Jetzt dreht man das Handrad in Richtung "Schließen", solange bis die Anzeige wechselt. Bei mir war es kurz die 1 und dann sofort der rotierende Strich.
  4. Jetzt dreht man das Handrad in gleicher Richtung weiter, solange bis die Anzeige kurz ausgeht und ein Piep ertönt.
  5. Jetzt sollte das Gerät im Auslieferungszustand sein.

Für die Fernbedienung

  1. Man drückt den kleinen Taster hinten mit einer Spitze für ca. 5 sec bis es langsam blinkt, 
  2. dann lässt man kurz los und drückt wieder ca. 5 sec bis es schnell blinkt,
  3. jetzt loslassen, es hört es kurz auf mit blinken und es erfolgt ein rot grün gelb blinken als Quittung für den Neustart.

Erste Fernbedienung anlernen


Man sollte unbedingt die erste (Master) Fernbedienung an den Antrieb anlernen bevor man eines von beiden Geräten an die Zentrale (FHEM) anlernt! Die Grundeinrichtung muss abgeschlossen sein. Die Masterfernbedienung hat eine besondere Funktion (Sicherheitsabfrage quittieren)
  1. Im Display steht M. Zuerst drückt man die obere Taste (entriegeln) für 2 sec bis die Anzeige nach 1 wechselt.
  2. Innerhalb von 20 sec drückt man kurz den kleinen Taster an der Rückseite der FB mit einer Spitze. Die LED muss jetzt ruhig grün blinken!
  3. Jetzt drückt man an der FB die obere Taste (Schloß zu). Die LED an der FB muss jetzt schnell orange blinken, ein Zeichen der Datenübertragung. Am Antrieb erscheint während des gelben Blinkens nach kurzer Zeit ein Piep und ein M als Quittung. Als Abschluss leuchtet die LED an der FB grün.

Gerät in FHEM anlernen

Türschlossantrieb

  1. Mit set <vccu> hmPairForSec 60 die Zentrale in den Anlernmodus versetzen
  2. Am Antrieb die obere Taste (Schloss auf) 2 sec drücken, die Anzeige wechselt nach X
  3. Mit der Master FB durch drücken einer der beiden Tasten (Schloss auf oder zu) den Vorgang quittieren (Sicherheitsabfrage)
  4. Ein erneuter Anlernversuch wird durch Anzeige von "c" im Display verweigert.

Fernbedienung

  1. Mit set <vccu> hmPairForSec 60 die Zentrale in den Anlernmodus versetzen
  2. An der FB mit einer Spitze die Taste an der Rückseite kurz drücken. Die LED an der FB muss jetzt schnell orange blinken, ein Zeichen der Datenübertragung. Als Abschluss leuchtet die LED an der FB grün.
  3. In der Regel sind jetzt noch nicht alle Daten übertragen, der Anlernvorgang aber angefangen (Gerät ist angelegt aber die Daten sind nicht komplett). Einfach den Vorgang 2. wiederholen. Es wird eine neue Datenübertragung erfolgen.
  4. Ein erneutes Drücken der Taste an der Rückseite wird mit "rot" quittiert und der Anlernversuch damit verweigert.
Den Anlernvorgang an FHEM zum Schluss am Besten mit hmInfo configCheck überprüfen!

Sicherheit - eigenen AES Schlüssel verwenden

Um es klar zu sagen: AES muss nicht eingerichtet werden, AES machen beide Komponenten von Hause aus. Allerdings ist der Systemschlüssel, der in allen Homematic Komponenten gespeichert ist bekannt. Eine Erhöhung der Sicherheit erreicht man also nur mit einem eigenen Schlüssel.
Grundlage ist die Beschreibung im Wiki. Ich will hier die Schritte zusammenfassen

Hier wird noch gearbeitet