Zusammenarbeit ROOMMATE und EgiGoZoneBT mit mehreren iBeacon

Begonnen von andreas_n, 28 Juli 2018, 13:22:01

Vorheriges Thema - Nächstes Thema

andreas_n

Hallo

Situation
Im Haus sind mehrere iBeacons verteilt die die jeweilige Position via EgiGoZone an ROOMMATE melden
Ich habe die Verbindung zwischen den Modulen mit dem Parameter via rr_geofenceUUIDs geschaften.
Alle home-Zonen wurden im ROOMMATE Parameter rr_locationHome angegeben


Problem
Findet ein Wechsel zwischen einer IBeaconzone in eine Andere statt wird u.a das Reading von present auf absent gesetzt.
Meldet sich die neue Zone an bevor die alte Zone veschwindet (normalfall) bleibt der Status auf absent.

Es wäre allerdings schön wenn der Status dauerhaft auf home und present bleibt.
Gibt es hierfür eine smarte Lösung?

Loredo

Für so ein Szenario darfst du nur die Entry Events in der Geofencing App einstellen, keine Exit Events.
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

andreas_n

Ja das daran hatte ich auch gedacht und versucht. (Es war ja auch so in dem Beispiel).
Dies geht wohl nicht bei EgiGoZone (Android)- jedenfalls reagiert Fhem nicht darauf. Wahrscheinlich wird nicht das volle Datentelegramm übertragen. (Vermutung)
Irgendwelche speziellen Einstellungen innerhalb von ROOMMATE gibt es nicht.. jedenfalls kann ich nichts finden.


andreas_n

Meine beste Idea dazu ist, die Verbindung zwischen Roommate und Geofancy zu lösen.(rr_geofenceUUIDs)
Danach müste ein notify die entsprechende Auswertung durchführen.
Etwas umständlich aber mit fällt nichts besseres ein.
Oder liege ich da falsch?

andreas_n

#4
So habe ich es gelöst..
Evt nicht der beste Weg aber so gehts erstmal.
Anm.: Ich habe nur Beacons im Hause liegen. Zudem gibt es eine Zone work


geo:currLoc_Andreas.* {
  my $action  = ReadingsVal($NAME,"Andreas","");
  if (index($action,'arrived')>=0 ||
      index($action,'home')>=0 ||
      index($action,'work')>=0 ) {
      fhem("setreading rr_Andreas location $EVTPART1");;
  } else {
     Log 2,"Ignore $NAME $EVTPART0 $EVTPART1 ($action)";;
  }
}



Schade ist nur das EgiGeoZone nicht mehr maintained wird....