Endlich ist die kalte Jahreszeit vorbei und man kann wieder mehr im Außenbereich machen. Meine LED-Spots habe ich vor dem Wintereinbruch bei Amazon gekauft und sie sollen nun nicht länger in der Ecke stehen. In diesem etwas längeren Beitrag zeige ich Dir, wie Du eine intelligente Außenbeleuchtung realisieren kannst.

Was möchte ich erreichen?

  1. Rund um unser Haus sollen LED-Spots im Unterschlag verbaut werden (Abstand ca. 96 cm).
  2. Die LED-Spots sollen bei Dämmerung eingeschaltet werden.
  3. Die LED-Spots sollen bei Coming-Home eingeschaltet werden und nach ca. 10 Minuten wieder ausgeschaltet werden.
  4. Sind die Lampen bereits an, erfolgt kein Coming-Home.
  5. Um 22 Uhr und 23 Uhr soll eine Erinnerung (Push-Nachricht) kommen, wenn die Lampen noch eingeschaltet sind.

Was brauchst Du dafür?

‎Locative: Geofence und Beacon
‎Locative: Geofence und Beacon
Entwickler: Bearologics GmbH
Preis: Kostenlos+

‎Pushover Notifications
‎Pushover Notifications
Entwickler: Pushover, LLC
Preis: Kostenlos+

Einbau der Lampen

Zuerst solltest Du die korrekten Abstände für die LED-Spots ermitteln. In meinem Fall sind es ca. 96 cm. Dies sorgt für eine gute Beleuchtung an der gesamten Fassade, ohne dass viele Schattenflächen an der Wand entstehen. Für das Sägen/Bohren der Löcher empfiehlt sich eine sehr gute und hochwertige Lochsäge. Hier reicht kein billiges Baumarkt-Zeugs, da diese Sägen schnell stumpf werden. Ich habe ca. 45 Löcher mit obiger Lochsäge in 2,8 cm dickes (und ca. 30 Jahre altes) Unterschlagholz gesägt. Zudem solltest Du einen leistungsstarken Akkuschrauber oder besser noch eine Bohrmaschine verwenden.

Am besten markierst Du zuerst alle Löcher und sägst sie dann in einem Rutsch aus. Anschließend verlegst Du die Kabel. Einfaches 3-adriges NYM-Kabel reicht aus. Zum verbinden empfehle ich obige Wago-Klemmen. Bitte nur diese verwenden, da sie für besonders dünne Querschnitte (haben die LED-Spots) und 1,5 mm2 geeignet sind. Nachdem alle Kabel verbunden sind, können die LED-Spots angeklemmt werden.

Zum Abschluss den Homematic Aktor an FHEM anlernen und entsprechend verbauen. Ich verwende immer die Unterputz-Aktoren, da ich zum einen keine Schalter möchte und zum anderen sind diese super zuverlässig.

Dämmerungsschaltung mit Twilight

Damit Deine Außenbeleuchtung nur angeht, wenn es draußen dunkel ist, benötigst Du das Modul Twilight und jeweils einen Timer für Sunset und Sunrise.

Twilight


define twilight Twilight xx.xxxxx y.yyyyy 3
attr twilight group PlugIns
attr twilight room Intern--System

Timer bei Sonnenuntergang


define sunset_timer at *{sunset("HORIZON=3",0,"17:00","22:00")} { dkHandleSunset() }
attr sunset_timer group Timer
attr sunset_timer room Intern--Timer

Dieser Timer reagiert frühestens um 17:00 Uhr und spätestens um 22:00 Uhr.
Für die Steuerung wird die Funktion dkHandleSunset() aufgerufen.

dkHandleSunrise()


sub dkHandleSunset() {
	dkOn("AB_Aktor_Beleuchtung_Haus");
}

Die Funktion dkOn() ist Bestandteil von 99_dkUtils.pm

Timer bei Sonnenaufgang


define sunrise_timer at *{sunrise(0,"05:00","07:30")} { dkHandleSunrise() }
attr sunrise_timer group Timer
attr sunrise_timer room Intern--Timer

Dieser Timer reagiert frühestens um 5:00 Uhr und spätestens um 7:30 Uhr.
Für die Steuerung wird die Funktion dkHandleSunrise() aufgerufen.

dkHandleSunrise()


sub dkHandleSunrise() {
	dkOff("AB_Aktor_Beleuchtung_Haus");
}

Die Funktion dkOff() ist Bestandteil von 99_dkUtils.pm

Coming-Home mittels Geofencing

Damit Deine Außenbeleuchtung angeht, wenn Du nach Hause kommt, benötigst Du das Modul Geofancy und Residents sowie eine App die Geofencing ermöglicht. In meinem Fall ist es Locative (ehemals Geofancy). Damit kannst Du bestimmte Bereiche (so genannte Geofences) erstellt werden. Beim Verlassen oder Betreten dieser Bereiche kann FHEM darüber informiert werden und entsprechend darauf reagieren.

GeoFancy


define geofancy GEOFANCY geo
attr geofancy alias GeoFencing
attr geofancy devAlias xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:Dennis xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:Sandra
attr geofancy group PlugIns
attr geofancy room Intern--System

define n_rr_Dennis notify geofancy:currLoc_Dennis.* set rr_Dennis location $EVTPART1
define n_rr_Sandra notify geofancy:currLoc_Sandra.* set rr_Sandra location $EVTPART1

Obiges Beispiel zeigt eine einfach Konfiguration für GeoFancy für zwei Bewohner mit jeweils einem Endgerät. Die Endgeräte werden einfach wie oben gezeigt hintereinander geschrieben. Durch den Doppelpunkt weist Du dem Gerät eine Person zu. Du kannst auch für eine Person mehrere Geräte definieren.

Residents


define rgr_Residents RESIDENTS
attr rgr_Residents alias Residents
attr rgr_Residents devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home
attr rgr_Residents group Home State
attr rgr_Residents icon control_building_empty
attr rgr_Residents room Intern--Residents
attr rgr_Residents sortby 2
attr rgr_Residents webCmd state

define rr_Dennis ROOMMATE rgr_Residents
attr rr_Dennis alias Dennis
attr rr_Dennis devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown
attr rr_Dennis group Residents
attr rr_Dennis icon status_available
attr rr_Dennis room Intern--Residents
attr rr_Dennis rr_autoGoneAfter 0.1
attr rr_Dennis sortby 0
attr rr_Dennis webCmd state

define Residents_notify notify rr_.*:location:.* { dkRouteResidents($NAME, $EVTPART1) }
attr Residents_notify room Intern--Residents

Damit auch entsprechend Aktionen ausgeführt werden können, wird zunächst die Gruppe rgr_Residents erzeugt. Ein Bewohner (ROOMMATE) wird dann der Gruppe rgr_Residents zugewiesen.
Die Funktion dkRouteResidents() wird jedes Mal aufgerufen, wenn sich der Status eines Bewohners ändert. Es wird sowohl der Bewohner als auch das Event übergeben. WICHTIG: Das Event wird in der App Locative definiert. In meinem Fall gibt es „home“ und „cominghome“.


sub dkRouteResidents($$) {
	my ($resident, $event) = @_;
	my $action = "dkAct_Resident_" . $event;
	my $coderef=__PACKAGE__->can($action);
	if ($coderef) {
		$coderef->($resident, $event);
	}
}

Diese Funktion dürfte Dir bekannt vorkommen, wenn Du meine anderen Beiträge gelesen hast. Damit ich nicht zu viele Notifier habe, versuche ich viele Notifications zu bündeln und leite Sie in meinem Modul dann an die entsprechende Funktion weiter. In diesem Fall wird die Funktion dkAct_Resident_EVENTNAME aufgerufen.


sub dkAct_Resident_home($$) {
	my ($resident, $event) = @_;
	my $twilight = dkGetReading("twilight", "twilight");
	if ($twilight <= 62) {
		dkOn("AB_Aktor_Beleuchtung_Haus");
		dkAutoOff("AB_Aktor_Beleuchtung_Haus", "on", "0.1");
	}
}

Wenn jemand nach Hause kommt, wird zunächst die Helligkeit ermittelt. Wird ein bestimmter Wert – in meinem Fall 62 – unterschritten, wird die Beleuchtung angeschaltet und automatisch nach 10 Minuten wieder ausgeschaltet.

Die Funktion dkAutoOff() ist Bestandteil von 99_dkUtils.pm

Push-Nachrichten via Pushover

Über Pushover können Push-Notifications an z. B. iOS-Geräte gesendet werden. Die Verwaltung erfolgt über www.pushover.net bzw. über den App-Code den man in FHEM einstellt.


define pushover Pushover <TOKEN> <USER-ID>
attr pushover alias Pushover
attr pushover group PlugIns
attr pushover priority 0
attr pushover room Intern--System
attr pushover sound 1
attr pushover title FHEM

In Pushover musst Du einen Token für FHEM erstellen. Du kannst dann die jeweiligen Geräte einer Gruppe zuweisen. In FHEM gibst Du den Token der App und Deine User-ID an.


define 10pm_timer at *22:00 {dkHandle10pm()}
attr 10pm_timer group Timer
attr 10pm_timer room Intern--Timer

Ich habe die Benachrichtigung über einen Timer realisiert. Dieser ruft dann die Funktion dkHandle10pm() auf.


sub dkHandle10pm() {
	if (dkGetState("AB_Aktor_Beleuchtung_Haus") eq "on") {
		dkPush("attention", "ACHTUNG! Die Hausbeleuchtung ist noch an!");
	}
}

sub dkGetState($){
	my($device) = @_;
	return ReadingsVal($device, "state", "unknown");
}

sub dkPush($$) {
	my ($type, $message) = @_;
	if (!$message || !$type) { return; }
	if ($type eq "default")		{ fhem("set pushover msg title='FHEM' message='$message'", 1); }
	if ($type eq "warning")		{ fhem("set pushover msg title='FHEM Warning' message='$message' sound='gamelan'", 1); }
	if ($type eq "alarm")		{ fhem("set pushover msg title='FHEM Alarm' message='$message' priority=2 sound='siren' retry=30 expire=3600 ", 1); }
	if ($type eq "call")		{ fhem("set pushover msg title='FHEM' message='$message' sound='bike'", 1); }
	if ($type eq "device")		{ fhem("set pushover msg title='FHEM' message='$message' sound='bike'", 1); }
	if ($type eq "attention")	{ fhem("set pushover msg title='FHEM' message='$message' sound='bugle'", 1); }
	if ($type eq "magic")		{ fhem("set pushover msg title='FHEM' message='$message' sound='magic'", 1); }
	if ($type eq "doorbell")	{ fhem("set pushover msg title='FHEM' message='$message' sound='incoming'", 1); }
}

In der Funktion dkHandle10pm() wird überprüft, ob die Außenbeleuchtung eingeschaltet ist. Ist dies der Fall, so wird eine Benachrichtigung ausgegeben.
Die Funktionen dkGetState() und dkPush() findest Du auch in 99_dkUtils.pm.

Ich wünsche Dir viel Spaß mit Deiner neuen automatisierten Außenbeleuchtung.

Kleines Fazit

Die Lochsäge von Ruko hat bei mir nach knapp einem Drittel den Geist aufgegeben. Das Gewinde mit dem die Lochsäge auf den Bohrer geschraubt wird, war ausgeschlagen. Dies mag an meiner ungestümen Arbeitsweise über Kopf und dem doch recht dicken Unterschlagholz gelegen haben. Die günstige „Notlösung“ aus dem Baumarkt war komplett mit dem Bohrer verschweisst und hat sehr gute Dienste geleistet. Nach knapp 40 Löchern war die Säge aber auch stumpf.

Den Abstand der Lampen könnte man auch größer wählen. Mir war ein gleicher Abstand der Lampen wichtig. Mein Vater hat die Lampen jeweils mittig vom Fenster und der Wand zwischen den Fenstern gesetzt. Bei größeren Flächen hat er die Lampen gleichmäßig auf die Fläche verteilt.

Für mein Haus habe ich 51 Lampen verbaut. Bei einer Leistung von 5 Watt pro Lampe kann diese Außenbeleuchtung nur für Dekozwecke verwendet werden, da ein Dauerbetrieb doch recht teuer wird.