Homematic Wired - Homebrew
Home > Elektronik > Homematic > HBW-SD6-Multikey  
 

Tastensensor mit LEDs und zusätzlichen Funktionen

Der 6-fach Taster von haus-bus.de. Ich habe ein eigenes Layout erstellt, daher ist die Beschaltung nicht die selbe wie bei den original Modulen.
Funktionen, Basismodul:

Erweiterung 1, mit Schraubklemmen:

Erweiterung 2:

Erweiterung "klein":

 

top Elektronik

Aktueller Stand...

Oberseite  
Unterseite

 

Angepasste xMega X32A4 fuses:

WDWP = 8CLK
WDP = 8CLK
BOOTRST = BOOTLDR
TOSCSEL = XTAL
BODPD = DISABLED
RSTDISBL = [ ]
SUT = 0MS
WDLOCK = [ ]
BODACT = CONTINUOUS
EESAVE = [X]
BODLVL = 3V0

FUSEBYTE1 = 0x00 (valid)
FUSEBYTE2 = 0xBF (valid)
FUSEBYTE4 = 0xFE (valid)
FUSEBYTE5 = 0xE0 (valid)

Flash

fuses:

avrdude -c AVRISPmkII -p x32a4u -U fuse2:w:0xbf:m -U fuse4:w:0xfe:m -U fuse5:w:0xe0:m

flash Device software (+booter +signature):

avrdude -c AVRISPmkII -p x32a4u -U boot:w:Firmware\X32A4-Booter\HBW-SD6-v1\HBW-X32A4-Booter.elf:a -U usersig:w:Firmware\X32A4-Booter\HBW-SD6-v1\HBW-X32A4-Booter.usersignatures:a -U application:w:Firmware\X32A4-Devices\Release\HBW-X32A4-Devices.elf:a

 

top Software Anpassungen

Anpassungen an die eigene Hardware

LEDs nicht invertieren:

HBWMultiKeySD6v1Hw.h
-inline HBWMultiKeySD6v1Hw() : HBWMultiKeySD6BaseHw( PortPin( PortR, 0 ), PortPin( PortR, 1 ), true )
+inline HBWMultiKeySD6v1Hw() : HBWMultiKeySD6BaseHw( PortPin( PortR, 0 ), PortPin( PortR, 1 ), false )

Neue Funktion zur Helligkeitsmessung (z.B. in Verbindung mit Bewegungsmelder)

Homematic Geräte mit Funk nutzen einen eigenen Nachrichtentyp (message id=0x41), bei dem der Helligkeitsmesswert mit dem Schaltsignal (KeyEvent) mitgesendet wird und dann der Aktor im peering einen Schwellwert konfiguriert hat. Homematic Wired kennt diesen Nachrichtentyp wohl nicht. Ursprünglich wollte ich diesen Hinzufügen, dann hätten jedenfalls alle Homebrew Geräte diese Funktion erhalten.

Um Standard Geräte kompatibel zu halten, habe ich es über zwei paar zusätzliche Kanäle im HBW-SD6-Multikey Device realisiert. Es ist nicht ganz so flexibel wie mit dem speziellen Nachrichtentyp, aber lässt doch verschiedene Konfigurationen zu.

Funktion
Kanal 32 & 33 (ANALOGSENSOR) stellen wie bisher den Analogen Messwert (12bit) zur Verfügung.
Virtueller Kanal 34 & 35 (BRIGHTNESS SWITCH) sind fest mit je einem der vorhergehenden Kanäle verknüpft, sie errechnen einen 0-100% Helligkeitswert (Zeitraum ist konfigurierbar, 1,3 bis 60 Minuten; "moving average"). Dieser Kanal wird mit einem "Key" (Bewegeungsmelder) Kanal verknüpft (peering), dabei wird der Schwellwert festgelegt, ab dem das Schaltsignal an Kanal 36/37 weitergegeben wird (größer oder kleiner gleich dem Helligkeitsmesswert).
Virtueller Kanal 36 & 37 (BRIGHTNESS KEY) sind wieder fest mit je einem der beiden vorhergehenden Kanäle verknüpft, hier wird das Schaltsignal von Kanal 34/35 weitergegeben und ein kurzer Tastendruck gesendet. Dieser Kanal kann mit alles möglichen Aktoren gepeert werden.

 

Bsp. Konfiguration
Der Bewegungsmelder wird an einen der 12 Taster Eingänge Angeschlossen (Kanalkonfiguration "motionsensor"), dann ein peering mit z.B Kanal 34 angelegt. Das Schaltsignal wird intern an Kanal 36 geleitet. Mit diesem Kanal kann dann ganz normal ein externes peering mit einem Aktor angelegt werden. Kanal 36 gibt das Schaltsignal des Bewegungsmelders nur weiter, wenn die Vergleichsoperation zutrifft, d.h. der Helligkeitswert z.B. unterschritten wurde.

Man könnte so auch Bewegungsmelder und Helligkeitssensoren verschiedener HBW-SD6-Multikey Geräte verknüpfen...

Libs:

HMWired\HmwBrightnessSwitch.h, HmwBrightnessSwitch.cpp
HMWired\HmwBrightnessKey.h, HmwBrightnessKey

 

top Schaltpläne/Layout

 

Schaltplan der Hauptplatine  
Quellcode und Hex Dateien auf GitHub.