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

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

Vorheriges Thema - Nächstes Thema

kadettilac89

Zitat von: hkspks am 14 August 2021, 11:52:21
Wenn ich die Url im Browser auf dem Handy eingebe und mich den gleichen Daten authentifiziere kommt "timestamp missing"
Gewolltes Verhalten, Server erreichbar, Fehler kommt weil keine Parameter übergeben wurde.

Zitat von: hkspks am 14 August 2021, 11:52:21
das Setup mit osmand / owntracks lief bei mir bis vor kurzem sowohl auf Android als auch iPhone sehr gut. Seit neuestem geht es nicht mehr mit folgender Fehlermeldung in der owntracks-App: "Could not connect https://meineurl/fhem/osmand"


Zitat von: hkspks am 14 August 2021, 11:52:21
Jemand noch eine Idee für eine Fehlerdiagnose?

Du hast Https, geht das über reverse Proxy? Oder wo sind die Certificates? Sind sie gültig und öffentlich (lets encrypt, abgelaufen)?

Android + Iphone betroffen?

1) Config sichern, App zurücksetzen, Config zurückspielen und testen
2) Zugang auf HTTP umstellen und testen
3) welches Zertifikat wird im Browser angezeigt wenn du über https gehst, selbst ausgestellt von der Fritzbox?
4) Verbose auf 5 stellen ... Log?

Meine Vermutung: du hast beim Aufruf vom Handy aus eine Zertifikatswarnung, zumindest in der App. Ungültiges, privates oder abgelaufenes Zertifikat. Mit HTTP müsste es in dem Fall funktionieren.


hkspks

Zitat von: kadettilac89 am 14 August 2021, 22:01:41
Du hast Https, geht das über reverse Proxy? Oder wo sind die Certificates? Sind sie gültig und öffentlich (lets encrypt, abgelaufen)?

Android + Iphone betroffen?

1) Config sichern, App zurücksetzen, Config zurückspielen und testen
2) Zugang auf HTTP umstellen und testen
3) welches Zertifikat wird im Browser angezeigt wenn du über https gehst, selbst ausgestellt von der Fritzbox?
4) Verbose auf 5 stellen ... Log?

Meine Vermutung: du hast beim Aufruf vom Handy aus eine Zertifikatswarnung, zumindest in der App. Ungültiges, privates oder abgelaufenes Zertifikat. Mit HTTP müsste es in dem Fall funktionieren.

Genau, https reverse proxy. Zertifikat (letsencrypt) ist aber noch gut - kann die Url/ den Service ja mit dem Handy aufrufen. http gleiches Bild.
In FHEM kommt kein besonderes logging - glaube da passt auch alles.

Insgesamt glaube ich, dass FHEM passt und dass die App auf beiden Telefonen passt. Reset hatte ich sogar schon mal durchgeführt. Muss irgendwas dazwischen sein ... ich tippe ja auf das Fritzbox Update. Muss ggf. ein besonderer Port offen sein?

Die owntracks App sagt
Zitat
08-14 22:11:54.577   618   697 D BackgroundService: Caused by: java.net.ConnectException: failed to connect to MEINEURL/2001:16b8:2701:aeaf:3a10:d5ff:fece:ac24 (port 443) from /2a01:598:b8b8:820e:1:1:6325:7a42 (port 48408) after 15000ms: isConnected failed: EACCES (Permission denied)

kadettilac89

Zitat von: hkspks am 14 August 2021, 22:22:45
Genau, https reverse proxy. Zertifikat (letsencrypt) ist aber noch gut - kann die Url/ den Service ja mit dem Handy aufrufen. http gleiches Bild.
In FHEM kommt kein besonderes logging - glaube da passt auch alles.

Insgesamt glaube ich, dass FHEM passt und dass die App auf beiden Telefonen passt. Reset hatte ich sogar schon mal durchgeführt. Muss irgendwas dazwischen sein ... ich tippe ja auf das Fritzbox Update. Muss ggf. ein besonderer Port offen sein?

Port reicht der https. 443 oder abweichend, dann halt in der Url mit angegeben. Habe auch Fritzbox mit 7.27 und es funktioniert. Port funktioniert ja wenn du über den Browser gehst. Sind deine beiden Geräte, Eifon und Android betroffen? Wenn es früher funktioniert hat dann kannst nicht so viel sein.

In der Fritzbox kannst du  einen Host auswählen an den alle Anfragen aus dem Netz ungefiltert weitergeleitet werden. Das kannst mal testen, damit kannst Fritzbox ausschließen, oder bestätigen. Aber nur kurz aktivieren und auch wieder ausschalten damit du dir keine ungewollten Gäste holst. Exposed host oder so ähnlich.

Was sagt das Log in der App, bei Status - Logs ansehen - kannst die per Mail weiterleiten und ansehen.

Hast du irgend eine ids (intrusion detection system) wie snort im Einsatz? Irgend was wie Fail2ban das ggf. mit den http-Header oder Aufruf nicht zufrieden ist?

kadettilac89

noch ein Test ... überspringe mal den reverse proxy und leite von der Fritzbox direkt auf den fhem-host weiter ... auch das nur zur Analyse und ganz kurz.

Vielleicht hat dein reverse ein Problem mit dem Aufruf (Header, übergebene Parameter ...).

hkspks

Alles versucht - leider keinen Schritt weitergekommen. Find auch die App-Fehlermeldungen (den Snippet hatte ich oben gepostet) sowohl auf iPhone als auch Android recht wenig aussagekräftig. Hab nun die weiße Fahne gehisst und bin auf (Cloud-)MQTT umgestiegen - damit kann ich zumindest nun auch meinen Port-Forwards an der Fritzbox deaktivieren. Und man sieht sogar in der App noch den jeweils anderen und muss nicht erst FHEM öffnen. Kann ich jedem empfehlen, der keine bedenken hat seine location daten in die Cloud zu schicken.

Sehr gute Anleitung findet sich hier: https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Owntracks_GPS_Tracking_in_FHEM

Trotzdem vielen Dank kadettilac89 für die Hilfe bei der Fehlersuche - waren sehr gute Hinweise dabei!

Jamo

Hallo alle zusammen,
Gibt es irgendeine Möglichkeit, über z.B. Owntracks, die Zeitzone herauszufinden, in der man sich gerade befindet? Owntrsacks liefert ja nur den epoch unix zeitstempel ab 1970.
Aber nicht die Handy Zeit, die sich ja automatisch z. B. in UK dann auf die neue Zeitzone einstellt.
Irgendeine Idee?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack


Jamo

Zitat von: kjmEjfu am 27 September 2021, 11:12:01
sowas https://www.revilodesign.de/blog/google-maps-api/google-maps-api-timezone-in-utc-zeitzonen-umrechnen/ ?
Sowas hatte ich auch gefunden https://www.epochconverter.com/timezones
Ich möchte aber idealerweise, wenn das location event von owntracks ankommt, das der time offset dann schon mitgeliefert wird, oder man den automatisch berechnen kann.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

kjmEjfu

Mitgeliefert wird der Offset, soweit ich weiß, nicht. Insofern kannst du ihn automatisch berechnen lassen.
Und dafür kannst du einfach die Google API aufrufen und bekommst dstOffset und rawOffset zurück. Damit kannst du dann weiterrechnen und hast deinen Offset. Beispiele stehen doch auf der von mir verlinkten Seite weiter unten drauf.
Die Funktion dazu packst du die in die myutils und rufst das aus einem Notify auf. Schon hast du die lokale Uhrzeit.

Oder ich verstehe dein Problem falsch ...
Migriere derzeit zu Home Assistant

Jamo

Hallo kjmEjfu,
Danke, jetzt hat es geschnackelt, ich probiere es heute Abend mal aus. Ich habe jetzt erst gesehen, das die api, basierend auf lat & lon, den time offset liefert, also habe ich alles was ich brauche. Super, danke.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Jamo

Habe gesehen, ist nicht umsonst, das sind bei Google $5 USD/1000 timezone requests, man braucht einen API-key. ich schau mal ob es den Dienst auch anders irgendwo gibt.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Jamo

Danke, ist gelöst. api.timezonedb.com liefert das ganze umsonst.
Über HTTPMOD bekommt man dann aus lat/lon alles was das Herz begehrt, also:
defmod myTimeZone HTTPMOD http://api.timezonedb.com/v2.1/get-time-zone?key=asdfghjkl&format=json&by=position&lat=12.1234&lng=12.3456 0
attr myTimeZone extractAllJSON 1

Den key bekommt man über eine einfache Registrierung, Kosten entstehen keine, man kann pro Sekunde 1 Abfrage machen.
Danke nochmal für den Schubser.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

borsti67

Moin,
ich bastle da auch gerade mal ein wenig mit herum (MQTT2-Server von fhem und OwnTracks-App auf Android). Als nächstes will ich mir mal die Möglichkeit eine Karte (ggf auch mit Histrory aus DbLog) näher anschauen... ;)

Aber vorab noch mal 2 Fragen:

  • Ich habe FilterAccuracy nicht gesetzt. Vor allem wenn ich in der "Arbeit"-Zone bin (quasi kein GPS) habe ich immer mal wieder betreten/verlassen Events. Kann ich die damit loswerden? Falls ja, welcher Wert wäre ratsam, falls nein, wie dann?
  • Beim Betreten der Zonen wird "place" richtig gesetzt und auch die "location" im Roommate mit. Sollte das nicht auch beim Verlassen auf "unterwegs" o.ä. gestellt werden? Das bleibt aktuell nämlich immer auf dem letzten Wert.
cu/2
Borsti
---
FHEM 5.8 auf Synology DS211j (bis 11/17) | FHEM 6.0 auf Raspi Zero W (bis 11/20) | FHEM 6.2 als VM in Synology DS1815+ (ab 11/20)

Otto123

Hallo Borsti,

Du hast das Modul livetracking (Thread Thema) oder owntracks / MQTT2?

Bei mir funktioniert (owntracks / MQTT2) auf place: away hinreichend. Manchmal klappt der exakte Punkt zuHause nicht (dann bin ich quasi laut owntracks beim übernächsten Nachbarn)

Man muss halt in owntracks das Areal groß genug definieren.

Ich habe da ein paar userReadings - auch für den Link zu Google Maps:
attr MQTT2_owntracks_mi6 userReadings location:lat.* {ReadingsNum($name,'latitude',0).','.ReadingsNum($name,'longitude',0)},\
  connection:conn.* {my %h=(m=>'mobil',w=>'wifi',o=>'offline',e=>'unknown');; return $h{ReadingsVal('MQTT2_owntracks_mi6','conn','e')}},\
  placeE:event.* {ReadingsVal($name,'event','') eq 'leave'?'away':(ReadingsVal($name,'desc','nowhere'))},\
  place:lastUpdateType:.location {ReadingsAge($name,'inregions_1',0) > 2 ?'away':(ReadingsVal($name,'inregions_1','nowhere'))},\
  velocity_m:velocity.* {ReadingsNum($name,"velocity",60)},\
  velocity_600:velocity.* {ReadingsNum($name,"velocity",60)},\
  velocity_av:velocity.* {movingAverage($name,"velocity",300)},\
  location_url:lat.* {my @ar = split ',',ReadingsVal($name,'location','0,0');; \
    sprintf(q(https://maps.google.com/maps?hl=en&q=%s,%s&t=k&z=19&ie=UTF8&iwloc=&output=embed),$ar[0],$ar[1])}


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Markus M.

Zitat von: borsti67 am 08 Juni 2022, 12:57:55

  • Ich habe FilterAccuracy nicht gesetzt. Vor allem wenn ich in der "Arbeit"-Zone bin (quasi kein GPS) habe ich immer mal wieder betreten/verlassen Events. Kann ich die damit loswerden? Falls ja, welcher Wert wäre ratsam, falls nein, wie dann?
  • Beim Betreten der Zonen wird "place" richtig gesetzt und auch die "location" im Roommate mit. Sollte das nicht auch beim Verlassen auf "unterwegs" o.ä. gestellt werden? Das bleibt aktuell nämlich immer auf dem letzten Wert.
Die Zone Events wirst du so eher nicht los, das kommt direkt aus OwnTracks. Da musst du eher die Größe der Zone anpassen.
place auf "irgendwo anders" zu setzen müllt nur die DB zu. Ich bin mir aber ziemlich sicher dass es bei leave zumindest ein Event gibt, das du selbst abfangen kannst.
Dabei könntest du dann vermutlich auch auf accuracy schauen.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0