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

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

Vorheriges Thema - Nächstes Thema

Firetic

Habe in den letzten Wochen jetzt nochmal ein wenig rumgebastelt...

Leider waren allen Versuche nicht von besonderem Erfolg gekrönt :-( Bei "Openpath" scheint es nicht an der Homepage zu liegen ich erhalte immer wieder die Fehlermeldung "...invalid json detected: >>400: NOT AUTHORIZED<< openpathsdata" im Log.

Deshalb habe ich dann versucht mit "owntracks" probiert. Leider scheitere auch hier hier im letzten Punkt an der Meldung im Log: "WRONG TYPE $VAR1 = 'transmission-state: incoming publish received';"

Als Attribute habe ich im Device nur "owntracksDevice=owntracks" und "stateFormat=location" definiert... Es scheint ja auch wie gewollt irgendetwas empfangen zu werden.

Hat vielleicht noch irgendjemand eine Idee bezüglich "Openpath" oder auch "Owntracks"

Gruß Firetic


Markus M.

Openpaths funktioniert bei mir auch nicht mehr, ich bekomme nur noch ein leeres JSON. Muss ich mir bei Gelegenheit mal anschauen.
Deine Owntracks Meldung ist normal, das ist nur Debugging. Du solltest aber auch ein Notify mit den Daten bekommen?!
Hast du die letzte Version?
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

Firetic

Ich benutze die Version aus dem ersten Post in der neusten Version... Müsste also passen.

Erhalte im Log nichts anderes außer dieser Meldung. Habe mir jetzt auch nochmal den Event-Monitor angeschaut, auch da taucht nur diese Meldung auf...

Markus M.

OpenPaths: Ich hatte da wohl einen Fehler in meinem Perl, keine Ahnung warum. Das hat geholfen:
sudo apt-get install liblwp-authen-oauth-perl



Bei Owntracks stimt bei dir irgendwas nicht.
Was hast du im owntracks device stehen?
Da muss ein Reading sein das so heisst wie dein Gerät.

Hier mal die Settings...
OwnTracks App:
UserID: fhem
DeviceID: iphone

OwnTracks device in FHEM:
publishSet: owntracks/fhem/iphone
subscribeReading_iphone: owntracks/fhem/iphone

Ich habe ein Reading mit dem Namen iphone, das die Daten enthält.
Damit müsste es klappen. Da ich ein event-on-change-reading darauf habe, bekomme ich die bei dir ausgefilterten Meldungen gar nicht erst.
Sieht das bei dir in etwa gleich aus?


Im ersten Post ist übrigens noch eine neue Version des Moduls.
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

Firetic

Vielen Dank - habe jetzt schonmal ein erstes Erfolgserlebnis :-D

mir fehlte der Eintrag "publishSet: owntracks/fhem/iphone". Jetzt scheint es zu funktionieren :-)

Kann ich jetzt eigentlich auch einfach noch ein zweites Device überprüfen wenn eich einfach

publishSet: owntracks/fhem/iphone2
subscribeReading_iphone: owntracks/fhem/iphone2


hinzufüge?

Openpaths bringt leider keine Veränderung - immer noch die unveränderte Fehlermeldung (habe das Modul upgedated und das Perl "Update" gemacht). Kann es sein das er irgendwie auf eine alte fehlerhafte Authentifizierung zugreift die ich noch löschen müsste?!

Auf jeden Fall nochmal Danke :-)

Markus M.

Das mit dem zweiten Gerät sollte so funktionieren wenn du die Subscription zusätzlich hinzufügst.
Die Syntax kenne ich allerdings nicht und ich müsste dann wohl noch einen Filter ins Modul einbauen.
Wenn du das hinkriegst sag mir Bescheid, dann kann ich das mal versuchen.

OpenPaths könntest du hiermit mal kurz mit deinen Nutzerdaten testen (openpathstest.pl):
#!/usr/bin/perl


use strict;
use warnings;
use Time::Local;


use LWP::Authen::OAuth;
#use LWP::Useragent;
use Net::OAuth;
use Data::Dumper;
use Math::Round;
use JSON;



my $nonce = "";
for (my $i=0;$i<32;$i++) {
  my $r = int(rand(62));
  if ($r<10) { $r += 48; }
  elsif ($r<36) { $r += 55; }
  else { $r += 61; }
  $nonce .= chr($r);
}

my $ua = LWP::UserAgent->new;

my $request = Net::OAuth->request("request token")->new(
  consumer_key => 'KEYKEYKEYKEYKEYKEYKEYKEY',
  consumer_secret => 'SECRETSECRETSECRET',
  request_url => 'https://openpaths.cc/api/1',
  request_method => 'GET',
  signature_method => 'HMAC-SHA1',
  timestamp => time(),
  nonce => $nonce,
);

$request->sign;

my $httprequest = HTTP::Request->new(GET => $request->to_url."&num_points=5");
my $response = $ua->request($httprequest); # start_time, end_time, num_points

print $response->content;
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

Firetic

Ich habe jetzt mal ein zweites "MQTT_DEVICE" als owntracks2 angelegt und danach einfach ein zweites livetracking device. Das scheint jetzt so eigentlich auch zu funktioneren...

Wie teste ich den den Code denn? Habe den Code mit meinen Zugangsdaten angepasst und dann openpathstest.pl angelegt - nur wie ich das aufrufe ist mir leider nicht klar ???

Außerdem versuche ich mir jetzt den Kartenausschnitt anzeigen zu lassen - das bekomme ich leider auch nicht hin.
Ich habe mir den Google Developer Code erstellt und wollte danach ein weblink mit deiner Codezeile von Seite 1 erstellen.
Leider kommen mehrere Fehlermeldungen:
Unknown command overflow:, try help.
Unknown command height:, try help.
Unknown command "><iframe, try help.
Unknown command border:0, try help.
Unknown command margin-top:, try help.
Unknown command margin-left:, try help.
Unknown command "></iframe></div>'}, try help.

Hast du da auch noch eine Idee  :)

Markus M.

Zitat von: Firetic am 28 Juli 2015, 18:31:35
Wie teste ich den den Code denn? Habe den Code mit meinen Zugangsdaten angepasst und dann openpathstest.pl angelegt - nur wie ich das aufrufe ist mir leider nicht klar ???

In der Konsole, mit perl openpathstest.pl
Da müssten dann 5 Datensätze rauskommen.

ZitatAußerdem versuche ich mir jetzt den Kartenausschnitt anzeigen zu lassen - das bekomme ich leider auch nicht hin.
Ich habe mir den Google Developer Code erstellt und wollte danach ein weblink mit deiner Codezeile von Seite 1 erstellen.
Leider kommen mehrere Fehlermeldungen

Ok, das klappt bei mir direkt irgendwie auch nicht... Oops :)
Leg einfach einen Dummy-weblink an und ändere die Definition in der Weboberfläche dann auf:
htmlCode {'<div style="width: 400; overflow: hidden; height: 300px;"><iframe src="https://www.google.com/maps/embed/v1/place?key=KEYKEYKEYKEYKEY&q='.ReadingsVal('livetracking','location','').' " width="480" height="480" frameborder="0" style="pointer-events:none; border:0; margin-top: -100px; margin-left: -30px;"></iframe></div>'}
Wenn dein Device nicht livetracking heisst, musst du das natürlich noch anpassen.

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

Firetic

Danke so hat es geklappt - der Kartenausschnitt wird angezeigt :-)

Der Test mit perl openpathstest.pl hat ebenfalls ohne Probleme funktioniert. Bekomme wie von dir beschrieben 5 Readings angezeigt...
Was heißt das jetzt genau?

Vielen Dank :-)


Markus M.

Zitat von: Firetic am 28 Juli 2015, 20:31:19
Der Test mit perl openpathstest.pl hat ebenfalls ohne Probleme funktioniert. Bekomme wie von dir beschrieben 5 Readings angezeigt...
Was heißt das jetzt genau?
Dass es auch in FHEM funktionieren sollte.
Setz mal verbose=5, ruf auf dem Telefon die Openpaths App 2x auf und mach danach einen Reload im Device mit get livetracking OpenPaths und sieh dir das Log an.
Besonders ob in der ausgegebenen URL Key und Secret so stimmen, zur Not in den Browser kopieren und auch nochmal mit der Seite vergleichen. Da sollte die Position natürlich auch aktuelle Werte haben, sonst stimmt mit der App selbst was nicht.
Auto Sync in den Optionen hast du aktiviert?!
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

Firetic

Habe das Loglevel hochgesetzt und das Modul aktualisiert.
Den Key finde ich in der ausgegebenen URL auch wieder allerdings das Sekret finde ich nicht wieder

https://openpaths.cc/api/1?oauth_consumer_key=KEY&oauth_nonce=??&oauth_signature=??&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1438109742.53551&oauth_version=1.0&start_time=1438106142.54356&num_points=50

Den Part wo die Fragezeichen stehen habe ich mal ersetzt....

Markus M.

ARGH!!!
Zitat...timestamp=1438109742.53551...

Mach mal ein Update mit der Version im ersten Post und probier das ganze nochmal.
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

Firetic

Funktioniert :-) Super

Da ich aber jetzt auch owntracks am laufen habe, bleibe ich wohl dabei ;-)


Vielen Dank für die super Hilfe...

Mitch

Sehr geniale Arbeit, Danke!

Hatte mir gerade dieses Wochenende Gedanken gemacht, wie ich meine Heizungssteuerung optimieren könnte.
Im Moment wir bei Abwesenheit länger als 2 Stunden die Heizung um 2 Grad abgesenkt.
Bei Ankunft wird hochgeregelt.

Meine Überlegung war, das ganze über einen Radius zu steuern.
Bei Abwesenheit > 10km Heizung absenken
Und bei Annäherung < 10km wieder hochregeln

Im Moment mache ich die Anwesenheits-Erkennung über Geofancy. Funktioniert auch tadellos, allerdings gibt es da keine Möglichkeit über den Radius.


Nun meine Frage dazu, weil ich keine extra App auf allen Devices möchte:
Kann man die Freunde App von Apple einbinden?
FHEM im Proxmox Container

Markus M.

Du meinst damit das iOS9 Feature?
Leider nicht möglich, da es noch nicht mal eine Web Integration gibt.


Sent from my iPhone using Tapatalk
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