Licht Anwesenheitssimulation durch "erlerntes" Muster aus der Vergangenheit

Begonnen von enno, 25 Januar 2019, 20:29:37

Vorheriges Thema - Nächstes Thema

enno

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
Einfacher FHEM Anwender auf Intel®NUC

justme1968

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

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Prof. Dr. Peter Henning

Ich starte im Mai ein neues Projekt zur Mustererkennung im SmartHome mittels neuronaler Netze.

LG

pah


enno

@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
Einfacher FHEM Anwender auf Intel®NUC

justme1968

warum vorgeben?

du speicherst zu zeitpunkt x den aktuellen zustand der gerade vorhanden ist ab.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

enno

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
Einfacher FHEM Anwender auf Intel®NUC

Prof. Dr. Peter Henning

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

swsmily

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.

enno

@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
Einfacher FHEM Anwender auf Intel®NUC

justme1968

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.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

enno

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
Einfacher FHEM Anwender auf Intel®NUC

enno

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....
Einfacher FHEM Anwender auf Intel®NUC

obelix221

Hallo Enno,

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

VG
obelix
RPi3 als FHEM-Server, 868 MHz CUL, 433 MHz Transmitter, Homematic Aktoren und Sensoren, Yamaha AVR, Logitech Harmony, Fritzbox, Logitech SB, 433 MHz Steckdosen, HUE, EnOcean

enno

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
Einfacher FHEM Anwender auf Intel®NUC