<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ConnectIQ &#8211; SmartHomeNG | smarthome knx homematic mqtt hue 1wire home automation</title>
	<atom:link href="https://www.smarthomeng.de/tag/connectiq/feed" rel="self" type="application/rss+xml" />
	<link>https://www.smarthomeng.de</link>
	<description>Die Device Integrations-Plattform für Dein Smart Home</description>
	<lastBuildDate>Wed, 18 Apr 2018 12:35:32 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.5</generator>

<image>
	<url>https://www.smarthomeng.de/wp-content/uploads/global/logo_small_152x152-150x150.png</url>
	<title>ConnectIQ &#8211; SmartHomeNG | smarthome knx homematic mqtt hue 1wire home automation</title>
	<link>https://www.smarthomeng.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>SmartHomeNG on a Watch &#8211; Anbindung des Garmin ConnectIQ SSK an SmartHomeNG</title>
		<link>https://www.smarthomeng.de/smarthomeng-on-a-watch-anbindung-des-garmin-connectiq-ssk-an-smarthomeng</link>
					<comments>https://www.smarthomeng.de/smarthomeng-on-a-watch-anbindung-des-garmin-connectiq-ssk-an-smarthomeng#comments</comments>
		
		<dc:creator><![CDATA[Marc René Frieß]]></dc:creator>
		<pubDate>Sun, 25 Mar 2018 09:18:19 +0000</pubDate>
				<category><![CDATA[Beispiel-Implementierungen]]></category>
		<category><![CDATA[ConnectIQ]]></category>
		<category><![CDATA[Garmin]]></category>
		<category><![CDATA[Mobile Device]]></category>
		<category><![CDATA[Monkey C]]></category>
		<category><![CDATA[Proof of Concept]]></category>
		<category><![CDATA[SmartWatch]]></category>
		<category><![CDATA[Watch]]></category>
		<category><![CDATA[Webservices]]></category>
		<guid isPermaLink="false">https://www.smarthomeng.de/?p=364</guid>

					<description><![CDATA[Moderne Sportuhren der Firma Garmin sind mehr als nur ein Aufzeichnungsgerät für Laufstrecken. Neben vielzähligen Sensorwerten lässt sich auch mit überschaubarem Aufwand eine Anbindung an SmartHomeNG erreichen, so dass bspw. Temperaturwerte auf der Uhr dargestellt werden. Dieser Artikel beschreibt, wie man Itemwerte von SmartHomeNG als ConnectIQ App auf Garmin Sportuhren<a class="moretag" href="https://www.smarthomeng.de/smarthomeng-on-a-watch-anbindung-des-garmin-connectiq-ssk-an-smarthomeng"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<p>Moderne Sportuhren der Firma Garmin sind mehr als nur ein Aufzeichnungsgerät für Laufstrecken. Neben vielzähligen Sensorwerten lässt sich auch mit überschaubarem Aufwand eine Anbindung an SmartHomeNG erreichen, so dass bspw. Temperaturwerte auf der Uhr dargestellt werden.</p>
<p>Dieser Artikel beschreibt, wie man Itemwerte von SmartHomeNG als ConnectIQ App auf Garmin Sportuhren bringt. Das Beispiel wurde dazu auf einer Garmin Fenix<sup>®</sup> 5 erstellt und erprobt.</p>
<p>Weiterführend wäre auf die gleiche Art und Weise auch eine Steuerung von Hausfunktionen (bspw. Tor öffnen, wenn man vom Laufen zurück kommt) denkbar.</p>
<p>Die ConnectIQ App bedient sich dabei technisch der Garmin Connect App am Handy, um Anfragen auf Webservices von SmartHomeNG zu richten. Getestet wurde dies mit der <a href="https://play.google.com/store/apps/details?id=com.garmin.android.apps.connectmobile&amp;hl=de" target="_blank" rel="noopener">Android Version</a> dieser App.</p>
<h1>Einrichten der Entwicklungsumgebung:</h1>
<p>Als erstes muss die Entwicklungsumgebung aufgesetzt werden. Verwendet wird dabei die Software <a href="http://www.eclipse.org/downloads/" target="_blank" rel="noopener">Eclipse</a>, die im Bereich der Java Entwicklung sehr populär ist. Zum Stand dieses Artikel liegt sie in der Version Oxygen.3 Release (4.7.3) vor.</p>
<p>Nach erfolgter Installation, muss der ConnectIQ SDK von Garmin heruntergeladen und eingerichtet werden. Detaillierte Informationen dazu finden sich unter <a href="https://developer.garmin.com/connect-iq/programmers-guide/getting-started/" target="_blank" rel="noopener">https://developer.garmin.com/connect-iq/programmers-guide/getting-started/</a> bzw. <a href="https://developer.garmin.com/connect-iq/sdk/" target="_blank" rel="noopener">https://developer.garmin.com/connect-iq/sdk/</a>.</p>
<p>Die Installation in Eclipse geht dabei gemäß dem ersten Link wie folgt:</p>
<p>Zuerst muss das Eclipse Plugin installiert werden:</p>
<ol>
<li> Im installierten Eclipse auf das &#8222;Help&#8220; Menü klicken.</li>
<li>Dort &#8222;Install New Software&#8230;&#8220; auswählen und den Knopf &#8222;Add&#8230;&#8220; drücken.</li>
<li>Im nun folgenden Dialog die URL &#8222;<code>https://developer.garmin.com/downloads/connect-iq/eclipse/</code>&#8220; als Name und Location eintragen (siehe Screenshot) und mit &#8222;OK&#8220; bestätigen.<img fetchpriority="high" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/add_software.png" alt="" class="alignnone size-full wp-image-426" width="1275" height="942" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/add_software.png 1275w, https://www.smarthomeng.de/wp-content/uploads/2018/03/add_software-300x222.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/add_software-768x567.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/add_software-1024x757.png 1024w" sizes="(max-width: 1275px) 100vw, 1275px" /></li>
<li>Im nun folgenden Fenster die Checkbox direkt neben &#8222;Connect IQ&#8220; anhaken und auf &#8222;Next&#8220; klicken.</li>
<li>Den Lizenzbedingungen zustimmen und &#8222;Finish&#8220; anklicken<em>.</em></li>
<li>Eclipse neu starten</li>
</ol>
<p>Als nächstes muss das SDK heruntergeladen werden.</p>
<ol>
<li>Auf das nun sichtbare Menüitem &#8222;Connect IQ&#8220; klicken und &#8222;Open SDK Manager auswählen.</li>
<li>Dort nun das Ziel-Verzeichnis eintragen und beim jeweiligen SDK (idealerweise der aktuellste) den Knopf &#8222;Download&#8220; bestätigen. Dabei müssen ebenfalls die Lizenzbedingungen bestätigt werden.<img decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/sdk-download-1.png" alt="" class="alignnone size-full wp-image-368" width="1114" height="806" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/sdk-download-1.png 1114w, https://www.smarthomeng.de/wp-content/uploads/2018/03/sdk-download-1-300x217.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/sdk-download-1-768x556.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/sdk-download-1-1024x741.png 1024w" sizes="(max-width: 1114px) 100vw, 1114px" /></li>
<li>Sobald der Download erfolgt ist, &#8222;Yes&#8220; anklicken um die SDK Version als aktiven SDK zu verwenden. Im Nachhinein kann die SDK Version aber auch noch gewechselt werden. Im Beispiel wurde der aktuellste SDK (2.4.4) gewählt.</li>
<li>Ist dies erfolgt, kann der SDK Manager geschlossen werden.</li>
</ol>
<h1>Projekt erstellen</h1>
<p>Als nächstes muss über &#8222;File&#8220; -&gt; &#8222;New&#8220; -&gt; &#8222;Connect IQ Project&#8220; ein neues Projekt erstellt werden.</p>
<p>Diesem gibt man dann einen Namen, bspw. &#8222;SmartHomeNG_on_a_Watch&#8220; und bestätigt mit &#8222;Next&#8220;. Nun kann man den Project Type (hier: &#8222;Watch App&#8220;, die Version der App (hier: 0.0.0) und die minimale SDK Version setzen (hier: 2.4.x). Nach dem Bestätigen mit &#8222;Next&#8220; wählt man &#8222;Simple&#8220; als Template aus und bestätigt erneut.</p>
<p>Nun kommt die Wahl der unterstützten Geräte. Hier wird im Beispiel &#8222;Fenix<sup>®</sup> 5 / quatix<sup>®</sup> 5&#8243; selektiert.</p>
<p>Bevor man &#8222;Finish&#8220; klick sollte man noch über &#8222;Next&#8220; die Sprache wählen. Im Beispiel wird hier &#8222;English (eng)&#8220; selektiert.</p>
<p>Mit &#8222;Finish&#8220; wird nun das Projekt angelegt und taucht nun links im Project Explorer auf:</p>
<p><img decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/project_1-1.png" alt="" class="alignnone size-full wp-image-371" width="1191" height="820" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/project_1-1.png 1191w, https://www.smarthomeng.de/wp-content/uploads/2018/03/project_1-1-300x207.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/project_1-1-768x529.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/project_1-1-1024x705.png 1024w" sizes="(max-width: 1191px) 100vw, 1191px" /></p>
<h1>Das Programm ausführen</h1>
<p>Nun muss über Run -&gt; Run Configuration das Projekt für die Ausführung konfiguriert werden.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/run_configurations.png" alt="" class="alignnone size-full wp-image-372" width="1199" height="823" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/run_configurations.png 1199w, https://www.smarthomeng.de/wp-content/uploads/2018/03/run_configurations-300x206.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/run_configurations-768x527.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/run_configurations-1024x703.png 1024w" sizes="(max-width: 1199px) 100vw, 1199px" /></p>
<p>Dazu ist wie oben zu sehen ein aussagekräftiger Name zu wählen (&#8222;Fenix5 Configuration&#8220;). Die Projektzuordnung, das Target Device und die Target SDK Version sollten bereits stimmen. Mittels &#8222;Apply&#8220; werden die Einstellungen gespeichert. Danach via &#8222;Close&#8220; verlassen.</p>
<p>Nun muss noch der Simulator gestartet werden, entweder über das neue Icon in der oberen Iconleiste oder via &#8222;Connect IQ&#8220; -&gt; &#8222;Start Simulator&#8220;. Der Simulator startet als separates Fenster:<img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/simulator_1.png" alt="" class="alignnone size-full wp-image-373" width="1558" height="824" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/simulator_1.png 1558w, https://www.smarthomeng.de/wp-content/uploads/2018/03/simulator_1-300x159.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/simulator_1-768x406.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/simulator_1-1024x542.png 1024w" sizes="(max-width: 1558px) 100vw, 1558px" /></p>
<p>Über das bekannte Menü Run -&gt; Run Configuration kann nun die Fenix5 Configuration gewählt und mittels &#8222;Run&#8220; die Applikation gestartet werden.</p>
<p>Nach dem erfolgreichen Build ist nun die Dummy App auf dem Simulator zu sehen:</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/first_run-1.png" alt="" class="alignnone size-full wp-image-378" width="1527" height="807" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/first_run-1.png 1527w, https://www.smarthomeng.de/wp-content/uploads/2018/03/first_run-1-300x159.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/first_run-1-768x406.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/first_run-1-1024x541.png 1024w" sizes="(max-width: 1527px) 100vw, 1527px" /></p>
<h1>Anbindung von SmartHomeNG</h1>
<p>Um SmartHomeNG anzubinden, ist nun folgendes zu tun:</p>
<p>Zuerst sind die anzuzeigenden Items in SmartHomeNG über das Webservices Plugin als Itemset zu definieren. Hier wurde als Setname &#8222;1&#8220; gewählt. Details zum Webservices Plugin finden sich in diesem Artikel: <a href="https://www.smarthomeng.de/das-smarthomeng-webservices-plugin" target="_blank" rel="noopener">https://www.smarthomeng.de/das-smarthomeng-webservices-plugin</a>.</p>
<p>In diesem Set ist bspw. das Item <code>eta_pu.temperature_outside.value</code>. Um Übertragungszeit zu sparen, wurde hier <code>val</code> gesetzt:</p>
<pre data-line="10-11"><code class="language-yaml">
eta_pu:
    temperature_outside:
        eta_pu_uri: '40/10241/0/0/12197'
        type: num

        value:
            eta_pu_type: calc
            type: num
            database@mysqldb: init
            webservices_set: 1
            webservices_data: 'val'
</code></pre>
<p>Nach einen Restart von SmartHomeNG sollte das Set wie in <a href="https://www.smarthomeng.de/das-smarthomeng-webservices-plugin" target="_blank" rel="noopener">https://www.smarthomeng.de/das-smarthomeng-webservices-plugin</a> erklärt, verfügbar sein.</p>
<p>Da ConnectIQ über die Garmin Connect App nur Requests gegen Internet Endpunkte machen kann, wurde ein SmartHomeNG vorgeschalteter NGINX wie folgt angepasst.</p>
<p><strong>Tipp:</strong> Grundlegende Informationen zur Nutzung von NGINX als Reverse Proxy für SmartHomeNG und die smartVISU können unter <a href="https://www.smarthomeng.de/nginx-als-reverseproxy" target="_blank" rel="noopener">https://www.smarthomeng.de/nginx-als-reverseproxy</a> gefunden werden!</p>
<p>In der <code>/etc/nginx/.shng</code> sind dabei mit <code>htpasswd</code> ein Username und ein Passwort generiert worden. So steht der Endpunkt geschützt im Internet. Diese Daten müssen später in der ConnectIQ App eingetragen werden.</p>
<pre><code class="language-nginx">location /rest {
        auth_basic "Restricted Area: SmartHomeNG";
        auth_basic_user_file /etc/nginx/.shng;

        proxy_pass http://192.168.178.100:4321/rest;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
</code></pre>
<h1>Anpassung des ConnectIQ Programms</h1>
<p>Auf Site des zuvor angelegten ConnectIQ Programms müssen nun folgende Anpassungen gemacht werden.</p>
<h2>Berechtigung für Webservice Aufrufe setzen</h2>
<p>Damit die App berechtigt ist, Webservices aufzurufen, muss zuerst das Manifest File unter <code>/manifest.xml</code> editiert werden. Eclipse bietet dazu mit dem ConnectIQ Plugin einen Editor an. Ist die Datei geöffnet, so findet sich der entsprechende Menüpunkt im Reiter &#8222;Permissions&#8220; etwa in der Mitte des Fensters. Dort ist &#8222;Communications&#8220; anzuklicken und danach die Datei zu speichern.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/permissions.png" alt="" class="alignnone size-full wp-image-389" width="1268" height="960" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/permissions.png 1268w, https://www.smarthomeng.de/wp-content/uploads/2018/03/permissions-300x227.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/permissions-768x581.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/permissions-1024x775.png 1024w" sizes="(max-width: 1268px) 100vw, 1268px" /></p>
<h2>SmartHomeNG_on_a_WatchApp.mc</h2>
<p>Zuerst wird eine Konstante für den Internet Endpunkt angelegt, über den das Itemset erreichbar ist. In der Methode <code>getInitialView</code> wird ein &#8222;Loading&#8220; Text ergänzt.<br />
Der Zugriff gegen den REST Webservice wird in der Methode <code>makeRequest</code> gekapselt, die in der Methode <code>onStart</code> beim Start aufgerufen wird. <code>makeRequest</code> bekommt am ende <code>onReceive</code> als Callback mitgegeben. Hier findet das Parsen der JSON Antwort statt, welche danach an ein neues View übergeben wird. Der View schaltet direkt um (<code>Ui.SLIDE_IMMEDIATE</code>), so dass der Loading-Screen bei Antwort verschwindet.</p>
<p>&nbsp;</p>
<pre><code class="language-javascript">using Toybox.Application as App;
using Toybox.WatchUi as Ui;

<span style="color: #0000ff;">const URL = "https://<span style="color: #ff0000;">&lt;dyndnsurl&gt;</span>/rest/itemset/1";</span>

class SmartHomeNG_on_a_WatchApp extends App.AppBase {

    function initialize() {
        AppBase.initialize();
    }

    // onStart() is called on application start up
    function onStart(state) {
    	<span style="color: #0000ff;">makeRequest();</span>
    }

    // onStop() is called when your application is exiting
    function onStop(state) {
    }

    // Return the initial view of your application here
    function getInitialView() {
        return [ new SmartHomeNG_on_a_WatchView(<span style="color: #0000ff;">"Loading"</span>), new SmartHomeNG_on_a_WatchDelegate() ];
    }
    
<span style="color: #339966;"><span style="color: #0000ff;">    function onReceive(responseCode, data) {
       if (responseCode == 200){
           System.println("Request Successful, Data: "+data);                   // print success
           var tempValue = data["eta_unit.temperature_outside.value"];  
           var resultString = "Temperatur: "+tempValue.format("%.1f")+" °C\n";           
           var view = new SmartHomeNG_on_a_WatchView(resultString);
           var delegate = new SmartHomeNG_on_a_WatchDelegate();
           Ui.switchToView(view, delegate, Ui.SLIDE_IMMEDIATE);           
       }
       else {
           System.println("Response: " + responseCode + ", Data: "+data);            // print response code
       }
    }
   
    function makeRequest() {
       var url = URL;
       
       var params = null;
       
	   var headers = {
	   "Content-Type" =&gt; Communications.REQUEST_CONTENT_TYPE_JSON, 
	   "Authorization" =&gt; "Basic " + StringUtil.encodeBase64(Lang.format("$1$:$2$", [ "<span style="color: #ff0000;">&lt;user&gt;</span>", "</span><span style="color: #ff0000;">&lt;password&gt;</span><span style="color: #0000ff;">" ])),
	   "Accept" =&gt; "application/json"};
	   
       var options = {                                           
           :method =&gt; Communications.HTTP_REQUEST_METHOD_GET,  
           :headers =&gt; headers,                                                                 
           :responseType =&gt; Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
       };

       var responseCallback = method(:onReceive);                  // set responseCallback to 
                                                                   // onReceive() method
       // Make the Communications.makeWebRequest() call
       Communications.makeWebRequest(url, params, options, method(:onReceive));
    }</span></span>
}
</code></pre>
<h2>SmartHomeNG_on_a_WatchView.mc</h2>
<p>In der zugehörigen View-Datei, wird die Variable <code>_message</code> definiert, die den Text mit dem Temperaturwert aufnimmt. Dieser wird in <code>onLayout</code> gerendert.<br />
Damit dies geschehen kann, muss unter <code>/resources/layouts/layout.xml</code> zuerst ein Label mit ID <code>message</code> hinterlegt werden:</p>
<pre><code class="language-xml">
<span style="color: #0000ff;">&lt;layout id="MainLayout"&gt;
    &lt;label id="message" x="center" y="25" font="Gfx.FONT_XTINY" justification="Gfx.TEXT_JUSTIFY_CENTER"&gt;&lt;/label&gt;
&lt;/layout&gt;
</span></code></pre>
<p>Der Code in SmartHomeNG_on_a_WatchView.mc sieht dann wie folgt aus:</p>
<pre><code class="language-javascript">
using Toybox.WatchUi as Ui;

class SmartHomeNG_on_a_WatchView extends Ui.View {

<span style="color: #0000ff;">    hidden var _message;</span>
	
    function initialize(message) {
        View.initialize();
        <span style="color: #0000ff;">_message = message;
        System.println(message);</span>
    }

    // Load your resources here
    function onLayout(dc) {
        setLayout(Rez.Layouts.MainLayout(dc));
    	<span style="color: #0000ff;">View.findDrawableById("message").setText(_message);</span>
    }

    // Called when this View is brought to the foreground. Restore
    // the state of this View and prepare it to be shown. This includes
    // loading resources into memory.
    function onShow() {
    }

    // Update the view
    function onUpdate(dc) {
        // Call the parent onUpdate function to redraw the layout
        View.onUpdate(dc);
    }

    // Called when this View is removed from the screen. Save the
    // state of this View here. This includes freeing resources from
    // memory.
    function onHide() {
    }
}
</code></pre>
<h2>Ausführen des fertigen Programms</h2>
<p>Das Programm kann nun wie oben beschrieben über &#8222;Run -&gt; Run Configuration&#8220; als Fenix5 Configuration ausgeführt werden. Die Temperatur erscheint nun, sofern alles richtig gemacht wurde, im Emulator.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/temperature.png" alt="" class="alignnone size-full wp-image-390" width="1736" height="966" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/temperature.png 1736w, https://www.smarthomeng.de/wp-content/uploads/2018/03/temperature-300x167.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/temperature-768x427.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/temperature-1024x570.png 1024w" sizes="(max-width: 1736px) 100vw, 1736px" /></p>
<p>Wenn man die App auf die Uhr übertragen möchte, so geht dies über &#8222;Connect IQ&#8220; -&gt; &#8222;Build For Device Wizard..&#8220;. Mit einem entsprechenden Developer Key lässt sich nun eine Datei generieren, die auf der Uhr in das Verzeichns <code>\GARMIN\APPS</code> kopiert werden muss. Dies macht der Wizard gleich mit.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/wizard.png" alt="" class="alignnone size-full wp-image-392" width="1261" height="952" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/wizard.png 1261w, https://www.smarthomeng.de/wp-content/uploads/2018/03/wizard-300x226.png 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/wizard-768x580.png 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/wizard-1024x773.png 1024w" sizes="(max-width: 1261px) 100vw, 1261px" /></p>
<p>Zieht man danach die Uhr vom USB Port ab, kann die App gestartet werden.</p>
<p><img loading="lazy" decoding="async" src="https://www.smarthomeng.de/wp-content/uploads/2018/03/IMAG0633-20180325-1117221.jpg" alt="" class="alignnone size-full wp-image-393" width="1989" height="1410" srcset="https://www.smarthomeng.de/wp-content/uploads/2018/03/IMAG0633-20180325-1117221.jpg 1989w, https://www.smarthomeng.de/wp-content/uploads/2018/03/IMAG0633-20180325-1117221-300x213.jpg 300w, https://www.smarthomeng.de/wp-content/uploads/2018/03/IMAG0633-20180325-1117221-768x544.jpg 768w, https://www.smarthomeng.de/wp-content/uploads/2018/03/IMAG0633-20180325-1117221-1024x726.jpg 1024w" sizes="(max-width: 1989px) 100vw, 1989px" /></p>
<p>&nbsp;</p>
<p><em>(Die in diesem Artikel verwendeten Screenshots und Fotos wurden selber erstellt.)</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/smarthomeng-on-a-watch-anbindung-des-garmin-connectiq-ssk-an-smarthomeng/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
