Ankündigung

Einklappen

Sammelbestellung ETS6 Vollversionen aktiv!

Sammelbestellung für ETS6 Vollversionen (Prof., Home, Lite) mit 40% Rabatt aktiv! Infos im Forum!
Mehr anzeigen
Weniger anzeigen

Anwesenheitssimulation (auf SD-Karte als Ringspeicher, BETA!)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    X1 Anwesenheitssimulation (auf SD-Karte als Ringspeicher, BETA!)

    Hallo zusammen,

    ich habe einen X1-Logikbaustein entwickelt, der für eine Anwesenheitssimulation auf die SD-Karte aufzeichnet.

    Was bringt das?
    Dieser Logikbaustein zeichnet auf, wann deine KNX-Geräte (Lichter, Rollläden, etc.) normalerweise ein- und ausgeschaltet werden, und spielt dieses Verhalten später automatisch wieder ab. Das simuliert eine "echte" Anwesenheit im Haus – z. B. wenn du im Urlaub bist und niemand zuhause ist, aber von außen trotzdem der Eindruck entstehen soll, als wäre jemand da.
    1. Aufzeichnen: Der Baustein beobachtet einige Tage lang, wann du z. B. das Wohnzimmerlicht oder die Rollläden schaltest, und speichert diese Zeitpunkte.
    2. Abspielen: Später gibt er diese Schaltvorgänge zeitversetzt wieder aus – ggf. mit etwas Zufallsstreuung, damit es nicht jeden Tag exakt gleich wirkt.

    Aber kann das auch der X1 nicht direkt?
    M.E. kann der X1 standardmäßig zur Anwesenheitssimulation nicht auf der SD-Karte aufnehmen; die Aufnahme und das Abspielen kann standardmäßig nicht über Datenpunkte in einen Ringspeicher aktiviert werden.

    Ist der Baustein fertig?
    Der Baustein ist im Betastadium, also noch nicht komplett durchgetestet.

    Was braucht man?
    Einen X1 und eine SD-Karte im X1. Die aufgezeichneten Daten werden in einer kleinen Datenbank (SQLite) auf der SD-Karte gespeichert. Läuft der Baustein nur in der GPA-Simulation am PC (ohne echtes Gerät), werden keine Daten dauerhaft gespeichert – das ist nur zum Testen der Logik gedacht.

    EINGÄNGE
    Modus
    0 = Aus, 1 = Aufzeichnen, 2 = Abspielen

    Tage
    Wie viele Tage zurückliegende Aufzeichnungen aufgehoben werden (max. 30). Ältere Daten werden täglich automatisch gelöscht.

    Minuten
    Zufällige Verschiebung in Minuten, um die ein Schaltzeitpunkt beim Abspielen vor- oder zurückverlegt wird, damit es nicht jeden Tag exakt gleich aussieht.

    Wochentag
    Wenn aktiviert (1): Beim Abspielen wird nur das Verhalten desselben Wochentags genutzt (z. B. samstags wie samstags). Wenn aus: Tage werden unabhängig vom Wochentag der Reihe nach durchlaufen.

    LogAktiv
    Wenn aktiviert: Schreibt jeden Aufzeichnungs- und Abspiel-Vorgang ins Logfile.

    LockAll
    Sperrt das komplette Abspielen, wenn aktiviert.

    Reset
    Löscht beim Aktivieren alle gespeicherten Daten und beginnt (falls Modus=1) sofort eine neue Aufzeichnung.

    In 1 – In 10
    Die zehn Eingänge, die die tatsächlichen Schaltzustände der Geräte überwachen. Im Aufzeichnungsmodus wird hier jede Zustandsänderung gespeichert.

    Lock1 – Lock10
    Pro Eingang einzeln sperrbar. Ist z. B. Lock5 aktiv, wird Eingang 5 beim Abspielen übersprungen.

    ExportAktiv
    Wenn aktiviert: Exportiert täglich (um Mitternacht) die komplette Datenbank in kompakter Textform auf den Ausgang DBExport.


    AUSGÄNGE
    Out 1 – Out 10
    Die zehn Ausgänge, die beim Abspielen die aufgezeichneten Schaltvorgänge ausgeben.

    Status
    Zeigt die letzten 5 Statusmeldungen an (neueste oben).

    Fehler
    Zeigt eine Fehlermeldung an, falls etwas schiefgeht.

    Logfile
    Protokolliert die letzte Aktion im Detail, z. B. "23.6. 14:32 | R: 3->AN" (R = Aufgezeichnet, P = Abgespielt). Nur aktiv, wenn LogAktiv eingeschaltet ist.

    Logfile2
    Zeigt zusätzlich an, was als Nächstes geplant ist, z. B. "23.6. 18:00 | T: 1->AN,3->AUS".

    AnzEvents
    Die Gesamtzahl der aktuell in der Datenbank gespeicherten Schaltereignisse.

    DBExport
    Enthält den kompletten Datenbank-Export als Text (nur wenn ExportAktiv aktiviert ist).

    The MIT License (MIT)
    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

    The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
    Angehängte Dateien

    #2
    Hallo Alex,

    Sehr cool. Wieder mal was, das Gira schon ab Werk hätte einbauen sollen.

    Da ich's grad nicht ausprobieren kann, folgende Frage: Können Ein- und Ausgänge beliebige Typen entgegennehmen bzw. ausgeben oder geht da nur an/aus? Ich denke an Dimmwerte, Fahrbefehle für Beschattung, ...

    Und wenn ich mir ein..zwei Verbesserungsvorschläge erlauben darf:
    • Fix 10 Ein- und Ausgänge finde ich nicht ideal. Kannst Du die Zahl einstellbar machen (in einem vernünftigen Bereich von 1 bis 50 vielleicht)?
    • Den Modus fände ich besser in zwei booleans "Aktiv" und "Abspielen" aufgespalten. Die meisten haben schon ein "Urlaub" oder "länger abwesend" Objekt, das ein boolean ist, das könnte man dann direkt verwenden. So wie es jetzt ist, muss man das erst auf Modus 2 umsetzen.
    Wie unterscheidet sich LockAll=true von Modus=0? Evtl. braucht man LockAll dann gar nicht mehr ...

    Grüße von Horst
    Zuletzt geändert von hyman; Heute, 08:09.

    Kommentar


      #3
      Hallo hyman,

      sehr gute Ideen und ganz vielen Dank. Ich bin noch nicht so versiert, was die Entwicklung anbelangt, daher ist das erst einmal ein MVP, der zuerst stabil laufen soll.

      M.E. kann man derzeit nur Binäres speichern, weil ich das selbst nur für Lampen nutze. Aber auch das... ist machbar und kann ich gerne noch einführen in einer späteren Version.

      Wie unterscheidet sich LockAll=true von Modus=0? Evtl. braucht man LockAll dann gar nicht mehr ...
      Für mein Logikblatt ist eine solche Trennung komfortabler. Konzeptionell ist das "innerhalb des Bausteins" gleich.

      Viele Grüße

      Alex

      Kommentar

      Lädt...
      X