Owntracks - Residents [gelöst]

Begonnen von rallye, 12 November 2018, 16:43:28

Vorheriges Thema - Nächstes Thema

rallye

Hallo livetracking- & fhem-Experten !

Ich hatte meine Heizungssteuerung mit RESIDENTS und Geofency soweit am Laufen, bis das Geofency aus der Wartung ging. Mir wurde "Owntracks" empfohlen. So machte ich mich dran MQTT und Mosquitto zu implementieren. Funktioniert alles soweit, nur den Link zu Residents bekomme ich nicht hin. Klaus(w) hätte da zwar eine Erweiterung zu livetracking  ;D, Markus möchte sie aber lieber nicht einbauen  :(
Nun würde ich als alternative gerne ein DOIF verwenden um den Residents-Status zu setzen, bin aber zu blöd dazu und bitte euch mir auf die Sprünge zu helfen.

Hier meine Listings:
Internals:
   IODev      mosquitto
   NAME       SamsungS7
   NR         215
   STATE      location
   TYPE       MQTT_DEVICE
   qos        *:1
   .attraggr:
   .attreocr:
     samsungS7
     event
   .attrminint:
   .qos:
     *          1
   .retain:
     *          0
   READINGS:
     2018-11-08 17:17:08   cmd             {"_type":"cmd","action":"reportLocation"}
     2018-11-12 16:14:43   event           {"_type":"transition","tid":"S7","acc":60.0,"desc":"home","event":"enter","lat":48.1864981,"lon":16.1239544,"tst":1542035681,"wtst":1541606865,"t":"c"}
     2018-11-12 16:18:47   samsungS7       {"_type":"location","tid":"S7","acc":12,"batt":43,"conn":"m","lat":48.1828921,"lon":16.0893263,"tst":1542035926}
     2018-11-12 16:18:47   transmission-state incoming publish received
   message_ids:
   publishSets:
     cmd:
       topic      owntracks/Nici/samsungS7/cmd
       values:
     msg:
       topic      owntracks/Nici/samsungS7/msg
       values:
   sets:
     cmd       
     msg       
   subscribe:
     owntracks/Nici/samsungS7/beacon
     owntracks/Nici/samsungS7/cmd
     owntracks/Nici/samsungS7/dump
     owntracks/Nici/samsungS7/event
     owntracks/Nici/samsungS7/msg
     owntracks/Nici/samsungS7
     owntracks/Nici/samsungS7/step
     owntracks/Nici/samsungS7/waypoints
   subscribeExpr:
     ^owntracks\/Nici\/samsungS7\/beacon$
     ^owntracks\/Nici\/samsungS7\/cmd$
     ^owntracks\/Nici\/samsungS7\/dump$
     ^owntracks\/Nici\/samsungS7\/event$
     ^owntracks\/Nici\/samsungS7\/msg$
     ^owntracks\/Nici\/samsungS7$
     ^owntracks\/Nici\/samsungS7\/step$
     ^owntracks\/Nici\/samsungS7\/waypoints$
   subscribeQos:
     owntracks/Nici/samsungS7 0
     owntracks/Nici/samsungS7/beacon 0
     owntracks/Nici/samsungS7/cmd 0
     owntracks/Nici/samsungS7/dump 0
     owntracks/Nici/samsungS7/event 0
     owntracks/Nici/samsungS7/msg 0
     owntracks/Nici/samsungS7/step 0
     owntracks/Nici/samsungS7/waypoints 0
   subscribeReadings:
     owntracks/Nici/samsungS7:
       cmd       
       name       samsungS7
     owntracks/Nici/samsungS7/beacon:
       cmd       
       name       beacon
     owntracks/Nici/samsungS7/cmd:
       cmd       
       name       cmd
     owntracks/Nici/samsungS7/dump:
       cmd       
       name       dump
     owntracks/Nici/samsungS7/event:
       cmd       
       name       event
     owntracks/Nici/samsungS7/msg:
       cmd       
       name       msg
     owntracks/Nici/samsungS7/step:
       cmd       
       name       step
     owntracks/Nici/samsungS7/waypoints:
       cmd       
       name       waypoints
Attributes:
   IODev      mosquitto
   event-on-change-reading samsungS7,event
   group      Mobiltelefon
   icon       it_smartphone@red
   publishSet_cmd owntracks/Nici/samsungS7/cmd
   publishSet_msg owntracks/Nici/samsungS7/msg
   qos        at-least-once
   room       Steuerung
   sortby     2
   stateFormat location
   subscribeReading_beacon owntracks/Nici/samsungS7/beacon
   subscribeReading_cmd owntracks/Nici/samsungS7/cmd
   subscribeReading_dump owntracks/Nici/samsungS7/dump
   subscribeReading_event owntracks/Nici/samsungS7/event
   subscribeReading_msg owntracks/Nici/samsungS7/msg
   subscribeReading_samsungS7 owntracks/Nici/samsungS7
   subscribeReading_step owntracks/Nici/samsungS7/step
   subscribeReading_waypoints owntracks/Nici/samsungS7/waypoints


Internals:
   CHANGED   
   NAME       TrackNici
   NOTIFYDEV  SamsungS7
   NR         217
   NTFY_ORDER 999-TrackNici
   STATE      3.1
   TYPE       livetracking
   .attraggr:
   .attrminint:
   READINGS:
     2018-11-12 16:18:47   .lastOwnTracks  1542035926
     2018-11-12 16:18:46   accuracy        12
     2018-11-12 16:18:46   batteryPercent  43
     2018-11-12 16:18:46   batteryState    ok
     2018-11-12 16:18:46   connection      mobile
     2018-11-12 16:18:46   distance        3.1
     2018-11-12 16:18:46   id              S7
     2018-11-12 16:18:46   location        48.1828921,16.0893263
     2018-11-12 16:14:41   place           home
     2018-11-12 16:14:41   zone_0          active
     2018-11-12 15:40:12   zone_1          inactive
   helper:
     lastOwnTracks 1542035926
Attributes:
   batteryWarning 20
   comment    {(split(' ',ReadingsNum("TrackNici","distance",0)))[0]}
   filterAccuracy 400
   home       48.2106721,16.086056
   owntracksDevice SamsungS7
   room       Residents
   roundAltitude 5
   roundDistance 0.1
   sortby     2
   stateFormat distance
   verbose    5
   zonename_0 home
   zonename_1 office


und

Internals:
   AUTOGONE   1542060925
   DEF        rgr_Residents,rgr_Parents
   DURATIONTIMER 1542036806.9539
   NAME       rr_Nici
   NOTIFYDEV  global,
   NR         151
   NTFY_ORDER 50-rr_Nici
   READY      1
   RESIDENTGROUPS rgr_Residents,rgr_Parents
   STATE      absent
   TYPE       ROOMMATE
   .attraggr:
   .attrminint:
   READINGS:
     2018-11-12 16:32:26   durTimerAbsence 09:17:01
     2018-11-12 16:32:26   durTimerAbsence_cr 557
     2018-11-12 07:15:25   durTimerPresence 00:00:00
     2018-11-12 07:15:25   durTimerPresence_cr 0
     2018-02-05 16:38:37   durTimerSleep   00:00:00
     2018-02-05 16:38:37   durTimerSleep_cr 0
     2018-11-11 21:16:54   lastArrival     2018-11-11 21:16:54
     2018-11-12 07:15:25   lastDeparture   2018-11-12 07:15:25
     2018-11-11 21:16:54   lastDurAbsence  08:05:37
     2018-11-11 21:16:54   lastDurAbsence_cr 486
     2018-11-12 07:15:25   lastDurPresence 09:58:31
     2018-11-12 07:15:25   lastDurPresence_cr 599
     2018-11-12 07:15:25   lastLocation    home
     2018-10-04 15:14:15   lastLocationAddr -
     2018-10-04 15:14:15   lastLocationLat 48.2106761
     2018-10-04 15:14:15   lastLocationLong 16.0860662
     2018-11-12 07:15:25   lastMood        calm
     2018-11-12 07:15:25   lastState       home
     2018-11-12 07:15:25   location        office
     2018-10-19 17:49:09   locationAddr    -
     2018-10-19 17:49:09   locationLat     48.2106967
     2018-10-19 17:49:09   locationLong    16.0860459
     2018-10-19 17:49:09   locationPresence present
     2018-11-12 07:15:25   mood            -
     2018-11-12 07:15:25   presence        absent
     2018-11-12 07:15:25   state           absent
     2018-11-09 13:16:19   wayhome         0
   TIMER:
     rr_Nici_AutoGone:
       HASH       rr_Nici
       MODIFIER   AutoGone
       NAME       rr_Nici_AutoGone
     rr_Nici_DurationTimer:
       HASH       rr_Nici
       MODIFIER   DurationTimer
       NAME       rr_Nici_DurationTimer
Attributes:
   alias      Nici
   devStateIcon .*home:user_available@green:absent .*absent:user_away@orange:home .*gone:user_ext_away@red:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
   group      Bewohner
   icon       people_sensor
   room       Residents
   rr_autoGoneAfter 16
   rr_geofenceUUIDs TrackNici
   rr_locationHome home
   rr_locationUnderway office
   rr_locationWayhome office
   rr_locations home,office
   rr_realname group
   rr_states  home,absent,gone
   sortby     2
   webCmd     state


Das u.a. DOIF sollte den Status für rr_Nici entsprechend setzen - aber offensichtlich frage ich etwas falsches ab ...
Internals:
   CFGFN     
   DEF        (["SamsungS7:enter"]) (set rr_Nici location [TrackNici:place]) DOELSEIF (["SamsungS7:leave"]) (set rr_Nici location underway)
   MODEL      FHEM
   NAME       Nici_ComingHome_LeavingHome
   NR         611
   NTFY_ORDER 50-Nici_ComingHome_LeavingHome
   STATE      initialized
   TYPE       DOIF
   .attraggr:
   .attrminint:
   READINGS:
     2018-11-12 16:41:51   cmd             0
     2018-11-12 16:41:51   mode            enabled
     2018-11-12 16:41:51   state           initialized
   Regex:
     cond:
       :
         0:
           "SamsungS7:enter" SamsungS7:enter
         1:
           "SamsungS7:leave" SamsungS7:leave
   condition:
     0          ::EventDoIf('SamsungS7',$hash,'enter',0)
     1          ::EventDoIf('SamsungS7',$hash,'leave',0)
   devices:
   do:
     0:
       0          set rr_Nici location [TrackNici:place]
     1:
       0          set rr_Nici location underway
     2:
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   itimer:
   uiState:
   uiTable:
Attributes:


Bitte um Hilfe
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

binford6000

#1
Hallo statler,
mein DOIF dazu sieht so aus:
(["$SELF:switch: enter"] or ["owntracks:enter"])
({
   my @pos=split(/,/,ReadingsVal('iphone.otrp','location',''));
   my $place=ReadingsVal('iphone.otrp','place','');
   fhem("set Wohnung location [iphone.otrp:place]");
   fhem("set rr_Sebastian location [iphone.otrp:place]");
   fhem("set locations.RH add [iphone.otrp:place]");
   fhem("setreading rr_Sebastian locationLat $pos[0]");
   fhem("setreading rr_Sebastian locationLong $pos[1]");
   fhem("set Sebastian.DUM present") if ("$place" eq "home");
       fhem("defmod -temporary atTmpHomeCMD_antiFlap_rr_Sebastian at +00:05:00 set Sebastian.DUM absent") if ("$place" eq "home");
       Log(1, "Standort-Logik bei enter - Standort: [iphone.otrp:place].");
})
DOELSEIF (["$SELF:switch: leave"] or ["owntracks:leave"])
({
       my $loc=ReadingsVal('rr_Sebastian','location','');
   my @pos=split(/,/,ReadingsVal('iphone.otrp','location',''));
   fhem("set Wohnung location underway") if ($loc !~ /home/);
   fhem("set rr_Sebastian location underway") if ($loc !~ /home/);
   fhem("set locations.RH add underway");
   fhem("setreading rr_Sebastian lastLocationLat $pos[0]");
   fhem("setreading rr_Sebastian lastLocationLong $pos[1]");
   Log(1, "Standort-Logik bei leave - [iphone.otrp:place].");
})


Es reagiert auf die owntracks events enter und leave und schreibt dann ein paar readings
aus dem livetracking device in meinen ROOMMATE. Wohnung ist ein HOMEMODE device.

EDIT: Mein DOIF hat noch attr wait 2:2 gestezt.

VG Sebastian

rallye

Danke Sebastian ! Werde mich diese Woche mal dran machen und deine "Vorlage" an meine Installation anpassen. Melde mich dann in den nächsten Tagen.
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

rallye

Hallo Sebastian, hab mich mal drangesetzt... Kannst mir bitte auch sagen was "iphone.otrp" ist - habe selbst nur Androiden. Danke

LG Statler
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

binford6000

Das ist mein livetracking device.
VG Sebastian


Gesendet von iPhone mit Tapatalk

rallye

Danke, Sebastian - so funktioniert es !

LG Statler
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

rallye

#6
Hallo Sebastian,
dein u.a. DOIF funktioniert (auf meine Installation angepasst) seit Monaten einwandfrei. Doch zu meinem Verständnis bitte eine Erklärung:
Wozu brauche ich das ["$SELF:switch: enter"] bitte ??
Zitat von: binford6000 am 12 November 2018, 20:25:42
Hallo statler,
mein DOIF dazu sieht so aus:
(["$SELF:switch: enter"] or ["owntracks:enter"])
({
   my @pos=split(/,/,ReadingsVal('iphone.otrp','location',''));
   my $place=ReadingsVal('iphone.otrp','place','');
   fhem("set Wohnung location [iphone.otrp:place]");
   fhem("set rr_Sebastian location [iphone.otrp:place]");
   fhem("set locations.RH add [iphone.otrp:place]");
   fhem("setreading rr_Sebastian locationLat $pos[0]");
   fhem("setreading rr_Sebastian locationLong $pos[1]");
   fhem("set Sebastian.DUM present") if ("$place" eq "home");
       fhem("defmod -temporary atTmpHomeCMD_antiFlap_rr_Sebastian at +00:05:00 set Sebastian.DUM absent") if ("$place" eq "home");
       Log(1, "Standort-Logik bei enter - Standort: [iphone.otrp:place].");
})
DOELSEIF (["$SELF:switch: leave"] or ["owntracks:leave"])
({
       my $loc=ReadingsVal('rr_Sebastian','location','');
   my @pos=split(/,/,ReadingsVal('iphone.otrp','location',''));
   fhem("set Wohnung location underway") if ($loc !~ /home/);
   fhem("set rr_Sebastian location underway") if ($loc !~ /home/);
   fhem("set locations.RH add underway");
   fhem("setreading rr_Sebastian lastLocationLat $pos[0]");
   fhem("setreading rr_Sebastian lastLocationLong $pos[1]");
   Log(1, "Standort-Logik bei leave - [iphone.otrp:place].");
})


Es reagiert auf die owntracks events enter und leave und schreibt dann ein paar readings
aus dem livetracking device in meinen ROOMMATE. Wohnung ist ein HOMEMODE device.

EDIT: Mein DOIF hat noch attr wait 2:2 gestezt.

VG Sebastian

Danke für die Erleuchtung ! LG Statler
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

binford6000

ZitatWozu brauche ich das ["$SELF:switch: enter"] bitte ??

Das war zu Testzwecken noch im DOIF drin. Damit wird das DOIF selbst ausgelöst.

VG Sebastian

rallye

Also wie ich vermutet habe zum "produktiven" Einsatz nicht notwendig. Danke.
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor