Das Smart Home mit Smartphone steuern ist nicht smart! Bereits von Kind an lernen wir Wandschalter zu benutzen - so verwendest du den POPP Wandschalter um Szenen mit der Vera zu starten.
Die ganzen Sensoren und Aktoren im Haus sind zur Automation ganz toll, aber wer will sein Handy raus holen, nur um kurz das Licht anzuschalten? Deswegen möchte ich in diesem Artikel die VeraPlus mit einem Wandcontroller erweitern.
Mein Ziel ist es, Szenen via Einfach- und Doppelklick zu steuern. Außer einer Stehlampe möchte ich die Dachfenster bei 1x Klicken schließen und bei Doppelklicken öffnen. Genau dasselbe soll mit den Außenrollos auf einem weiteren Taster passieren.
Ein Hinweis gleich Vorweg: Ich hatte mich im Vorfeld über die WALL-C Controller im Internet informiert. Es gibt eine Menge Anleitungen, aber nach vier Tagen Frust musste ich feststellen, dass die meisten Anleitungen nicht komplett sind oder bei mir schlicht nicht funktionierten.
Ich war schon kurz davor den Schalter aus dem Fenster zu werfen und mit dem Auto drüber zu fahren! Diese Drohung hat der Schalter verstanden und sich zum ordnungsgemäßen Betrieb überreden lassen. Seitdem dieser nun funktioniert, bin ich gut gelaunt. Manchmal ist es doch empfehlenswert einfach mal Anleitungen zu lesen und auch zu hinterfragen, warum die Hersteller auf bestimmt Punkte näher eingehen.
Außerdem die Anleitung im Internet nicht immer für die Lösung halten. Bei mir funktioniert es zwar aber bei der Vielzahl an Konfigurationsmöglichkeiten und unterschiedlichen Versionen des Wand Controllers im Markt, kann ich nicht sagen ob es überall so funktionieren würde. Ich habe das Modell von POPP.
Grundlagen zum Controller
Betriebsmodus
Nach dem Einlegen der Batterie oder dem zurücksetzen auf Werkseinstellung, muss man zwischen zwei Betriebseinstellungen wählen.
- Betrieb als Sekundärcontroller zum aktivieren von Szenen
- Betrieb als Primärcontroller zum direkten anlernen von Geräten
Da ich Szenen aktivieren will, muss der Controller in den Sekundärcontroller Modus. Dies geschieht über das Drücken der Taste 1 für eine Sekunde. Bestätigt wird dies durch rot - grünes blinken der LED für etwa 15-20 Sekunden.
Werkseinstellung
Um nun auf Werkseinstellung zurück zu wechseln, direkt danach den Taster 3 kurz drücken. Die grüne LED blinkt deutlich schneller. Anschließend schnell den Taster 4 für etwa 10 Sekunden gedrückt halten. In den ersten 5 Sekunden blinkt die LED grün und dann rot - grün. Nach ca. 10 Sekunden wird das rot grüne gleichmäßige blinken unterbrochen.
Nun nochmal Taste 1 für eine Sekunde drücken und der Sekundärmodus sollte durch rot grünes blinken bestätigt werden.
Inklusion
Nachdem der Betriebsmodus ausgewählt ist, müssen wir die VeraPlus Zentrale und den Controller in den Inklusionsmodus bringen. Bei der Zentrale geschieht dies über die Weboberfläche. Dort wechselt Ihr auf den Menüpunkt: "Devices" -> "+ Add Device". Dann auf: "Generic Z-Wave Device" auswählen und bis Step 3 mit "Next" fortfahren. Nun öffnet sich das Anlernfenster (Inklusionsmodus) für 60 Sekunden.
Nun muss der Controller in den Anlernmodus gebracht werden, dies geschieht durch drücken aller 4 Tasten für eine Sekunde - um wieder in den Managementmodus zu gelangen. Sobald die LED grün blinkt, den Taster 1 drücken, um die Inklusion zu starten. Danach geduldig warten bis die VeraPlus den Controller erkannt hat.
Das es erfolgreich funktioniert hat, erkennt Ihr am Schriftzug: "Successfully exchanged security keys" auf der Seite der Namenseingabe und Raumzuweisung. Nun noch den Namen und Raum auswählen und warten bis die Vera das Z-Wave Modul neugestartet hat.
Sollte die Meldung "ERROR: Cannot send network key" erscheinen, so muss man den POPP Wandcontroller aus der VeraPlus wieder durch "Unpair" löschen. Durch Werkseinstellung wiederherstellen beginnt die Prozedur wieder von Anfang. Sekundärmodus setzen ... Inklusion starten... usw.
Wenn es geklappt hat, sollte man einwenig warten und zwischendurch den Controller im Managmentmodus durch drücken der Taste 2 aufwecken.
Parameter setzen
Ich möchte die Schalter einzeln verwenden, deswegen muss Parameter 1 und 2 auf den Wert 0 gesetzt werden.
Ausserdem möchte ich mit Einfach- und Doppelklick, sowie "gedrückt halten" Szenen aktivieren. Hierzu muss Parameter 11 bis 14 auf den Wert 4 gesetzt werden.
Das bedeutet zusammengefasst also: Mit "Add configuration settings" 6 Werte hinzufügen und setzen. (siehe Bild). Nach dem speichern mit "Save Changes" muss der Controller mehrfach im Managmentmodus durch drücken der Taste 2 aufgeweckt werden. Erst wenn die Werte unter "Current Value" angezeigt werden (Seite neu aufrufen), wurde diese vom CPOPP Wandcontroller übernommen.
Wer nun aufmerksam die Anleitung gelesen hat, ;-) der sollte bemerken, dass es 5 Assoziationsgruppen gibt. Diese setze ich auf den ZWave Controller der VeraPlus. Dazu lege ich 5 Gruppen mit dem Wert 1 bis 5 über "Add Group" an und setze diese jeweils über "Set" auf "ZWave". Nun noch mit "Save" > "Back to ZWave Options" abspeichern.
Dies dauert eine Weile, da die Ladezeiten etwas länger sind als normal. Auf der Hauptseite des Controller ist nun schon der Hinweis "Waiting for wakeup to configure device" zu sehen. Nun also wieder den Managmentmodus des POPP Wandcontrollers aufrufen und die Taste 2 drücken.
[alert variation="alert-info"]Bis alles durch war musste ich den Controller bis zu dreimal aufwecken.[/alert]
Wen man jetzt einen der Buttons drückt, sieht man nach dem roten blinken, ein etwas gedimmtes blinken. Das helle rot ist der Tasterdruck, das gedimmte signalisiert die Übertragung. Ich habe gemerkt, das hektisches drücken oft nicht erkannt wird, obwohl ein helles rot erscheint. Deshalb gemächlich drücken - aber auch nicht zu lang. ;-)
Szenen erstellen
Man kann leider die Szenen-IDs der gedrückten Tasten nicht direkt im Trigger einer Szene abfragen. Deshalb brauchen wir eine Szene die über ein Luup-Code die Szenen-ID prüft und die eigentliche Szene aufruft.
Wenn man sich per SSH sich mit der VeraPlus verbindet und sich das komplette LuaUPNP Log ausgibt, so sieht man hinter der Device-ID die übermittelte Szenen-ID. (Am besten noch die Ausgabe filtern). Ich benutze für mein Device 76 folgenden Befehl:
tail -f LuaUPnP.log | grep 'device 76'.
Die einzelnen Tasten und Arten werden dabei in einzelne Szenen-IDs umgesetzt. Die erste Stelle ist der Button die zweite Stelle die Art.
Nun müssen wir dazu die Steuer-Szene erstellen: Der Trigger ist dabei einfach. In dem LOG sieht man, dass egal welcher Taster gedrückt wird, immer Button 0 ausgelöst wird. Dies ist nun unser Trigger.
Im Assistenten wählen wir erst einmal keine Aktion aus. Diese kommt erst im Step 3 beim Luup code.
LuupCode
Ich benutze im Moment folgenden Code.
luup.call_delay('scene_controller', 1) function scene_controller() local lastSceneID = luup.variable_get("urn:micasaverde-com:serviceId:SceneController1","LastSceneID", 76) luup.log("Device 76 Last Scene ID ist: " .. lastSceneID , 1) if (lastSceneID == "11") then luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "7"}, 0) end if (lastSceneID == "12") then luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "8"}, 0) end if (lastSceneID == "21") then luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "9"}, 0) end if (lastSceneID == "22") then luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "10"}, 0) end if (lastSceneID == "25") then luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "11"}, 0) end if (lastSceneID == "41") then luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "12"}, 0) end if (lastSceneID == "42") then luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "13"}, 0) end if (lastSceneID == "45") then luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "14"}, 0) end end
Dieser Code kann nicht einfach kopiert werden. Die folgenden Zeilen müssen an den roten Stellen angepasst werden!
Der Controller hat bei mir die Device ID 76. Und meine Szenen welche ich aufrufen will, haben die IDs 7-14. Diese müsst Ihr vorher anlegen um die IDs auslesen zu können. Es ist wichtig, die Szenen vorher einmal zu testen. Damit stellt man sicher, dass Fehler nicht an der ausführenden Szene liegt.
local lastSceneID = luup.variable_get("urn:micasaverde-com:serviceId:SceneController1","LastSceneID", 76)
und die SceneNum
luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = "7"}, 0)
Wenn dies gespeichert wurde, sollte nach dem Drücken der Tasten die richtigen Szenen gestartet werden.
Abschließend
Um die Anleitung zu erstellen habe ich alles bei mir gelöscht und neu angelegt, um auch sicher zu gehen, dass alles seine Richtigkeit hat. Ich hoffe diese Anleitung hilft einigen beim Einbinden. Es zeigte mir auch, dass die Anleitungen der Hersteller sehr nützlich sind. Sollte der Schalter beim testen mal nicht funktionieren, so muss die Konfiguration übrigens nicht falsch sein. Oftmals ist einfach die Reichweite von der Station zu weit und das Signal kommt nicht an. Ich hatte deswegen schon öfters nach Fehlern gesucht. Gerade nach dem ersten Includieren sind die Wege noch nicht aktualisiert und es kommt zu Fehlern. Dies wird spätestens in der Nacht aktualisiert.
Da es für den Schalter viele Abdeckungen für viele Schalterserien gibt, fällt dieser an der Wand mit anderen (konventionellen) Schaltern gar nicht auf.
[carousel arrows="display" buttons="display" caption="display"]
[panel title="Komponenten" description="PoPP WallC und Busch Jäger duro 2000 Blende"]
[panel title="Anpassung" description="Damit die Blende passt muss an der Trägerplatte bisschen weg"]
[panel title="Ergebniss" description="Ausser das ich streichen muss fällt der neue Schalter gar nicht auf"]
[/carousel]