Precense / Residents Steuerung der einzelnen Räume

Begonnen von selfarian, 23 April 2015, 15:42:57

Vorheriges Thema - Nächstes Thema

selfarian

Hallo,

ich habe mir folgendes in den Kopf gesetzt:
Ich möchte z.B. die Heizung abhängig von der Anwesenheit in einem Raum steuern. Triggern möchte ich es z.B. im Wohnzimmer über das Licht (wenn das Licht an ist, dann ist auch jemand da), im Arbeitszimmer über die PCs und im Schlafzimmer über NFC-Tags (wenn das Handy auf dem Nachtschrank liegt, dann liege ich im Bett).
Soweit dazu. Jetzt habe ich gesehen, das es man beim Roommate Modul locations setzen kann, wenn ich auch noch nicht ganz verstanden habe, wie ich ihm sage, welche locations jetzt "home" und welche "absent" sind. Allerdings gibt es wiederum beim Resident Modul keine Locations.
In meinem Fall ist es beim Wohnzimmer ja recht einfach, entweder ist das Licht an, oder eben nicht. Im Schlafzimmer oder Arbeitszimmer kann es aber gut sein, das z.B. entweder ich oder meine Frau oder wir beide anwesend sind. Also bräuchte man etwas ähnliches wie das Residents Modul für einzelne Zimmer (wobei es natürlich praktisch wäre, wenn ich auswerten könnte: 2 sind zuhause, 1 im Arbeitszimmer, >=1 im Wohnzimmer). Wie habt ihr das gelöst? Wenn ich jetzt für jedes Zimmer Residents anlegen würde, würden sie ja auch nur auswerten, ob man home oder absent ist, nicht aber ob man jetzt im Zimmer x ist...
RasPi mit HMLAN, 5x HM-SEC-SC, HM LED16 als Alarmanlagendisplay, HM-TC-IT-WM-W-EU, 4x HM-CC-RT-DN, 1x HM PBU, 1x HM PBI-4

der-Lolo

Ich glaube die meisten hier unterscheiden nicht die einzelnen räume... Das Residents-Modul kann das so auch nicht, wie Du schon bemerkt hast. Die Roommates stellen ja die Bewohner da, da teilweise mit geofancy gearbeitet wird gibt es da auch unterschiedliche Locations - z.b. Office...

selfarian

Und wie funktioniert das mit den locations? Also könnte ich z.b. sagen, es gibt die location Arbeitszimmer und wenn ich da bin, bin ich präsent? Und wenn ja, wie?
RasPi mit HMLAN, 5x HM-SEC-SC, HM LED16 als Alarmanlagendisplay, HM-TC-IT-WM-W-EU, 4x HM-CC-RT-DN, 1x HM PBU, 1x HM PBI-4

slor

Bin auch daran interessiert... und noch in der gedanklichen Planung.

Möchte in Zukunft via Bluetooth feststellen können ob sich jemand (sein Handy) im Garten, EG, OG oder DG befindet.
Dafür würde ich auf jeden Stockwerk und im Garten einen Raspi mit nem Bluetooth Dongle platzieren.

Wenn ich dann weiß wo der- oder diejenige ist, möchte ich entsprechend davon Aktionen ableiten.
Z.B. ab 22 Uhr beide Handys im OG, im EG / DG alles aus.
Alle Handys im Garten - Haustür-Klingelsignal im Garten aktivieren und Lichter im Haus aus.
Keiner mehr anwesend - Lichter aus und Heizung absenken.

Brauch ich dafür überhaupt Roommate, Residents und Co? bzw. welche Vorteile hätte ich durch diese?

selfarian

#4
Also für die Anwesenheit an sich finde ich presence und roommate ganz gut. Weil ich mir halt damit keine selbst gebastelte Lösung bauen muss in der ich dann zig Prüfungen oder notifies erstellen müsste
RasPi mit HMLAN, 5x HM-SEC-SC, HM LED16 als Alarmanlagendisplay, HM-TC-IT-WM-W-EU, 4x HM-CC-RT-DN, 1x HM PBU, 1x HM PBI-4

selfarian

So, mein Ansatz geht in die Richtung, das bestehende Residents-Modul zu verwenden, bzw. zu erweitern. Ich glaube so ganz so sauber ist es nicht.
Die Idee ist, ähnlich zu den bestehenden Readings zur An- bzw. Abwesenheit weitere Readings für die Räume zu erstellen. Das ganze habe ich im Moment in meiner 99_myUtils abgelegt und rufe es über einen notify auf. Die Funktion legt dann Readings mit dem namen room_<location> an und setzt bei jedem Aufruf die Zahl des Readings von room_<location> hoch und zieht von room_<lastlocation> eins ab (sofern es >0 ist). Als Parameter wird der aktuelle Roommate, der seine Location gewechselt hat, mitgegeben.
Hier mein code dazu, ich hoffe ich werde dafür nicht zerfleischt...:

sub changeLocation($) {
  my ($roommate) = @_;
  my $residentgroups = InternalVal($roommate,"RESIDENTGROUPS","");
  my $location = ReadingsVal($roommate, 'location', 0);
  my $locationCount = ReadingsVal($residentgroups, 'room_'.$location,0);
  $locationCount = $locationCount + 1;
  my $lastLocation = ReadingsVal($roommate, 'lastLocation', 0);
  my $lastLocationCount = ReadingsVal($residentgroups, 'room_'.$lastLocation,0);
  if ($lastLocationCount > 0) {
    $lastLocationCount = $lastLocationCount - 1;
  }
  fhem('setreading ' . $residentgroups . ' room_' . $lastLocation . ' ' . $lastLocationCount);
  fhem('setreading ' . $residentgroups . ' room_' . $location . ' ' . $locationCount);
}
RasPi mit HMLAN, 5x HM-SEC-SC, HM LED16 als Alarmanlagendisplay, HM-TC-IT-WM-W-EU, 4x HM-CC-RT-DN, 1x HM PBU, 1x HM PBI-4

der-Lolo

Vielleicht nimmst Du mal Kontakt zu Loredo, dem Author des Residents Modul auf - das könnte ja ins Mosul integriert werden, oder?