Posts mit dem Label Homematic werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Homematic werden angezeigt. Alle Posts anzeigen

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

Sonntag, 27. November 2016

Homematic Firmwareupdate

Viele der Homematic Geräte können mit neuer Firmware "OverTheAir" versorgt werden. Manchmal werden neue Features eingebaut (Steckdose Verhalten nach Spannungswiederkehr), manchmal Fehler ausgebügelt (Thermostat Hysterese war nicht einstellbar). Ob man das Firmware Update braucht muss jeder selbst wissen. Alle Einstellungen, Peerings und Register bleiben erhalten.
Das Firmwareupdate erzeugt kein Werksreset!

FHEM hat eine fwUpdate Funktion eingebaut, wie man die verwendet will ich hier kurz schildern. Bei meiner Installation waren über die Jahre doch ca. 8 Geräte auf altem Stand.

Versionsprüfung

Zunächst mal muss man wissen, dass es neue Firmware gibt. Im Wiki ist dafür die Einrichtung eines HTTPMOD Devices beschrieben. So sieht dann das Ergebnis aus:

Wie man sieht, wird damit täglich nach neuer Firmware geschaut und die angelernten Geräte überprüft.
Da hier ziemlich selten Updates erfolgen habe ich das Zeit Interval auf 518400 (6 Tage) hochgesetzt und über das Attribute alignTime einen Zeitpunkt in der Nacht gesetzt. Damit wird der Server bei eq3 nicht so sehr oft abgefragt.
Über reread kann der Vorgang manuell gestartet werden, Die Gerätenamen sind direkt klickbar um die Geräte dann zu bearbeiten. Zuvor kann man die roten Versionsnummern klicken und die neue Firmware herunterladen. Für das Update müssen die Dateien auf dem FHEM Server lokal vorliegen.

Vorbereitung der Firmware Dateien

Die Firmwaredateien werden gepackt geliefert, sicher gibt es viele Wege, ich gehe so vor:
Mit WinScp werden die Dateien nach /home/pi übertragen.
Mit Putty verbinden und im Terminal eingeben:
tar -xvzf /home/pi/<Dateiname>.tar.gz
sudo cp *.eq3 /opt/fhem/FHEM/firmware/

Man kann natürlich auch direkt ins firmware Verzeichnis entpacken:
sudo tar -xvzf /home/pi/<Dateiname>.tar.gz -C /opt/fhem/FHEM/firmware/

Der user fhem muss nur lesen können, dies sollte mit den vorhandenen Berechtigungen funktionieren.

Vorbereitung in FHEM

Sollte man mehrere IOs haben sind weitere Vorbereitungen notwendig. Hat man nur ein FHEM mit einem IO der fwUpdate beherrscht, kann man direkt loslegen.
Ich habe zusätzlich zu meinem produktiven System mit einem HMLAN und einem RPI Modul noch ein Test System mit einem RPI Modul.
Um zu vermeiden, dass das Testsystem stört habe ich den IO mit set <> close geschlossen und mit dem attr <> dummy 1 komplett aus dem Rennen genommen.
Der HMLAN kann kein fwUpdate, ich bin mir nicht sicher ob das alle wissen. Deshalb müssen wir dafür sorgen, dass nur ein IO das Update durchführt.
Ich habe eine VCCU im Einsatz, deswegen habe ich bei den Geräten wo ich ein Update durchführen will einfach den preferred IO gesetzt:
attr <> IOGrp VCCU:HMUART1

Update durchführen

Unbedingt die RSSI Werte kontrollieren, die sollten wenigsten so bei Mitte 60 liegen. Bei schlechteren Werten muss der IO temporär näher an das Gerät gebracht werden.
In der Weboberfläche können wir jetzt das Update starten, den Dateinamen kann man zur Sicherheit mit kompletten Pfad angeben. Dazu einfach in WinScp mit der rechten Maustaste auf die Datei und dann Dateiname/Kopieren mit Pfad den kompletten Namen kopieren und in der Box einfügen:
set <> fwUpdate </Pfad/Dateiname>

Die LED (falls sichtbar) am Gerät sollte jetzt wild anfangen mit blinken, der Vorgang dauert etwas.
Als Quittung wird ein Reading fwUpdate done erzeugt.
Allerdings steht in den Readings und dem Attribute nach wie vor die alte Firmware. Den neuen Eintrag (und damit die Erfolgsquittung) erhält man nur mit einer Anlernmessage:
set HMUART1 hmPairSerial <Serial des gerade aktualisierten Gerätes>
set <> getConfig
Alternativ, oder falls das nicht funktioniert, kann man die Configtaste drücken.

Zum Abschluss wird mit hmInfo configCheck alles nochmal kontrolliert.
Vor dem nächsten Update in kurzer Folge schauen ob der IO sich im overload befindet.

Fehler

Es sind unterschiedliche Fehler möglich:
In den Readings wird eine Fehlernachricht angezeigt, Update ist nicht gestartet. Da stimmt wahrscheinlich irgendeine Grundlage nicht.
Das Gerät landet im Bootloader / Bootloop
Da hat was mit der Firmware nicht gestimmt oder der Vorgang wurde vor dem Ziel abgebrochen. Nicht ganz so schlimm, allerdings braucht man jetzt mit Sicherheit ein paar Versuche. fwUpdate versetzt das Gerät als erstes in den Bootloader, kontrolliert und startet dann den Datentransfer. Man muss es schaffen, dass das Gerät sich mit dem Bootloader meldet wenn fwUpdate es erwartet. Andernfalls bricht er mit einem Fehler ab.
Ich hatte Erfolg mit dieser Reihenfolge:
Gerät ausschalten.
fwUpdate starten und danach sofort das Gerät mit Strom versorgen/Bootloader starten.
Bei overload vom IO einfach warten bis der overload vorbei ist.

Sonntag, 17. Juli 2016

Raspberry Pi HomeMatic-Modul

Der Artikel ist mittlerweile über 4 Jahre alt. Ich bin dazu übergegangen die aktuellen Anpassungen im Wiki und auf GitHub vorzunehmen. Wesentlich ist die Vorbereitung der UART Schnittstelle. Mein Setup Script erledigt alle notwendigen Schritte.
Dieser Artikel hat nur noch historischen Charakter.

Für die Himbeere gibt es seit einiger Zeit eine Homematic Modul HM-MOD-RPI-PCB. Der Bausatz ist simpel aufgebaut, es ist nur eine Buchsenleiste und zwei Platinen mit Pfostenverbinder zusammenlöten.
Der HM-CFG-USB Adapter ist schon nicht mehr lieferbar, den HM-CFG-LAN soll es bald nicht mehr geben. Damit wird diese Modul und die Implementierung in FHEM zunehmend interessant!

Seit 18.7.2016 ist das Modul direkt in FHEM und das CUL_HM Modul ist angepasst. Damit ist die Installation schon einen Schritt einfacher.

Es gibt einen Thread der alles beschreibt, im Wiki findet man zunehemend entsprechende Infos.
Ich schreibe mal wieder auf wie es bei mir funktioniert hat:

Zutaten:
  • Raspberry PI B, B+, B2 oder B3
  • Image Jessie-Lite vom 27.05.2016 oder aktueller
  • System Grundkonfiguration: Zeitzone, Hostname, Kamera etc...

Serielle Schnittstelle vorbereiten:

Die folgenden Schritte kann man vor dem ersten Start auf der SD Karte (nach dem Image schreiben) ausführen oder aber nach dem ersten Start im Terminal.
  • In der Datei /boot/cmdline.txt diesen Eintrag löschen: console=serial0,115200 
  • Die Datei /boot/config.txt um diese Zeile ergänzen: enable_uart=1 
  • Bei dem PI 3 muss die UART und die miniUART getauscht werden. Die Datei /boot/config.txt insgesamt um diese Zeilen ergänzen:
enable_uart=1
dtoverlay=pi3-miniuart-bt
core_freq=250
Statt core_freq kann man auch force_turbo=1 gesetzt werden. Wichtig ist hierbei, dass dei Taktfrequenz konstant bleibt.

Nach dem ersten Start den serial-getty Dienst deaktivieren:
sudo systemctl disable serial-getty@ttyAMA0.service

Jetzt unbedingt neu starten!

Zusammenfassung

Falls man die Dateien im Image nicht vor dem ersten Start manipuliert hat, also nach dem ersten Start im Terminal:
sudo su
echo "enable_uart=1" >> /boot/config.txt 
echo "dtoverlay=pi3-miniuart-bt" >> /boot/config.txt # Nur beim Pi3 notwendig
echo "core_freq=250" >> /boot/config.txt 
sed -i s/'\bconsole=serial0,115200 //' /boot/cmdline.txt
systemctl disable serial-getty@ttyAMA0.service
reboot
In jedem Fall braucht man einen Neustart. man kann also die obigen Zeilen auch in das Script zur Grundkonfiguration des raspberry einbinden und läuft nicht Gefahr die Dateien im /boot durch den falschen Windows Editor unbrauchbar zumachen.

Setup von FHEM

Ganz nach persönlicher Vorliebe!
Interessant ist auf alle Fälle das Script von Betateilchen. Allerdings installiert dies die SVN Version. Der normaler User sollte in Standard Setup verwenden.

Beim PI 3 wegen Timingproblemen muss man noch eventuell die /etc/init.d/fhem um sleep 10 am Anfang ergänzen

Nach Neustart in FHEM einfach die Definition
define myHmUART HMUARTLGW /dev/ttyAMA0
attr myHmUART hmId xxxxxx

Firmware flashen

Das frische Modul sollte noch mit neuer Firmware geflasht werden, die Originalversion war 1.2.1 empfohlen ist derzeit die 1.4.1 von eq3.
Laut Wiki  ist jetzt auch das flashen der Firmware von FHEM aus möglich.
In der FHEM Kommandozeile:

"wget -O FHEM/firmware/coprocessor_update.eq3 https://raw.githubusercontent.com/eq-3/occu/ee68faf77e42ed5e3641790b43a710a3301cea7e/firmware/HM-MOD-UART/coprocessor_update.eq3"

Etwas warten das die Datei geladen wurde (LogFile prüfen) dann diesen Befehl eingeben und warten bis das Modul sich wieder meldet.

set myHmUART updateCoPro FHEM/firmware/coprocessor_update.eq3

Falls das nicht funktioniert, hier noch die händische Methode:
Am Besten FHEM beenden, damit keine Zugriffe auf das Modul erfolgen!

sudo su
apt-get update && apt-get install libusb-1.0-0-dev build-essential git
systemctl stop fhem
git clone git://git.zerfleddert.de/hmcfgusb
cd hmcfgusb/
make
# Firmware runterladen
wget https://raw.githubusercontent.com/eq-3/occu/ee68faf77e42ed5e3641790b43a710a3301cea7e/firmware/HM-MOD-UART/coprocessor_update.eq3
# eigentliches flashen:
./flash-hmmoduart -U /dev/ttyAMA0 coprocessor_update.eq3

Bei der letzten Zeile kamen mehrere Fehler. Ich habe es einfach mehrfach wiederholt und irgendwann ging es.

Sollten beim Firmwareupdate hartnäckig Fehler auftreten (oder einfach nichts passieren) muss das Modul mal vom Strom getrennt werden, neustart reicht nicht!

Hintergrundinformationen 

Man kann die Grundkonfiguration mit raspi-config machen:
  • Zeitzone
  • Hostnamen ändern
  • Kamera aktivieren
  • Serielle Schnittstelle aktivieren
  • usw.
Das raspi-config Tool ändert immer mal seinen Aufbau, ich will das deshalb hier nicht bildlich beschreiben.
Man kann aber auch alles per Script machen:
# Zeitzone
echo "Europe/Berlin" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
#Hostname noch testen!!!
hostname -b raspib
sed -i s/raspberrypi/raspib/ /etc/hosts
nano /etc/init.d/hostname.sh
nano /etc/hostname
rm /etc/ssh/ssh_host_*
dpkg-reconfigure openssh-server
#Kamera
echo "start_x=1" >> /boot/config.txt
echo "gpu_mem=128" >> /boot/config.txt
echo "disable_camera_led=1" >> /boot/config.txt
Achtung: Scripte immer unbedingt im Unix Code (nur LF) abspeichern!!!

Die Sache mit den Rechten auf /dev/ttyAMA0

Der Start des Dienstes serial-getty@ttyAMA0.service setzt offenbar die Rechte auf.
crw--w---- 1 root tty 204, 64 Jul 15 20:36 /dev/ttyAMA0
Ein Beenden des Dienstes ändert daran nichts.

Wird der Dienst nicht gestartet stehend die Rechte auf
crw-rw---- 1 root dialout 204, 64 Jul 18 09:51 /dev/ttyAMA0

So müssen die Rechte auch aussehen! Und der User fhem muss in der Gruppe dialout sein!

Die Sache mit dem Dienst serial-getty@ttyAMA0.service

Ein systemctl disable serial-getty@ttyAMA0.service verhindert zwar den automatischen Start aber nicht den manuellen Start bzw. den Start durch andere Prozesse. Erst der Befehl systemctl mask xxx verhindert jeglichen Start.

Der Eintrag console=serial0,115200 in der /boot/cmdline.txt ist offenbar dafür verantwortlich, dass der Dienst trotz disable gestartet wird. Löscht man diesen Eintrag, wird der Dienst auch nicht gestartet. Unterm Strich kann man den Start des Dienstes auf zwei Arten verhindern:
sudo sed -i s/'\bconsole=serial0,115200 //' /boot/cmdline.txt
sudo systemctl disable serial-getty@ttyAMA0.service
oder
sudo su
systemctl stop serial-getty@ttyAMA0.service
systemctl disable serial-getty@ttyAMA0.service
systemctl mask serial-getty@ttyAMA0.service
chmod g=rw /dev/ttyAMA0

Eigentlich würde ich ein systemctl mask serial-getty@ttyAMA0.service bevorzugen um den Dienst generell auszuschließen.

Wenn Bluetooth beim Pi 3 funktionieren soll: ttyAMA0 und ttyS0 tauschen

Der Eintrag dtoverlay=pi3-miniuart-bt in der Datei /boot/config.txt sorgt dafür, dass die Ansteuerung des BT Moduls jeweils über den Alias serial1 erfolgt.
Eine Änderung wie früher beschrieben in der Datei /lib/systemd/system/hciuart.service ist nicht mehr notwendig!

Im laufenden Betrieb kann  man auch so vorgehen
sed -i s/ttyAMA0/ttyS0/ /lib/systemd/system/hciuart.service
daemon reload
systemctl restart hciuart

Man kann die korrekte Ansteuerung mit ls -l /dev/ser* überprüfen:
Mit dtoverlay=pi3-miniuart-bt (BT an ttyS0)
lrwxrwxrwx 1 root root 7 Jan  1 18:48 /dev/serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Jan  1 18:48 /dev/serial1 -> ttyS0

Ohne dtoverlay=pi3-miniuart-bt (BT an ttyAMA0)
lrwxrwxrwx 1 root root 5 Jan  1 19:02 /dev/serial0 -> ttyS0
lrwxrwxrwx 1 root root 7 Jan  1 19:02 /dev/serial1 -> ttyAMA0

Alternativ könnte man BT deaktivieren.

FHEM Setup

Die Einbindung in FHEM passiert mit dem Modul HMUARTLGW. Das HM-MOD-RPI-PCB hat einen eigene hmId.
define HMUART1 HMUARTLGW /dev/ttyAMA0

Im praktischen Betrieb muss man aber die eigene hmId setzen. Ohne das Attribute hmId empfängt das Modul scheinbar nichts.

attr HMUART1 hmId xxxxxx

Das attr qLen spielte bei mir nach einiger Zeit eine Rolle (Meldung im Log: queue is full, dropping packet), ich habe den Wert auf 60 gesetzt.

Um AES-CBC  nutzen zu können (Rauchmelder SD-2) muss das Paket libcrypt-rijndael-perl installiert werden.

Das UART Modul merkt sich die hmId und die AES Schlüssel bis zur nächsten Änderung.
Das Modul HMUARTLGW unterstützt auch die Remoteanbindung des Raspberry mit socat. Näheres siehe Commandref.

Probleme

FHEM startet mit knapp 100% CPU wenn das HM-MOD-RPI-PCB Modul einfach gesteckt wird.
Es hilft wenn man vor dem Stecken die Erkennung von FHEM ausschaltet.
attr initialUsbCheck disable 1

oder unmittelbar nach der Neuinstallation!
echo 'attr initialUsbCheck disable 1' >> /opt/fhem/fhem.cfg

Notizen

Eventuell braucht man mit der original Firmware (1.2.1) noch das:
echo 18 >/sys/class/gpio/export
echo out >/sys/class/gpio/gpio18/direction
echo 1 >/sys/class/gpio/gpio18/value

Damit wird das Reset Pin am Modul definiert gesetzt

Freitag, 15. Juli 2016

Garagentor mit FHEM bedienen

Garagentore per Hand bedienen ist out, Garagentore werden heute sicher in fast allen Fällen mit elektrischen Antrieben ausgestattet.
Früher konnte man noch wählen zwischen mit oder ohne Fernbedienung, ohne Fernbedienung macht natürlich gar keinen Sinn. Allerdings kann man den Komfort der Fernbedienung nicht wählen, offenbar beschränkt ein weltweites Gesetz die Bedienung der Tore auf einen dummes Knopf. Der macht toggle bzw. Go - Stop - Reverse. Man kann also nicht entscheiden ob das Tor auf oder zu gehen soll, es hängt davon ab wie es zuletzt gefahren ist. Man soll offenbar dazu gezwungen werden, dass Tor nur mit Sichtkontakt zu bedienen.
Wozu haben die meisten Fernbedienungen dann 2, 4 oder 5 Knöpfe?
Ich finde das blöd, ich will durchaus manchmal das Tor aufmachen und wenn es offen ist, bleibt es eben offen. Und abends will ich das Tor zumachen einfach sicherheitshalber auf den Knopf "Zu" drücken und anschließend wissen das es zu ist!
Und weil das alles so ist, kann man bei dem "Toggle Antrieb" nicht was weglassen und einfach einen Rollladen Aktor anschließen, sondern man muss etwas hinzukaufen um an die Funktionen heranzukommen die der Antrieb eigentlich beherrscht. Zumindest bei dem Antrieb aus dem Hause Hörmann.
Wichtiger Hinweis:
Mittlerweile gibt es einen speziellen Baustein von Homematic (eq3) für die HM-IP Serie: HmIP-MOD-HO. Mit diesem Baustein geht das Ganze per Plug&Play.
Zur Einbindung in FHEM (über HMCCU) gibt es hier einen Thread.

Bauteile

Was brauchen wir?

  • Hörmann Supramatic (ich habe die Supramatic E3)
  • Universal Adapterplatine (Suchlink) (die ist für Ottonormalverbraucher offenbar nicht gedacht und läuft unter Industriezubehör
  • ein Switch Empfangsmodul um den Antrieb zu bedienen (HM-MOD-Re-8)
  • ein Sendemodul um die Zustände des Antriebes abzufragen (HM-MOD-EM-8)
  • Spannungsregler UA78L12, Keramikkondensator 100 nF, Keramikkondensator 330 nF, Laborkarte Streifenraster (mindestens 60 x 65 mm)
  • Lötkolben, etwas Schaltdraht und elektrische Grundkenntnisse oder einen guten Freund. Keine Angst es geht nur im Bereich ungefährlicher Spannungen ( < 24 Volt).
Die Kosten für diese Ergänzung des normalen Antriebes belaufen sich auf ca. 90-100€.

Schaltungsbeschreibung

Die UAP1 hat im wesentlichen folgende Anschlüsse:
  • Steuerung: 24 Volt (max 100 mA, 22,8 Volt gemessen) 0 Volt,  S5 -> Licht an, S4 -> Tor zu, S2 -> Tor auf, S3 -> Tor Lüftung, S0 -> Steuerung aus
  • Abfrage (potentialfreies Umschaltkontakt Relais Interface): K01 -> Tor auf, K02 -> Tor zu, K03 -> Licht brennt
  • Busverbindung: 6 poliges belegtes Kabel RJ12 
Die Platine wird über ein mitgeliefertes Kabel (2 m) mit der Supramatic verbunden und wird komplett mit (IP65?) Gehäuse geliefert. In diesem Gehäuse finden auch die beiden Zusatzbausteine Platz und das Kabel lässt sich gegen ein maximal 5 meter langes austauschen. Fertig konfektioniert habe ich 6 meter bekommen, das funktioniert auch. Damit lässt sich die kleine Box empfangstechnisch günstig an der Front der Garage platzieren.
Die Eingänge sind für Taster, also für kurze Impulse gedacht.
Die Eingänge der UAP1 liegen mit einer Widerstandsbeschaltung (4,4/7,4 kOhm) intern auf etwa 21 Volt. Bei Null Potential wird der "Schaltkontakt" mit 4,8 mA belastet. 
Die Openkollektor Stufen der HM-MOD-Re-8 können also direkt angeschlossen werden, 1 Volt Überspannung gegenüber Datenblatt sollten die Ausgangstransitoren verkraften. 
Der COM Anschluss für die integrierte Freilaufdioden müsste auf das Eingangspotential (21 V) gelegt werden, dies steht aber nicht zur Verfügung. Der COM Anschluss muss also unbeschaltet bleiben, die Freilaufdioden bleiben damit ohne Funktion. Da sich die Logik  direkt auf der UAP1 befindet ist nicht mit Spannungsspitzen zu rechnen.
Wir benötigen im praktischen Betrieb 4 Anschlüsse des HM-MOD-Re-8 als Schalter und 3 Anschlüsse des HM-MOD-EM-8 als Sensoren. Man könnte mit einem 5ten Anschluss die UAP1 außer Betrieb nehmen, dies habe ich aber nicht getestet. Ich habe die vorhanden Brücke an S0 gelassen.

Aufbau

Die beiden Homematic Bausteine können mit maximal 12 Volt betrieben werden. Deswegen wird noch einen kleinen Spannungsregler 12 Volt benötigt. Der Spannungsregler samt Randbeschaltung und die beiden HM Bausteine werden auf einer Lochstreifenplatte fixiert und beschaltet.

Achtung: Beim Spannungsregler unbedingt auf die richtigen Anschlüsse achten. Es gibt viele verschiedene Bauformen und Anschlussbelegungen. Ansicht von oben und von unten beachten. Am Besten das Datenblatt konsultieren!

Diese Platte wird etwas zurecht geschnitten und liefert damit perfekten Halt im Gehäuse. Ich habe die Platte 82,5 x 60 mm gewählt und die Ecken 20 x 10 mm ausgeklinkt.
Streifenförmigen Leiterbahnen werden passend mit dem Cuttermesser bearbeitet, die Pfostensteckverbinder der HM Module passen perfekt und die Module bleiben steckbar. Durch die Aufbauhöhe ragt das Ganze etwas in den Klarsichtdeckel des Gehäuses, die Höhe der HM Module stellt die Obergrenze dar, der Spannungsregler muss also wenige mm gekürzt werden.
Die Anschlusskabel für die Klemmleisten müssen ca. 9-10 mm abisoliert werden. 


Schaltplan



Betrieb in FHEM


Zunächst habe ich die Channel der beiden HM Bausteine in der Benennung angepasst.
Für die Bedienung des Garagentors habe ich quasi drei Fernbedienungen, einen Schalter im Flur und zwei RCs für die beiden Autofahrer. Diese sind alle direkt gepeert um auch ohne FHEM zu funktionieren. Nach Standard: ein Knopf auf und ein Knopf zu.
Allerdings ist die Reichweite sehr beschränkt. Mein HMLAN ist wesentlich besser im Empfang als die Bausteine hinter dem Garagentor. Deshalb habe ich die beiden freien Knöpfe auf den RC4 mit einem VCCU Channel gepeert (grünes Licht) und triggere damit ein notify welches das Tor öffnet bzw. schließt. Damit kann ich ohne Probleme ca. 40 meter vor dem Haus aus dem Auto heraus das Tor bedienen.
Die UAP1 wird mit kurzen Impulsen angesteuert.
RC41 ist eine kleine Fernbedineung RC4 als Schlüsselanhänger.
SW81 ist der Switch Re-8

Peering

Die Verbindung der Taster mit dem Switch erfordert zwei Schritte:
Je ein Knopf für auf/zu:
set RC41_1 peerChan 0 SW81_3_TorZu single set both
set RC41_2 peerChan 0 SW81_1_TorAuf single set both

Den anderen Knopf mit virtuellen Knopf verbinden:
set RC41_3 peerChan 0 vccu1_Btn3 single set both
set RC41_4 peerChan 0 vccu1_Btn4 single set both

Ganz wichtig ist die Einstellung zum "Aufwachen" vom Switch:
set RC41_1 regSet peerNeedsBurst on SW81_3_TorZu 
set RC41_2 regSet peerNeedsBurst on SW81_1_TorAuf 

Den Impulse für 1 Sekunde kann man am einfachsten mit dem hminfo Modul und dem Template autoOff einstellen:
set hm templateSet SW81_3_TorZu autoOff RC41_1:short 1
set hm templateSet SW81_1_TorAuf autoOff RC41_2:short 1

Man kann natürlich die Register einzeln setzen, minimal wäre die Zeit für short -> shOntime:
set SW81_3_TorZu regSet shOnTime 1 RC41_1
set SW81_1_TorAuf regSet shOnTime 1 RC41_2

Man müsste aber auch noch mindestens lgOnTime setzen. Im Template können mehrere Register in einem Schritt gesetzt werden. Für diesen Fall müsste ich noch ein Template erstellen.

Zustandserkennung

Der HM-MOD-EM-8 wird mit dem triggerMode "button" ausgeliefert. Was wir brauchen ist der Triggermode "sensor" damit offene und geschlossen Kontakte angezeigt werden und kein Dauer(funk)feuer bei geschlossenem Kontakt entsteht. Im FHEM Wiki ist das gut erklärt.
Folgender Befehl schaltet alle Kanäle in den "sensor" Modus.
set RC81_.* regSet triggerMode sensor
Unter Umständen muss vorher ein getConfig ausgelöst werden und der Konfig Knopf gedrückt werden. Alternativ zum Konfig Knopf geht aber auch die Betätigung eines Kanals, also Garagentor einmal fahren lassen ist einfacher als die Kiste aufschrauben.
Die nicht benutzten Kanäle könnte man auch abschalten.

Notify

So sehen die beiden notify aus, die quasi innerhalb FHEM (virtuelle Button, Dummy) das Tor steuern:
define nty_TorZu notify VCCU_Btn3:trig_RC41_3:.*|VCCU_Btn3:trig_RC42_3:.* set SW81_3_TorZu on-for-timer 1
define nty_TorAuf notify VCCU_Btn4:trig_RC41_4:.*|VCCU_Btn4:trig_RC42_4:.* set SW81_1_TorAuf on-for-timer 1
Um einfach auch in der Oberfläche den Knopf für "Tor auf" oder "Tor zu" drücken kann, habe ich ein zweites notify gebaut, welches die entsprechenden Channel des SW81 immer gleich wieder von on nach off zurücksetzt, falls nicht mit on-for-timer gearbeitet wurde:
define nty_SW81 notify SW81_._Tor.*:on sleep 0.2;; IF ([$NAME:timedOn] ne "running") (set $NAME off)
Besser ist es, man baut sich gleich einen "Knopf" auf die Bedienoberfläche.

Steuerelement für die Weboberfläche

Damit es in der Weboberfläche nicht so technisch detailliert aussieht, brauchen wir noch ein schickes Bedienelement:
Dazu wird ein dummy mit Icon und Schaltflächen ausgestattet und mit einem DOIF wird der Zustand bei Änderung des Status vom echten Tor in den Dummy übertragen. Die beiden notify TorAuf und TorZu werden einfach um einen Trigger erweitert.
define GaragenTor dummy
attr GaragenTor devStateIcon zu:control_arrow_down auf:control_arrow_up open:fts_garage_door_10:zu closed:fts_garage_door_100:auf
attr GaragenTor room Garage
attr GaragenTor webCmd zu:auf

define di_garagentor DOIF ([RC81_1_TorOben:"closed"])(set GaragenTor open) DOELSEIF ([RC81_2_TorUnten:"closed"])(set GaragenTor closed)
attr di_garagentor room Garage

defmod nty_TorAuf notify GaragenTor:auf|VCCU_Btn4:trig_RC41_4:.*|VCCU_Btn4:trig_RC42_4:.* set SW81_1_TorAuf on-for-timer 1

defmod nty_TorZu notify GaragenTor:zu|VCCU_Btn3:trig_RC41_3:.*|VCCU_Btn3:trig_RC42_3:.* set SW81_3_TorZu on-for-timer 1


Achtung

Wer mal eben die UAP1 an die Supramatic anstecken will um zu sehen "ob es was tut" sollte sich den Zeitpunkt gut überlegen!  Die Supramatic lernt die UAP1 beim ersten anstecken und funktioniert anschließend nur noch mit UAP1!  Nur durch einen Werksreset der Supramatic lässt sich dies beheben, damit sind aber auch alle Einstellungen für das Tor futsch.

zum Schluss

Theoretisch könnte man auch drei (noch freie) Tastereingänge des HM-MOD-Re-8 missbrauchen. Allerdings wirken die Taster und auch die Tastereingänge als Toggleschalter und würden bei Dauerkontakt ständig "Long" senden, ob man dies irgendwie umgebogen bekommt habe ich nicht angedacht.
Anmerkung zum verwendeten Homematic Schalter:
Alle Batteriebetriebenen HM Aktoren sind sogenannte Burst Geräte. Sie müssen erst durch einen "Burst" aufgeweckt werden. Der Burst ist eine Nachricht an "Alle" - alle Batteriegeräte wachen dadurch auf und gehen auf Empfang. Der exzessive Einsatz von Schaltvorgängen mit "Batterie Aktoren" führt zu erhöhtem Batterieverbrauch bei allen Geräten im Umfeld.

Mittwoch, 7. Oktober 2015

Preiswerter 4 fach potentialfreier Schalter Homematic

Es gibt von Homematic eine 4 fach Hutschienenaktor (72 mm) der zwar potentialfreie Schaltkontakte hat aber laut Beschreibung und expliziter Angabe in Servicehinweisen nur für einphasigen Anschluss zugelassen ist. Es gibt einzelne Hutschienenaktoren die beliebige Phasen schalten können. Es gibt einen Feuchtraumaufputzschalter (171 mm) für den keine Angaben zu mehrphasigen Schaltvermögen gemacht werden. Diese Aktoren kosten aktuell etwa 100 bzw. 150 €. Der einzelne Aktor (35 mm) kostet als Bausatz für 4 Phasen, also 4 Stck in Summe ca. 176 €
Ich habe mir eine Alternative überlegt: unabhängige Phasen schalten, geringer Standby Verbrauch, 16 A pro Kanal, Hutschienenmontage, 191,25 mm breit, Kosten 79,02 € davon Gehäuse 21,76 €.

Einkaufsliste mit Artikelnummern für Conrad bzw. Elv:


Das montierte Ergebnis sieht so aus:


Die Relais Module gibt es auch ohne bestücktes Relais, wer also Wert auf ein bestimmtes Relais legt kann diese separat und wenn gewünscht auch mit Sockel montieren.  Die Bilder im Conrad Katalog entsprechen nicht der tatsächlichen Bestückung. Die bei mir gelieferten Module waren HF14FW  012-ZST.
Die Relais Module haben eine Statusanzeige und die Schutzdioden an Board, sie können also direkt mit den Transistor/Mosfet Stufen angesteuert werden.
Nirgendwo ist der Schaltplan der Module zu finden, deswegen liefere ich den mal nach.


Das Schaltnetzteil hat einen Standby Verbrauch von ca 0,15 Watt. Die verbauten Relais ziehen jeweils 60 mA, das Netzteil hat damit maximal 245 mA zu liefern und damit noch etwas Luft.
Der Aufbau des Bausatzes HM-LC-Sw4-Ba-PCB ist relativ simpel, nur die Anschlussklemmen und das Funkmodul müssen aufgelötet werden. Die Antenne wurde leicht verändert montiert. Die Empfangseigenschaften sind trotz Einbau im Schaltschrank überraschend gut.
Das Schaltnetzteil passt mit seinen Befestigungslaschen und geringem Druck in die Leiterplatten Fugen der Gehäuseteile. Die geringfügige Lücke zwischen Leiterplatte und Netzteil wurde mit Heißkleberpunkten geschlossen, wer will kann auch einen zusätzlichen Abstandstreifen einfügen. Die Verdrahtung der Module ist simpel, die Relais Module erhalten gemeinsam den Pluspol, der HM-LC-Sw4-Ba-PCB schaltet gegen Minus.

Nachteil der Lösung: Das Modul ist relativ breit, bei mir war der Platz aber vorhanden.

Mittwoch, 19. August 2015

Zeitschalter mit Homematic Aktoren

Hier wird gezeigt wie man die Reaktion von internen Tasten an Homematic Aktoren am Beispiel einer Zeitschaltung beeinflussen kann. Eine normale Zeitschaltung innerhalb von FHEM sollte einfacher mit dem on-for-timer erfolgen!

Zustände

Die Homematic Aktoren (Schalter) schalten so wie es der verknüpfte (peering) Sender vorgibt. Sie haben dazu Registersätze die für jede Verknüpfung (peer) neu angelegt und gespeichert werden. Man kann also mit einem Taster ein und aus schalten. Mit einem anderen Taster eine Zeitschaltung für 10 sec starten. Dabei wird nicht der Taster oder der Schalter auf "Zeitschalter" programmiert, sondern die Verknüpfung Taster mit Schalter wird im Schalter entsprechend gespeichert. Der Schalter macht dabei dann das, was der letzte Tastendruck als Aktion hinterlegt hat. Kleines Beispiel:
 T1 schaltet S1 für 10 sec an  
 T3 schaltet S1 an  
 T4 schaltet S1 aus.  

Diese Tabelle ist im Schalter S1 gespeichert.

Schaltet man mit T3 den S1 an und drückt dann nach beliebiger Zeit kurz T1 geht S1 nach weiteren 10 sec aus.
Schaltet man mit T1 kurz den S1 für 10 sec an aber innerhalb dieser Zeit mit T3 nochmal an, dann bleibt S1 nach Ablauf der 10 sec an.

Tasten sichtbar machen

Jeder Schalter hat interne oder eigene Tasten. Die Steckdose z.B. den Knopf der als Toggle funktioniert. Der Lichtschalter für Markensystem hat einen EIN und einen AUS Knopf.

Die internen Tasten kann man in FHEM sichtbar machen:
 set <device> regSet intKeyVisib visib  
 attr <device> expert 1  

normalerweise sieht man nach kurzer Wartezeit und Aktualiserung der Oberfläche jetzt die internen Register. Eventuell muss man noch die Register abholen:
 set <device> getConfig  

Zeitschalter direkt

Um z.b. eine Steckdose für 10 sec bei Knopfdruck lokal einzuschalten kann man folgendes programmieren:
 set <device> regSet shOnTime 10 self01  

shOnTime ist dabei das zuständige Register für kurzen (sh=short) Tastendruck. Es gibt auch Register für langen Tastendruck lg=long. Eine kurze Beschreibung der Register erhält man durch:
 get <device> regList  

In den Readings werden die Register mit dem jeweiligen verknüpften Taster angezeigt, in unserem Fall also:
 R-self01-shOnTime  

Der Defaultwert für shOnTime ist übrigens 111600 und bedeutet unendlich. D.h. die maximale einstellbare Zeit ist 111599 sec (knapp 31 Stunden). So kann man die Zeit löschen:
 set <device> regSet shOnTime 111600 self01  
oder
 set <device> regSet shOnTime unused self01  

Tastendruck simulieren
Das geht mit
 set <device> press short self01  

Kurz oder lang

Die internen Taster sind oft als Toggle und config Taster ausgelegt. Ein langer Tastendruck (4 sec) versetzt den Schalter in den config/Anlern Modus. Damit scheint es so zu sein, das bei diesen Schaltern kein long press von außen vorgesehen ist, obwohl die Register existieren und man lang press auch simulieren kann.

Praktisches Beispiel: Pool für eine Stunde schalten

Ich habe einen HM-LC-SW4-DR und der channel_01 schaltet die Poolzirkulationspumpe. Dies passiert Zeit gesteuert zweimal am Tag. Manchmal möchte ich im Keller diese Pumpe einfach für eine Stunde aktivieren, der Aktor ist bequem erreichbar an der Wand.
Die internen Tasten vom Hauptdevice (der Aktor hat vier Channel die in FHEM einzeln dargestellt werden) sichtbar machen:
 set LichtKeSW1 regSet intKeyVisib visib  
 attr LichtKeSW1 expert 1  

Jetzt sieht man im Channel 01 - LichtKeSW1_Sw01 den internen peer self01. (Channel 02 ist self02 usw.)
Also jetzt einfach die Zeit eintragen:
 set LichtKeSW1 regSet shOnTime 3600 self01  

Die Toggle Funktion der Taste bleibt erhalten. Ein zweiter Tastendruck schaltet die Pumpe auch sofort wieder aus.

Sonntag, 19. Juli 2015

Pimp my HMLAN

Ich habe eine kritische Stelle in meiner Homematic Umgebung: mein Keller unter der Terrasse. Hier ist zunächst ein 4 fach Hutschienen Aktor verbaut, weiteres soll aber folgen. Mit meiner CCU1 hatte ich seinerzeit das Problem: Wenn die Jalousien runter gingen schaltete die Adventsdekobeleuchtung im Garten nicht mehr aus. Bis ich den Zusammenhang mitbekam verging eine Weile. Schuld waren die grenzwertigen Send- und Empfangsbedingungen zwischen CCU1 und Aktor:
-> 10 meter Luftlinie und je nach Anordnung zwei Decken und zwei Wände. Die Jalousie unten war dann zuviel!
Bei der Umstellung auf HMLAN und FHEM konnte ich das zunächst durch die Platzierung des HMLAN umgehen. Allerdings wollte ich das noch zuverlässiger machen. Der HMLAN hat prinzipiell ein ähnliches Problem mit seiner eingesperrten Mini Draht Antennne. Bei der CCU1 bin ich seinerzeit nach diesem Artikel vorgegangen.
Auch im FHEMWIKI findet  man diesen Artikel und einfacherer Varianten für den HMLAN.
Ich hatte aus einem Bausatz HM-SEN-MDIR-SM noch die kleine Gummitülle die die neue Antenne nach außen etwas in Form bringt. Am Gehäuse des HMLAN muss man minmal ein paar Kerben feilen um die Antenne und den Gegenpol nach außen zu bringen.


Die Abdeckung/Lichtleitung für die LEDs habe ich weggelassen, da mich das helle Blinkern eh gestört hat. Im Boden des HMLAN habe ich seitlich drei kleine Löcher in Nähe der LED gebohrt, da dringt genug Licht nach außen wenn der HMLAN an der Wand nicht in Augenhöhe hängt.

Die RSSI Werte zum kritischen Aktor im Keller vor
    LichtKeSW1      HMLAN1          LichtKeSW1      -102.0  -98.4 -107.0< -82.0    24
    LichtKeSW1      LichtKeSW1      HMLAN1           -93.0  -95.0 -103.0< -84.0    19
und nach dem Umbau
    LichtKeSW1      HMLAN1          LichtKeSW1       -79.0  -81.0  -84.0< -76.0     6 
    LichtKeSW1      LichtKeSW1      HMLAN1           -76.0  -77.7  -81.0< -74.0     6 
zeigen deutlich die Verbesserung. Vor allem ist "-80" eine Art kritische Schwelle und die habe ich jetzt doch meist unterschritten. 
Die RSSI Werte kann man sich gut mit dem HMinfo Modul ausgeben lassen.

Freitag, 30. Januar 2015

Thermostat und Schaltaktor für Zweipunktregelung direkt verknüpfen

Der Raumthermostat HM-TC-IT-WM-W-EU ist eigentlich für die Steuerung von Ventilantrieben gedacht. Die direkte Verbindung mit Schaltaktoren für eine Zweipunktregelung ist eigentlich nicht vorgesehen, aber möglich - wie ich heute im Forum gefunden habe.

Bisher habe ich meine Elektroheizung mit THRESHOLD über FHEM gesteuert. Der Thermostat liefert die Werte measured-temp und desired-temp - die Namen sind sprechend.

Damit wird der Ist- und Sollwert an THRESHOLD übergeben und ein HM-LC-SW1-FM schaltet die Heizung. Der Thermostat steht entweder auf "manu" um die Sollwerte einzig und allein durch das Stellrad am Thermostaten oder durch FHEM vorgeben zu lassen.
Man kann mit
set SensorR2_Climate desired-temp 15
die Solltemperatur auch einfach per Programm setzen.
Es ist auch möglich, die das Wochenprogramm im Thermostaten zu aktivieren --> "auto"
Nachteil: wenn FHEM nicht läuft, läuft die Heizung nicht.

Direktes peering HM-TC-IT-WM-W-EU (SensorR2) und HM-LC-SW1-FM (SD2)
set SensorR2_SwitchTr peerChan 0 SD2 single set
funktioniert noch nicht alleine, weil SwitchTr nicht on und off liefert sondern eigentlich 100% oder 0%.
Erst das setzen eines Registers liefert den Erfolg:
set SD2 regSet shCtOn ltLo SensorR2_SwitchTr 
Jetzt interpretiert der Aktor die Werte vom Thermostaten.
Mit dem attr expert lässt sich die Detaildarstellung der readings (Register) am Aktor einstellen.
Achtung: Zwischen der Eingabe beider Befehlszeilen muss man etwas Zeit lassen. Der Aktor muss das peering abgeschlossen haben, ansonsten bekommt man einen Fehler das getconfig nicht abgeschlossen wurde.

Im FHEM Wiki ist noch das Beispiel für umgekehrtes Verhalten beschrieben. 

Hintergrund

Der Link existiert leider leider nicht mehr.
Hier ist der Zusammenhang ganz gut erklärt. Gleichzeitig auch ein Beispiel für die Steuerung einer Fussbodenheizung durch Ersatz der existierenden mechanischen Zweipunktthermostate und Steuerung der Stellmotoren über Homematic Schaltaktoren.

Samstag, 24. Januar 2015

Homematic Funkschaltaktor mit Leistungsmessung ARR Bausatz - Erfahrungsbericht

Dieser Bausatz ist wahrscheinlich der Einfachste den es gibt. Man braucht nur einen Torx 6 Schraubendreher. Normale 6 mm bits sind zu dick, man braucht 4 mm bits oder einen extra Schraubendreher, da die Schraubenköpfe im eingedrehten Zustand ziemlich tief liegen.
Ansonsten beschränkt sich das ganze auf das Einlegen einer Leiterplatte in zwei Gehäusehälften. Die größte Herausforderung ist das vorherige Aufstecken des Plastestößels auf den Microtaster, der könnte nämlich leicht beschädigt werden. Das interessanteste am Bausatz ist eine ausführliche Beschreibung des Aktors und der Leistungsmessung. Die habe ich so noch nie bei einem Homematic Gerät gesehen.
Typischerweise sind ja die Entsorgungshinweise, dass Ausführlichste an den Handbüchern.

Ich habe den Aktor mit
set HMLAN1 hmPairSerial  xxxxxxxxxx
angelernt. Das klappt irgendwie wieder nicht mit einem Mal. Das Gerät und die Kanäle werden zwar angelegt, aber die readings sind nicht komplett und es gibt eine Fehlermeldung. Der Aktor blinkt eine ganze Weile orange als Quittung des Anlernprozesses.
Ich habe erstmal alles umbenannt, in einer Zeile sieht das so aus:

rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_Sw PSD3_Sw;rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_Pwr PSD3_Pwr;rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_SenPwr PSD3_SenPwr;rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_SenI PSD3_SenI;rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_SenU PSD3_SenU;rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_SenF PSD3_SenF

Also ein zweites set ... hinterher und dann ist nach kurzer Zeit alles komplett.
Dabei blinkt der Aktor in zwei Sequenzen, zunächst einige Male Orange, als Abschluss kurz einmal grün. Nach einer kurzen Pause blinkt er wieder mehrfach orange.

Ich habe noch ins Logfile geschaut. Wie ich schon bei den Rolladenaktoren festgestellt habe, kommen jede Menge Fehlermeldungen. Diese nach dem ersten Anlernversuch:

Error: CUL_HM_HM_ES_PMSw1_Pl_xxxxxx has no TYPE
Diese nach dem Zweiten:
PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.

Ich mache wieder ein shutdown restart, dann werden die Meldungen aufhören.
Achtung! Vorher save config nicht vergessen!

Mal sehen ob ein Update was bringt, ich traue mich das seit Tagen nicht, da die Entwickler irgendwie intensiv umbauen und eine Reihe Probleme berichtet werden.

Freitag, 23. Januar 2015

HM-SEN-MDIR-SM - Aufbauhinweise

Ich habe mir den HM-SEN-MDIR-SM als Bausatz gekauft. Beim Aufbau des zweiten Bausatzes fand ich einige Unterschiede zwischen Realität und Beschreibung. Als Grundlage dient die dem Bausatz beiliegende Beschreibung.
Die zweifarbige LED hat eine andere Form als in der Beschreibung. Die LED in meinen bisherigen beiden Bausätzen sieht so aus:
Der mittlere Kontakt ist die gemeinsame Kathode der lange Äußere die Anode für Rot und der kurze Äußere die Anode für Grün. Am "roten" Anschluss ist das Gehäuse abgeflacht. Der Widerstand R13 versorgt die rote LED, daran kann man sich orientieren. Siehe rechtes Bild der bestückten LED.






Um die LED in der richtigen Höhe einzulöten, steckt man einfach wieder die Sensor Platine auf die Stifte soweit wie es geht (Abstand ca. 3 mm). Die LED rutscht beim löten von selbst in die richtige Position, mit dem Gehäuse so tief wie möglich in die Sensor Platine. Das Gehäuse der LED ist lang genug um wie gefordert noch ausreichend durch die Sensor Platine zu ragen wenn die Sensor Platine später im Abstand von 5 mm fest gelötet wird.
Die Batterie Klemmen kann man gut mit Hilfe einer Batterie montieren, in Position bringen, fixieren und löten.
Als Abstandhalter/Messer zwischen beiden Platinen sind die 4 Plastikklammern für die Antenne geeignet, die haben an der schmalen Seite die geforderten 5 mm.

Bei der Inbetriebnahme blinkt die LED nicht einmal kurz rot sondern ein paar Sekunden sehr hektisch, dann einmal grün und bleibt dann 75 Sekunden orange. Danach läuft der Gehtest, das Gerät kann aber schon angelernt werden.

Mittwoch, 21. Januar 2015

Schaltaktor für Kleinspannnung

Ich habe eine LED Beleuchtung versuchsweise von einer Schaltsteckdose HM-LC-SW1-PL auf einen Niederspannnungsschaltaktor HM-LC-SW1-BA-PCB umgestellt. Die Ergebnisse möchte ich gerne vorstellen.


Der Schaltaktor braucht eine Versorgungsspannung zwischen 5-15 Volt und kann Verbraucher bis 20 Volt und 3 Ampere schalten. Die Masse zwischen Versorgung und Verbraucher ist verbunden. Für 12 Volt LED Stripes kann man idealerweise Versorgung des Moduls mit dem Verbraucher koppeln.


Ein kurzer Test mit einer kleinen LED Leselampe brachte interessante Ergebnisse:


Eingangsspannung Leselampe
9,62 V
Spannungsabfall über Mosfetschalter
25 mV
Leistungsaufnahme 12 Volt Netzteil bei Last
6,36 Watt
Leistungsaufnahme 12 Volt Netzteil bei Leerlauf
0,15 Watt
Leistungsaufnahme SchaltSteckdose bei “aus”
0,57 Watt
Leistungsaufnahme SchaltSteckdose bei “ein” ohne Last
0,57 Watt


Die Schaltung der LED Beleuchtung ändert sich grundlegend, bisher wurde das 12 Volt Netzteil primär geschaltet, für die Standby Leistung war die Steckdose verantwortlich. Jetzt ist das 12 Volt Netzteil immer angesteckt und ist für die Standby Leistung verantwortlich, der LED Streifen wird ja sekundär auf der Niederspannungsseite geschaltet.


Sehr interessant: Die Standbyleistung der Steckdose ist 3 mal höher als der Standby Verbrauch des LED Netzteils. Wer also meint die LED Lampe hat keinen richtigen Ausschalter, man müsse hier was ändern - sollte da noch mal drüber nachdenken.


Der Test überzeugt auf der ganzen Linie, also wird sofort richtig umgebaut und ein zweiter Schalter bestellt :-)
Die Taste auf der Platine dient zum Anlernen und als Toggle. Die LED ist einfarbig und leuchtet nur beim Anlernen, im Normalbetrieb wird Strom gespart. Spielt zwar hier keine Rolle, aber es ist ja ein Batterie Aktor.


Anlernen an der FHEM
Den HM-LC-SW1-BA-PCB mit dem Netzteil verbinden.


set HMLAN1 hmPairForSec


Taster am HM-LC-SW1-BA-PCB > 4 sec drücken bis die rote LED blinkt.
Das Anlernen klappt sofort, nach wenigen Sekunden ist die Definition in FHEM komplett


Die bisherige Steckdose umbenennen


rename LichtKuR SD4


Dem neuen Schaltaktor den gewohnten Namen geben


rename <HM-LC-SW1-BA-PCB> LichtKuR


Damit funktionieren alle Routinen in FHEM wieder wie gewohnt.


Jetzt noch die Fernbedienung neu peeren damit es auch mal ohne FHEM klappt.
Den neuen Aktor bekannt machen, toggle Funktion der Taste 8 auf der FB12 festlegen.


set FB12_Btn_08 peerChan 0 LichtKuR single set


Nach dem kurzen Drücken der Anlerntaste der Fernbedienung schaltet die Taste den neuen Aktor und die bisherige Steckdose. Am Aktor muss nichts gedrückt werden. Jetzt noch den bisherigen Aktor rausnehmen, die Steckdose wird ja in Zukunft anderweitig eingesetzt.


set FB12_Btn_08 peerChan 0 SD4 single unset


Wieder Anlerntaste auf der Fernbedienung drücken und fertig. Die Steckdose muss lediglich am Strom sein! Es braucht keine Taste gedrückt werden. Hätte man auch in einem Vorgang machen können.


  • Der Schaltaktor(~17-23€) ist preiswerter als eine Steckdose (~40€)
  • Energieeinsparung Standby 30 % (0,35 Watt, 19 h /Tag --> 2,4 kWh / ca. 50 cent pro Jahr )
  • Kein Schaltgeräusch, bei der Steckdose klickt ein Relais, der Mosfet macht es lautlos.


Ich finde der HM-LC-SW1-BA-PCB bestens geeignet für LED Beleuchtung.

Ich habe mittlerweile den zweiten Aktor eingebaut, und habe dazu noch ein paar Ergänzungen:

set HMLAN1 hmPairSerial xxxxx

geht bei diesem Aktor irgendwie nicht, keine Ahnung warum. Also darf man den nicht "unerreichbar" einbauen.
Ich habe also jetzt zwei Schaltsteckdosen "recycled", da liegt die eigentliche Einsparung. Meine Bemerkung oben zur Energieeinsparung sind mehr als Scherz zu sehen. Das lautlose Schalten ist durchaus angenehm, obwohl das klacken der Steckdosen nie gestört hat. Insgesamt sind weniger Bauteile verbaut und es hängt weniger am 230 Volt Netz. Es gibt keinen mechanisch bewegten Schalter (Relais) mehr. Damit ist Zuverlässigkeit wahrscheinlich etwas besser.

Ich wollte noch darauf hinweisen, dass das Netzteil kurzschlussfest sein sollte, sonst müsste man das ganze noch absichern.

Hier noch ein paar Bilder zum Gehäuse:

Da alles oben auf dem Schrank liegt, habe ich eine einfache 74 mm Aufputz Verteilerdose genommen.

Wer es schöner braucht, kann einen Lampen Baldachin nehmen, z.B. dieser hier,
30 x 70 mm. Er kann auch flacher sein, dann entfernt man die Antennenstützen und legt die Drahtantenne mit möglichst viel Abstand zur Platine an den Gehäuserand.

Sonntag, 18. Januar 2015

Fernbedienung und Schaltersensoren von Homematic umziehen

Wenn man Fernbedienungen, Sensoren oder Schalterschnittstellen von der Homematic CCU ablernt (löscht) und z.B. bei FHEM anlernt (pairing) dann meldet das Gerät einmalig zwei Fehler, Beide Einträge bleiben in den Readings stehen und verwirren etwas.


Man kann diese Einträge einfach löschen:

deletereading <devicename> sabotageAttack
deletereading <devicename> sabotageAttackId

Oder alle mit einem mal, auswählbar in der Oberfläche

set <devicename> clear attack

Freitag, 16. Januar 2015

Alternatives Gehäuse für Bewegungsmelder

Der Bewegungsmelder von Homematic HM-SEN-MDIR-SM ist offiziell für innen und außen geeignet. Klar, wenn für außen dann sollte er auch für innen gehen. Das Gehäuse ist sehr technisch und für außen oder den Feuchtraum (Keller) sicher auch optisch ok. Im Innenraum ist es eher "schwierig", um nicht zu sagen: geht bei den meisten wahrscheinlich gar nicht. Ich habe eine passende Alternative gefunden, die ich kurz vorstellen möchte. So sieht es fertig aus:
Im Obi gibt es von Lux-Tools einen Baldachin als Deckenabzweigdose für die Lampe für knapp 3€. Leider gibt das Schild und die Bezeichnung nichts her, es gibt auch unterschiedliche Ausführungen in gleicher Verpackung:
 Selbst die gewählte Dose gibt es in zwei weiß Tönen, ich glaube sogar es gab noch andere Farben. Ich wollte aber weiße Dose auf weißer Wand.
Der aufwendigste Part ist die zentrale Bohrung von 25 mm. Ich habe vorsichtig mit einem Forstnerbohrer von hinten(innen) ein 25 mm Loch hinein gebohrt. Wie gesagt ganz, ganz vorsichtig, sonst ist der Deckel hin und Daumen und Zeigfinger auch!!!
Kurz bevor die Schneiden des Bohrers durchstechen kann man aufhören mit bohren und vorsichtig mit dem Daumennagel den kleinen Deckel nach innen drücken. Dadurch hat man keine Ausplatzungen an den Front. Jetzt vorsichtig mit dem Cutter den Grat der innen entstanden ist wegscheiden und mit einem kleine Stück 240iger Schleifpapier glätten. Am Besten von innen, denn dort kann etwas mehr weg. Wenn man sich die Linse genau anschaut, ist sie etwas konisch:
Die kleinen grauen Abstandshalter passen nicht mit  ins Gehäuse, die werden entfernt, die Antenne wird so gebogen, dass sie beim Einbau möglichst weit von der Elektronik entfernt ist und am Gehäuse anliegt. Die Sache wird ziemlich maßgeschneidert wie man erkennen kann. Die Platine hält in dem Deckel nur durch die Plastelinse, die wie gesagt leicht konisch ist und etwas nachgibt. Man darf das Loch also nicht zu groß ausschleifen. Ganz unten im Bild sieht man noch die Innengestaltung des Gehäuse Bodens so kann man Sich beim Kauf orientieren und man hat genug Löcher um den fertigen Melder an der Wand zu befestigen. Die Fläche ist auch groß genug um zwei Powerstrips auf glatten Flächen einzusetzen.

Der Batteriewechsel ist spielend einfach, da der Deckel einen Bajonettverschluss hat. Sinnigerweise hat der Hersteller die Seriennummer nur in Form eines nicht lesbaren mini QR Code auf der Platine und den Barcode Aufkleber draußen am grauen Gehäuse. Der Aufkleber ist ziemlich stabil, ich habe ihn abgelöst und neben die Linse auf die Platine geklebt. Beim Außeneinsatz ist der wahrscheinlich schnell verwittert und drinnen geht der WAF mit samt dem Gehäuse gegen null :-)

Mittwoch, 7. Januar 2015

Jalousie Aktoren von Homematic nach Fhem umziehen

Seit ca 3 Jahren habe ich eine CCU1 und zahlreiche Aktoren von Homematic im Einsatz. Vor allem die Steuerung der Rollläden hat mich hauptsächlich dazu bewogen zu Hause eine Automatisierung einzubauen. Da von Anfang bekannt war, das die CCU1 auch schon mal an die Grenze kommt, war ich "sparsam" mit dem Einsatz von Aktoren. Ich habe zum Beispiel zwei Rollläden an Fenstern die unmittelbar nebeneinander liegen mit einem Aktor und Trennrelais angesteuert.
Im letzten Monaten wurde fleißig mit Fhem und dem RaspberryPi experimentiert. Jetzt zu Weihnachten war es nun so weit: Umzug aller Aktoren auf Fhem.
Dabei gab es ein paar interessante Erkenntnisse, die ich hier mal aufschreiben will.
Ich habe übrigens, damit alles nahtlos läuft, die Rollos aus Fhem zunächst über einen Dummy per XML-API angesteuert. Ich konnte damit die Zeitsteuerung auf der Fhem einrichten und in der CCU deaktivieren um ein Fallback zu haben.
Man kann erstmal mit einem Aktor testen :-)

Umzug der Aktoren

Voraussetzung: Es wird kein Benutzerdefinierter Sicherheitsschlüssel verwendet!
Die Seriennummer des Aktor "aufschreiben"
Den Aktor in der CCU löschen aber nicht auf Werkseinstellung zurücksetzen. Damit bleiben die Einstellungen in den Registern erhalten, z.B. die Laufzeiten für hoch und runter. Auch direkte peerings bleiben so erhalten.
Dann mit

 set hmlan1 hmpairserial xxxxxx 

an fhem anlernen. Das muss eigentlich immer zweimal gemacht werden. Beim ersten mal sind nicht alle readings gefüllt, auch wenn man lange wartet. Besonders das laut Wiki sichere Zeichen für erfolgreiches pairing (PairedTo und R-pairCentral) sind nicht gefüllt.
Es dauert etwas, ich habe immer gewartet bis im Status eine Fehlermeldung steht und habe dann den Befehl zum pairen einfach wiederholt. Danach gab es im Status immer noch eine Fehlermeldung, die verschwindet nach der ersten Betätigung. Wenn die Readings gefüllt sind ist alles in Ordnung.

Jetzt wird der Aktor umbenannt mit dem Befehl:

 rename AlterName NeuerName

Es ist gut die Umbenennung möglichst zeitnah zu machen.

Jetzt noch die Darstellung der Schaltflächen ändern, korrekterweise ist der Standard on (es ist wird hell) und off (es wird dunkel) auch wenn das für Rollläden nicht sehr logisch ist. z.B.:

 attr <devicename> eventMap on:auf off:zu
 attr <devicename> webCmd up:pct:down

Mit dieser Einstellung von webCmd kann man über den Slider das Rollo an jede beliebige Stelle fahren. Mit den Knöpfen up und down kann man das Rollo in 10% Schritten bewegen.
Man kann sich viel Zeit sparen, wenn man an einem Aktor alle Attribute einstellt und testet bis man mit der Darstellung zufrieden ist. Jetzt macht sich eine durchgehend saubere Namensgebung bezahlt. Man kann nämlich

 attr Rollo.*  eventMap on:auf off:zu
 attr Rollo.*  webCmd up:pct:down

eingeben, wenn alle Rollos mit dem gleichen Namensteil beginnen. Spätestens hier war für mich klar alle Gerätenamen mit einem Namen der Funktion entsprechend zu beginnen.

Mit dem Attribute devStateIcon kann man die Symbole in der Weboberfläche umdefinieren, damit die Rollos nicht als Lampen angezeigt werden. Die Bilddateien liegen im Pfad /opt/fhem/www/images und sie werden entsprechend dem Inhalt von State automatisch gewählt. So werden die Zustände für die Anzeige umdefiniert:
 attr Rollo.* devStateIcon auf:shutter_open zu:shutter_closed

Abschluß

Irgendwie passiert in Fhem ein "unklarer Rest", d.h. das Logfile wird plötzlich mit Meldungen von Error <Jalousieaktor> has no Type und "...Blockig.pm .." voll geschrieben.
Da ist ein ein shutdown restart eine gute Idee :-)

Hier noch ein paar Beispiele um mehrere Rollo Aktoren anzusprechen

 set Rollo.* zu   schließt alle Rollos
 set Licht.* off    schaltet das Licht im ganzen Haus aus

Die Rollos lassen sich für automatische Ablaufsteuerungen auch filtern.

 set RolloAZ.*:FILTER=NAME=RolloAZR 50

filtert ein einzelnes Rollo aus dem Arbeitszimmer heraus und setzt dies auf halbe Höhe. Ok das macht vielleicht wenig Sinn, man hätte es auch direkt ansprechen können.

 set Rollo.*:FILTER=NAME=RolloAZ.* 50

filter alle Rollos im Arbeitszimmer heraus und setzt diese auf halbe Höhe.
Man kann auch Ausnahmen filtern.

 set RolloAZ.*:FILTER=NAME!=RolloAZR zu

fährt alle Rollos außer das Rechte im Arbeitszimmer herunter.