Modul: 98_livetracking - Geokoordinaten von OwnTracks / Life360 / Swarm (4Sq)

Begonnen von Markus M., 22 Mai 2015, 02:01:46

Vorheriges Thema - Nächstes Thema

Baumi

Zitat von: Markus M. am 17 Januar 2016, 21:34:49
ROOMMATE / GUEST nutze ich nicht, kann das bei Bedarf aber gerne einbauen.

Meine Anwesenheitserkennung baut auf ROOMMATE auf, und am Wochenende werde ich wohl mal Owntracks und dieses Modul hier einbauen. Insofern wäre ich auf jeden Fall an einer direkten Kommunikation der beiden Module interessiert. :-)

sl12

Ich habe festgestellt das owntracks eine cmd API hat, mit der man sich auf anfrage die aktuelle Position senden lassen kann.

Besteht Interesse sowas in das Modul einzubauen?

PS: Ich wäre auch an eine Anbindung an ROOMMATE interessiert.

regenbieger

Hi ich setze owntracks<=>cloudMQTT<=>LAN RPI2 mit Mosquitto und FHEM ein.
Klappt super!!! Danke für die klasse Idee und die Umsetzung
- ein Filter auf die Genauigkeit(acc) der Werte wäre prima.
- Das Modul lief erst nachdem ich ein use JSON; in Zeile 20 geschmissen hatte.
- Im Log stehen öfters folgende Einträge:WRONG TYPE $VAR1 = 'XXXX: {"_type":"lwt","tst":1453206697}';
   da wird wohl das mqtt Testament nicht ignoriert oder interpretiert.
- die owntracks api bietet noch mehr als cmd ich werde gerne testen wenn jemand was in die Richtung weiter frickelt.
Zur Darstellung für jemand der kein Googleoris DEV Key haben muss für 3 Schmartphons einen weblink definieren mit dem Inhalt (natürlich n bischen anpassen):

htmlCode {'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function LoadGmaps() {
var myLatlng = new google.maps.LatLng('.ReadingsVal('tracking1','location','').');
var myLatlng1 = new google.maps.LatLng('.ReadingsVal('tracking2','location','').');
var myLatlng2 = new google.maps.LatLng('.ReadingsVal('tracking3','location','').');
var myOptions = {
zoom: 16,
center: myLatlng,
disableDefaultUI: true,
panControl: false,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
},

mapTypeControl: false,
streetViewControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("MyGmaps"), myOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"Mob1 '.ReadingsTimestamp('tracking1','location','').'"
});
var marker = new google.maps.Marker({
position: myLatlng1,
map: map,
title:"Mob2 '.ReadingsTimestamp('tracking2','location','').'"
});
var marker = new google.maps.Marker({
position: myLatlng2,
map: map,
title:"Mob3 '.ReadingsTimestamp('tracking3','location','').'"
});
}
</script>
</head>
<body onload="LoadGmaps()" onunload="GUnload()">
<!-- Maps DIV : you can move the code below to where you want the maps to be displayed -->
<div id="MyGmaps" style="width:300px;height:300px;border:1px solid #CECECE;"></div>
<!-- End of Maps DIV -->
</body>
</html>'}


Ich recherchiere zur Zeit die Darstellung über OpenStreetMaps, sollte fast genau so einfach gehen und ist nicht so goggelastig.
mfg bei nun:
Outside Temperature    -9,6°C
;)
FHEM und WEEWX auf Raspberry

klausw

Zitat von: Markus M. am 16 Januar 2016, 01:00:08
Update im ersten Post, wie gewünscht ;)
zonname_n sollte mit Regex funktionieren, um beispielsweise mehrere Zonen zu einer zusammenfassen zu können.
Das wird dann interessant wenn du dir ne iBeacon in jeden Raum stellst.
Gib mal Bescheid ob es funktioniert.
Danke, bin leider erst jetzt zum Testen gekommen.
Ich habe zonename_0 und 1 definiert. Dabei habe ich die gleichen Bezeichnungen wie in Owntracks verwendet.
Die Events werden auf dem Handy angezeigt (z.B. Device... enters name)
Aber es wird kein Reading angelegt.
Handy läuft mit Android, du hast nen Apfel glaube ich, evtl. gibt es da Unterschiede?

ROOMMATE / GUEST ... nutze ich noch nicht, aber wenn es ins Modul integriert wird wäre das was für mich.

Es lassen sich auch Nachrichten an das Owntracks auf dem Handy schicken. Ich habe das mit NodeRed mal getestet:
{ "payload": { "_type": "msg", "title": "Versuch", "desc": "nur ein Test", "icon": "fa-smile-o", "prio": 2, "tst": 1453240874.183, "ttl": 120 }, "_msgid": "7e4d542a.81b2ac" }

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

Markus M.

Zitat von: regenbieger am 19 Januar 2016, 23:01:01- ein Filter auf die Genauigkeit(acc) der Werte wäre prima.
Alles bei Werten > X Meter ignorieren? Probier die neue Version aus.

Zitat- Das Modul lief erst nachdem ich ein use JSON; in Zeile 20 geschmissen hatte.
Oops, sorry :) Nachgetragen.

Zitat- Im Log stehen öfters folgende Einträge:WRONG TYPE $VAR1 = 'XXXX: {"_type":"lwt","tst":1453206697}';
   da wird wohl das mqtt Testament nicht ignoriert oder interpretiert.
Doch, nur dummerweise mit Loglevel 3... Jetzt 5.

Zitat- die owntracks api bietet noch mehr als cmd ich werde gerne testen wenn jemand was in die Richtung weiter frickelt.
Aktuell leider keine Zeit mir das anzusehen. Wenn jemand einen Ansatz sieht, immer her damit.


ZitatZur Darstellung für jemand der kein Googleoris DEV Key haben muss für 3 Schmartphons einen weblink definieren mit dem Inhalt (natürlich n bischen anpassen)

Cool! Wenn ich grade nen Plan hätte wie ich eine anständige History im Modul bekomme, würde ich sowas bei Gelegenheit direkt mit einbauen.

ZitatIch recherchiere zur Zeit die Darstellung über OpenStreetMaps, sollte fast genau so einfach gehen und ist nicht so goggelastig.

Ich möchte definitiv Google, und zwar mit der coolen neuen Google Maps Roads API :)
Aktuell weder Smarthome noch FHEM vorhanden

Markus M.

Zitat von: klausw am 19 Januar 2016, 23:04:27
Danke, bin leider erst jetzt zum Testen gekommen.
Ich habe zonename_0 und 1 definiert. Dabei habe ich die gleichen Bezeichnungen wie in Owntracks verwendet.
Die Events werden auf dem Handy angezeigt (z.B. Device... enters name)
Aber es wird kein Reading angelegt.
Handy läuft mit Android, du hast nen Apfel glaube ich, evtl. gibt es da Unterschiede?

Kannst mal posten was bei höchstem Loglevel aus MQTT rauskommt?
Aktuell weder Smarthome noch FHEM vorhanden

klausw

Zitat von: Markus M. am 20 Januar 2016, 01:55:37
Kannst mal posten was bei höchstem Loglevel aus MQTT rauskommt?
Hmm schwieriger als erwartet: beim Ein-/Austritt werden die Events mit Uhrzeit im Infobereich des Handys angezeigt. Allerdings wird keine Botschaft über MQTT abgesetzt.
Ich finde aber auch keine Option mit der ich das Aktivieren kann.
Läuft das hier bei jemandem mit einem Android Handy?
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

Markus M.

Ich habe bei meinen Zonen eine Checkbox "Share".
Hast du die aktiviert?
Funktioniert dir Kommunikation grundsätzlich?
Aktuell weder Smarthome noch FHEM vorhanden

klausw

Zitat von: Markus M. am 20 Januar 2016, 12:41:17
Ich habe bei meinen Zonen eine Checkbox "Share".
Hast du die aktiviert?
Funktioniert dir Kommunikation grundsätzlich?
Das kommt im FHEM Log an:
2016.01.20 12:43:59 4: tracking OwnTracks: 2016-01-20 12:43:55  {"_type":"location","lat":50.1376864,"lon":8.5951924,"tst":1453290235,"acc":1057,"batt":78,"tid":"m7"}
Ja, share ist aktiviert.
Nur wird bei eintritt/verlassen keine Botschaft gesendet.
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

Markus M.

Ist das der Logeintrag vom MQTT Device oder livetracking?
Ich bräuchte ersteren. Die Frage ist quasi, ob die Zonen Events überhaupt auf deinem Rechner ankommen.
Aktuell weder Smarthome noch FHEM vorhanden

regenbieger

event kommen von owntracks:

livetracking trackingM location: 53.86327066666667,6.49774694166667
livetracking trackingM accuracy: 21 m
livetracking trackingM place: home
livetracking trackingM zone_0: active
livetracking trackingM distance: 0 km
MQTT_DEVICE owntracksM mevent: {"_type":"transition","lat":53.86327066666666,"lon":6.497746941666668,"acc":21,"tst":1453304836,"wtst":1452953891,"desc":"home","event":"enter","tid":"1"}

mit zonename_0 = home schaltet livetracking die zone_0 dann als active, keine Ahnung ob das so reicht. Mal heute abend sehen ob das in FHEM dann brauchbare Geofenceevents gibt.  :)
Sieht aber doch erstamal gut aus. Aber es war ja nicht die rede von meinem Rechner hehe
Komisch nur das in den Events livetracking vor dem mqtt die events schreibt, als hätte es schon eine vorahnung.
FHEM und WEEWX auf Raspberry

Markus M.

Brauchbar sind die Zonen über OwnTracks leider nicht, da nie sicher ist ob die Events auch tatsächlich im Modul ankommen und es manchmal auch Falschmeldungen gibt   :(
Macht aber eigentlich nichts, da man stattdessen ja einfach die Entfernung zum Zuhause verwenden kann.
Das zusammen mit dem neuen Filter auf Accuracy sollte klappen.
Aktuell weder Smarthome noch FHEM vorhanden

sl12

Ich habe mich mal an der Anbindung der OwnTracks API versucht.

Falls einer von euch das mal Testen möchte folgendes vorbereiten:
- Bei dem mqtt device die Werte "msg" und "cmd" hinzufügen
z.B:

attr owntracks_mqtt_device publishSet_msg owntracks/user/device/msg
attr owntracks_mqtt_device publishSet_cmd owntracks/user/device/cmd


- In der OwnTracks App unter Preferences / Advanced folgendes aktivieren:
Messaging
Remote report location

Nach einspielen der Angepassten 98_livetracking.pm gibt es ein Set "OtSendMessage" um Nachrichten an OwnTracks zu senden und ein "OtRequestLocation" um die aktuelle Position übermitteln zu lassen.

regenbieger

sl12,
location request funzt  :) ,
messages leider nicht  :( , die messages gehen zwar richtig raus, kommen aber auf dem smartfon nicht an (Android S4).
habe nochmal die spec von owntracks gelesen, muss wohl an owntracks liegen, im mqtt sieht alles sauber aus.
Manuell gepublished mit den vorgaben aus dem owntracks booklet geht genauso wenig.
FHEM und WEEWX auf Raspberry

Markus M.

Nice: {"_type":"steps","tst":1453328353,"to":1453328353,"steps":5102,"distance":4637.487476262148,"from":1453244400}

Update ist in im ersten Thread, Danke an sl12 :)
Messaging klappt bei mir nur wenn ich die App gerade aktiv habe - liegt wahrscheinlich an meinen MQTT Einstellungen?!
Gibt es da irgendwo QOS Einstellungen?

attr owntracks qos at-least-once

Weiss zufällig jemand wie ich die SetFn nur aktiviere wenn das OwnTracks Attribut gesetzt ist?
Aktuell weder Smarthome noch FHEM vorhanden