Anwesenheitssimulation: Unterschied zwischen den Versionen

Aus FHEMWiki
(Erster Entwurf)
 
K (Diverse Tipp- und Grammatikfehler + Link auf Kategorie korrigiert)
 
(5 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Eine häufige Anwendung von Hausautomatisierungstechnik ist die Anwesenheitssimulation.
Eine häufige Anwendung von Hausautomatisierungstechnik ist die [[Anwesenheitssimulation]].
Dabei sollen automatisch bei Abwesenheit Aktivitäten simuliert werden, die dem Beobachter von außen den Eindruck vermitteln das Haus sein bewohnt.
Dabei sollen automatisch bei Abwesenheit Aktivitäten simuliert werden, die dem Beobachter von außen den Eindruck vermitteln, das Haus sei bewohnt.
__TOC__
 
== Einleitung ==
== Einleitung ==
Denkbar sind eine ganze Reihe von Aktivitäten:
Denkbar sind eine ganze Reihe von Aktivitäten:
Zeile 10: Zeile 10:
* Rasensprenger ein- und ausschalten
* Rasensprenger ein- und ausschalten
* Verstellbare Antennen, Kameras o.Ä. bewegen
* Verstellbare Antennen, Kameras o.Ä. bewegen
Jeder Aktor der von außen wahrnehmbar ist könnte zur Anwendung kommen.
Jeder Aktor der von außen wahrnehmbar ist, könnte zur Anwendung kommen.
Entscheiden dabei ist die glaubwürdige Erscheinung dieser Aktivitäten.
Entscheidend dabei ist die glaubwürdige Erscheinung dieser Aktivitäten.
Ist die Simulation von außen als solche erkennbar, so bewirkt sie gerade das Gegenteil von dem, was man damit erreichen möchte.
Ist die Simulation von außen als solche erkennbar, so bewirkt sie gerade das Gegenteil von dem, was man damit erreichen möchte.
Ein potentieller Einbrecher würde durch die Anwesenheitssimulation nicht abgeschreckt sondern angelockt.
Ein potentieller Einbrecher würde durch die Anwesenheitssimulation nicht abgeschreckt sondern angelockt.
Zeile 59: Zeile 59:
Tagsüber könnte ein Bewegungsmelder statt eines Lichts z.B. den Rasensprenger einschalten.
Tagsüber könnte ein Bewegungsmelder statt eines Lichts z.B. den Rasensprenger einschalten.


== Möglichkeiten in FEHM ==
== Möglichkeiten in FHEM ==
* [[RandomTimer|98_RandomTimer.pm]] ''Hilfsmodul, mit dem in einem bestimmten Zeitraum zu zufälligen Zeitpunkten Schaltvorgänge ausgelöst werden können''
* [[RandomTimer|98_RandomTimer.pm]] ''Hilfsmodul, mit dem in einem bestimmten Zeitraum zu zufälligen Zeitpunkten Schaltvorgänge ausgelöst werden können''


=== Beispiel: Zufällig Lichter schalten ===
=== Beispiel: Lichter schalten ===
Im Handle sind Schaltuhren mit Zufallsfunktion. Diese müssen aber oft umständlich eingestellt werden und lassen sich dann oft auch nicht anderweitig schalten. Man müsste immer wenn man das Haus länger verlässt die Schaltuhren alle aktivieren.
Im Handel sind Schaltuhren mit Zufallsfunktion. Diese müssen aber oft umständlich eingestellt werden und lassen sich dann oft auch nicht anderweitig schalten. Man müsste immer wenn man das Haus länger verlässt die Schaltuhren alle aktivieren.
Komfortabler und auch nicht unbedingt teurer geht das mit FHEM.
Komfortabler und auch nicht unbedingt teurer geht das mit FHEM.
Man benötigt  
Man benötigt neben einem laufenden [[Systemübersicht#Server|FHEM Server]] einen oder mehrere irgendwie schaltbare/n [[:Kategorie:Schalter_(Empfänger)|Aktor/en]].
# ein Gerät auf dem FHEM läuft (z.B. ein [[Raspberry_Pi|Raspberry Pi]] oder [[BeagleBone Black]]) mit
# einem [[CUL]] und
# ein paar preiswerte Funkschalter (z.B. intertechno ITR-1500 drei Stück für unter 28€).
Damit lässt sich ein System zur zentralen Steuerung von Lampen, Fernsehern, Radios u.A. realisieren.
Das FHEM installieren und den [[CUL]] konfigurieren.
Dann die Funkschalter im FHEM mit einem frei gewählten 26-Bit Code anmelden (siehe [[Intertechno_Code_Berechnung#Definition]]).
define sw_it_01 IT 01010101010101010101010101 0 0000
define sw_it_02 IT 01010101010101010101010101 0 0001
define sw_it_03 IT 01010101010101010101010101 0 0010
Wer möchte kann auch jedem Schalter seinen eigenen 26-Bit Code geben.
Dem Modul mitteilen, dass es sich um gewöhnliche Schalter (keine Dimmer) handelt.
attr sw_it_XX model itswitch
Das <code>XX</code> muss für jeden Schalter durch seine Nummer ersetzt werden.
Jetzt kann man auf der Anzeige "Everything" die Schalter finden und durch klick auf <code>on</code> oder <code>off</code> betätigen. Um die Funkschalter an zu lernen muss man in den ersten 5 Sekunden nach dem Einstecken die Funktion <code>on</code> betätigen. Hat man das für alle Schalter durchgeführt, kann man sie jetzt über FHEM bedienen.


==== Zufällig ====
Um eine zufällige Betätigung zu erreichen, kann das Modul [[RandomTimer]] verwendet werden:
Um eine zufällige Betätigung zu erreichen, kann das Modul [[RandomTimer]] verwendet werden:
  define <name> RandomTimer <timespec_start> <device> <timespec_stop> [<timeToSwitch>]
  define <name> RandomTimer <timespec_start> <device> <timespec_stop> [<timeToSwitch>] [<variations>]
Wollen wir z.B. den Schalter <code>sw_it_01</code> zwischen 20:00 und 22:00 für eine Stunden einschalten können wir das mit diesem Befehl erreichen:
Wollen wir z.B. den Schalter <code>sw_it_01</code> zwischen 20:00 und 22:00 für eine Stunden einschalten können wir das mit diesem Befehl erreichen:
  define rand_sw_01 RandomTimer 20:00 sw_it_01 22:00 3600
  define rand_sw_01 RandomTimer 20:00 sw_it_01 22:00 3600
==== Sonnenauf und -untergang ====
Das Modul [[SUNRISE_EL]] stellt die anhand der geographischen Position errechneten Zeiten für den Sonnenaufgang und den Sonnenuntergang zur Verfügung.
Dazu stellt man zunächst die eigene Position ein (z.B. Berlin):
attr global latitude 52.51861
attr global longitude 13.40833
Soll der Funkschalter <code>sw_it_01</code> immer Nachts eingeschaltet sein erreicht man das mit
define sw_it_01_aus at *{sunrise(0)} set sw_it_01 off
define sw_it_01_ein at *{sunset(0)}  set sw_it_01 on
Optional kann man den Zeitraum noch vorgeben (siehe [[SUNRISE_EL]]).
Eine ähnliche Funktion unter Einbeziehung der Wetterlage bietet das Modul [[Twilight]].
Mit ihm kann ein Twilight-Objekt für Berlin angelegt werden:
define myTL Twilight 52.51861 13.40833 1 BER-Wetter
Die letzte Angabe bezieht sich auf ein Wetter-Gerät vom Typ [[Weather]] oder [[PROPLANTA]], andere Wetter-Dienste könnten z.B. auch über ''BER-Wetter:Bewoelkung'' eingebunden werden, wenn das Reading ''Bewoelkung'' einen Bedeckungsgrad im Format 0 (wolkenlos) bis 100 (stark bewölkt) wiedergibt.
Dieses Twilight-Objekt kann nun für Schaltaktionen verwendet werden.
define sw_it_01_ein at *{twilight("myTL","sr_indoor","7:30","9:00")} set sw_it_01 on
define sw_it_01_aus at *{twilight("myTL","ss_indoor","17:30","22:30")} set sw_it_01 off
==== Kombination Zufall und Sonnenlauf ====
Die Start- und Stopzeit des [[RandomTimer]] kann auch vom rechnerischen Sonnenunter- oder -aufgang abhängig gemacht und dann jeden Tag ausgeführt werden:
define rand_sw_01 RandomTimer *{sunset_abs()} sw_it_01 *{sunset_abs(3*3600)} 3600
Um den RandomTimer nur unter bestimmten Voraussetzungen zu aktivieren, z.B. wenn die Bewohner abwesend sind oder nur an (ungefähr) jedem vierten Tag, kann das Attribut ''disableCond'' verwendet werden:
attr rand_sw_01 disableCond (ReadingsVal("Status_Urlaub","state","on") eq "off")
attr rand_sw_01 disableCond (int(rand(100))<75)
=== Eigene Funktionen ===
Auch mit Hilfe von generischen Modulen wie [[at]] und [[99 myUtils anlegen|myUtils-Code]] kann eine flexible Zeitsteuerung erreicht werden. Ein Beispiel wäre in diesem {{Link2Forum|Topic=95513|Message=884341|LinkText=Forenthread}} zu finden, der zugrundeliegende Code {{Link2Forum|Topic=29438|Message=897368|LinkText=hier}}.


== Hardware ==
== Hardware ==

Aktuelle Version vom 28. Oktober 2020, 17:40 Uhr

Eine häufige Anwendung von Hausautomatisierungstechnik ist die Anwesenheitssimulation. Dabei sollen automatisch bei Abwesenheit Aktivitäten simuliert werden, die dem Beobachter von außen den Eindruck vermitteln, das Haus sei bewohnt.

Einleitung

Denkbar sind eine ganze Reihe von Aktivitäten:

  • Lichter ein- und ausschalten
  • Geräusche abspielen
  • Rollläden bewegen
  • Betrieb eines Fernsehers simulieren
  • Rasensprenger ein- und ausschalten
  • Verstellbare Antennen, Kameras o.Ä. bewegen

Jeder Aktor der von außen wahrnehmbar ist, könnte zur Anwendung kommen. Entscheidend dabei ist die glaubwürdige Erscheinung dieser Aktivitäten. Ist die Simulation von außen als solche erkennbar, so bewirkt sie gerade das Gegenteil von dem, was man damit erreichen möchte. Ein potentieller Einbrecher würde durch die Anwesenheitssimulation nicht abgeschreckt sondern angelockt.

Eher ungeeignete Beispiele sind Zeitschaltuhren die nur in ein oder zwei Räumen immer zur gleichen Zeit das Licht einschalten. Im Handel werden gerade für die Simulation von Fernsehern teilweise extrem schlechte Geräte angeboten. Sie spielen zyklisch immer das gleiche Muster mit teilweise harten, auffälligen und einprägsamen Farbwechseln. Ist dann der Zyklus auch noch relativ kurz, ist jedem Beobachter sehr schnell klar, dass in diesem Haus eine Simulation läuft.

Betätigungszeiten von Lampen und Rollläden sollten den üblichen Gewohnheiten der Bewohner entsprechen, aber nicht mit messbar mechanischer Präzision durchgeführt werden. Gerade organisierte Banden reduzieren ihr Risiko durch sorgfältige Beobachtung, was sich heutzutage mit wetterfesten Action/Wild-Kameras sehr einfach und unauffällig bewerkstelligen lässt. Es sollte nie vergessen werden, dass die gegnerische Seite auch über technische Möglichkeiten verfügt. Zeigt ein solches Video präzise wiederkehrende Schaltzeiten, werden die Lichter wohl kaum von Bewohnern betätigt.

Eine perfekte Anwesenheitssimulation ist extrem aufwändig wenn nicht unmöglich. Der Briefkasten müssten geleert werden, Vorhänge bewegt, die Einfahrt gefegt und nicht zuletzt sollte man ab und zu jemanden sehen der dort wohnt. Manche Einbrecher präparieren die Haustüre (stecken z.B. etwas in den Türspalt) um einige Tage danach sehen zu können ob die Türe überhaupt einmal bewegt wurde. Kaum jemand wird seine Hausautomatisierung hin und wieder die Haustüre entriegeln und öffnen lassen.

Methoden

Anwesenheitssimulation ist immer ein Kompromiss zwischen Aufwand und Glaubwürdigkeit.

Statistik

Für Betätigungszeiten von Lampen und Jalousien gibt es Systeme die über die Betätigungszeiten der Bewohner eine Statistik erstellen. Sind die Bewohner nicht anwesend, führt das System zu ähnlichen aber eben nicht exakt gleichen Zeiten Betätigungen aus. Im einfachsten Fall werden für jedes Signal (z.B. Licht an/aus) Wahrscheinlichkeitsverteilungen bestimmt. Bei der Simulation wird dann regelmäßig "gewürfelt" ob das Signal betätigt werden soll.

Komplizierter (aber auch glaubwürdiger) wird es, wenn man Zusammenhänge zwischen Signalen berücksichtigt. Ein Bewohner schaltet jeden Abend in einem bestimmten Raum das Licht an und lässt gleich darauf den Rollladen herunter. Bei der reinen Betrachtung einzelner Betätigungen könnte es vorkommen, dass erst der Rollladen herunter gelassen wird und man das danach eingeschaltete Licht nicht sieht. Die dafür nötigen Auswertungen des Verhaltens der Bewohner sind deutlich aufwändiger.

Ein Kompromiss ist die explizite Vorgabe von Zusammenhängen, so dass das Hausautomatisierungssystem wieder nur die Verteilungen bestimmen muss. Geht z.B. nachts jemand auf die Toilette, so schaltet er erst das Licht im Gang an und etwas später in der Toilette. Auf dem Rückweg dann umgekehrt. Eine Simulation sollte also so eingestellt werden, dass vor dem Einschalten der Toilettenbeleuchtung auch der Gang eingeschaltet wird und auch etwas länger an bleibt.

Vernetzung

Die Vernetzung von Sensoren und Aktoren bei der Hausautomatisierung erlaubt es außerdem, Reaktionen wesentlich vielfältiger als üblich zu gestalten. Außenbeleuchtung mit Bewegungsmeldern sind jedem Einbrecher wohl bekannt. Es ist vielleicht lästig plötzlich im Licht zu stehen aber erschrecken kann man damit niemanden. Wesentlich irritierender ist es, wenn plötzlich im Haus ein Licht oder Geräusch an geht. In diesem Fall ist der Zusammenhang zum Bewegungsmelder nicht unmittelbar erkennbar Die einfache Vernetzung ermöglicht hier schon einen verbesserten Effekt. Mit etwas Fantasie lassen sich andere Anwendungen finden. Tagsüber könnte ein Bewegungsmelder statt eines Lichts z.B. den Rasensprenger einschalten.

Möglichkeiten in FHEM

  • 98_RandomTimer.pm Hilfsmodul, mit dem in einem bestimmten Zeitraum zu zufälligen Zeitpunkten Schaltvorgänge ausgelöst werden können

Beispiel: Lichter schalten

Im Handel sind Schaltuhren mit Zufallsfunktion. Diese müssen aber oft umständlich eingestellt werden und lassen sich dann oft auch nicht anderweitig schalten. Man müsste immer wenn man das Haus länger verlässt die Schaltuhren alle aktivieren. Komfortabler und auch nicht unbedingt teurer geht das mit FHEM. Man benötigt neben einem laufenden FHEM Server einen oder mehrere irgendwie schaltbare/n Aktor/en.

Zufällig

Um eine zufällige Betätigung zu erreichen, kann das Modul RandomTimer verwendet werden:

define <name> RandomTimer <timespec_start> <device> <timespec_stop> [<timeToSwitch>] [<variations>]

Wollen wir z.B. den Schalter sw_it_01 zwischen 20:00 und 22:00 für eine Stunden einschalten können wir das mit diesem Befehl erreichen:

define rand_sw_01 RandomTimer 20:00 sw_it_01 22:00 3600

Sonnenauf und -untergang

Das Modul SUNRISE_EL stellt die anhand der geographischen Position errechneten Zeiten für den Sonnenaufgang und den Sonnenuntergang zur Verfügung. Dazu stellt man zunächst die eigene Position ein (z.B. Berlin):

attr global latitude 52.51861
attr global longitude 13.40833

Soll der Funkschalter sw_it_01 immer Nachts eingeschaltet sein erreicht man das mit

define sw_it_01_aus at *{sunrise(0)} set sw_it_01 off
define sw_it_01_ein at *{sunset(0)}  set sw_it_01 on

Optional kann man den Zeitraum noch vorgeben (siehe SUNRISE_EL). Eine ähnliche Funktion unter Einbeziehung der Wetterlage bietet das Modul Twilight. Mit ihm kann ein Twilight-Objekt für Berlin angelegt werden:

define myTL Twilight 52.51861 13.40833 1 BER-Wetter

Die letzte Angabe bezieht sich auf ein Wetter-Gerät vom Typ Weather oder PROPLANTA, andere Wetter-Dienste könnten z.B. auch über BER-Wetter:Bewoelkung eingebunden werden, wenn das Reading Bewoelkung einen Bedeckungsgrad im Format 0 (wolkenlos) bis 100 (stark bewölkt) wiedergibt. Dieses Twilight-Objekt kann nun für Schaltaktionen verwendet werden.

define sw_it_01_ein at *{twilight("myTL","sr_indoor","7:30","9:00")} set sw_it_01 on
define sw_it_01_aus at *{twilight("myTL","ss_indoor","17:30","22:30")} set sw_it_01 off

Kombination Zufall und Sonnenlauf

Die Start- und Stopzeit des RandomTimer kann auch vom rechnerischen Sonnenunter- oder -aufgang abhängig gemacht und dann jeden Tag ausgeführt werden:

define rand_sw_01 RandomTimer *{sunset_abs()} sw_it_01 *{sunset_abs(3*3600)} 3600

Um den RandomTimer nur unter bestimmten Voraussetzungen zu aktivieren, z.B. wenn die Bewohner abwesend sind oder nur an (ungefähr) jedem vierten Tag, kann das Attribut disableCond verwendet werden:

attr rand_sw_01 disableCond (ReadingsVal("Status_Urlaub","state","on") eq "off")
attr rand_sw_01 disableCond (int(rand(100))<75)

Eigene Funktionen

Auch mit Hilfe von generischen Modulen wie at und myUtils-Code kann eine flexible Zeitsteuerung erreicht werden. Ein Beispiel wäre in diesem Forenthread zu finden, der zugrundeliegende Code hier.

Hardware

Lampen schalten

Rollläden, Jalousien u.Ä.

Betrieb eines Fernsehers simulieren

Links