Suche

    Präsenzmelder

    Dokumentation direkt aus GitHub Wilkware/PresenceDetector ↗

    Version Product Version License Actions

    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/PresenceDetector oder git://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 …

    NameBeschreibung
    1. 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.
    2. 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üpfungVerhalten
    ∧ (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 …

    NameBeschreibung
    ZeitplanWochenplan, welcher den Präsenzmelder zeitgesteuert aktiviert bzw. deaktiviert.
    ZEITPLAN HINZUFÜGENButton zum Erzeugen und Hinzufügen eines Wochenplans.

    💡 Geräte …

    NameBeschreibung
    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 …

    NameBeschreibung
    Gleichzeitiges Ausführen eines SkriptesAuswahl eines Skriptes, welches zusätzlich (bzw. ohne Schaltvariablen ausschließlich) ausgeführt werden soll.
    Skript immer ausführenDas Skript wird auch ausgeführt, wenn die Helligkeit über dem Schwellwert liegt. Automatik und Wochenplan gelten weiterhin.
    Schaltvariablen ohne Aktion direkt setzenSchaltvariablen ohne Aktion werden direkt gesetzt (SetValue); nur für Variablen, die zu keiner Instanz gehören.
    Variable für Anzeige der letzten Auslösung anlegenSchalter, 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:

    ParameterBeschreibung
    MotionVariableID(s) der Bewegungsvariable(n), Zugriff im Skript via $_IPS['MotionVariable']
    BrightnessVariableID der Helligkeitsvariable, Zugriff im Skript via $_IPS['BrightnessVariable']
    SwitchVariableID(s) der Schaltvariable(n), Zugriff im Skript via $_IPS['SwitchVariable']
    ThresholdValueAktueller Helligkeitsschwellwert, Zugriff im Skript via $_IPS['ThresholdValue']
    INSTANCEID 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 …

    AktionBeschreibung
    ZUSTAND PRÜFENZeigt 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.

    IdentNameTypBeschreibung
    AutomaticAutomatikBooleanEin- und Ausschalten des Präsenzmelders (z. B. bei Besuch oder Partys)
    BrightnessThresholdHelligkeitsschwellwertIntegerHelligkeitswert, bis zu dem geschaltet wird (0 = immer)
    LastTriggerLetzte AuslösungIntegerZeitpunkt, 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.

    VariableDarstellungWerte
    AutomatikSchalterAn / Aus
    HelligkeitsschwellwertSchieberegler0 – 500 lx (Schrittweite 1)
    Letzte AuslösungDatum/UhrzeitDatum 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_SwitchState wegen 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_Threshold wegen 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 ;-)

    GitHub

    Spenden

    Die Software ist für die nicht kommerzielle Nutzung kostenlos, über eine Spende bei Gefallen des Moduls würde ich mich freuen.

    PayPal

    Lizenz

    Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International

    Licence