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.