GarminFhem (Widget für Garmin Sportuhren)

Begonnen von Nairolf123, 14 September 2016, 14:14:39

Vorheriges Thema - Nächstes Thema

Nairolf123

Hi zusammen,

ich habe ein kleines Widget für Garmin Sportuhren gebaut. Damit kann man von der Uhr aus Befehle ausführen und damit z. B. die Garage öffnen oder das Licht anschalten.

Aktuell unterstütze ich die Uhren Forerunner 230/235/735XT. Bei Bedarf kann ich aber auch versuchen andere Uhren zu unterstützen.

Vielleicht ist das Widget ja für den ein oder anderen hilfreich. Über Feedback freue ich mich immer.

Hier der Link zum Garmin App Store https://apps.garmin.com/de-DE/apps/ab37134f-1282-48df-a3be-ce0e583e3291.

Viele Grüße,
Florian

accessburn

Schade, bei dem Wort Garmin im Titel hatte ich schon gehofft es hat jemand geschafft die Vivodaten aus Garmin auszulesen :-)
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Jamo

Hi Florian,
ich hätte starkes Interesse an einer Garmin Fenix 3 unterstützung. Das wäre super!!

Danke, Ingolf
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Nairolf123

Zitat von: inoma am 14 September 2016, 16:49:14
Hi Florian,
ich hätte starkes Interesse an einer Garmin Fenix 3 unterstützung. Das wäre super!!

Danke, Ingolf

Hi Ingolf,

ich habe nun das Widget umgebaut, so dass es auch auf den Fenix Uhren funktionieren sollte.

Ich habe es nur im Simulator testen können. Falls was nicht bzw. nicht optimal funktioniert, einfach Feedback an connectiq@florian-speth.de oder in folgenden Thread schreiben: https://forums.garmin.com/showthread.php?361239-Widget-GarminFhem. Oder einfach in diesem Forum.

Grüße,
Florian

Jamo

#4
Hallo Florian,
danke, das sieht schon mal echt super aus, ich habe das soweit eingerichtet, unter FHEM URL habe ich folgende URL eingetragen: http://fhem.fritz.box:8083/fhem?cmd.test, dann als Beispiel ein TV_off==set Schalter_TV off; Wenn ich den Knopf betätige, kommt ein "Processing Command", gefolgt von einem "Executed successfully", so funktionierts!!!!

Danke, Riesen Danke, geile Sache!

Gruss, Ingolf!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Chiemgauer

Ist das auch mit einer Vivoaktiv HR möglich?

Nairolf123

Zitat von: Chiemgauer am 26 September 2016, 10:32:50
Ist das auch mit einer Vivoaktiv HR möglich?

Ja, auch diese wird seit dem letzten Update unterstützt. Hier gilt gleiches wie bei der Fenix: Ich konnte es selbst nicht auf einer echten Uhr testen...

Grüße,
Florian

Towelie

Ich habe seit neustem auch eine Garmin Vivoactive und habe freudig dein Addon gefunden, danke dafür.
Planst du eine Unterstützung für SSL? Da mein System aktuell auf SSL only eingestellt ist kann ich das Widget leider nicht verwenden.

Gruß

Nairolf123

Zitat von: Towelie am 18 Oktober 2016, 10:38:34
Planst du eine Unterstützung für SSL? Da mein System aktuell auf SSL only eingestellt ist kann ich das Widget leider nicht verwenden.

Hi,

das ist für mich auch ein Problem, da ich gerne meine Garage schon bei Einfahrt in meine Straße auf dem Fahrrad öffnen würde. Aber da HTTPS für mich auch nicht geht, muss ich erst warten, bis ich vor der Haustür in meinem WLAN bin :-).

Ich vermute dein HTTPS Zugriff basiert auf selbst-ausgestellten Zertifikaten, so dass die gängigen Browser diese nicht selbstständig validieren können und du erst bestätigen musst, dass du deiner FHEM Webseite vertraust. So ist es jedenfalls bei mir und ich vermute stark, dass die GarminConnect App, die letztlich die Kommunikation mit Fhem ausführt, die Zertifikate nicht akzeptiert.

Leider ist das Logging und die Funktionsweise in der Garmin Programmiersprache Monkey-C ziemlich rudimentär, so dass ich nicht erkennen kann, weshalb die HTTPS Aufrufe nicht klappen. Im Simulator auf meinem Mac funktionieren die HTTPS Aufrufe.

Ich habe die Frage eben mal im Garmin Entwicklerforum gestellt. Vielleicht kennt ja jemand eine Lösung für das Problem. An meinem Widget liegt es vermutlich nicht - leider, denn ansonsten würde ich es ändern.

Viele Grüße,
Florian

eldrik

Moin,

sehr cool, werde ich heute Abend nach der Arbeit einmal mit meiner Fenix 3 ausprobieren und bei Interesse auch meiner besseren Hälfte für ihre vivosmart HR (wird die unterstützt) gönnen.

Wird die Verbindung bei Uhren ohne eigenes WLAN, per Bluetooth über das Mobiltelefon hergestellt?

Greetz
Eldrik

Nairolf123

Zitat von: eldrik am 19 Oktober 2016, 07:53:24
Wird die Verbindung bei Uhren ohne eigenes WLAN, per Bluetooth über das Mobiltelefon hergestellt?

Hi Eldrik,

ja, das wird sie. Daher muss dort die GarminConnect App installiert sein und die Bluetooth Verbindung muss stehen. Ich muss die GarminConnect App auch ab und an mal wieder starten, da mein iPhone sie hin und wieder von selbst beendet. Offen gesagt bin auch gar nicht sicher, ob eine Uhr mit WLAN direkt eine Verbindung zu FHEM aufbauen kann. Ich nutze letztlich die einzige Funktion von Garmin um eine Internetverbindung herzustellen.

Viel Spaß & viel Erfolg!
Grüße,
Florian

Towelie

Danke für die Antwort!
Ja die Frage ist ob man SSL exception ingnorieren kann um die self signed Zertifikate durchzuwinken.

Da du scheinbar das Problem bereits gelöst hast eine Offtopic-Frage:
Wie konfiguriere ich FHEM denn so, dass zwar SSL erwartet aber Verbindungen aus einem bestimmten IP Bereich (WLAN) ohne SSL akzeptiert um die App zuhause zu nutzen?

Danke und Gruß

Jamo

Überlege doch mal, anstatt SSl zu verwenden, VPN-on-demand einzurichten, das funktioniert immer, ist sicher und bei mir zuverlässig.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Nairolf123

Zitat von: Towelie am 19 Oktober 2016, 13:35:11
Wie konfiguriere ich FHEM denn so, dass zwar SSL erwartet aber Verbindungen aus einem bestimmten IP Bereich (WLAN) ohne SSL akzeptiert um die App zuhause zu nutzen?

Ich habe zwei FHEMWEB Einträge:

...
define WEB FHEMWEB 8083 global
...
define FHEMINTERNET FHEMWEB 8084
...


FHEMINTERNET hat kein "global" und ist daher nur auf dem Host von FHEM erreichbar. Daher habe ich dazu ich einen Apache Reverse Proxy eingerichtet, der nur per SSL erreichbar ist und dann an Port 8084 an FHEM weiterleitet. Auf meinem Router habe ich eine Port-Weiterleitung an den Reverse Proxy eingerichtet.

Ich denke das geht auch ohne den Reverse Proxy. Einfach zwei FHEMWEB Einträge einrichten und nur einen davon mit SSL schützen. Diesen kannst du dann auch über deinen Router freigeben. Der andere bleibt lokal.

Grüße,
Florian

Nairolf123

Zitat von: Towelie am 18 Oktober 2016, 10:38:34
Planst du eine Unterstützung für SSL? Da mein System aktuell auf SSL only eingestellt ist kann ich das Widget leider nicht verwenden.

Hi!
Ich habe den Zugriff mittels HTTPS in meiner eigenen Installation nun erfolgreich hinbekommen. Die Lösung war, dass ich Zertifikate benötigte, die "allgemein" als vertrauenswürdig gelten. Die zuvor von mir eingesetzten Zertifikate waren selbst-erstellt und die Garmin Connect App, die letztlich die Aufrufe an FHEM ausführt, hat diese nicht akzeptiert.

Nun habe ich meinen Webserver (mein FHEM hängt hinter einem Apache, der als Reverse Proxy fungiert) mit Zertifikaten von letsencrypt ausgestattet. Letsencrypt wird von iOS (und den gängigen) Browsern als vertrauenswürdige Zertifizierungsstelle ("CA") angesehen. Nun klappt auch der HTTPS Zugriff über das GarminFhem Widget.

Am Widget selbst musste ich hierfür nichts ändern (außer natürlich der Konfiguration, da ich ja nun eine andere URL verwende ;-) ).

Hilft das?

Grüße,
Florian