[ROOMMATE] Feature-Request

Begonnen von balli1187, 07 November 2018, 15:54:00

Vorheriges Thema - Nächstes Thema

balli1187

Hallo,

ich hätte einen kleinen Vorschlag zur Erweiterung des ROOMMATE-Moduls.
Es gibt ja bereits das Attribut rr_geofenceUUIDs für diejenigen die die Anwesenheit über Geofancy erfassen.

Ich würde mir ein ähnliches Attribut für die Erfassung über das Fritzbox-Modul wünschen, um auch dort "zusätzliche notify/DOIF/watchdog Geräte" zu vermeiden, wie es in der commandref so schön heißt ;-)
Dort könnte die MAC-Adresse eingetragen werden und dann bei Wechsel des mac_Readings in den status "inactive" das ROOMMATE-device auf absent gesetzt werden.

Ist nur ein Vorschlag aber ich denke ich bin nicht der Einzige, der die Anwesenheit über FB erkennt und das aktuell noch über ein Notify in einen dummy schreibt.

Grüße, Stephan

FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

sledge

Hmmm, vielleicht liege ich falsch, aber ich verwende dazu die PRESENCE-Devices - und komme somit ohne zusätzliche Notify usw. aus. Einfach die PRESENCE-Devices mit dem entsprechenden ROOMMATE verknüpfen wie in der Commandref beschrieben.
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

balli1187

Hm... okay
was genau gibst du im Attribut presence_device an?


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Loredo

Für Module, die ich nicht selbst maintaine, kann ich so eine Anpassung nicht machen. Das muss hauptsächlich der jeweilige Modulautor machen. Ich kann da auch nur in den Notify Loop eingreifen, was aber nicht mehr so viel Sinn macht. Auch möchte ich da keine Abhängigkeiten zu anderen Modulen pflegen.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

balli1187

Zitat von: Loredo am 07 November 2018, 16:44:33
Für Module, die ich nicht selbst maintaine, kann ich so eine Anpassung nicht machen. Das muss hauptsächlich der jeweilige Modulautor machen. Ich kann da auch nur in den Notify Loop eingreifen, was aber nicht mehr so viel Sinn macht. Auch möchte ich da keine Abhängigkeiten zu anderen Modulen pflegen.
Ich hab bisher leider noch nirgendswo lesen können, wer das Modul erstellt hat, daher kannst ich deine Antwort nicht richtig zuordnen.
Ist das ROOMMATE-Modul von dir? Dann erstmal herzlichen Dank dafür, nur verstehe ich dann deinen Post nicht.

Meine Bitte richtet sich natürlich an den Maintainer des ROOMMATE-Moduls, da nur er die Änderungen vornehmen kann.

Welchen Modulautor meinst du?


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

sledge

Zitat von: balli1187 am 07 November 2018, 16:04:54
Hm... okay
was genau gibst du im Attribut presence_device an?


Gesendet von iPhone mit Tapatalk

Das dazugehörige Presence-Device, welches ich erstellt habe. Bei mir also je Bewohner ein Presence-Device, welches auf Vorhandensein des Mobiltelefons im heimischen Netz prüft - IMHO vergleichbar zu Deinem Use-Case. Aus diesem Device übernimmt dann ROOMMATE die Anwesenheit. Klappt hervorragend und ist mittlerweile integraler Bestandteil meiner Automatisierung.

Siehe auch: https://wiki.fhem.de/wiki/PRESENCE

FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

balli1187

Ah, okay. Ich dachte du meinst das das attribut presencedevice und nicht das Modul [emoji6]
Werd ich mir mal anschauen aber meine Intention war eigentlich die Funktion über eine minimale Anzahl an Devices um zusetzen.

Mit meiner bestehenden Variante müsste ich es so ja so machen:

FritzBox-Modul  ——> notify ——> dummy ——>ROOMMATE

mit meinem Vorschlag würde ich gern auf die beiden Mittelsmänner verzichten, da die ja quasi nur da sind, um auf das Event zu reagieren und die stati passig zu übersetzen.
Vom Gefühl her sollte man dieses zweizeilige notify doch auch in das Modul integrieren können, oder?


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Loredo

Zitat von: balli1187 am 07 November 2018, 16:55:28
Ist das ROOMMATE-Modul von dir?

Das und auch das GEOFANCY Modul. Deshalb arbeiten die beiden Module eng ohne Notify zusammen. Die anderen Module können das auch integrieren, aber deren Autor bin ich nunmal nicht.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

balli1187

Hm... das kann ich einerseits halbwegs nachvollziehen aber andererseits finde ich es natürlich sehr schade.
Insbesondere, da aus meiner (laienhaften) Sicht nur das passende Mapping zwischen fritzbox (inactive, IP) und ROOMMATE (absent,present) zu ergänzen wäre. Das triggern auf ein passendes Ereignis muss ja ohnehin schon laufen.

Wenn ich übrigens als rr_presencedevice fritzbox:<mac-Adresse> eingebe, ändert das Modul auch von absent auf present, wenn ich mit meinem Telefon ins WLAN komme. Nur der Weg zurück hat in meinem kleinen Test nicht funktioniert.


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

binford6000

Moin Stephan,
ZitatNur der Weg zurück hat in meinem kleinen Test nicht funktioniert.

Das hat wohl damit zu tun, dass diese Art der PRESENCE-Erkennung recht träge ist.
Die Geräte bleiben noch eine Zeit lang present obwohl die Bewohner schon längst nicht
mehr anwesend sind.

ZitatFritzBox-Modul  ——>  notify ——>  dummy  ——>  ROOMMATE

Warum nicht so:
FritzBox-Modul  ——>  PRESENCE  ——>  ROOMMATE

Und dafür reicht auch das vorhandene Attribut rr_presencedevice  ;)

VG Sebastian

balli1187

Hallo Sebastian,
Zitat von: binford6000 am 08 November 2018, 08:05:13
Das hat wohl damit zu tun, dass diese Art der PRESENCE-Erkennung recht träge ist.
Die Geräte bleiben noch eine Zeit lang present obwohl die Bewohner schon längst nicht
mehr anwesend sind.
Ich glaube nicht, dass es an der Trägheit liegt. Der Status würde auch nach knapp 2h nicht geändert, daher tippe ich einfach darauf, dass das Modul mit den Werten des FritzBox-Readings nichts anfangen. Ich wollte es nur mal probieren, nachdem ich die erste Antwort hier auch etwas missverstanden hatte.

Ingesamt kann ich aber auch nicht sagen, dass die Variante besonders träge ist. Bei mir funktioniert es eigentlich sehr gut und hängt nur von Intervall der FB-Abfrage ab.

ZitatWarum nicht so:
FritzBox-Modul  ——>  PRESENCE  ——>  ROOMMATE

Und dafür reicht auch das vorhandene Attribut rr_presencedevice  ;)

VG Sebastian
Ja ich überlege dahin umzustellen aber die Idee war ja so wenig wie möglich "unnötige" zwischendevices zu haben. Das PRESENCE führt da ja auch nur ein Mapping zwischen den unterschiedlichen Stati aus.


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

binford6000

ZitatIngesamt kann ich aber auch nicht sagen, dass die Variante besonders träge ist. Bei mir funktioniert es eigentlich sehr gut und hängt nur von Intervall der FB-Abfrage ab.

Ich lasse die iPhones meiner Töchter als PRESENCE Device abfragen. Die sind teilweise noch 5-10 Minuten present obwohl
sie bereits das haus verlassen haben. Das FB-Intervall steht auf 60s...

ZitatJa ich überlege dahin umzustellen aber die Idee war ja so wenig wie möglich "unnötige" zwischendevices zu haben. Das PRESENCE führt da ja auch nur ein Mapping zwischen den unterschiedlichen Stati aus.

Bei PRESENCE hast du noch den Vorteil mit Threshold arbeiten zu können. Damit hast du zusätzlich "probably absent/present".
VG Sebastian

CoolTux

Zitat von: balli1187 am 08 November 2018, 08:42:57
Hallo Sebastian,Ich glaube nicht, dass es an der Trägheit liegt. Der Status würde auch nach knapp 2h nicht geändert, daher tippe ich einfach darauf, dass das Modul mit den Werten des FritzBox-Readings nichts anfangen. Ich wollte es nur mal probieren, nachdem ich die erste Antwort hier auch etwas missverstanden hatte.

Ingesamt kann ich aber auch nicht sagen, dass die Variante besonders träge ist. Bei mir funktioniert es eigentlich sehr gut und hängt nur von Intervall der FB-Abfrage ab.
Ja ich überlege dahin umzustellen aber die Idee war ja so wenig wie möglich "unnötige" zwischendevices zu haben. Das PRESENCE führt da ja auch nur ein Mapping zwischen den unterschiedlichen Stati aus.


Gesendet von iPhone mit Tapatalk
Deine Idee funktioniert aber nicht, da Roommate ausschließlich mit presence oder einem äquivalent dazu arbeitet. Sprich der Event muss entsprechend sein. Also absent oder present.
Lege ein presence Device.


Internals:
   CFGFN     
   CHANGED   
   DEF        function {checkFritzMACpresent("FritzBoxTuxNetDSL01","04:18:D6:27:5A:3F")} 30 180
   INTERVAL_NORMAL 30
   INTERVAL_PRESENT 180
   MODE       function
   NAME       presencemFimPower01
   NOTIFYDEV  global
   NR         342
   NTFY_ORDER 50-presencemFimPower01
   STATE      present
   TYPE       PRESENCE
   Helper:
     DBLOG:
       presence:
         logDbCurrent:
           TIME       1541656229.50304
           VALUE      present
   READINGS:
     2018-10-28 12:39:06   model           function
     2018-11-08 09:02:35   presence        present
     2018-11-08 09:02:35   state           present
   helper:
     CURRENT_STATE present
     call       {checkFritzMACpresent("FritzBoxTuxNetDSL01","04:18:D6:27:5A:3F")}
Attributes:
   alias      Steckdosenleiste Wohnzimmer
   event-on-change-reading presence
   group      Status
   room       EDV



sub checkFritzMACpresent($$) {
# Benötigt: Name der zu testenden Fritzbox ($Device),
#           zu suchende MAC ($MAC),
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden

  my ($Device, $MAC) = @_;
  my $present = 0;
    my $rssi = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
   
  my @value = split( ',', ReadingsVal($Device, $MAC, 0));
    ($rssi) = $value[2] =~ /(\d+)/ if (defined( $value[2] ));
   

  if( $rssi == 0 ) {
    Log3 "MACpresent", 4, "checkFritzMACpresent ($Device): $MAC nicht gefunden, abwesend.";
    $present = 0;

  } elsif ($rssi > 0 ) {
    # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät per WLAN angemeldet.
    Log3 "MACpresent", 4, "checkFritzMACpresent ($Device): $MAC gefunden.";
    $present = 1;
  }

  return $present
}


FritzBoxTuxNetDSL01 ist mein FRITZBOX Devicename
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

binford6000


balli1187

@CoolTux:

Wie gesagt.... es geht nicht darum, dass ich es nicht hinbekomme das Device einzurichten - auch wenn ich es bisher noch nicht probiert hab.

Und meine Maßnahme es einfach mal zu versuchen war darin begründet, dass ich die erste Antwort etwas fehlinterpretiert habe. Interessanterweise führt dies aber nicht zu einem Fehler und das wollte ich als Ergebnis auch mal mitteilen.


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero