Modulfamilie für Bewohner / 10_RESIDENTS 20_ROOMMATE 20_GUEST

Begonnen von Loredo, 19 Januar 2014, 23:12:34

Vorheriges Thema - Nächstes Thema

der-Lolo

Passt schon, die Roommates und Guests stehen jetzt auf 1.
Bastelst Du eigentlich noch weiter am Homestate?

mumpitzstuff

Bei mir hab ich auch alles auf Verbose 1 gesetzt.
Keine Ahnung warum mein Logfile seit neuestem mit diesen Meldungen überschwemmt wird und das früher nicht der Fall war. Wenn ich raten müsste, würde ich sagen, dass das PRESENCE Modul seit neuestem irgend was anders macht und deshalb auch diese Meldungen von den ROOMMATES bei mir im Log auftauchen (erscheinen immer direkt nach den neuen Meldungen des PRESENCE Moduls). Die Zusammenhänge sind mir hierzu leider nicht bekannt.

TWART016

#632
Ich habe in meiner Geofancy App den Status home und work, welcher auch korrekt an das Residence Modul übertragen wird.

Wie bekomme ich es hin, dass es ein Event gibt, wenn ich diese Zone verlasse?

Edit: Ziel ist ein Event beim Verlassen von Work

Loredo

In der Geofency App gibt es zwei Slider, einen für das Event "ankommen" und einen für "verlassen". Du solltest beide einschalten und dann gibts auch beide Events in FHEM.
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

TWART016

Ich habe bei beiden den Button aktiviert.

In geofancy Modul erscheint auch ein underway Event (Reading: currLoc_rr_Name). Dieses wird jedoch nicht ins das Roommate Modul übernommen.

Loredo

Du musst rr_geofenceUUIDs beim ROOMMATE Device setzen, wenn du den Status automatisch übernehmen willst.
Ansonsten musst du selbst mit entsprechenden Notify/DOIF Regeln arbeiten.
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

klausw

Hallo Julian,

ich bin dabei, für das livetracking Modul einen connector für die ROOMMATE/GUEST Module (via RESIDENTStk_SetLocation) zu bauen.

Dabei sind ein paar Fragen aufgetreten:

livetracking gibt zum einen den Abstand zur Home Position aus.
Mit diesem Abstand und zwei Attributen (homeradius uns wayhomeradius) setze ich über RESIDENTStk_SetLocation die $location abhängig von den eben genannten Werten auf
home|wayhome|underway

Je nach Einstellung kommen die Positionsdaten recht häufig. Für home und underway scheint das kein Problem zu sein.
Für wayhome schon.

Ein Wechsel von home nach wayhome funktioniert ohne Probleme
Wenn ich jetzt aber noch einmal wayhome über RESIDENTStk_SetLocation setze wird das Reading wayhome auf 1 gesetzt ($trigger ist immer 1).

Das ganze würde funktionieren, wenn ich $trigger beim wiederholten setzen von wayhome auf 0 setze. Dann geht allerdings locationPresence auf abwesend (aber ich bin ja noch in dieser location)

Habe ich einen Denkfehler drin?

Klaus
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Loredo

#637
Ich kann dir da glaube ich nicht ganz folgen.


Ein direkter Wechsel von home nach wayhome macht irgendwie keinen Sinn, dazwischen wird der Logik nach immer ein "underway" erwartet.
"wayhome" ist eigentlich nur eine spezielle Unterart von "underway", bei der das _verlassen_ eines speziellen Ortes so gewertet wird, dass man sich anschließend auf dem (mehr oder weniger) direkten Weg nach Hause befindet. Dann wird das Reading "wayhome" auf 1 gesetzt, bis man durch ein "home" Event tatsächlich zuhause ankommt (egal, ob man noch Zwischenstationen macht).


So sollte sich das ganze auch aktuell mit dem GEOFANCY Modul verhalten.


Hast du mal ins Log geschaut? RESIDENTStk ist da sehr gesprächig ab verbose level 3.
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

TWART016

#638
Ich überwache 2 Smartphones. Beide sind in geofancy und Residents integriert. Ein Smartphone hat 2 Zonen, home und work. Sobald ich work oder home verlasse, wird der Status korrekterweise im geofancy Modul auf underway gesetzt. Nur ins Roommate Device wird das nicht übernommen.

Edit: rr_geofenceUUIDs habe ich gesetzt, work und home wird auch korrekt übertragen.

Ich habe das Roommate Device mal auf verbose 3 gestellt.

kadettilac89

ich denke es geht um das verhalten von location und presence











<Aktion>            <Wert location>      <Wert presence>     <gewünschter wert eines Readings>
Home betretenhomepresencehome
Home verlassenhomeabsenceaway
Work betretenworkabsencework
Work verlassenworkabsenceaway

Ich hatte mir das Verhalten mit einem User-Readings gebaut.

https://forum.fhem.de/index.php/topic,98015.msg916438.html#msg916438

Wenn es um was anderes geht ... List der Devices und gewünschtes Verhalten dokumentieren

klausw

Zitat von: Loredo am 08 März 2019, 19:43:02
Ein direkter Wechsel von home nach wayhome macht irgendwie keinen Sinn, dazwischen wird der Logik nach immer ein "underway" erwartet.
"wayhome" ist eigentlich nur eine spezielle Unterart von "underway", bei der das _verlassen_ eines speziellen Ortes so gewertet wird, dass man sich anschließend auf dem (mehr oder weniger) direkten Weg nach Hause befindet. Dann wird das Reading "wayhome" auf 1 gesetzt, bis man durch ein "home" Event tatsächlich zuhause ankommt (egal, ob man noch Zwischenstationen macht).


So sollte sich das ganze auch aktuell mit dem GEOFANCY Modul verhalten.


Hast du mal ins Log geschaut? RESIDENTStk ist da sehr gesprächig ab verbose level 3.

Prinzipiell hast du recht.
Wayhome war für mich ein Bereich, der Home in größerem Radius umschließt und bei dem das Wayhome Reading gesetzt wird, sobald man den von "außen" betritt. Also nicht mal, das es als Location angezeigt wird.
Ich hatte die logik dazu im RESIDENTStk vermutet (aufgrund dieses Satzes: "Immer wenn eine Lokation mit dem Namen 'wayhome' gesetzt wird, wird das Reading 'wayhome' auf '1' gesetzt, sofern die Anwesenheit zu diesem Zeitpunkt 'absent' ist.").
Ins Log habe ich nicht geschaut, Deine Erklärung lässt im Moment sowieso keine Fragen offen  ;)
Das kann ich aber ebenso in den connector einbauen.

Zwei Fragen habe ich noch:

  • Ich würde gern, Abhängig von der Entfernung zu Home, den Status direkt auf verreist setzen. Also ohne Wartezeit. Ab 300km ist ein Tagesausflug nicht mehr so üblich  8)
    Gibt der RESIDENTStk das her?
  • position.* und lastPosition.* sind klar für mich
    wann sollten die location.* Readings gesetzt werden?
    nur bei betreten oder verlassen einer location? Oder auch bei Aktualisierung innerhalb einer Location?

Danke
Klaus






RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Jamo

Hi Klaus,
für deinen ersten Punkt, probier mal das hier:

##########################################################
# Calculate distance between two geocoordinates
##########################################################
sub calcDistkm ($$$$) {
  my($latNew,$lonNew,$latOld,$lonOld) = @_;
  #Entfernung zur Home-Koordinate (Luftlinie)
  #Berechnung nach: https://urldefense.proofpoint.com/v2/url?u=https-3A__www.kompf.de_gps_distcalc.html&d=DwICAg&c=aUq983L2pue2FqKFoP6PGHMJQyoJ7kl3s3GZ-_haXqY&r=fjkjtP90XwgwsFiC-zb01AeZ1ffjVVSXDnDyxQOtlCw&m=2E21LZkstx_fHrSuJ14UVHFNwuqW_c-9POHdUq-QuGI&s=h4xM_iBweT-_GlHSZVvpQiGevgDfVaUY4w0hHv_Vs3o&e=
  # Verbesserte Methode
  my $lat = ($latNew + $latOld) / 2 * 0.01745;
  my $dx = 111.3 * cos($lat) * abs($lonNew - $lonOld);
  my $dy = 111.3 * abs($latNew - $latOld);

  #Einfache Variante
  #my $dx =  71.5 * abs($lonNew - $lonNew);
  #my $dy = 111.3 * abs($latNew - $latOld);

  my $distance = sprintf("%.2f",sqrt($dx * $dx + $dy * $dy));
  return $distance;
}
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

klausw

Hi inoma

Zitat von: inoma am 12 März 2019, 14:28:10
für deinen ersten Punkt, probier mal das hier:

danke Dir, das kommt in meine Codesammlung

Hat aber nix mit meiner Frage zu tun  8)
Die Entfernung habe ich. Ich möchte nur den Status auf verreist (gone) setzen.
Derzeit mache ich das mit fhem "set $deviceAlias gone";
Funktioniert, ist aber nicht die sauberste Lösung

Klaus
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Loredo

Zitat von: klausw am 11 März 2019, 10:06:40

       
  • Ich würde gern, Abhängig von der Entfernung zu Home, den Status direkt auf verreist setzen. Also ohne Wartezeit. Ab 300km ist ein Tagesausflug nicht mehr so üblich  8)
    Gibt der RESIDENTStk das her?


Derzeit nicht. Es gibt ja aber das Reading positionDistHome und das ist genau dafür gedacht.
Von der Entfernung abhängige Aktionen sind bisher nicht geplant, dafür gibt es ja DOIF und notify, um dann beispielsweise auf ein Reading mit der Entfernung entsprechend zu reagieren. Da kannst du selbstverständlich auch von away auf gone wechseln, wenn du das willst. Das ist Teil deiner eigenen Automatisierung, nicht der von RESIDENTS.


Zitat von: klausw am 11 März 2019, 10:06:40[size=78%] [/size]

       
  • position.* und lastPosition.* sind klar für mich
    wann sollten die location.* Readings gesetzt werden?
    nur bei betreten oder verlassen einer location? Oder auch bei Aktualisierung innerhalb einer Location?


Der Unterschied zwischen Location und Position ergibt sich darauf, wie Geofency die Daten liefert.
Dort wird beim ankommen/verlassen einer Location zusätzlich die aktuelle Position und auch deren Adresse übermittelt. Wenn ich also beispielsweise in den Radius von "home" eintrete und damit "home" feuert, dann unterscheidet sich die tatsächliche Position von der eigentlichen Location. Position ist also immer mein tatsächlicher Aufenthaltsort und Location der gewollte Ort, an dem das Geofencing eingestellt wurde. Für einen Vergleich schlage ich vor, dass du dir Geofency einmal installierst.
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

klausw

Zitat von: Loredo am 13 März 2019, 22:49:45

Derzeit nicht. Es gibt ja aber das Reading positionDistHome und das ist genau dafür gedacht.
Von der Entfernung abhängige Aktionen sind bisher nicht geplant, dafür gibt es ja DOIF und notify, um dann beispielsweise auf ein Reading mit der Entfernung entsprechend zu reagieren. Da kannst du selbstverständlich auch von away auf gone wechseln, wenn du das willst. Das ist Teil deiner eigenen Automatisierung, nicht der von RESIDENTS.

Ok, habe es erstmal anderweitig gelöst.

Ein zu autoGoneAfter adäquates Attribut für die Entfernung wäre Grundsätzlich vielleicht doch keine Schlechte Idee


Zitat von: Loredo am 13 März 2019, 22:49:45
Der Unterschied zwischen Location und Position ergibt sich darauf, wie Geofency die Daten liefert.
Dort wird beim ankommen/verlassen einer Location zusätzlich die aktuelle Position und auch deren Adresse übermittelt. Wenn ich also beispielsweise in den Radius von "home" eintrete und damit "home" feuert, dann unterscheidet sich die tatsächliche Position von der eigentlichen Location. Position ist also immer mein tatsächlicher Aufenthaltsort und Location der gewollte Ort, an dem das Geofencing eingestellt wurde. Für einen Vergleich schlage ich vor, dass du dir Geofency einmal installierst.

Verstanden. Das gibt Owntracks so nicht her. Da gibt es nur die Position oder Betreten/Verlassen einer Zone als Nachricht. Demzufolge sind Location und Position identisch. Das ist meiner Meinung nach aber kein Problem.


Danke für die Infos
Klaus
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280