Präsenzmelder
Das Modul Präsenzmelder (Presence Detector) schaltet in Abhängigkeit von Bewegung(en) und Helligkeit ein oder mehrere Geräte ein bzw. führt ein Skript aus. Die Bewegungsdaten können dabei logisch verknüpft werden. Zusätzlich kann ein Schwellwert für die Helligkeit hinterlegt werden.
1. Funktionsumfang
- Auswertung von einem oder zwei Bewegungsmeldern, bei zwei Meldern logisch verknüpft (UND, ODER, NICHT) innerhalb eines Zeitfensters.
- Einschalten eines oder mehrerer Geräte (boolesche Schaltvariablen) bei erkannter Bewegung.
- Berücksichtigung der Helligkeit über einen Schwellwert, der als Statusvariable (z. B. über die Visualisierung) eingestellt wird.
- Hinterlegung eines Wochenplans zum gezielten Aktivieren bzw. Deaktivieren des Präsenzmelders.
- Ein- und Ausschalten der Automatik über eine schaltbare Statusvariable.
- Optionale Anzeige des Zeitpunktes der letzten Auslösung als Statusvariable.
- Zusätzlich bzw. ausschließlich kann ein Skript ausgeführt werden, wahlweise auch unabhängig von der Helligkeit.
- Diagnose über das Konfigurationsformular: zeigt alle Bedingungen und was eine Bewegung gerade auslösen würde bzw. warum nicht.
2. Voraussetzungen
- Symcon ab Version 8.1
3. Installation
- Über den Modul Store das Modul Präsenzmelder installieren.
- Alternativ über das Modul Control folgende URL hinzufügen.
https://github.com/Wilkware/PresenceDetectorodergit://github.com/Wilkware/PresenceDetector.git
4. Einrichtung
- Unter ‘Instanz hinzufügen’ ist das Präsenzmelder-Modul (Alias: Bewegungsmelder) unter dem Hersteller ‘(Geräte)’ aufgeführt.
Konfigurationsseite:
Einstellungsbereich:
🏃 Sensoren …
| Name | Beschreibung |
|---|
- Bewegungsvariable | Boolesche Statusvariable des primären Bewegungsmelders (true = Bewegung; false = keine Bewegung). Verknüpfung | Logische Verknüpfung der beiden Bewegungsmelder (UND, ODER, NICHT); nur relevant, wenn zwei Bewegungsmelder ausgewählt sind.
- Bewegungsvariable | Boolesche Statusvariable des sekundären Bewegungsmelders (true = Bewegung; false = keine Bewegung). Zeitfenster | Zeitfenster in Millisekunden für die Verknüpfung (UND und NICHT benötigen einen Wert größer 0). Helligkeitsvariable | Quellvariable, über welche die Helligkeit abgefragt werden kann, bei HmIP-SMI ist es ILLUMINATION.
Die Verknüpfungen im Detail:
| Verknüpfung | Verhalten |
|---|---|
| ∧ (und) | Beide Bewegungsmelder müssen innerhalb des Zeitfensters (in beliebiger Reihenfolge) auslösen. |
| ∨ (oder) | Jeder Bewegungsmelder löst aus; weitere Auslösungen innerhalb des Zeitfensters werden ignoriert. |
| ¬ (nicht) | Der 1. Bewegungsmelder löst aus, wenn der 2. nicht innerhalb des Zeitfensters folgt (z. B. Richtungserkennung). |
⏱️ Zeitsteuerung …
| Name | Beschreibung |
|---|---|
| Zeitplan | Wochenplan, welcher den Präsenzmelder zeitgesteuert aktiviert bzw. deaktiviert. |
| ZEITPLAN HINZUFÜGEN | Button zum Erzeugen und Hinzufügen eines Wochenplans. |
💡 Geräte …
| Name | Beschreibung |
|---|---|
| Geräteanzahl | ‘Ein Gerät’ oder ‘Mehrere Geräte’ - Umschalten zwischen Variablenauswahl und Variablenliste. |
| Schaltvariable* | Boolesche Zielvariable, die bei erfüllter Bedingung eingeschaltet wird (true). |
| Schaltvariablen* | Boolesche Zielvariablen, welche alle bei erfüllter Bedingung eingeschaltet werden (true). Die Spalte ‘Zustand’ zeigt, ob die Variable schaltbar ist. |
(*) abhängig von Auswahl der Geräteanzahl
⚙️ Erweiterte Einstellungen …
| Name | Beschreibung |
|---|---|
| Gleichzeitiges Ausführen eines Skriptes | Auswahl eines Skriptes, welches zusätzlich (bzw. ohne Schaltvariablen ausschließlich) ausgeführt werden soll. |
| Skript immer ausführen | Das Skript wird auch ausgeführt, wenn die Helligkeit über dem Schwellwert liegt. Automatik und Wochenplan gelten weiterhin. |
| Schaltvariablen ohne Aktion direkt setzen | Schaltvariablen ohne Aktion werden direkt gesetzt (SetValue); nur für Variablen, die zu keiner Instanz gehören. |
| Variable für Anzeige der letzten Auslösung anlegen | Schalter, ob eine Statusvariable mit dem Zeitpunkt der letzten Auslösung angelegt werden soll (intern wird er immer geführt). |
Einem hinterlegten Skript werden folgende Werte mitgegeben:
| Parameter | Beschreibung |
|---|---|
| MotionVariable | ID(s) der Bewegungsvariable(n), Zugriff im Skript via $_IPS['MotionVariable'] |
| BrightnessVariable | ID der Helligkeitsvariable, Zugriff im Skript via $_IPS['BrightnessVariable'] |
| SwitchVariable | ID(s) der Schaltvariable(n), Zugriff im Skript via $_IPS['SwitchVariable'] |
| ThresholdValue | Aktueller Helligkeitsschwellwert, Zugriff im Skript via $_IPS['ThresholdValue'] |
| INSTANCE | ID der Präsenzmelder-Instanz, Zugriff im Skript via $_IPS['INSTANCE'] |
Hinweis: Bestehende Instanzen, die bisher eine Schaltvariable ohne Aktion verwendet haben, werden beim Update automatisch auf ‘Schaltvariablen ohne Aktion direkt setzen’ umgestellt. Der bisher in der Konfiguration hinterlegte Schwellwert wird beim Anlegen der Variable ‘Helligkeitsschwellwert’ als Startwert übernommen.
Aktionsbereich:
🧪 Test …
| Aktion | Beschreibung |
|---|---|
| ZUSTAND PRÜFEN | Zeigt alle Bedingungen auf einen Blick (Automatik, Bewegungsmelder, Verknüpfung, Zeitfenster, Wochenplan, Helligkeit, Geräte, Skript, letzte Auslösung) und als Ergebnis, was eine Bewegung gerade auslösen würde bzw. warum nicht. Fehler werden rot, Bedingungen, die das Schalten verhindern (z. B. Automatik aus, inaktiver Wochenplan oder zu hell), gelb hinterlegt. Es wird dabei nichts geschaltet. |
5. Statusvariablen
Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
| Ident | Name | Typ | Beschreibung |
|---|---|---|---|
| Automatic | Automatik | Boolean | Ein- und Ausschalten des Präsenzmelders (z. B. bei Besuch oder Partys) |
| BrightnessThreshold | Helligkeitsschwellwert | Integer | Helligkeitswert, bis zu dem geschaltet wird (0 = immer) |
| LastTrigger | Letzte Auslösung | Integer | Zeitpunkt, zu dem zuletzt Geräte geschaltet bzw. das Skript ausgeführt wurde |
Hinweis: Die Variable ‘Helligkeitsschwellwert’ wird nur angelegt, wenn eine Helligkeitsvariable ausgewählt ist, die Variable ‘Letzte Auslösung’ nur, wenn dies unter ‘Erweiterte Einstellungen’ aktiviert ist. Zusätzlich kann über den Button ‘Zeitplan hinzufügen’ ein Wochenplan (Ident circuit_diagram) angelegt werden.
6. Darstellungen
Die Darstellungen werden direkt an den Statusvariablen hinterlegt, es werden keine Profile angelegt.
| Variable | Darstellung | Werte |
|---|---|---|
| Automatik | Schalter | An / Aus |
| Helligkeitsschwellwert | Schieberegler | 0 – 500 lx (Schrittweite 1) |
| Letzte Auslösung | Datum/Uhrzeit | Datum und Uhrzeit (Stunden, Minuten, Sekunden) |
7. Visualisierung
Es ist keine eigene Kachel integriert, die Instanz wird über die Standard-Kachel mit ihren Statusvariablen dargestellt.
Die Automatik kann über die Statusvariable “Automatik”, der Schwellwert über die Statusvariable “Helligkeitsschwellwert” gesteuert werden.
Die Statusvariable “Letzte Auslösung” zeigt an, wann der Präsenzmelder zuletzt geschaltet hat.
8. Befehlsreferenz
Ein direkter Aufruf von öffentlichen Funktionen ist nicht notwendig!
9. Versionshistorie
v5.0.20261023
- NEU: Kompatibilität auf Symcon 8.1 angehoben, Code und interne Bibliotheken modernisiert
- NEU: Konfigurationsformular überarbeitet und vereinheitlicht (inkl. Versionsanzeige und Statuscodes)
- NEU: Statusvariable ‘Automatik’ zum Ein- und Ausschalten des Präsenzmelders
- NEU: Optionale Statusvariable ‘Letzte Auslösung’
- NEU: Helligkeitsschwellwert immer als Statusvariable (bei ausgewählter Helligkeitsvariable), Konfigurationswert wird als Startwert übernommen
- NEU: Option ‘Schaltvariablen ohne Aktion direkt setzen’ (nur Variablen, die zu keiner Instanz gehören), bestehende Instanzen werden automatisch migriert
- NEU: Aktionsbereich mit ‘Zustand prüfen’ zur Diagnose aller Bedingungen
- NEU: Ausgeführtes Skript erhält zusätzlich die Instanz
- FIX: ‘Skript immer ausführen’ führte das Skript auch bei nicht erfüllter Verknüpfung, bei Ablauf des Zeitfensters und bei inaktivem Wochenplan aus
- FIX: Bei UND bzw. NICHT brach eine wiederholte Auslösung desselben Bewegungsmelders das Zeitfenster ab
- FIX: Bei ODER hob eine weitere Auslösung innerhalb des Zeitfensters die Sperre auf
- FIX: Bei mehreren Geräten wurde ein Schaltfehler nur für das letzte Gerät gemeldet
- FIX: Skript erhielt ohne zweiten Bewegungsmelder eine falsche Bewegungsvariable (“ID,1”)
- FIX: Schaltvariablen mit Darstellung statt Profil werden akzeptiert
- FIX: Fehlende Variablen, Wochenpläne und Skripte abgesichert, Start erst nach vollständig geladenem Kernel
- FIX: Übersetzungen und Dokumentation überarbeitet
v4.0.20240908
- NEU: Kompatibilität auf IPS 6.4 hoch gesetzt
- FIX: Bibliotheks- bzw. Modulinfos vereinheitlicht
- FIX: Namensnennung und Repo vereinheitlicht
- FIX: Update Style-Checks
- FIX: Übersetzungen überarbeitet und verbessert
- FIX: Dokumentation vereinheitlicht
v3.1.20220909
- NEU: Zeitfenster wird jetzt bei allen Verknüpfungen berücksichtigt
- NEU: Zeitfenster jetzt bis 2 Min einstellbar
- FIX: Doppelte Ausführung bei OR gefixt
- FIX: Bibliotheken nachgezogen
v3.0.20220320
- NEU: Zweiten Bewegungsmelder hinzugefügt
- NEU: Logische Verknüpfung der Bewegungsmelder eingeführt
- NEU: Kompatibilität auf IPS 6.0 hoch gesetzt
- NEU: Bibliotheks- bzw. Modulinfos vereinheitlicht
- NEU: Konfigurationsdialog überarbeitet (v6 Möglichkeiten genutzt)
- NEU: Auswahl des Helligkeitsschwellwertes erweitert
- NEU: Konfiguration der Zeitsteuerung überarbeitet
- NEU: Umschalten zwischen einem oder mehreren schaltbaren Geräten
- NEU: Eine reine boolesche Schaltvariable (ein Gerät) wird automatisch erkannt
- NEU: Referenzieren der Gerätevariablen hinzugefügt (sicheres Löschen)
- FIX: Funktion
TPD_SwitchStatewegen neuer Prozessverarbeitung entfernt - FIX: Interne Bibliotheken erweitert und vereinheitlicht
- FIX: Markdown der Dokumentation überarbeitet
v2.1.20210723
- NEU: Konfigurationsformular überarbeitet und vereinheitlicht
- NEU: Schwellwert(Helligkeit) kann über Webfront(RequestAction) gesetzt bzw. manipuliert werden
- FIX: Funktion
TPD_Thresholdwegen Verwendung von IPS_SetProperty entfernt - FIX: Übersetzungen nachgezogen
- FIX: Interne Bibliotheken überarbeitet und vereinheitlicht
- FIX: Debug Meldungen überarbeitet
- FIX: Dokumentation überarbeitet
v2.0.20200422
- NEU: Zeitplan hinzugefügt
- NEU: Unterstützung für die Erstellung eines Wochenplans
- FIX: Interne Bibliotheken überarbeitet
- FIX: Dokumentation überarbeitet
v1.3.20191105
- NEU: Skriptaufruf auf IPS_RunScriptEx umgestellt (Variablenübergabe)
- FIX: Debugausgabe war fehlerhaft bei hinterlegtem Skript
- FIX: Dokumentation überarbeitet
v1.2.20190818
- NEU: Umstellung für Module Store
- FIX: Dokumentation überarbeitet
v1.1.20170322
- FIX: Anpassungen für IPS Version 5
v1.0.20170125
- NEU: Initialversion
Entwickler
Seit nunmehr über 10 Jahren fasziniert mich das Thema Haussteuerung. In den letzten Jahren betätige ich mich auch intensiv in der Symcon Community und steuere dort verschiedenste Skript und Module bei. Ihr findet mich dort unter dem Namen @pitti ;-)
Spenden
Die Software ist für die nicht kommerzielle Nutzung kostenlos, über eine Spende bei Gefallen des Moduls würde ich mich freuen.
Lizenz
Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International