<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Carly.be]]></title><description><![CDATA[My incoherent rambles.]]></description><link>https://carly.be/</link><image><url>https://carly.be/favicon.png</url><title>Carly.be</title><link>https://carly.be/</link></image><generator>Ghost 5.2</generator><lastBuildDate>Wed, 08 Apr 2026 21:42:39 GMT</lastBuildDate><atom:link href="https://carly.be/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Publish Ember test results to Jenkins]]></title><description><![CDATA[<p>We are using Jenkins to run our Ember builds. </p><p>Recently I wanted to publish the results of running <code>ember test</code> to Jenkins, luckily for us, most of the required functionality at the Ember side was available in <strong>ember-cli</strong>.</p><h3 id="ember-cli">Ember CLI</h3><pre><code class="language-shell">CI=1 ember test ci --silent --r xunit | tee logs/</code></pre>]]></description><link>https://carly.be/ember-test-jenkins/</link><guid isPermaLink="false">5fca5717c292610389ab943d</guid><category><![CDATA[Ember]]></category><category><![CDATA[Jenkins]]></category><dc:creator><![CDATA[PJ Carly]]></dc:creator><pubDate>Fri, 04 Dec 2020 17:10:25 GMT</pubDate><media:content url="https://carly.be/content/images/2020/12/ember-jenkins.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://carly.be/content/images/2020/12/ember-jenkins.jpg" alt="Publish Ember test results to Jenkins"><p>We are using Jenkins to run our Ember builds. </p><p>Recently I wanted to publish the results of running <code>ember test</code> to Jenkins, luckily for us, most of the required functionality at the Ember side was available in <strong>ember-cli</strong>.</p><h3 id="ember-cli">Ember CLI</h3><pre><code class="language-shell">CI=1 ember test ci --silent --r xunit | tee logs/xunit.xml</code></pre><p>A little breakdown of what is in this command:</p><p><code>CI=1</code>: This sets the environment variable CI=1, this is then later picked up by the testem test suite to make certain decisions. This can be seen in the <code>testem.js</code> pasted below. You can see this in the <code>process.env.CI</code> .</p><pre><code class="language-json">module.exports = {
  test_page: &apos;tests/index.html?hidepassed&apos;,
  disable_watching: true,
  launch_in_ci: [
    &apos;Chrome&apos;
  ],
  launch_in_dev: [
    &apos;Chrome&apos;
  ],
  browser_args: {
    Chrome: {
      ci: [
        // --no-sandbox is needed when running Chrome inside a container
        process.env.CI ? &apos;--no-sandbox&apos; : null,
        &apos;--headless&apos;,
        &apos;--disable-gpu&apos;,
        &apos;--disable-dev-shm-usage&apos;,
        &apos;--disable-software-rasterizer&apos;,
        &apos;--mute-audio&apos;,
        &apos;--remote-debugging-port=0&apos;,
        &apos;--window-size=1440,900&apos;
      ].filter(Boolean)
    }
  }
};
</code></pre><p><code>ember test ci</code>, this runs ember-cli test suite, but triggers the browser_arg ci, in the testem.js above, this is the part in the <code>Chrome</code> key of the json.</p><p><code>--silent</code> tells ember-cli to not output any warnings or other unrelated information.</p><p><code>--r xunit</code> tells ember to output the test results in the xunit format.</p><p><code>| tee logs/xunit.xml</code> pipes the output of ember-cli, to the file xunit.xml &#xA0;in the logs directory.</p><h3 id="jenkins">Jenkins</h3><p>For jenkins to understand the xml output of ember-cli, we must install a plugin. Go to <code>manage jenkins &gt; manage plugins</code> and look for <a href="https://plugins.jenkins.io/junit"><strong>JUnit Plugin</strong></a>, enable the plugin, and restart jenkins.</p><p>Create or edit a project in Jenkins, and in your project, after changing the <code>execute shell</code> command to the ember test command above.</p><p>add a <strong>Post-build Action</strong> and choose for <strong>Publish JUnit test result report</strong>, and configure what is needed: </p><figure class="kg-card kg-image-card"><img src="https://carly.be/content/images/2020/12/image.png" class="kg-image" alt="Publish Ember test results to Jenkins" loading="lazy" width="824" height="476" srcset="https://carly.be/content/images/size/w600/2020/12/image.png 600w, https://carly.be/content/images/2020/12/image.png 824w" sizes="(min-width: 720px) 720px"></figure><p>Make sure that the <code>Test report XMLs</code> is set to <code>logs/*xml</code>, this is the same path we told ember-cli above to output the results.</p><p>Now you should see the test results graph appearing in the project, and per build the Test Result with a breakdown of all the tests and the details.</p>]]></content:encoded></item><item><title><![CDATA[Expose Home Assistant through an SSH tunnel]]></title><description><![CDATA[<p>Today I will show you how to expose your Home Assistant through an <a href="https://www.ssh.com/ssh/tunneling/example">SSH tunnel</a>, and keep it active with <a href="https://linux.die.net/man/1/autossh">autossh</a>. Then use an Nginx reverse proxy on your remote server combined with your own custom domain to use Home Assistant over the internet.</p><p>This can be used as an</p>]]></description><link>https://carly.be/expose-home-assistant-through-ssh-tunnel/</link><guid isPermaLink="false">5baa8e4df1603f04059411d8</guid><category><![CDATA[Smart Home]]></category><dc:creator><![CDATA[PJ Carly]]></dc:creator><pubDate>Tue, 25 Sep 2018 21:18:00 GMT</pubDate><media:content url="https://carly.be/content/images/2018/09/ha_logo_hassio.png" medium="image"/><content:encoded><![CDATA[<img src="https://carly.be/content/images/2018/09/ha_logo_hassio.png" alt="Expose Home Assistant through an SSH tunnel"><p>Today I will show you how to expose your Home Assistant through an <a href="https://www.ssh.com/ssh/tunneling/example">SSH tunnel</a>, and keep it active with <a href="https://linux.die.net/man/1/autossh">autossh</a>. Then use an Nginx reverse proxy on your remote server combined with your own custom domain to use Home Assistant over the internet.</p><p>This can be used as an alternative for <a href="https://en.wikipedia.org/wiki/Port_forwarding">Port Forwarding</a> on your router, and in case of a dynamic IP address, a Dynamic DNS provider like DuckDNS, DynDNS, ... And can even be used from inside a VM. Everything is self hosted and doesnt require any 3rd party services.</p><p>You can use all of Nginx&apos; features on your remote machine in an industry standard way without affecting or having to configure anything on your Home Assistant. For example you can configure SSL certificates on your Nginx, and only need to encrypt that endpoint, as an SSH tunnel is encrypted by default.</p><h2 id="requirements">Requirements</h2><ul><li>Raspberry Pi with Hass.io installed (version used in this blog post is 0.78.3)<br><em>In case you are using Hassbian, you can do it manually. In any other case, im not sure what is possible.</em></li><li>A remote linux machine.</li><li>A custom domain</li></ul><h1 id="1-install-autossh-hass-io-addon">1. Install autoSSH Hass.io addon</h1><p>For starters you will have to install an addon, which will install all the necessary dependencies for you. This addon is a fork of <a href="https://github.com/odinuge/hassio-addons">the excellent addon by odinuge</a>. The only difference being that the host network has been exposed to the autossh container.</p><ol><li>In Home assistant go to Hass.io -&gt; Add-on Store</li><li>In the repositories at the top add my repository: <a href="https://github.com/pjcarly/hassio-addons">https://github.com/pjcarly/hassio-addons</a></li><li>Install the add-on HASS Tunnel</li><li>Start the add-on</li></ol><p>At this point, we start the add-on for the first time, so we can extract the public key which will be generated by the container on the first run. We need that key, to authorize our access on our remote server in the next step.</p><p>Because the add-on itself hasn&apos;t been configured yet, nothing else will happen.</p><p>Refresh your addon log (on the bottom), until you see something similar like this:</p><pre><code>starting version 3.2.4
[INFO] Setup private key
Generating public/private rsa key pair.
Your identification has been saved in /data/ssh_keys/autossh_rsa_key.
Your public key has been saved in /data/ssh_keys/autossh_rsa_key.pub.
The key fingerprint is:
SHA256:FhxM+7e2fmQt1Qgyz6TEqoHoxcFTZytYOfnjCsMpVgU root@03351470-autossh
The key&apos;s randomart image is:
+---[RSA 4096]----+
|   .Eoo==.       |
|    +o=+.+= o    |
|   o.=.o=o B . ..|
|  . = ..+o. o . o|
| . + . +S.. .  o |
|  + = ...  . .+ .|
| . . o .    oo . |
|      .    . ..  |
|           .o.   |
+----[SHA256]-----+
[INFO] public key is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDZZ9V6nb+on+nuaAU1MLPPEGm+tv6RP6if3oUQx9bFNBjMuPpytjNUjhX/CZXcIf6IB+K52SYZzNL18ADBTr0oJb4Aog70QU/+LDzX3ljxGTnZBKLBgM+CsOhUgBYw5tpiSTWlBhedKd48xXvhmJ959+2md/x1qNVWXwecNrHUHquWz3CJYcUtY9A4V4PaWz7nFpcGxyWRJaMU+iHexb3Jyf7Cly/EvPxITJ9KE2CbQoRlONF3JYXkgwrjYCa91EXTYOV/S5UR2j9y8FjlYAzmGZqDMQ0G/PzIiYSC7nprl96OdzEVNXHo6NYusRfypDWhkOQi1OEnX0MusVb4Ax34UD/Yt92Kt5zBTFJ+IZJxw5izDbdBSHfngH2orwxFgF+iFAxWmLi6d71B8JdXj/72lTtUmyu4qJBOlN8RMEZOWxmrrnJZutCHZzYqeAYnN6C6rpVpGmUZKyD/FhP1YJB2gcqg87TdH0abjgbRO59g7u7zzFEG4JZeHqzSiDeh6SwWK1VWWn/9iBE3mWvZNpQUIo8Z5F3BvnQJW16OwaHJGCoW0BEoIDrb79gsLzXwg+VYLTxAZRti6pxAPW4QVEhiwXLf6JNGHPDniJ64KnxADhI1ci4PvAQnCOXfWrB1ApdJZ+gLolcDReKyC69CMIi4oUYoWuH3QKtLfVSZRQXbSQ== root@03351470-autossh
[INFO] testing ssh connection
[INFO] listing host keys
usage: ssh-keyscan [-46cHv] [-f file] [-p port] [-T timeout] [-t type]
[INFO] command args: -M 0 -N -q -o ServerAliveInterval=20 -o ServerAliveCountMax=3 autossh@ -p 22 -i /data/ssh_keys/autossh_rsa_key -R 127.0.0.1:8123:172.17.0.1:8123 -v
		   [host | addrlist namelist] ...
OpenSSH_7.5p1-hpn14v4, LibreSSL 2.6.3
debug1: Reading configuration data /etc/ssh/ssh_config
ssh: Could not resolve hostname : Name does not resolve</code></pre><p>From the log, copy the public key displayed below <code>[INFO] public key is:</code></p><p>In this example this is:</p><pre><code>ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDZZ9V6nb+on+nuaAU1MLPPEGm+tv6RP6if3oUQx9bFNBjMuPpytjNUjhX/CZXcIf6IB+K52SYZzNL18ADBTr0oJb4Aog70QU/+LDzX3ljxGTnZBKLBgM+CsOhUgBYw5tpiSTWlBhedKd48xXvhmJ959+2md/x1qNVWXwecNrHUHquWz3CJYcUtY9A4V4PaWz7nFpcGxyWRJaMU+iHexb3Jyf7Cly/EvPxITJ9KE2CbQoRlONF3JYXkgwrjYCa91EXTYOV/S5UR2j9y8FjlYAzmGZqDMQ0G/PzIiYSC7nprl96OdzEVNXHo6NYusRfypDWhkOQi1OEnX0MusVb4Ax34UD/Yt92Kt5zBTFJ+IZJxw5izDbdBSHfngH2orwxFgF+iFAxWmLi6d71B8JdXj/72lTtUmyu4qJBOlN8RMEZOWxmrrnJZutCHZzYqeAYnN6C6rpVpGmUZKyD/FhP1YJB2gcqg87TdH0abjgbRO59g7u7zzFEG4JZeHqzSiDeh6SwWK1VWWn/9iBE3mWvZNpQUIo8Z5F3BvnQJW16OwaHJGCoW0BEoIDrb79gsLzXwg+VYLTxAZRti6pxAPW4QVEhiwXLf6JNGHPDniJ64KnxADhI1ci4PvAQnCOXfWrB1ApdJZ+gLolcDReKyC69CMIi4oUYoWuH3QKtLfVSZRQXbSQ== root@03351470-autossh</code></pre><p>	5. Stop the add-on.</p><h1 id="2-configure-your-server">2. Configure your server</h1><p>You will need a remote server (which should be accessible from the internet for our purpose).</p><p>In this step, we configure our your server to accept the earlier generated public-key for passwordless access.</p><p>I strongly recommend creating a new user on your remote server, without any rights or permissions, so in case the access is somehow compromised, this user cant do anything wrong on your server.</p><ol><li><code>$ sudo useradd homeassistant</code></li><li><code>$ sudo su homeassistant</code></li><li>Check if the file <code>~/.ssh/authorized_keys</code> exists, create it if not.</li><li>Add your earlier generated public key to this file</li></ol><p>This step will make sure that your Hass.io add-on can connect through SSH to your server by authenticating via the Key instead of having to provide a password.</p><h1 id="3-configure-nginx">3. Configure Nginx</h1><p>Installing Nginx and configuring your DNS to point to your server is beyond the scope of this blogpost, luckily there are plenty of great tutorials online to <a href="https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-18-04">get you started</a>.</p><p>In the examples below, I will use the example domain: <code>home-assistant-tunnel.example.com</code> make sure to replace it with your domain.</p><ol><li>Navigate to <code>/etc/nginx/sites-available</code></li><li>Create a new file <code>touch home-assistant-tunnel.example.com</code></li><li>Enter the configuration below</li></ol><pre><code>server {
  listen 80;
  server_name home-assistant-tunnel.example.com;
  return 301 https://home-assistant-tunnel.example.com$request_uri;
}

server {
    # Secure HTTP (HTTPS)
    listen 443 ssl;
    server_name home-assistant-tunnel.example.com;

    # Certificate Information
    ssl_certificate /etc/letsencrypt/live/home-assistant-tunnel.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/home-assistant-tunnel.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/home-assistant-tunnel.example.com/fullchain.pem;

    include /etc/nginx/snippets/ssl.conf;
    include /etc/nginx/snippets/letsencrypt.conf;

    location / {
        proxy_pass http://localhost:44400;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection &apos;upgrade&apos;;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}</code></pre><p>The example above uses an SSL certificate provided by Let&apos;s Encrypt. To properly configure your server with Let&apos;s Encrypt, you can follow <a href="https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04">this tutorial</a></p><p>Please note in the above configuration, I used the port <code>44400</code> this can be any unused port on your Nginx server, just make sure to use the same port in the next step (your hassio addon configuration)</p><p>Make sure to symlink your new file in the folder <code>/etc/nginx/sites-enabled</code>, and restart the nginx service.</p><h1 id="4-configure-the-hass-io-add-on">4. Configure the Hass.io add-on</h1><ol><li>Go back to your home assistant, Hass.io -&gt; Dashboard -&gt; HASS Tunnel</li><li>In the config paste the following configuration:</li></ol><pre><code>{
  &quot;hostname&quot;: &quot;home-assistant-tunnel.example.com&quot;,
  &quot;ssh_port&quot;: 22,
  &quot;username&quot;: &quot;homeassistant&quot;,
  &quot;remote_forwarding&quot;: [
    &quot;44400:localhost:8123&quot;
  ],
  &quot;local_forwarding&quot;: [
    &quot;&quot;
  ],
  &quot;other_ssh_options&quot;: &quot;-v&quot;,
  &quot;monitor_port&quot;: &quot;44401&quot;
}</code></pre><p>A few notes here:</p><ul><li><strong>hostname</strong>: your domain</li><li><strong>username</strong>: the username of the user you created on your server in step 2</li><li><strong>&quot;44400:localhost:8123&quot;</strong> 44400 must be the same port you used in the Nginx configuration in step 3, 8123 is port on your raspberry pi that is running the homeassistant (default: 8123)</li><li><strong>monitor_port</strong>: This must be the the remote forwarding port +1 (in our case, 44400 + 1 = 44401). This is the port that autossh will use to check if the connection is still active. Every few seconds autossh will send a small message over that port and if the message wouldn&apos;t arrive, autossh will restart the SSH tunnel. Making sure the connection stays active.</li></ul><p>3. Start your add-on<br>4. Make sure start-on boot is on if you want to have this addon start on every reboot</p><p>In your log, you should see something like this:</p><pre><code>...
debug1: Connecting to home-assistant-tunnel.example.com [IP] port 22.
debug1: Connection established.
...
debug1: Authenticating to home-assistant-tunnel.example.com:22 as &apos;homeassistant&apos;
...
debug1: Authentication succeeded (publickey).
...
debug1: Remote connections from LOCALHOST:44400 forwarded to local address localhost:8123
...</code></pre><p>If you now navigate to <code>https://home-assistant-tunnel.example.com</code> you should see your own home assistant instance running. And you can now access your Home Assistant without being connected to your home network.</p><p>In case you reboot your Raspberry Pi, the autossh addon will automatically boot, and connect to your remote server.<br>In case the tunnel connection is disconnected somehow (because of a temporary network drop or whatever) the autossh application will automatically try to restore the connection.</p>]]></content:encoded></item><item><title><![CDATA[India 2018]]></title><description><![CDATA[A summary of our trip to Rajasthan, Agra and Delhi in India in 2018.]]></description><link>https://carly.be/india-2018/</link><guid isPermaLink="false">5ae5e3c0db52d705acc6745b</guid><category><![CDATA[Travel]]></category><dc:creator><![CDATA[PJ Carly]]></dc:creator><pubDate>Thu, 17 May 2018 16:25:08 GMT</pubDate><media:content url="https://carly.be/content/images/2018/05/India-Cover.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://carly.be/content/images/2018/05/India-Cover.jpg" alt="India 2018"><p>My last post about our <a href="https://carly.be/usa-midwest-2017/">trip to the USA</a> was well-received, and with the risk of starting a new tradition, here is a little write-up of our trip to India in April/May of 2018.</p>
<p>Normally April through September is low season in India, the main reason being the heat and/or the monsoon, during our trip temperatures averaged around 40&#xB0;C when the sun was out, and 30&#xB0;C at night. However the low season did have some perks, almost no wait times at popular sights and lower entrance fees at some destinations.</p>
<blockquote>
<p>The area we visited (Rajasthan mainly) typically has the monsoon starting in July and lasting until the end of August.</p>
</blockquote>
<h2 id="theroute">The Route</h2>
<p><img src="https://carly.be/content/images/2018/05/India-2018.png" alt="India 2018" loading="lazy"></p>
<p>Due to some time constraints we only had 12 days for this trip. It was doable, but probably more relaxing if you add a few more (14 would have been perfect). If you have more time you should also consider adding Jaisalmer and Bikaner to your itinerary.</p>
<h2 id="highlights">Highlights</h2>
<p>We arrived in India, in Delhi in the middle of the night (2:30 AM), and took a domestic flight to Udaipur a few hours later. Where we started our journey.</p>
<h3 id="1udaipur">1. Udaipur</h3>
<p><img src="https://carly.be/content/images/2018/05/01-Udaipur.jpg" alt="India 2018" loading="lazy"></p>
<p>While India can be a quite a shock for first timers, Udaipur, the city of lakes, seems to be a perfect entry to ease your way into the Indian way of life.</p>
<p>It is an easy going city, with lots of helpful people, especially if you compare it to Agra and Delhi.</p>
<p>Definitely visit the <strong>City Palace</strong>, <strong>Jag Mandir</strong> and the <strong>Jagdish Temple</strong>. Take a stroll through the <strong>Sindhi Bazar</strong> and go look at the <strong>Taj Lake Palace</strong></p>
<blockquote>
<p>The Taj Lake Palace is a very <s>expensive</s> high-end hotel that you cant visit unless you stay there. However, when you take the boat to Jag Mandir, or dine on top of a rooftop restaurant overseeing the lake, you get an nice view of this beautiful palace.</p>
</blockquote>
<p>For us personally, the biggest highlight of Udaipur was witnessing the awakening and flight of the <strong>mega-bats</strong> who spend their day hanging from the trees around the lakes. And when the sun goes down, they start coming out by the thousands  and flying in huge amounts around the lakes. The best place to enjoy this, is on a rooftop restaurant overseeing the lake during sunset while enjoying a tasty meal.</p>
<p><img src="https://carly.be/content/images/2018/05/01-Udaipur---Bats.jpg" alt="India 2018" loading="lazy"></p>
<p><em>Recommended stay: at least 2 days.</em></p>
<h3 id="2ranakpur">2. Ranakpur</h3>
<p><img src="https://carly.be/content/images/2018/05/02-Ranakpur.jpg" alt="India 2018" loading="lazy"></p>
<p>On your way to Jodhpur this beautiful Jain temple is a must visit place. It is located in a small and peaceful village which doesn&apos;t have a lot more to offer than the temple itself.</p>
<p>The temple has a strict dress code, legs and shoulders should be covered, no shoes allowed and leather items are also forbidden inside (think of belts, wallets, ...).</p>
<p>No food and drinks allowed either.</p>
<p>Around the temple there are plenty of fun and playful monkeys. Keep an eye out for them.</p>
<h3 id="3narlai">3. Narlai</h3>
<p><img src="https://carly.be/content/images/2018/05/03-Narlai.jpg" alt="India 2018" loading="lazy"></p>
<p>While Narlai isn&apos;t very well known, this small village halfway to Jodhpur is well worth the stop and an excellent place to spend the night.</p>
<p>Normally I don&apos;t mention hotels as they aren&apos;t very important to me, but an honorable mention to the Rawla, it is easily one of the most beautiful hotels I have ever stayed, located in a renovated fort in the center of town. With excellent food, great amenities and friendly staff. Although the place isn&apos;t cheap, it is still arguably worth the money, considering you get a lot for what you pay, and the hotel supposedly does community support programs in the village.</p>
<p>One thing you should absolutely do here is get up early in the morning and hike up <strong>Hathi narlai mountain</strong> to the white elephant on top, so you can witness the sunrise and enjoy the stunning views over the valley and town. You can perfectly do this by yourself, but if you prefer, the Rawla also provides a complementary guide which will carry tea and biscuits. In total this should take about 1h 30m.</p>
<p><em>Recommended stay: 1 day (in case you want to relax some extra time, extend your stay at the hotel, it is worth it).</em></p>
<h3 id="4jodhpur">4. Jodhpur</h3>
<p><img src="https://carly.be/content/images/2018/05/04-Jodhpur.jpg" alt="India 2018" loading="lazy"></p>
<p>The first large city along this route, Jodhpur is known as the Blue city, this because in the old town most of the houses are painted blue. You can see this beautifully from <strong>Mehrangarh Fort</strong> which oversees the old town.</p>
<p>You should also definitely visit <strong>Jaswant Thada</strong>, and go to the <strong>Ghanta Ghar</strong> which has the busy <strong>Sadar Market</strong> surrounding it. If you want you can also visit to the <strong>Umaid Bhawan Palace</strong> where the current Maharadja of Jodhpur still lives.</p>
<p><em>Recommended stay: at least 2 days.</em></p>
<h3 id="5pushkar">5. Pushkar</h3>
<p>The drive to Jaipur is long, and halfway you can visit the only temple dedicated to Brahma the Hindu creator god in Pushkar, the <strong>Brahmani Temple</strong>.</p>
<p>Check the calendar because every year there is also a popular <strong>Camel Fair</strong> in Pushkar in November which should be quite the event.</p>
<blockquote>
<p>Be warned: the priests and the &quot;free&quot; guides and students in the temple are master manipulators that can easily trick you in &quot;donating&quot; thousands of Rupees, they will try to separate you from your travel companions. The temple can be visited free of charge, just say no to all proposals, or get up and walk away if you&apos;re not feeling comfortable.</p>
</blockquote>
<h3 id="6jaipur">6. Jaipur</h3>
<p><img src="https://carly.be/content/images/2018/05/06-Jaipur.jpg" alt="India 2018" loading="lazy"></p>
<p>The next big city along this route is Jaipur, and has some beautiful places to visit. A little north of the city you should visit <strong>Amber Fort</strong> (aka Amer Fort), while driving to the fort, take a quick stop at <strong>Jal Mahal</strong>.</p>
<p>Inside the city definitely go visit <strong>Jantar Mantar</strong> this place has a collection of peculiar structures built to study astronomy. Not far from this place, <strong>Hawa Mahal</strong> is also worth the stop and if you cant get enough of palaces the <strong>City Palace</strong> is just around the corner.</p>
<p><em>Recommended stay: at least 2 days.</em></p>
<h3 id="7chandbaori">7. Chand Baori</h3>
<p><img src="https://carly.be/content/images/2018/05/07-Chand-Baori.jpg" alt="India 2018" loading="lazy"></p>
<p>The drive to Agra is long, but fortunately there are quite a few stops along the route. Starting with the <strong>Chand Baori Step Well</strong> in Abhaneri. This step well is one of the largest of its kind in India, and can be visited free of charge.</p>
<h3 id="8keoladeonationalpark">8. Keoladeo National Park</h3>
<p><img src="https://carly.be/content/images/2018/05/08-Keoladeo.jpg" alt="India 2018" loading="lazy"></p>
<p>This national park was the first National Park of India, and known for the large and diverse population of birds. Keep in mind that your ticket is only valid for the entry in the park, and if you want enjoy the full experience, you should calculate the cost of a guide (&#x20B9;250 per hour) and a Rickshaw driver (&#x20B9;100 per hour). The very minimum time you can visit is 1h 30m because of the distance and the slow moving rickshaws. But I recommend 2 hours.</p>
<h3 id="9fatehpursikri">9. Fatehpur Sikri</h3>
<p><img src="https://carly.be/content/images/2018/05/09-Fatehpur-Sikri.jpg" alt="India 2018" loading="lazy"></p>
<p>The last stop on your way to Agra is <strong>Fatehpur Sikri</strong> this Fort is large but very impressive. It is devided in a free part (the Mosque) and a paying part (the fort). Both are worth the visit. You will notice that the fort has influences from all different religions.</p>
<h3 id="10agra">10. Agra</h3>
<p><img src="https://carly.be/content/images/2018/05/10-Agra---Taj-Mahal.jpg" alt="India 2018" loading="lazy"></p>
<p>Once you arrive in Agra, you will immediately notice this city is not so laid back as the last few cities you have visited. Even for Indian standards the traffic is crazy, the city is loud and very crowded.</p>
<p>The obvious world famous <strong>Taj Mahal</strong> is arguably the most important sight in India, but other sights include <strong>Agra Fort</strong>, and <strong>Itmad-ud-Daula</strong> (aka Baby Taj)</p>
<p>Try to visit the Taj Mahal early in the morning for Sunrise, the sun rises beautifully along the monument, and the crowds are still manageable.</p>
<p><em>Recommended stay: at least 1 day (consider an extra day for a more relaxed visit).</em></p>
<h3 id="11delhi">11. Delhi</h3>
<p><img src="https://carly.be/content/images/2018/05/11-Delhi.jpg" alt="India 2018" loading="lazy"></p>
<p>Delhi is the largest city of the country, and the 3rd largest city in the world. And you will notice. There are people everywhere any time of the day.</p>
<p>Notable sights in the city are: <strong>Jama Masjid</strong> a beautiful mosque where you can climb to the top of one of the minarets and enjoy a stunning sight of the city, <strong>Gurudwara Bangla Sahib</strong> and/or <strong>Gurdwara Sis Ganj Sahib</strong>, 2 beautiful Sikh temples, where you can enjoy the hospitality of the Sikh both free of charge (although donations are accepted), <strong>India Gate</strong>, <strong>Humayun&apos;s Tomb</strong>, <strong>Raj Ghat</strong> (the grave of Ghandi) and a lot more, go through your travel guide for more inspiration.</p>
<p>Delhi is huge, and getting around can be challenging, the traffic is crazy, many streets do not have names or aren&apos;t even on the maps. However the metro is very good, it is modern, clean, safe and not expensive.</p>
<p><em>Recommended stay: at least 3 days, but honestly you can stay as long as you want and never get tired of things to do and see.</em></p>
<h2 id="tips">Tips</h2>
<p>Here I will try to go over a few tips to hopefully make your India visit more enjoyable.</p>
<h3 id="1visum">1. Visum</h3>
<p>Most nationalities require a visum to enter India. You can request this yourself on <a href="https://indianvisaonline.gov.in">https://indianvisaonline.gov.in</a>, and will cost you about 40 EUR per person. This procedure is rather quick and should normally take 4 working days.</p>
<blockquote>
<p>Make sure to print out your approved visum and bring it with you to the airport, as you can be denied boarding if you can&apos;t provide proof of visum.</p>
</blockquote>
<h3 id="2sim">2. SIM</h3>
<p>This is more a personal preference, as I enjoy the ease of looking up information myself online, and in India it is the perfect medium to request taxis on (more on that later). <strong>Airtel</strong> is the carrier in India which provides the best general coverage.</p>
<blockquote>
<p>And at the time of writing it cost me about 5 EUR for 28 days unlimited calls and texts, and 1 GB per day.</p>
</blockquote>
<p>The SIM card will normally take 24 hours to activate once you have requested it. When you go to an Airtel store to request a SIM card, make sure you carry a copy of your passport (or your passport), a passport photo, and the address of your hotel.</p>
<h3 id="3hotels">3. Hotels</h3>
<p>One of the best tips I can give you for India, is try to find a hotel that is quite luxurious, the price is often many times lower than the same room you would have in another country. While you can find very cheap places to stay, it is very enjoyable to have a little oasis in the busy and hectic India every night.</p>
<h3 id="4traffic">4. Traffic</h3>
<p>Even though nothing in the law is stopping you to rent a car and drive yourself in India, I would strongly advise against it. The traffic is nothing  short of pure chaos in the cities and arguably one of the more challenging places to drive in the world. Roads often dont even have a name, or arent anywhere on the map.</p>
<p>Besides you can easily find taxi companies who will rent out a car plus driver with everything included (gasoline, taxes, tolls, parking, overnight stay and meals for the driver, ...) for a few days. To give you an idea, it cost us a little under 300 EUR for 6 days all included.</p>
<h3 id="5cultureshock">5. Culture Shock</h3>
<p>India can be quite the shock, there is a lot of poverty, noise, crowds., ... But don&apos;t get scared, at the same time it is beautiful, very colorful, tasty food, rich culture, ...</p>
<p>Buy yourself a good travel guide and read through it before going. I am a big fan of the Lonely Planet travel guides, and swear by them for every destination.</p>
<h3 id="6hassling">6. Hassling</h3>
<p>In shops you will often not find any price tags, with good reason, locals will debate prices and are natural born deal makers. Keep in mind that as a foreigner if you ask for the price of something, the initial price will be at least 3 times the price you should actually pay.</p>
<h3 id="7taxis">7. Taxis</h3>
<p>Similar to hassling, the price of taxis is often 3 times (or more) the price you should pay. Finding a taxi driver that is willing to drive with a meter is equally challenging.</p>
<p>To make this easy and enjoyable, use the app <strong>Ola Cabs</strong> on your smartphone, which is the Indian version of Uber (although Uber is available in India, Ola is more widely used and cheaper). You must set a pickup and destination, you will get a price, and a driver will come and pick you up. You can just pay in cash to the driver. During our stay not once did a driver make a fuss or be difficult when using Ola, all went very smoothly.</p>
<h3 id="8selfiesandpictureswithlocals">8. Selfies and Pictures with locals</h3>
<p>For some reason (I have heard multiple explanations) locals enjoy selfies and pictures with foreigners, and you will be asked multiple times a day for pictures. Nothing bad is meant by this, and they will be quick and easy. However, sometimes if you agree to one picture, all of a sudden 10 other people will be lined up for a picture with you.</p>
<p>Sometimes this can be a little annoying, but just enjoy and experience how celebrities go through life all the time. I had one rule regarding the pictures, every time someone wanted a picture with me, I in turn wanted a picture with them. These pictures turned out to be fantastic, and a beautiful souvenir of our trip.</p>
<h3 id="9foodanddrinks">9. Food and drinks</h3>
<p>Be very careful with food and drinks in India. Only drink bottled water, even brush your teeth with bottled water, and avoid ice cubes in your drinks.</p>
<p>If you go out to eat, I would advise against eating meat. India is very well known for the rich <strong>veggie culture</strong>, just enjoy it as it will limit the risk of unsafe food. Try to only eat cooked vegetables and avoid raw ingredients.</p>
<p>Use your travel guide, trip advisor, read reviews, ask for advice in your hotels and only eat in upstanding clean places. But if you decide to try street food, only eat in places where a lot of locals are eating, and there are fast moving dishes.</p>
<p>Even if you are very careful, sometimes you can get a bacterial infection often from something small, this can understandably ruin your trip, as you can be tied to a toilet. Bring diarrhea medication, activated charcoal (in case of food poisoning) and antibiotics (go and see a doctor for advice).</p>
<h3 id="10pollution">10. Pollution</h3>
<p>I&apos;ll just come out and say it, India is dirty. Trash everywhere, polluted rivers (<strong>never, ever swim in a river!</strong>), smog and lots of dirty traffic.</p>
<p>If you are walking through a city you will often switch between delicious and foul smells in a matter of seconds.</p>
<h3 id="11airports">11. Airports</h3>
<p>The airports in India are busy, very busy, come well in advance because you will loose a lot of time just queuing. I would say <strong>3 to 4 hours</strong> before departure for <strong>international flights</strong>, and <strong>2 to 3 hours</strong> for <strong>domestic flights</strong>.</p>
<p>In Delhi and Banagalore (possibly others) you have to show your ticket and passport before you can enter the airport (this can be done on your smartphone), and on busy days, you will spend a considerable amount of time queuing here before you even enter the airport. Keep in mind that you still have to check-in (or drop your baggage) and go through the security check.</p>
<h3 id="12language">12. Language</h3>
<p>Although a lot of languages are spoken in India, you can get around very easily with English. All important street signs and information is mostly displayed in both Hindi and English. Everywhere in hotels and decent restaurants English will be the main language spoken.</p>
<!-- 
Hotels
 - Little Garden Guest House (Udaipur) ++++ €€
 - Rawla Narlai +++++ €€€
 - The Almond Tree (Jodhpur) +++ €€
 - ITC Rajputana (Jaipur) ++++ €€€
 - ITC Mughal (Agra) ++++ €€€
 - Pllazio Gurgaon +++ €€€

Restaurant
 - Charcoal (Udaipur)
 - Rawla (Narlai)
 - Stepwell Cafe (Jodhpur)
 - Peacock Rooftop (Jaipur)
 - Pinch of Spice (Agra)
--><!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Mapzen Alternatives]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><em>This is a copy and paste blogpost, originally posted at <a href="https://mapzen.com/blog/migration/">Mapzen</a>, because the service is shutting down and I wasn&apos;t sure how long the blogpost was going to be online for, I wanted to preserve the valuable information and republish it myself. Apart from this intro, not a</em></p>]]></description><link>https://carly.be/mapzen-alternatives/</link><guid isPermaLink="false">5adbbc4022ccc8603f9b9fc4</guid><category><![CDATA[Development]]></category><dc:creator><![CDATA[PJ Carly]]></dc:creator><pubDate>Sat, 12 May 2018 10:14:01 GMT</pubDate><media:content url="https://carly.be/content/images/2018/05/Mapzen-FeatureArt.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://carly.be/content/images/2018/05/Mapzen-FeatureArt.jpg" alt="Mapzen Alternatives"><p><em>This is a copy and paste blogpost, originally posted at <a href="https://mapzen.com/blog/migration/">Mapzen</a>, because the service is shutting down and I wasn&apos;t sure how long the blogpost was going to be online for, I wanted to preserve the valuable information and republish it myself. Apart from this intro, not a single word was written by myself</em></p>
<p>Get driving, biking, walking and transit navigation in your app</p>
<p>Mapzen will cease operations at the end of January 2018, and its hosted APIs and all related support and services will turn off on February 1, 2018.</p>
<p>Your two options are to switch to another hosted API that offers similar functionality, or to run your own servers with the open-source projects that powered Mapzen services. We list several options below to make this as easy as possible.</p>
<h2 id="alternateservicesandhostedapis">Alternate services and hosted APIs</h2>
<h3 id="mapzenvectortilesandcartography">Mapzen Vector Tiles and Cartography</h3>
<p>For basemaps and vector tiles, you may want to consider:</p>
<ul>
<li><a href="https://mapzen.com/blog/long-term-support-mapzen-maps/">Nextzen</a> (A long-term support version of own own Tilezen):</li>
<li><a href="https://www.mapbox.com/maps/">Mapbox</a></li>
<li><a href="https://openmaptiles.org/">OpenMapTiles</a></li>
<li><a href="https://thunderforest.com/docs/vector-maps-api/">Thunderforest</a></li>
<li><a href="http://mapcat.com/">MAPCAT</a></li>
</ul>
<p>Long-term support for Vector Tiles is available <a href="https://mapzen.com/blog/long-term-support-mapzen-maps/">via Nextzen</a> through 2018 supported by Amazon Web Services, thanks to an award from the <a href="https://aws.amazon.com/earth/research-credits/">Earth on AWS Cloud Credits for Research Program</a>. This includes hosted versions of Tangram JS and the map styles. The vector tile data is an archived December 2017 global build available in a requestor pays S3 bucket with associated serverless software.</p>
<p>Terrain Tiles will continue to be available as an <a href="https://aws.amazon.com/public-datasets/terrain/">Amazon Public Dataset</a>.</p>
<p>Mapzen Vector Tiles and Cartography are based on the <a href="https://github.com/tangrams">Tangram</a> and <a href="https://github.com/tilezen/">Tilezen</a> open-source projects. Read below for information on how to run these services locally.</p>
<p>Tangram scene files saved in a <a href="https://github.com/tangrams/tangram-play">Tangram Play</a> account can be saved to a <a href="https://gist.github.com/">GitHub Gist</a> or downloaded locally, while Mapzen services are still running.</p>
<h3 id="mapzenturnbyturnrouting">Mapzen Turn-by-Turn routing</h3>
<p>For routing and navigation, you may want to consider these services:</p>
<ul>
<li><a href="https://www.graphhopper.com/">GraphHopper</a></li>
<li><a href="https://www.mapbox.com/navigation/">Mapbox Directions API</a></li>
<li><a href="http://project-osrm.org/">Project OSRM</a></li>
</ul>
<p>Mapzen&#x2019;s routing and navigation projects were backed by Valhalla, an open-source project. Read below for how to run Valhalla locally.</p>
<h3 id="mapzensearch">Mapzen Search</h3>
<p>For search and geocoding, you may want to consider these services:</p>
<ul>
<li><a href="https://geocode.earth/">geocode.earth</a> (A new hosted version of our very own Pelias)</li>
<li><a href="http://nominatim.openstreetmap.org/">Nominatim</a></li>
<li><a href="https://geocoder.opencagedata.com/">OpenCage Data</a></li>
<li><a href="https://osmnames.org/">OSMNames</a></li>
<li><a href="https://www.mapbox.com/geocoding/">Mapbox Search API</a></li>
</ul>
<p>Mapzen Search was backed by <a href="https://github.com/pelias/">Pelias</a>, an open source project. Read below for how to run this service locally.</p>
<h2 id="mobile">Mobile</h2>
<p>For Android and iOS, you may want to consider these third party SDKs:</p>
<ul>
<li><a href="https://www.mapbox.com/mobile/">Mapbox</a></li>
</ul>
<p>In the event you decide to host a version of Valhalla and Pelias locally, you can continue to use our mobile SDKs we&#x2019;ve built to interact with that service.</p>
<p>Mapzen iOS and Android SDKs, along with On The Road SDKs for Valhalla will be available at <a href="https://github.com/nextzen">https://github.com/nextzen</a>.</p>
<p>Our LOST project for Android will be available at <a href="https://github.com/lostzen/">https://github.com/lostzen/</a>.</p>
<p>Pelias and tangram-es SDKs will continue to be available from their respective repositories.</p>
<h2 id="transitland">Transitland</h2>
<p>Transitland will continue as an open-data project at <a href="https://transit.land">https://transit.land</a></p>
<p>Transitland&#x2019;s server and data operations through 2018 will be supported by Amazon Web Services, thanks to an award from the Earth on <a href="https://aws.amazon.com/earth/research-credits/">AWS Cloud Credits for Research Program.</a></p>
<p>Continue to follow <a href="https://twitter.com/transitland">@transitland</a> on Twitter for updates.</p>
<h2 id="whosonfirstmapzenplaces">Who&#x2019;s On First / Mapzen Places</h2>
<p>Data (individual records) and source code for Who&#x2019;s On First will continue to be hosted at <a href="https://github.com/whosonfirst">https://github.com/whosonfirst</a>, but whosonfirst.mapzen.com and the Mapzen Places API will go offline.</p>
<p>Who&#x2019;s On First will continue (in a scaled back version, for now) at <a href="https://whosonfirst.org/">https://whosonfirst.org</a>.</p>
<ul>
<li>Data (individual records) and source code are at <a href="https://github.com/whosonfirst">https://github.com/whosonfirst</a>.</li>
<li>All of the data and code and blog posts have also been cloned to the Internet Archive.</li>
<li>The Spelunker will go offline, in the short term.</li>
<li>Batch processing and cascading edits will stop in the short term.</li>
<li>A limited version of the API that returns individual records will be at <a href="https://www.whosonfirst.org/">https://whosonfirst.org</a>, with additional functionality growing over time (spatial queries, point-in-polygon, editorial tool, cascading updates).</li>
</ul>
<p>Follow along at <a href="https://www.whosonfirst.org/">https://www.whosonfirst.org</a> for updates.</p>
<h2 id="metroextracts">Metro Extracts</h2>
<p>Metro Extracts will no longer be updated, and the custom extract service will no longer be available. We are working on making a copy of the existing extracts available.</p>
<p>The Humanitarian Open Streetmap Team has created the <a href="https://export.hotosm.org/">HOT Export Tool</a> that creates customized extracts of up-to-date OSM data in various file formats, including PBFs. Please consider <a href="https://www.hotosm.org/donate">donating to HOT</a>, whether or not you use this service.</p>
<p>For non planet-sized PBF extracts, you may want to consider <a href="https://www.geofabrik.de/">Geofabrik</a> or the <a href="http://wiki.openstreetmap.org/wiki/Overpass_API">Overpass API</a>.</p>
<p>Also, OSMaxx can be used for downloading OSM data.</p>
<p>Documentation and blog posts<br>
Blog posts will be archived on <a href="https://medium.com/postzen">https://medium.com/postzen</a>.</p>
<p>Documentation will be available in each open-source GitHub repo:</p>
<p>Documentation section	Source location<br>
Overview	<a href="https://github.com/mapzen/mapzen-docs-generator/tree/master/docs">https://github.com/mapzen/mapzen-docs-generator/tree/master/docs</a><br>
mapzen.js	<a href="https://github.com/mapzen/mapzen.js/tree/master/docs">https://github.com/mapzen/mapzen.js/tree/master/docs</a><br>
Tangram	<a href="https://github.com/tangrams/tangram-docs">https://github.com/tangrams/tangram-docs</a><br>
Vector tiles	<a href="https://github.com/tilezen/vector-datasource/tree/master/docs">https://github.com/tilezen/vector-datasource/tree/master/docs</a><br>
Search	<a href="https://github.com/pelias/pelias-doc">https://github.com/pelias/pelias-doc</a><br>
Mobility	<a href="https://github.com/valhalla/valhalla-docs">https://github.com/valhalla/valhalla-docs</a><br>
Metro Extracts	<a href="https://github.com/mapzen/metro-extracts/tree/master/docs">https://github.com/mapzen/metro-extracts/tree/master/docs</a><br>
Terrain tiles	<a href="https://github.com/tilezen/joerd">https://github.com/tilezen/joerd</a><br>
Elevation	<a href="https://github.com/valhalla/valhalla-docs">https://github.com/valhalla/valhalla-docs</a><br>
Android SDK	<a href="https://github.com/mapzen/android/tree/master/docs">https://github.com/mapzen/android/tree/master/docs</a><br>
iOS SDK	<a href="https://github.com/mapzen/ios/blob/master/docs">https://github.com/mapzen/ios/blob/master/docs</a><br>
Address parsing/libpostal	<a href="https://github.com/whosonfirst/go-whosonfirst-libpostal/blob/master/docs">https://github.com/whosonfirst/go-whosonfirst-libpostal/blob/master/docs</a><br>
Who&#x2019;s On First	<a href="https://github.com/whosonfirst/whosonfirst-www-api/tree/master/docs">https://github.com/whosonfirst/whosonfirst-www-api/tree/master/docs</a><br>
Cartography	<a href="https://github.com/tangrams/cartography-docs/">https://github.com/tangrams/cartography-docs/</a></p>
<h2 id="runopensourceversionsofmapzenservices">Run open-source versions of Mapzen services</h2>
<p>Mapzen services are backed by open-source software projects, and use open data. Even with limited technical knowledge, you can run these yourself for metro-sized areas using a local web server or <a href="https://docs.docker.com/">Docker containers</a>.</p>
<h3 id="tangramandtilezencartographyandvectortiles">Tangram and Tilezen (Cartography and Vector Tiles)</h3>
<p>Documentation for Tangram is available at <a href="https://github.com/tangrams/tangram-docs">https://github.com/tangrams/tangram-docs</a>.</p>
<p><a href="https://github.com/tangrams/tangram">tangram.js</a>, <a href="https://github.com/tangrams/tangram-es">tangram.es</a>, Mapzen.js, <a href="https://github.com/tangrams/tangram-play">Tangram Play</a> are all open-source projects that can be run locally.</p>
<h3 id="basemapstyles">Basemap styles</h3>
<p><a href="https://github.com/tangrams/bubble-wrap">Refill</a>, <a href="https://github.com/tangrams/walkabout-style">Walkabout</a>, <a href="https://github.com/tangrams/bubble-wrap">Bubble-wrap</a>, <a href="https://github.com/tangrams/tron-style">Tron</a> and <a href="https://github.com/tangrams/cinnabar-style">Cinnabar</a> basemap styles will continue to be available in their repositories in <a href="https://github.com/tangrams">https://github.com/tangrams</a> and served via tangrams.github.io and via <a href="https://mapzen.com/blog/long-term-support-mapzen-maps/">Nextzen.org</a>.</p>
<h3 id="mapdata">Map data</h3>
<p>While Tangram can import non-tiled GeoJSON and TopoJSON, vector tiles are what makes it interesting.</p>
<p>The Docker version of Tilezen can dynamically serve tiles from a Metro Extract or reasonably-sized PBF.</p>
<p>Tilezen in Docker <a href="https://github.com/tilezen/tileserver/blob/master/DOCKER.md">https://github.com/tilezen/tileserver/blob/master/DOCKER.md</a><br>
To run a map for a city or a region with no network dependencies:</p>
<ul>
<li>Save mapzen.js / tangram.js, index.html and scene.yaml file in a directory</li>
<li>Extract a pyramid of tiles for area of interest using tilepack and save them in that same directory. (Note you don&#x2019;t need to go beyond z15 tiles as they contain all the data in higher (&gt;= 16) tiles, and Tangram overzooms.)</li>
</ul>
<p>To download tiles from our hosted services before shutdown:</p>
<pre><code>https://github.com/tilezen/tilepacks MAPZEN_API_KEY=mapzen-xxxxxx tilepack -122.51489 37.70808 -122.35698 37.83239 10 15 sf_mvt_10_15 --tile-size 512
</code></pre>
<p>Size and download speeds makes this viable for a city and perhaps a region. The example above generates a 30MB pyramid of MVT tiles, or 138MB of topojson, for San Francisco. For GeoJSON, SF is 67MB at z14, and 130MB at z15.</p>
<ul>
<li>Serve tiles via a web server (localhost or hosted).</li>
<li>Create a scene file for Tangram. Note you will need to override the mapzen source in the scene file if you are importing a basemap.</li>
</ul>
<pre><code>sources:
    mapzen:
        type: MVT
        url:  localhost:8000/sf_mvt_10_15/all/{z}/{x}/{y}.mvt
        tile_size: 512
        max_zoom: 15
</code></pre>
<h3 id="valhallarouting">Valhalla (routing)</h3>
<p>Documentation for Valhalla is available at <a href="https://github.com/valhalla/valhalla-docs">https://github.com/valhalla/valhalla-docs</a>.</p>
<p>Instructions on running Valhalla in Docker using data from a Metro Extract or PBF are at <a href="https://github.com/valhalla/docker">https://github.com/valhalla/docker</a>.</p>
<h3 id="peliassearch">Pelias (search)</h3>
<p>Documentation for Pelias is available at <a href="http://pelias.io">http://pelias.io</a> and <a href="https://github.com/pelias/pelias-doc">https://github.com/pelias/pelias-doc</a>.</p>
<p>Instructions on how to run <a href="https://github.com/pelias/dockerfiles">Pelias in Docker</a> with data from a Metro Extract or PBF and OpenAddresses data are at <a href="https://github.com/pelias/dockerfiles/blob/master/how_to_guide.pdf">https://github.com/pelias/dockerfiles/blob/master/how_to_guide.pdf</a>.</p>
<p>General instructions on running and installing Pelias and Elasticsearch: <a href="http://pelias.io/install.html">http://pelias.io/install.html</a></p>
<p>Mobile<br>
Android and iOS SDK source code and LOST will available at <a href="https://github.com/lostzen">https://github.com/lostzen</a></p>
<p>Preview image: World Emigration Map by Charles Minard from the David Rumsey Map Collection</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[USA mid-west 2017]]></title><description><![CDATA[A quick overview of our trip to the USA in 2017 to see the Total Solar Eclipse, and all the places we visited along the way.]]></description><link>https://carly.be/usa-midwest-2017/</link><guid isPermaLink="false">5ad9cc046b3ce17f658c00ae</guid><category><![CDATA[Travel]]></category><dc:creator><![CDATA[PJ Carly]]></dc:creator><pubDate>Fri, 20 Apr 2018 14:49:33 GMT</pubDate><media:content url="https://carly.be/content/images/2018/04/Usa-2018.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://carly.be/content/images/2018/04/Usa-2018.jpg" alt="USA mid-west 2017"><p>After my brother-in-law spoke to me about a full solar eclipse he was lucky enough to witness in Longyearbyen, Svalbard in 2015. I made up my mind to go see one for myself. Turns out that 2 years later there was one in a very accessible location. The entire continental USA.</p>
<p>Only going to the USA for an Eclipse seemed a waste, so I built a trip around it.</p>
<p>Ever since, friends and family have been asking us about our route, and because I got tired explaining it every time, here is my route and highlights.</p>
<h2 id="theroute">The Route</h2>
<p><img src="https://carly.be/content/images/2018/04/USA-2018---Route.png" alt="USA mid-west 2017" loading="lazy"><br>
Firstly, you&apos;ll notice some obvious classics are missing from this route. This is because we had limited time for this part of the journey (there was a second part on the east-coast which I wont get into), and we had been to the west-coast before, where we did the classics (like LA, San Francisco, Yosemite, Kings Canyon, Sequoia, Death Valley, ...), your typical &apos;lets-go-to-the-USA-for-the-first-time-trip&apos;. If people are interested in that, send me a message and I might find the time to share it.</p>
<p>Secondly, we did this in 2 weeks, which is quite a fast pace, and definitely not relaxing for the average traveler. Because of this, we didn&apos;t do any long hikes and didn&apos;t stay in one location for more than 2 days.</p>
<p>Lastly, the last part of our route I wouldn&apos;t recommend, it was a long boring drive back to Las Vegas. Consider alterations if you don&apos;t want to spend 4 hours driving through next to nothing.</p>
<h2 id="highlights">Highlights</h2>
<p>Below I&apos;ll go over the different highlights in the order we visited them. You&apos;ll probably notice the absence of Las Vegas, it is because for me, its far from a highlight, it was a convenient located international airport in a city full of madness.</p>
<h3 id="1grandcanyon">1. Grand Canyon</h3>
<p><img src="https://carly.be/content/images/2018/04/1-Grand-Canyon.jpg" alt="USA mid-west 2017" loading="lazy"><br>
It was our second time visiting the Grand Canyon, the first time we took a helicopter tour over the canyon. And this time, we just visited it by car, and did a small hike. Arguably I liked the last time better, you get a far better idea about the size of the canyon, and it doesn&apos;t cost as much.</p>
<p>We visited the grand canyon in the afternoon to witness the sunset, and it was well worth it.</p>
<p>I would recommend driving into Grand Canyon Village, and driving your car all the way up to <strong>Bright Angel Trailhead</strong> where the road will be closed for regular vehicles but accessible for busses, park your car somewhere. Go to the bus stop, and take the bus all the way up to <strong>Hermit&apos;s Rest</strong>, then hike back to the bus stop you started at.</p>
<p>This is a very beautiful hike along the rim and especially memorable if you can catch the sunset during your hike. In case you get tired, there are plenty of bus stops along the road where you can take the bus back.</p>
<h3 id="2marblecanyon">2. Marble Canyon</h3>
<p><img src="https://carly.be/content/images/2018/04/2-Marble-Canyon.jpg" alt="USA mid-west 2017" loading="lazy"><br>
This is not really a place to visit, more than it is a beautiful drive to a nice little town, <strong>Kanab</strong>, a good place to spend a few nights to visit the next 2 highlights.</p>
<h3 id="3brycecanyon">3. Bryce Canyon</h3>
<p><img src="https://carly.be/content/images/2018/04/3.-Bryce-Canyon.JPG" alt="USA mid-west 2017" loading="lazy"><br>
Bryce canyon is beautiful, its not very big and perfectly doable in a few hours. I recommend getting up early and visiting Bryce Canyon for the sunrise, as the sun is on the best side of the canyon in the morning.</p>
<h3 id="4zionnationalpark">4. Zion National Park</h3>
<p><img src="https://carly.be/content/images/2018/04/4.-Zion-National-Park.jpg" alt="USA mid-west 2017" loading="lazy"><br>
Zion is quite large, and the hike to <strong>weeping rock</strong> is worth it. You can drive through it if you decide to take a different route. Keep your eyes open for wildlife as there are Mountain Lions, Big Horn Sheep, Condors, ...</p>
<h3 id="5horseshoebend">5. Horseshoe Bend</h3>
<p><img src="https://carly.be/content/images/2018/04/5.-Horseshoe-bend.jpg" alt="USA mid-west 2017" loading="lazy"><br>
This is an easy spot to visit, it is along the route and walking distance from the designated parking. But keep in mind, things you often don&apos;t see on pictures of Horseshoe Bend, is the 20000 other people doing the exact same thing. It is beautiful, and you should definitely stop and go take a look, but you won&apos;t be the only one.</p>
<h3 id="6antelopecanyon">6. Antelope Canyon</h3>
<p><img src="https://carly.be/content/images/2018/04/6.-Antelope-Canyon.jpg" alt="USA mid-west 2017" loading="lazy"><br>
Antelope was one of my personal favorites of the trip. The canyon is managed by the Navajo, and thus not part of the National Parks Service, because of that you&apos;ll pay a separate entrance fee.</p>
<p>You have 2 parts of the canyon, Upper, and Lower Antelope Canyon.  We did the lower part with the company <em>Dixie Ellis&apos; Lower Antelope Canyon tours</em>. You can only enter it guided, but it is well managed. You go in little groups of about 10 - 15 people at once, together with a native guide who will point out all the remarkable parts of the canyon.</p>
<p><strong>Make a reservation in advance</strong>, its a very popular destination and is often fully booked. You will get an expected hour when your tour will leave, so you don&apos;t have to wait hours for your turn, and you can perfectly plan ahead. The canyon is especially beautiful with a clear blue sky. The cost of the tour is about $35 per person, but well worth it! You&apos;ll regret it if you decide not to go.</p>
<h3 id="7monumentvalley">7. Monument Valley</h3>
<p><img src="https://carly.be/content/images/2018/04/7.-Monument-Valley.jpg" alt="USA mid-west 2017" loading="lazy"><br>
Another absolute stunner. This park is also managed by Navajo and requires a separate entrance fee, in 2017 this was $15 per car.</p>
<p>You have a driving tour in the valley which is absolutely beautiful, it is on sandy roads, but very doable with a normal car under dry conditions. Take your time as you will be in awe half of the time.</p>
<p><em>Keep in mind that the drive from Page takes some time, and the drive to the next village also takes some time. If you want, there is a hotel in the park</em></p>
<h3 id="8archesnationalpark">8. Arches National Park</h3>
<p><img src="https://carly.be/content/images/2018/04/8.-Arches-National-Park.jpg" alt="USA mid-west 2017" loading="lazy"><br>
Unfortunately for us, the park was under maintenance when we were there, and half of the park was inaccessible to the public. Even though we didn&apos;t see all we wanted, it was well worth the stop. The sunrise should be stunning, but for us we couldn&apos;t do it because of the maintenance.</p>
<p><em>Moab is a nice town to stay in while visiting both Arches and Canyonlands, it has everything you want, and just a few minutes drive from both of the national parks entrances.</em></p>
<h3 id="9canyonlandsnationalpark">9. Canyonlands National Park</h3>
<p><img src="https://carly.be/content/images/2018/04/9.-Canyonlands-National-Park.jpg" alt="USA mid-west 2017" loading="lazy"><br>
Again an absolute highlight, This is the largest park of Utah, but often forgotten. We were there during high season, but it was very calm. Take your time, hike up to <strong>Mesa arch, Buck Canyon overlook, White Rim overlook and Upheaval Dome</strong> and fall in love with the stunning views.</p>
<h3 id="10goblinvalleystatepark">10. Goblin Valley State Park</h3>
<p><img src="https://carly.be/content/images/2018/04/10.-Goblin-Valley-State-Park.jpg" alt="USA mid-west 2017" loading="lazy"><br>
This park is not big, but very unique, it is a state park, which you cant enter with your national parks pass, but the entrance fee is very small as the park isn&apos;t very well known.</p>
<p>Supposedly this park is also a great spot for nighttime star gazing, check the calendar online for events.</p>
<h3 id="11capitolreefnationalpark">11. Capitol Reef National Park</h3>
<p><img src="https://carly.be/content/images/2018/04/11.-Capitol-Reef-National-Park.jpg" alt="USA mid-west 2017" loading="lazy"><br>
This national park is very large, mostly accessible by car and a beautiful park to drive through up to your next destination. It is more green than the last couple of parks, and a great place to picnic. Not a lot of amenities, so take your picnic with you.</p>
<p><em>The drive up to the next point is long, in between you have Salt Lake City, but apart from the Mormon culture (if you&apos;re into that), there isn&apos;t a lot that meets the eye, it can however be a nice change of scenery from nature to a city</em></p>
<h3 id="12grandtetonnationalpark">12. Grand Teton National Park</h3>
<p><img src="https://carly.be/content/images/2018/04/12.-Grand-Teton-National-Park.jpg" alt="USA mid-west 2017" loading="lazy"><br>
This park is mostly along the Teton mountain range, and absolutely beautiful to drive through up to Yellowstone, there are Bison and other wildlife to spot. So <strong>binoculars</strong> can be a great add-on to your gear.</p>
<h3 id="13yellowstonenationalpark">13. Yellowstone National Park</h3>
<p><img src="https://carly.be/content/images/2018/04/13.-Yellowstone-National-Park.jpg" alt="USA mid-west 2017" loading="lazy"><br>
The first and thus oldest National Park in the world. This is a breathtaking and diverse park to visit. You have <strong>Geysers, Hot Springs, Limestone Terraces, wildlife, ...</strong></p>
<p>One thing we underestimated was the size of the park, it is gigantic! Take your time, I would recommend at least <strong>3 days</strong> as the highlights in the park are quite far away from each other, and due to the popularity and wildlife crossing the streets the traffic can be slow. You can spend the night in the park, or just outside in West Yellowstone.</p>
<p>Bring binoculars!</p>
<h3 id="14cratersofthemoonnationalmonument">14. Craters of the Moon National Monument</h3>
<p><img src="https://carly.be/content/images/2018/04/14.-Craters-of-the-Moon-National-Monument.jpg" alt="USA mid-west 2017" loading="lazy"><br>
Another very different change of scenery from the rest, this national monument (which can be entered with the NPS pass) is a park filled with Solidified Lava from an eruption many thousands of years ago. This is a rather calm park, and not very touristy but well worth the visit.</p>
<h3 id="15evelknievelsnakerivercanyonjumpsite">15. Evel Knievel Snake River Canyon Jump Site</h3>
<p><img src="https://carly.be/content/images/2018/04/15.-Twin-Falls.jpg" alt="USA mid-west 2017" loading="lazy"><br>
Because you are driving through Twin Falls (or possibly spending the night), you can quickly go visit the jump site where Evel Knievel jumped over the Snake River.</p>
<p>It is a beautiful park where you can calmly picnic and enjoy the 2 falls right in front of you.</p>
<h3 id="16bonnevillesaltflats">16. Bonneville Salt Flats</h3>
<p><img src="https://carly.be/content/images/2018/04/16.-Bonneville-Salt-Flayts.jpg" alt="USA mid-west 2017" loading="lazy"><br>
If you thought you had seen the diversity of Midwest USA, you haven&apos;t visited Bonneville Salt Flats, another completely different scenery, but again absolutely beautiful.</p>
<p>This is the place where a lot of land based speed records have been driven. A definite must-visit place.</p>
<h3 id="17greatbasinnationalpark">17. Great Basin National Park</h3>
<p><img src="https://carly.be/content/images/2018/04/17.-Great-Basin-National-Park.jpg" alt="USA mid-west 2017" loading="lazy"><br>
Halfway between Twin Falls and Las vegas lays Great Basin National Park, I wouldn&apos;t say you should absolutely visit this, but if you decide to take this route, the drive to Vegas is long and boring, and this place is a nice oasis in the middle of nowhere.</p>
<h2 id="othertips">Other tips</h2>
<h3 id="nationalparks">National Parks</h3>
<p>You will be visiting a lot of national parks, to save yourself some money, and make a swift entrance, buy yourself a national park year pass. As it will be a lot cheaper than separate entrance fees.</p>
<h3 id="upselling">Up-selling</h3>
<p>Keep in mind you&apos;re traveling to the USA, the most capitalist country in the world, where everybody will be trying to sell you something, half of the country lives on commission and will want to recommend something bigger or better.</p>
<p>For example you will rent a car, and when you go and pick it up, the very friendly clerk will be recommending you an upgrade, a larger car, a better engine, whatever. You don&apos;t need it, stick to your original plan, because it can end up costing you a few 100 dollars extra.</p>
<p>This, and a lot of other small extra costs can total to quite a lot of money if you don&apos;t watch out.</p>
<h3 id="sleepingarrangements">Sleeping arrangements</h3>
<p>You don&apos;t necessarily have to book very long beforehand, the entire country is filled with Hotels, Motels, Inns, Bed &amp; Breakfasts, ... You can even get along with finding places to sleep while already traveling.</p>
<h4 id="inns">Inns</h4>
<p>Inns are mostly great value for money, they are relatively cheap, and come with clean rooms and a breakfast most of the time. This is especially interesting if you are traveling with 4 people, as a standard room is often 2 Queen size beds for the average price of $120 per room. I found both Best Western and Holiday Inn to be the best.</p>
<h4 id="casinos">Casinos</h4>
<p>Everywhere in Nevada, you will find Casinos, while it is often horrid and depressing to see people gambling away their money, or seeing the poverty of people who lost everything, mostly you can spend the night dirt cheap in Casino hotels, this will likely be without breakfast.</p>
<p>Just keep in mind that some casino hotels charge a <strong>Resort Fee</strong> on top of the regular room rate, which is often not advertised and a complete surprise when you go and check-in, this can be as much or even higher than the room rate, and isn&apos;t calculated in the price when booking online, do your homework and check the resort fees per hotels before making reservations.</p>
<h3 id="food">Food</h3>
<p>Although you will find places to eat everywhere, eating healthy will require some extra leg work, and can often be a lot more expensive than you&apos;re used to, all the while unhealthy food can be dirt cheap ($5 for 10 donuts anyone?).</p>
<h3 id="mobilecellphoneanddatacoverage">Mobile cellphone and data coverage</h3>
<p>I do recommend buying a SIM card, as it is worth the money (say around $40 for a few gigabytes) to have data connectivity while traveling. Navigating, up-to-date traffic information; easily find (cheapest) gas stations nearby, places to eat, supermarkets, your hotels. And can call for hotel reservations without having to pay exuberant roaming charges or finding public wifi hotspots.</p>
<p>While the USA generally has good coverage, keep in mind that outside of cities in the mid-west it is often difficult to get cellphone coverage (let alone data coverage) because the national parks and surrounding areas are very sparsely populated and don&apos;t have the infrastructure in place for good coverage.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Using the Nest thermostat with a modulating Junkers boiler (part 2)]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>This is the second part of a 2-part blogpost about using the Nest thermostat with a modulating Junkers boiler. In this part I will guide you step by step through the setup and installation process of hooking up a Nest thermostat to my Junkers CerapurComfort boiler.</p>
<p><a href="https://carly.be/using-the-nest-thermostat-with-a-modulating-junckers-boiler-1/">Read Part 1</a></p>
<p><em>Disclaimer:</em></p>]]></description><link>https://carly.be/using-the-nest-thermostat-with-a-modulating-junckers-boiler-2/</link><guid isPermaLink="false">5ad9bdd76b3ce17f658c0097</guid><category><![CDATA[Smart Home]]></category><dc:creator><![CDATA[PJ Carly]]></dc:creator><pubDate>Sun, 23 Jul 2017 16:28:00 GMT</pubDate><media:content url="https://carly.be/content/images/2018/04/Nest-thermostaat-v3-review-feature.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://carly.be/content/images/2018/04/Nest-thermostaat-v3-review-feature.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)"><p>This is the second part of a 2-part blogpost about using the Nest thermostat with a modulating Junkers boiler. In this part I will guide you step by step through the setup and installation process of hooking up a Nest thermostat to my Junkers CerapurComfort boiler.</p>
<p><a href="https://carly.be/using-the-nest-thermostat-with-a-modulating-junckers-boiler-1/">Read Part 1</a></p>
<p><em>Disclaimer: If you decide to do an installation yourself, be careful, there are risks involved, you might break your boiler, your Nest, or both, if you don&apos;t hook up everything correctly. I take no responsibility, consult a professional if you&apos;re not comfortable doing the installation yourself.</em></p>
<h3 id="openthermprotocol">OpenTherm protocol</h3>
<p>The Nest generation 3 thermostat uses the OpenTherm protocol to talk with modulating boilers. This protocol is used by many boilers, but unfortunately not by Junkers.</p>
<p>The Nest documentation was really helpful, clear and concise. <a href="https://nest.com/nl/support/article/Does-the-Nest-Learning-Thermostat-support-OpenTherm-adapters">It is where</a> (in Dutch) I discovered OpenTherm adapters, these are little devices that convert the OpenTherm protocol to a protocol supported by the boiler.</p>
<p>To my delight, on the above linked webpage as an example, a Nefit card is shown, and from my earlier discoveries I thought this could be compatible with my Junkers boiler.</p>
<p>Apparently the modulating protocol from Nefit is called EMS, however nowhere in the manuals of my boiler or online I find anything about EMS and Junkers.</p>
<p>I learn from the OpenTherm spec, that a maximum of 42V is used to communicate.</p>
<h3 id="emstoopenthermadapter">EMS to OpenTherm adapter</h3>
<p>Discovering the adapter was a breakthrough, but I still had no idea if it would work with my boiler.</p>
<p>There was <a href="http://lbge.be/product/junkers-open-therm-convector-7746901847/">1 webshop</a> selling an EMS to OpenTherm adapter for Junkers in Belgium. No pictures, and not a lot of documentation though. But 1 magical sentence</p>
<blockquote>
<p>Enkel voor Junkers ketel met Heatronic 3, Heatronic &#x2018; en EMS protocol.</p>
</blockquote>
<p><em>(Only for Junkers boiler with Heatronic 3, Heatronic and EMS protocol)</em></p>
<p>From my manuals I found that my boiler used the Heatronic 3 system inside, but nothing about EMS.</p>
<p>I googled the product number mentioned on the webshop&apos;s product page, and to my delight I find the exact same adapter from Nefit, with the same product number.</p>
<p>At this point i&apos;m getting more convinced that this will work. I decide to open up my boiler, and see what&apos;s inside. Perhaps I find a connector resembling the one on the adapter, then I would be convinced.</p>
<h3 id="openingtheboiler">Opening the boiler</h3>
<p>Let&apos;s open up the boiler, on the bottom there are 2 screws near the front of the panel, unscrew them, and on the top there is a locking mechanism which you can lift to unlock the entire cover.</p>
<p>On the bottom, the panel with the buttons, that is your Heatronic 3 system. You will need to get to the back. Above the Heatronic there is a sliding lock, slide it down, and you will be able to rotate the heatronic towards you to reveal the back.</p>
<p>On the back there are 3 screws you need to unscrew to reveal the connectors inside. 2 screws are directly adjacent to the cable holders. and one is on the bottom right.</p>
<p><img src="https://carly.be/content/images/2021/04/InkedPXL_20210405_165334308_LI.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p>Once you unscrew these, you can lift the panel up, be careful, it slides directly up, dont try to pull 1 side, lift it all together.</p>
<p>Then you should see something like this:</p>
<p><img src="https://carly.be/content/images/2017/07/IMG_20170718_114205--Medium-.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p>Unfortunately, no luck here, no connectors resembling the one on the adapter. But lets not give up.</p>
<p><img src="https://carly.be/content/images/2017/07/IMG_20170718_114211--Medium-.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p>I decide to measure the voltage outputs on the connections where the thermostat should be connected (which I found in my manual)</p>
<p><img src="https://carly.be/content/images/2017/07/IMG_20170718_121453--Medium-.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p><img src="https://carly.be/content/images/2017/07/IMG_20170718_121447--Medium-.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p>This matches the voltage i&apos;m getting at the thermostat. So the thermostat is most likely connected here.</p>
<p><img src="https://carly.be/content/images/2017/07/IMG_20170718_094238--Medium-.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p>At this point i&apos;m fairly convinced I won&apos;t break anything by connecting a Nest. I&apos;m still not sure it will work, but at least I can try.</p>
<h3 id="letstryconnectingthenest">Lets try connecting the nest</h3>
<p>Time for some Famous Last Words:<br>
<em>Fuck it, what&apos;s the worst that could happen?</em></p>
<p>I order a Nest, and the adapter (I decided to order the Nefit adapter, as compared to the Belgian counterpart it&apos;s almost half the price and I&apos;m fairly convinced it&apos;s the same anyway)</p>
<p>With the Nest came this schema:</p>
<p><img src="https://carly.be/content/images/2017/07/Nest-Opentherm-connections-600x389.png" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p>I unplug the thermostats wiring from the Heatronic, connect the black cable of the Adapter on the same ports I just unplugged the original thermostat from (the BB ports), and <strong>connect the Nest Heatlink on the OT1 and OT2 port to the green ports on the adapter.</strong></p>
<p>Edit 2021-04-05:<br>
I received a question about other ports by someone who found this blogpost over at <a href="https://gathering.tweakers.net/forum/list_message/66793180#66793180">Tweakers.net</a>, where he asked what was connected on the Lr and Ls ports, as his old thermostat was connected there. On my end, my old thermostat was also connected to the BB ports, so I was interested what was going on with my Lr and Ls ports, I decided to open up the boiler again, and found that a jumper was present that connected Lr with Ls.<br>
<img src="https://carly.be/content/images/2021/04/PXL_20210405_164826904rotate.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p><img src="https://carly.be/content/images/2021/04/PXL_20210405_164842643rotate.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p><img src="https://carly.be/content/images/2017/11/IMG_20171123_181604.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p>There is no real slot to put the adapter, but it comes with a little strap, I use it to hang it on the inside of the boiler in the same hole where on the other side there is a cord that holds the Heatronic in place.</p>
<p><img src="https://carly.be/content/images/2017/11/IMG_20171123_183431.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p>I connect power to the N and the L on the Heat Link.</p>
<p><img src="https://carly.be/content/images/2017/07/IMG_3392-edited-600x450.jpeg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p><img src="https://carly.be/content/images/2018/03/rsz_img_20180306_173418.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p>Lastly I used the existing wiring to connect the Nest Thermostat to the Heat Link, by connecting ports T1 and T2 on the Heat Link, with the T1 and T2 on the thermostat</p>
<p><img src="https://carly.be/content/images/2017/07/IMG_20170723_175945--Medium-.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<p>I attach the thermostat, and what do you know? It works, all my suspicions turned out to be true. After going through the initial set-up (Tip <em>voorlooptemperatuur</em> = 55&#xB0;), this is how it looks:</p>
<p><img src="https://carly.be/content/images/2017/07/IMG_20170723_180001--Medium-.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" loading="lazy"></p>
<h3 id="conclusion">Conclusion</h3>
<p>I hope someone will find this helpful, and can enjoy the wonderful Nest thermostat, the awesome app, extensive integrations and beautiful design!</p>
<p>In a completely unrelated note: I&apos;m selling a Junkers FR-120 and MB-Lan Module 2 if someone is interested</p>
<p>If you want to say thanks, buy me a beer:</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHTwYJKoZIhvcNAQcEoIIHQDCCBzwCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYAIUEaQl4ATVUZoAzUxqaWMUis0OopDFhM0nK8wygQe7yfKgiz8G8aBC6cuZKa8OeYHq1BCVMi9ujkVPwJ8f+ZTd4rjF3g63+nFtBXgyWO+WqQU4APWEfiyzCb7cI7XvSAii+73DL3YOb12A/b230cO0ChRTDgsTgnPnOdAXreWATELMAkGBSsOAwIaBQAwgcwGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIFuRVTj5LWZiAgajbr0UDcCmgRRiJGfwedzGGGUGDZrvOosYNNNQh5HuHIYSu/iqWOhNrDA7QJQ+P1cEI2zvqs0nnrPrhY7jcdDlJSYtRaLgdsUIo3mOph2e0vQbEnsQBMcWxFHI7Z53ISw6T6SgZ63OOYTWds9AtAIt8dsQYRVxLxvjf6A84heR3ai29uA9BoIqg7J79Y8srqNWD/J+95ys7zPnMzA201w7yfCVUMkQplF+gggOHMIIDgzCCAuygAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wHhcNMDQwMjEzMTAxMzE1WhcNMzUwMjEzMTAxMzE1WjCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMFHTt38RMxLXJyO2SmS+Ndl72T7oKJ4u4uw+6awntALWh03PewmIJuzbALScsTS4sZoS1fKciBGoh11gIfHzylvkdNe/hJl66/RGqrj5rFb08sAABNTzDTiqqNpJeBsYs/c2aiGozptX2RlnBktH+SUNpAajW724Nv2Wvhif6sFAgMBAAGjge4wgeswHQYDVR0OBBYEFJaffLvGbxe9WT9S1wob7BDWZJRrMIG7BgNVHSMEgbMwgbCAFJaffLvGbxe9WT9S1wob7BDWZJRroYGUpIGRMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIFfOlaagFrl71+jq6OKidbWFSE+Q4FqROvdgIONth+8kSK//Y/4ihuE4Ymvzn5ceE3S/iBSQQMjyvb+s2TWbQYDwcp129OPIbD9epdr4tJOUNiSojw7BHwYRiPh58S1xGlFgHFXwrEBb3dgNbMUa+u4qectsMAXpVHnD9wIyfmHMYIBmjCCAZYCAQEwgZQwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tAgEAMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNzA3MjMxNjEzNDhaMCMGCSqGSIb3DQEJBDEWBBSgfGUh9RgIP3krex+4dnA/dg+5jTANBgkqhkiG9w0BAQEFAASBgHQLGUCIFoYkOx0k7EArn8lngEbw68BH3vJhMm2LnrH+2YQJFJF+ArKFq7pZncgWPM71e0YrYG4jN56lEnWwKtImlWRg04VVW8MYKb+v0VjY1RGSnut6YH7kr/8eHGrP8RRb8hkP4XGp+lHvpS8VX4wrEIdAc4R0hMEK8Q4n1EvU-----END PKCS7-----
">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!" style="width: 100px;">
<img alt="Using the Nest thermostat with a modulating Junkers boiler (part 2)" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="15">
</form>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Using the Nest thermostat with a modulating Junkers boiler (part 1)]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>In this blogpost I will tell you my story of how I wanted to integrate my central heating, with a smart home solution. It&apos;s a 2 part story, where I first go into detail about my setup before the nest. And the second part will be about installing</p>]]></description><link>https://carly.be/using-the-nest-thermostat-with-a-modulating-junckers-boiler-1/</link><guid isPermaLink="false">5ad9bdd76b3ce17f658c0096</guid><category><![CDATA[Smart Home]]></category><dc:creator><![CDATA[PJ Carly]]></dc:creator><pubDate>Sun, 23 Jul 2017 13:49:16 GMT</pubDate><media:content url="https://carly.be/content/images/2018/04/fr120.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://carly.be/content/images/2018/04/fr120.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 1)"><p>In this blogpost I will tell you my story of how I wanted to integrate my central heating, with a smart home solution. It&apos;s a 2 part story, where I first go into detail about my setup before the nest. And the second part will be about installing the Nest.</p>
<p><em>Disclaimer: If you decide to do an installation yourself, be careful, there are risks involved, you might break your boiler, your Nest, or both, if you don&apos;t hook up everything correctly. I take no responsibility, consult a professional if you&apos;re not comfortable doing the installation yourself.</em></p>
<h2 id="theboiler">The Boiler</h2>
<h3 id="history">History</h3>
<p>In 2014 we were in the need for a new boiler, as the one broke that came with the house we bought. I contacted our plumber and he got to work. I asked him about the Nest thermostat I learned about, but he told me that the Nest wasn&apos;t suited, because (at the time) Nest didn&apos;t support modulating boilers and using a Nest would mean my boiler would be energy inefficient.<br>
He recommended an <a href="http://www.junkers.be/nl/productgamma/verwarming/cerapurcomfort">Junkers CerapurComfort ZWBR 30-3</a>  boiler. For reasons he knew best, and I trusted him.</p>
<p><img src="https://carly.be/content/images/2017/07/02_cerapur_comfort.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 1)" loading="lazy"></p>
<p>At the time there was a promotion, and with the purchase of a boiler we got a <strong>Junkers MB-LAN 2 Module</strong> for free (normal price was &#x20AC;300). Which would give us the ability to control our thermostat from an app.</p>
<p><img src="https://carly.be/content/images/2017/07/b3ba6c7cf0ab0b762ac23a5efd065d8214e898aa.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 1)" loading="lazy"></p>
<p>The boiler came with the <strong>Junkers FR-120 modulating thermostat</strong>, which worked together with the Lan Module</p>
<p><img src="https://carly.be/content/images/2017/07/fr-120.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 1)" loading="lazy"></p>
<h3 id="reviewofjunkersmaterial">Review of Junkers material</h3>
<p>We used this setup for nearly 3 years. And this is what I concluded.</p>
<p>The <strong>Boiler</strong>, and the <strong>thermostat</strong> worked fine, they did their job and were reliable.</p>
<h3 id="lanmodule">Lan-module</h3>
<p>For a device that would normally cost around &#x20AC;300, it is not worth it at all. The module requires a cabled connection to the internet, I managed to do that, but I can imagine others having their boiler in an unreachable place from the internet router.</p>
<p>If the internet went down, even if it was for a few seconds, the module would stop working, the only thing that you could to was unplug the power, and plug it back in, for it to completely reboot.<br>
This was very frustrating for when you wanted to remotely turn on the heating before getting home, only to find out the module stopped working.</p>
<p>And it&apos;s not like I have a shoddy internet connection at home. With a coax cabled 100mbps down/10mbps up, very reliable network, I almost never have any complaints. (and I run multiple other devices reliably for my smart home, a Philips Hue bridge, a Rasberry Pi with Home-Assistant, and a Google Home).</p>
<p>Another frustrating thing was, that the regular thermostat gave a warning that there was a lan module connected, and every time I wanted to do something manual from the thermostat, I had to dismiss the warning ... every ... time ... I ... did .. something &#x1F624;.</p>
<h3 id="thejunkershomeapp">The JunkersHome-App</h3>
<p>If you want to use the Lan-module, you have to do it via the <a href="https://play.google.com/store/apps/details?id=com.bosch.tt.junkers&amp;hl=en">JunkersHome</a> app. Which (at the time) costs &#x20AC;7 to install from Google Play</p>
<p>The app is just plain bad, not intuitive, slow as hell, and of course, stopped working when the Lan Module was unresponsive.</p>
<p>Trying to configure a schedule for the boiler via the app, is to date, the worst app experience I have had. The app would overwrite days I had already configured. Not save things I had put in, and sometimes take <em>minutes</em> to save.</p>
<h3 id="externalintegrations">External integrations</h3>
<p>Lol what?</p>
<p>Of course nothing officially about this, only a handful obscure German forum posts from people trying to reverse engineer the Junkers/Bosch protocol, to read out values with their raspberry pi.</p>
<p>I also tried sniffing my local network to intercept the TCP/IP packages with Wireshark, so I could potentially write an application that simulated the JunkersHome app.<br>
The packages, and URL endpoints led me to the tweakers.net forums, where some dutchies seamed to have did something similar with Nefit boilers. (this was my first indication that Nefit and Junkers arent all that different)</p>
<h3 id="nestthermostatgeneration3">Nest Thermostat generation 3</h3>
<p>The third generation of the Nest thermostat was released, and after reading the specs, I was delighted to find out that Nest was able to support Modulating boilers. However my euphoria was short lived, because even though Nest supported the OpenTherm protocol, of course my boiler didn&apos;t.</p>
<h3 id="junkerssolutions">Junkers solutions</h3>
<p>I talked to my plumber, and Junkers support about possible solutions. And I was recommended the new Junkers CT-100 smart-thermostat.</p>
<p><img src="https://carly.be/content/images/2017/07/ct100.jpg" alt="Using the Nest thermostat with a modulating Junkers boiler (part 1)" loading="lazy"></p>
<p>&#x20AC;300 for a new thermostat, where I don&apos;t find that much about online, no integrations, no reviews, and my experience with their software from the Lan Module... no sir,  I wasn&apos;t buying it (literally)</p>
<p>It was when I was researching this thermostat, I found the Nefit Easy, the Worcester Wave, the TC100 from Buderus and the Bosch Smart Room Thermostat. Fuelling my suspicion that these brands aren&apos;t all that different, all Bosch companies, with another name in different countries.</p>
<p>To give Bosch credit, the Nefit Easy seemed to have an <a href="https://ifttt.com/nefit_easy">IFTTT</a> integration, but did that work with the CT-100? Nobody knows, no documentation about that anywhere.</p>
<p>In the next part I will go into detail of how I got the Nest thermostat working with my modulating boiler.</p>
<h3 id="next">Next</h3>
<p>Read my follow up blogpost, on how to connect the Nest</p>
<p><a href="https://carly.be/using-the-nest-thermostat-with-a-modulating-junckers-boiler-2/">Read Part 2</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Embed EmberJS app in Drupal 8 block]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Here&#x2019;s a quick overview of the requirements I had.</p>
<ul>
<li>Use EmberJS to create a Javascript Component Embedded in a single Drupal 8 block</li>
<li>Only load the ember javascript code on the pages where the block is displayed</li>
<li>Don&#x2019;t use a separate stylesheet for the component&#x2019;</li></ul>]]></description><link>https://carly.be/embed-emberjs-app-in-drupal8-block/</link><guid isPermaLink="false">5ad9bdd76b3ce17f658c0094</guid><category><![CDATA[Ember]]></category><category><![CDATA[Drupal]]></category><category><![CDATA[Development]]></category><dc:creator><![CDATA[PJ Carly]]></dc:creator><pubDate>Sat, 30 Jan 2016 12:25:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Here&#x2019;s a quick overview of the requirements I had.</p>
<ul>
<li>Use EmberJS to create a Javascript Component Embedded in a single Drupal 8 block</li>
<li>Only load the ember javascript code on the pages where the block is displayed</li>
<li>Don&#x2019;t use a separate stylesheet for the component&#x2019;s styling</li>
<li>Don&#x2019;t change the url on route changes</li>
<li>Use jQuery included in Drupal Core</li>
</ul>
<h4 id="versions">Versions</h4>
<ul>
<li>Drupal 8.0.1</li>
<li>jQuery 2.1.4 (current version in Drupal core)</li>
<li>Ember 2.3.0</li>
<li>Ember Data 2.3.3</li>
<li>Ember CLI 2.2.0-beta.6 (used for developing, obviously not used in prod)</li>
</ul>
<h4 id="configuringember">Configuring Ember</h4>
<h5 id="1changelibraryversions">1. Change library versions</h5>
<p>When creating a new ember app via Ember CLI, the jQuery and Ember versions were incorrect. Let&#x2019;s start of by editing our <strong>bower.json</strong> this is how my bower.json looked after editing</p>
<pre><code>{
 &#x201C;name&#x201D;: &#x201C;drupal-component&#x201D;,
 &#x201C;dependencies&#x201D;: {
  &#x201C;ember&#x201D;: &#x201C;2.3.0&#x201D;,
  &#x201C;ember-cli-shims&#x201D;: &#x201C;0.1.0&#x201D;,
  &#x201C;ember-cli-test-loader&#x201D;: &#x201C;0.2.2&#x201D;,
  &#x201C;ember-load-initializers&#x201D;: &#x201C;0.1.7&#x201D;,
  &#x201C;ember-qunit-notifications&#x201D;: &#x201C;0.1.0&#x201D;,
  &#x201C;jquery&#x201D;: &#x201C;2.1.4&#x201D;,
  &#x201C;loader.js&#x201D;: &#x201C;^3.5.0&#x201D;,
  &#x201C;qunit&#x201D;: &#x201C;~1.20.0&#x201D;
 },
 &#x201C;resolutions&#x201D;: {
  &#x201C;ember&#x201D;: &#x201C;2.2.0&#x201D;
 }
}
</code></pre>
<p>make sure to rerun <strong>bower install</strong></p>
<h5 id="2configureemberclibuildjs">2. Configure ember-cli-build.js</h5>
<p>We&#x2019;ll have to make sure that our jQuery is excluded when we are building our application for production, but is still included for easy development.</p>
<p>And, include the config in the builds, because Ember defaults by adding config to a meta tag in the head of your html, which we can&#x2019;t do.</p>
<p>This is how my <strong>ember-cli-build.js</strong> looks like</p>
<pre><code>var EmberApp = require(&#x2018;ember-cli/lib/broccoli/ember-app&#x2019;);

module.exports = function(defaults) {
 var app = new EmberApp(defaults, {

  // don&apos;t store config in meta
  storeConfigInMeta: false,

  // exlude jquery from production builds
  vendorFiles: {
   &#x2018;jquery.js&#x2019;: { 
    development: &#x2018;bower_components/jquery/dist/jquery.js&#x2019;,
    production: false
   }
  }
 });

 return app.toTree();
};
</code></pre>
<h5 id="3configureenvironmentjs">3. Configure environment.js</h5>
<p>Next we&#x2019;ll configure our environment, there are a few things we need to do.</p>
<ul>
<li>Stop router from changing URLs</li>
<li>Define a root element in production builds</li>
</ul>
<p>Stopping the router from changing URLs is possible by setting the locationType to &#x2018;none&#x2019;</p>
<p>And a root element can be defined in ENV.APP.rootElement, there you define a jquery selector string.</p>
<p>This is what my <strong>environment.js</strong> looks like after the changes.</p>
<pre><code>module.exports = function(environment) {
 var ENV = {
  modulePrefix: &#x2018;drupal-component&#x2019;,
  environment: environment,
  baseURL: &#x2018;/&#x2019;,
  locationType: &#x2018;none&#x2019;, 
  EmberENV: {
   FEATURES: {
   }
  }, 

  APP: {
   // Here you can pass flags/options to your application instance
   // when it is created
  }
 };

 if (environment === &#x2018;development&#x2019;) {
 }

 if (environment === &#x2018;test&#x2019;) {
  // Testem prefers this&#x2026;
  ENV.baseURL = &#x2018;/&#x2019;;
  ENV.locationType = &#x2018;none&#x2019;;

  // keep test console output quieter
  ENV.APP.LOG_ACTIVE_GENERATION = false;
  ENV.APP.LOG_VIEW_LOOKUPS = false;

  ENV.APP.rootElement = &#x2018;#ember-testing&#x2019;;
 }

 if (environment === &#x2018;production&#x2019;) {
  ENV.APP.rootElement = &#x2018;#block-embercomponent&#x2019;
 }

 return ENV;
};
</code></pre>
<h5 id="4buildingaproductionversionoftheapp">4. Building a production version of the App</h5>
<p>Now we want to make a production version of our app.</p>
<pre><code>$ ember build &#x2014; environment=production
version: 2.2.0-beta.6

Built project successfully. Stored in &#x201C;dist/&#x201D;.
</code></pre>
<p>Inside the <strong>dist</strong> directory you&#x2019;ll find these contents</p>
<ul>
<li>assets/</li>
<li>index.html</li>
<li>crossdomain.xml</li>
<li>robots.txt</li>
</ul>
<p>the contents of assets is where the important files are, inside that folder<br>
you&#x2019;ll find</p>
<ul>
<li>drupal-component-{random hash}.js</li>
<li>vendor-{random hash}.js</li>
</ul>
<p>All other content can be important to you, but for the sake of this article, it isn&#x2019;t for us.</p>
<p>we&#x2019;ll copy both the drupal-coponent.js and vendor.js to our theme directory inside our drupal installation,</p>
<p>For the sake of easily identifiying everything in my drupal site, we&#x2019;ll do some renames:</p>
<ul>
<li>vendor.js to ember.js</li>
<li>drupal-component.js to ember-component.js</li>
</ul>
<h4 id="drupalconfiguration">Drupal Configuration</h4>
<h5 id="1configurelibraries">1. Configure Libraries</h5>
<p>Because we want to only load the ember application on the pages where the block is displayed, we&#x2019;ll have to define our files in a library.</p>
<p>In our theme directory, let&#x2019;s create or edit the mydrupaltheme.libraries.yml file, and add this content</p>
<pre><code>ember:
  version: 2.3.x
  js:
    js/ember.js: { minified: true }
  dependencies:
    &#x2014; core/jquery

ember-component:
  version: 1.x
  js:
    js/ember-component.js: { minified: true }
  dependencies:
    &#x2014; mydrupaltheme/ember
</code></pre>
<p>Make sure to include the dependencies, remember we excluded jquery from the ember app because we are using the one from drupal core.</p>
<h5 id="2createablock">2. Create a block.</h5>
<p>First we&#x2019;ll create a Drupal block, and call it Ember Component, this is important, because drupal will generate an id for the block, and it will be <strong>#block-embercomponent</strong> (based on the name of the block), which we defined in our Ember application,</p>
<p>And we&#x2019;ll need to create a template file based on this name as well.</p>
<h5 id="3createatemplatefile">3. Create a template file.</h5>
<p>inside our template directory we&#x2019;ll create a new template file for the block we just created.</p>
<p>The name is important, ours is: <strong>block--embercomponent.html.twig</strong></p>
<p>The content of the template file is a copy of the regular <strong>block.html.twig</strong>,<br>
with the libraries attached.</p>
<p>This way our ember app is only loaded on the pages where the block is displayed.</p>
<pre><code>{{ attach_library(&#x2018;mydrupaltheme/ember-component&#x2019;) }}

&lt;div{{ attributes }}&gt;
 {{ title_prefix }}
 {% if label %}
  &lt;h2{{ title_attributes }}&gt;{{ label }}&lt;/h2&gt;
 {% endif %}
 {{ title_suffix }}
 {% block content %}
  {{ content }}
 {% endblock %}
&lt;/div&gt;</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>