FHEM Forum

Verschiedenes => Off-Topic => Thema gestartet von: enno am 25 Januar 2019, 20:29:37

Titel: Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: enno am 25 Januar 2019, 20:29:37
Ich versuche mich gerade an einer "Anwesenheitssimulation". Einstieg ist das Wiki: https://wiki.fhem.de/wiki/Anwesenheitssimulation.

Empfohlen wird https://wiki.fhem.de/wiki/RandomTimer. Ich würde aber FHEM gerne die Auswahl selbst überlassen. Sprich "Statistik". Ich stelle mir vor, FHEM speichert das tägliche Licht an und ausschalten der Bewohner. Bei Abwesenheit greift FHEM auf diese gespeicherten Muster zurück und schaltet einen beliebigen gespeicherten Tag durch.

Hat so etwas einer von Euch schon mal umgesetzt oder eine Idee wie man das elegant umsetzten könnte?

Gruss
  Enno
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: justme1968 am 25 Januar 2019, 21:03:49
irgendwo gibt es einen thread mit einem konzept wie man das mit einer lightscene umsetzen kann.

- lightscene mit allen lampen die beteiligt sein sollen
- per notify auf änderungen in den lampen neue szene mit der aktuellen zeit als namen speichern
- beim abspielen anhand der namen der gespeicherten szenen  das ganze an ungefähr den ursprünglichen zeiten wieder herstellen

Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: Prof. Dr. Peter Henning am 28 Januar 2019, 15:33:35
Ich starte im Mai ein neues Projekt zur Mustererkennung im SmartHome mittels neuronaler Netze.

LG

pah
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: Christoph Morrison am 28 Januar 2019, 16:41:52
Siehe [fhem-rnn] Neuronale Netzwerke zu Steuerung und Analyse (https://forum.fhem.de/index.php/topic,95971.0/topicseen.html)
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: enno am 28 Januar 2019, 17:26:39
@justme1968: Danke für das Stichwort. Habe einiges mit lightscene gefunden. Waren aber alles Lösungen bei denen ich Muster vorgeben muss. Das wollte ich aber auch automatisch haben.

@pah: Das klingt gut. Melde dich wenn es was zu testen oder unterstützen gibt.

Gruss
  Enno
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: justme1968 am 28 Januar 2019, 17:36:50
warum vorgeben?

du speicherst zu zeitpunkt x den aktuellen zustand der gerade vorhanden ist ab.
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: enno am 28 Januar 2019, 20:17:48
Zitat von: justme1968 am 28 Januar 2019, 17:36:50
du speicherst zu zeitpunkt x den aktuellen zustand der gerade vorhanden ist ab.
Das ist aber noch nicht ganz das was ich vorhabe. Ich hatte eher daran gedacht, dass in der Simulation ein Bewegungsmuster mit berücksichtigt wird. Bsp.:

Ich komme im Keller ins Haus:        - Licht im Keller geht an
Ich gehen ins Wohnzimmer:            - Licht im Wohnzimmer geht an, im Keller aus
Ich habe im Keller was vergessen:  -Licht im Keller geht noch mal an und wieder aus
Ich gehe zur Toilette:                       - Licht im WC geht an und nach X-Minuten wieder aus
usw.

Wenn ich das mit lightscene simulieren will, wird das  recht aufwendig... die Schritte diese Muster zu speichern wollte ich dem Rechner überlassen. Der Ansatz von pah geht vermutlich eher in die Richtung. Smart oder KI oder selbst lernenden.

Gruss
  Enno
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: Prof. Dr. Peter Henning am 28 Januar 2019, 20:48:33
Einer meiner Doktoranden hat gerade seine Arbeit über spatio-temporale Datenbanken die Ähnlichkeitsanalyse von Trajektorien abgechlossen. Das wird die Basis eines solchen Systems bilden - und ich fürchte, dass diese Forschung gezeigt hat, dass es mit weniger Aufwand nicht geht. Denn die zeitliche Dimension ist dabei wesentlich.

LG

pah
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: swsmily am 29 Januar 2019, 22:43:35
Zitat von: enno am 28 Januar 2019, 20:17:48
Das ist aber noch nicht ganz das was ich vorhabe. Ich hatte eher daran gedacht, dass in der Simulation ein Bewegungsmuster mit berücksichtigt wird. Bsp.:

Ich komme im Keller ins Haus:        - Licht im Keller geht an
Ich gehen ins Wohnzimmer:            - Licht im Wohnzimmer geht an, im Keller aus
Ich habe im Keller was vergessen:  -Licht im Keller geht noch mal an und wieder aus
Ich gehe zur Toilette:                       - Licht im WC geht an und nach X-Minuten wieder aus
usw.

Wenn ich das mit lightscene simulieren will, wird das  recht aufwendig... die Schritte diese Muster zu speichern wollte ich dem Rechner überlassen. Der Ansatz von pah geht vermutlich eher in die Richtung. Smart oder KI oder selbst lernenden.

Gruss
  Enno

Den gleichen Gedanken hatte ich auch schon mal. Meine Überlegung war, dass das Logfile der Bewegungsmelder von vor z.b. 7 Tagen ausgelesen wird und entsprechend wiederholt wird.
Nur leider fehlt es mir dabei bereits am Ansatz, wie ich ein Logfile auswerten und wieder verarbeiten könnte.
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: enno am 30 Januar 2019, 09:23:38
@swsmily

Meine Idee war das mit einem DOIF oder Notify zu machen. Immer wenn ein Licht an oder aus, das als Reading mit Tag und Zeitangabe in DbLog speichern. Dann das ganze bei Bedarf abrufen und in der gleichen Reihenfolge "durchschalten".  Also gleiche Idee wie du hast nur nicht mit Logfile sondern SQL. Da ich aber Maschinenbauer und kein Informatiker bin, dauert das etwas. Die Daten in die Datenbank rein, kein Problem, das zurück lesen wird etwas komplizierter. Habe ich aber auch schon mal irgendwo gelesen, nur noch nicht verstanden ;)

Gruss
  Enno
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: justme1968 am 30 Januar 2019, 09:32:42
jetzt verwirrst du mich

nur noch mal so als hinweis: speichern und abrufen ist genau das was der LightScene vorschlag von oben macht.

kein grund für irgendwelche db klimmzüge sondern ganz einfacher einstieg um zu schauen ob du deine speicher und abruf logik hin bekommst. später auf db zu gehen geht dann immer noch wenn es aus irgend einem grund nötig sein sollte.
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: enno am 30 Januar 2019, 13:30:31
Zitat von: justme1968 am 30 Januar 2019, 09:32:42
nur noch mal so als hinweis: speichern und abrufen ist genau das was der LightScene vorschlag von oben macht.
@justme1968
Das Wochenende wird lang (Schulferien), ich bin allein zu Haus da werde ich mal mit den Möglichkeiten "rumspielen" ohne strafende Blicke der Mitbewohner. Ich werde berichten. Zur Zeit lese ich die verschiedenen Ansätze, die ich gefunden habe. LighScene, Randomtimer, DOIF,

Alles noch begrenzt Smart aber vermutlich eine Übergangslösung bis zum "Projekt zur Mustererkennung im SmartHome mittels neuronaler Netze".

Gruss
  Enno
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: enno am 30 Januar 2019, 21:57:30
Zitat von: swsmily am 29 Januar 2019, 22:43:35
Den gleichen Gedanken hatte ich auch schon mal. Meine Überlegung war, dass das Logfile der Bewegungsmelder von vor z.b. 7 Tagen ausgelesen wird und entsprechend wiederholt wird.
Nur leider fehlt es mir dabei bereits am Ansatz, wie ich ein Logfile auswerten und wieder verarbeiten könnte.

Ich habe jetzt eine LightScene definiert, in der alle Lampen enthalten sind, die ich für die Simulation nutzen möchte.
Attributes:
   event-on-change-reading state
   followDevices 1
   lightSceneRestoreOnlyIfChanged 1
   showDeviceCurrentState 1


Mit einem DOIF erstelle ich bei jeder Änderung eine neue Scene gleichen Formats: 2019-01-30-Mittwoch-19-55-58

(["^LichtScene$:.state"]) (set LichtScene save {(strftime('%Y-%m-%d_%A_%H:%M:%S', localtime))} )

Soweit das Erstellen des Musters. Jetzt muss ich mir nur noch überlegen wie ich das ganze zum Steuern nutze....
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: obelix221 am 27 Dezember 2019, 07:58:07
Hallo Enno,

ist Dein Projekt noch am Laufen? Suche auch nach einem solchen Ansatz.

VG
obelix
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: enno am 27 Dezember 2019, 09:13:57
Moin obelix,

leider etwas ins stocken geraten. Anlegen der "Muster" funktioniert soweit (siehe oben), es fehlt eigentlich nur das Aufrufen der gespeicherten Muster, da bin ich aber an die Grenzen meiner Programmierfähigkeiten gekommen.

Vielleicht gibt es bei pah zum Thema "KI" ja schon etwas neues.

Gruss
  Enno
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: Prof. Dr. Peter Henning am 27 Dezember 2019, 16:22:52
Ja, gibt es. Ergebnis: Neuronale Netze liefern in vielen Fällen nur Unsinn, regelbasierte Systeme sind besser geeignet.

Beispiel für eine Anwesenheitssimulation: Das Netz hat nicht gelernt, sich wie ein Mensch zu benehmen. Sondern nur, dass mit einer Wahrscheinlichkeit von 98% im nächsten Zeitintervall kein Schaltvorgang des Lichtes erfolgt ...

LG

pah
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: Spezialtrick am 10 November 2020, 16:03:37
Zitat von: enno am 27 Dezember 2019, 09:13:57
Moin obelix,

leider etwas ins stocken geraten. Anlegen der "Muster" funktioniert soweit (siehe oben), es fehlt eigentlich nur das Aufrufen der gespeicherten Muster, da bin ich aber an die Grenzen meiner Programmierfähigkeiten gekommen.

Vielleicht gibt es bei pah zum Thema "KI" ja schon etwas neues.

Gruss
  Enno

Hallo Enno,

ich wollte nur mal fragen, ob du mit dem Projekt weitergekommen bist oder ob du dir eine andere Lösung überlegt hast?
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: enno am 11 November 2020, 08:21:15
Moin Spezialtrick,

ich hatte nach einem der letzten Updates Probleme mit plötzlich Licht an aus in Kombination mit HM und DOIF. Um den Fehler zu finden habe ich alle Lightscene gelöscht. Nun läuft alles wieder Stabil aber die Zufallssteuerung läuft zur Zeit nur mit ein paar Randomtimer.

Dank Corona ist der Druck für eine Lösung nicht so groß, da fast immer irgendjemand anwesend ist.

Bin also nicht weitergekommen...

Gruss
  Enno
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: Der_Tom am 11 November 2020, 08:47:30
Guten Morgen Enno,


als ich begonnen habe MSwitch zu schreiben war genau das die Intention, genau in der von dir beschriebenen Art.

das Modul bringt von daher alle benötigten Voraussetzungen mit  dieses in einem Gerät zu realisieren. Dann hat sich das Modul aber in eine andere Richtung entwickelt.

bei Interesse könnten wir ja ggf zusammen versuchen es umzusetzen.

mit anderen Modulen kann ich mich mangels Kenntnissen aber leider nicht einbringen.

gruss Thomas
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: binford6000 am 21 November 2020, 10:06:52
Zitat von: enno am 30 Januar 2019, 21:57:30
Ich habe jetzt eine LightScene definiert, in der alle Lampen enthalten sind, die ich für die Simulation nutzen möchte.
Attributes:
   event-on-change-reading state
   followDevices 1
   lightSceneRestoreOnlyIfChanged 1
   showDeviceCurrentState 1


Mit einem DOIF erstelle ich bei jeder Änderung eine neue Scene gleichen Formats: 2019-01-30-Mittwoch-19-55-58

(["^LichtScene$:.state"]) (set LichtScene save {(strftime('%Y-%m-%d_%A_%H:%M:%S', localtime))} )

Soweit das Erstellen des Musters. Jetzt muss ich mir nur noch überlegen wie ich das ganze zum Steuern nutze....

Hallo Zusammen,
ich lese schon seit dem ersten Post mit und habe momentan auch was mit RandomTimer am Start.
Jetzt habe ich aber mal die Zeit gefunden, den LightScene-Ansatz von enno für mich gangbar zu machen:


Hier das save at:
defmod simulation_save.at at +*00:05:00 set simulation.scene save {(strftime('%A_%H:%M', localtime))}
attr simulation_save.at alignTime 00:00:00


Und hier das set at:
defmod simulation_set.at at +*00:05:00 set simulation.scene scene {(strftime('%A_%H:%M', localtime))}
attr simulation_set.at alignTime 00:00:00


Vorteile:
Nachteile:

Feedback und Verbesserungsvorschläge sind sehr erwünscht!  :)

VG Sebastian
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: dieter114 am 17 Januar 2021, 12:20:43
Hallo Der-Tom,

ich verwende dein Modul um eine Anzeige Mehrspaltig mit aktuellen Daten zu "beladen"
wenn sie aktiviert wird. (Zustände, Steuerungen und Temperaturen einer Poolsteuerung)
Wenn die Kriterien eindeutig sind, kann mit deinem Modul eine Menge nacheinander abgearbeitet werden.
Es müsste doch jetzt nur noch ein zusätliches Kriterium (Attribut?) wie
Aktion 1 ausführen (ja/nein) Aktion 2... usw. dort eingefügt werden.
Und das abhängig von weiteren Faktoren - Denkansatz:

- Alle Aktionen starten erst wenn dunkel wird (Twilight) oder doch früher ??
- Lichter und Rolläden in kleine Gruppen einteilen und diese Gruppen
  (Random) starten und auch noch weiter mischen ??

Es geht doch letztendlich um Einbruchschutz.
Sobald dort igendetwas "Regelmäßig" abläuft, ist die Wirkung dahin.
Also möglichst viel Durcheinander aber nichts Unsinniges oder Regelmäßiges.

Grüße WDS
Titel: Antw:Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit
Beitrag von: Pax87 am 29 Januar 2021, 10:40:40
Hallo,
Aus reinem Interesse: Wie werden denn die Daten gespeichert, bzw wie sieht es mit Datenschutz bei solchen Vorhaben aus, an wen werden diese übermittelt ? LG