{"id":13,"date":"2019-11-05T17:08:49","date_gmt":"2019-11-05T17:08:49","guid":{"rendered":"https:\/\/www.galagaking.org\/?p=13"},"modified":"2020-01-11T15:45:24","modified_gmt":"2020-01-11T15:45:24","slug":"esphome-workshop","status":"publish","type":"post","link":"https:\/\/www.galagaking.org\/nl\/2019\/11\/05\/esphome-workshop\/","title":{"rendered":"ESPHome \u2013 Introductie"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Install ESPHome<\/h2>\n\n\n\n<p>We will use ESPHome to create the binaries for the ESP8266 module. ESPHome will create a binary from a \u2018YAML\u2019 script file. ESPHome is written in Python and is using \u2018PlatformIO\u2019 to build the software. If you installed already some components, you may skip these steps.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Install Python<\/h2>\n\n\n\n<p>If you already installed Python, you should check your python version:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> python --version<\/pre>\n\n\n\n<p>It should be &gt;2.6. If not, install python. Refer to <a href=\"http:\/\/www.python.org\">www.python.org<\/a>, current release 3.8: <a href=\"https:\/\/www.python.org\/downloads\/release\/python-380\/\">https:\/\/www.python.org\/downloads\/release\/python-380\/<\/a><\/p>\n\n\n\n<p>Depending\non your local OS choose Mac or Windows Web installer:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"417\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic1-1024x417.png\" alt=\"\" class=\"wp-image-14\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic1-1024x417.png 1024w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic1-300x122.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic1-768x312.png 768w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic1.png 1765w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>To install\nthe Windows web-based installer, download the file and start it from the\n\u2018Download\u2019 directory:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"996\" height=\"614\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic2.png\" alt=\"\" class=\"wp-image-15\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic2.png 996w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic2-300x185.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic2-768x473.png 768w\" sizes=\"auto, (max-width: 996px) 100vw, 996px\" \/><\/figure>\n\n\n\n<p>Check the\n\u2018Add Python 3.8 to PATH\u2019 check box and choose \u2018Install Now\u2019<\/p>\n\n\n\n<p>Choose \u2018Install\nNow\u2019.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"996\" height=\"614\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic3.png\" alt=\"\" class=\"wp-image-16\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic3.png 996w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic3-300x185.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic3-768x473.png 768w\" sizes=\"auto, (max-width: 996px) 100vw, 996px\" \/><\/figure>\n\n\n\n<p>After\ninstallation choose \u2018Disable path length limit\u2019 (just in case) and \u2018Close\u2019.<\/p>\n\n\n\n<p>Check your setup by opening a CMD window entering the \u2018python &#8211;version\u2019 command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">python --version<\/pre>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/afbeelding.png\" alt=\"\" class=\"wp-image-49\" width=\"408\" height=\"94\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/afbeelding.png 662w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/afbeelding-300x69.png 300w\" sizes=\"auto, (max-width: 408px) 100vw, 408px\" \/><\/figure>\n\n\n\n<p>Start the installation of esphome:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pip install esphome<\/pre>\n\n\n\n<p>This will\ninstall all the components needed.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"582\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic5-1024x582.png\" alt=\"\" class=\"wp-image-18\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic5-1024x582.png 1024w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic5-300x170.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic5-768x436.png 768w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic5.png 1348w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now you can\ncreate your first \u2018YAML\u2019 file.<\/p>\n\n\n\n<p>Create a\nworking directory in your home or documents directory and select this\ndirectory:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">CD &lt;documentsdir&gt;\nmd esphome\ncd esphome\nesphome myfirst.yaml wizard<\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"582\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic6-1024x582.png\" alt=\"\" class=\"wp-image-19\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic6-1024x582.png 1024w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic6-300x170.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic6-768x436.png 768w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic6.png 1348w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The Wizard\nis helpful in creating your first YAML file. First enter a chosen name for your\nnode. This name will be broadcasted in the WiFi network, so choose a unique\none!<\/p>\n\n\n\n<p>Step 2 is\nasking for the platform (ESP32 or ESP8266). Choose, depending on your hardware.<\/p>\n\n\n\n<p>In case of\nthe workshop you should enter ESP8266, and Nodemcuv2 or d1_mini (WEMOS).<\/p>\n\n\n\n<p>Step 3,\nenter your Wifi credentials (SSID and password)<\/p>\n\n\n\n<p>In Step 4\nyou can enter a password for the OTA setup. In case of an untrusted network\nthis will give you some more security<\/p>\n\n\n\n<p>Now your\nYAML file will be created, it is an ASCII file which can be edited by your\nfavourite editor (or notepad):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"926\" height=\"609\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic7.png\" alt=\"\" class=\"wp-image-20\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic7.png 926w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic7-300x197.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic7-768x505.png 768w\" sizes=\"auto, (max-width: 926px) 100vw, 926px\" \/><\/figure>\n\n\n\n<p>This file\ncan be edited here, so any configuration changes can be done from here.<\/p>\n\n\n\n<p>Now the\nmagic will start. Connect an USB cable to your ESP8266 board and enter:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">esphome myfirst.yaml run<\/pre>\n\n\n\n<p>This will\ncompile your yaml file, create and upload the binary firmware to your module.\nCompilation will take some time, because platform and libraries should be\nloaded first. After compilation you get the option to upload the file:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"246\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic8-1024x246.png\" alt=\"\" class=\"wp-image-21\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic8-1024x246.png 1024w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic8-300x72.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic8-768x184.png 768w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic8.png 1347w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Choose the\nCOM port (you should first upload the code by USB). After uploading the ESP\nwill reboot and try connect to the given SSID. The USB port will now act as a\nlogging port and esphome will display the messages:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"582\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic9-1024x582.png\" alt=\"\" class=\"wp-image-22\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic9-1024x582.png 1024w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic9-300x170.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic9-768x436.png 768w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic9.png 1348w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">The Blinking Led<\/h2>\n\n\n\n<p>The Hello\nWorld example of IoT \/ The Embedded world. So here we go:<\/p>\n\n\n\n<p>To\nconfigure the options from your ESP module, you have to add some lines to the\nYAML file. Open the YAML file with notepad or any other editor. Add the\nfollowing lines:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">web_server:\n  port: 80\nswitch:\n  - platform: gpio\n    name: \"LED\"\n    pin:\n      number: 16\n      inverted: yes<\/pre>\n\n\n\n<p>Be aware of\nthe spacing, you should use two spaces for every intended line! 16 is the GPIO\npin from the build-in LED in the NodeMCU v2 board. You should change if needed\nfor WEMOS (GPIO pin 2).<\/p>\n\n\n\n<p>Now you can\nagain upload the code:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">esphome myfirst.yaml run<\/pre>\n\n\n\n<p>Upload\nshould be possible now with OTA (over the air programming). Important to check\nthe uniqueness of your nodename. USB cable is a safe option, but give it a try.<\/p>\n\n\n\n<p>Now try to connect to your node: <a href=\"http:\/\/myfirstnode\">http:\/\/myfirstnode<\/a> , you should enter here your given name in step 1 of your project, be aware this will only work if everyone in the same network uses a different name.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"860\" height=\"778\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic10.png\" alt=\"\" class=\"wp-image-23\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic10.png 860w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic10-300x271.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic10-768x695.png 768w\" sizes=\"auto, (max-width: 860px) 100vw, 860px\" \/><\/figure>\n\n\n\n<p>Now you can\ntoggle the LED by clicking the \u2018Toggle\u2019 button. The debug screen will give more\ninformation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Reading a BMP280 sensor<\/h2>\n\n\n\n<p>Check out <a href=\"https:\/\/esphome.io\/\">https:\/\/esphome.io\/<\/a> , you see a lot of integrations\npossible. Choose any sensor you like, add it to some spare pins of your ESP\nmodule, add the configuration to the YAML file and here you go!<\/p>\n\n\n\n<p>BMP280\nsensor<\/p>\n\n\n\n<p>This sensor\nis connected by i2c bus. Connect GND to GND, VCC to 3v3 (BEWARE: the sensor\ncan\u2019t handle 5V!!), SDA to D2 (Wemos) or GPIO4, SCL to D1 (Wemos) or GPIO5.<\/p>\n\n\n\n<p>First\ninstall i2c in yaml, and then add the sensor:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">i2c:\n&nbsp; sda: 4 #D2 Wemos\n&nbsp; scl: 5 #D1 Wemos\n&nbsp; scan: True\nsensor:\n&nbsp; - platform: bmp280\n&nbsp;&nbsp;&nbsp; temperature:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name: \"BMP280 temperature\"\n&nbsp;&nbsp;&nbsp; pressure:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name: \"BMP280 pressure\"\n&nbsp;&nbsp;&nbsp; address: 0x76\n&nbsp;&nbsp;&nbsp; update_interval: 60s <\/pre>\n\n\n\n<p>After\nuploading the code, the startup logging will show the i2c bus scan (due to\n\u2018scan: true\u2019), check if the sensor is found here:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"582\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic11-1024x582.png\" alt=\"\" class=\"wp-image-24\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic11-1024x582.png 1024w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic11-300x170.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic11-768x436.png 768w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic11.png 1348w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Check if\nyour sensor shows up here, may be you should change the address (0x76 to 0x77)\ndepending on your hardware.<\/p>\n\n\n\n<p>Automagically\nthe sensor values show up in the webserver:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"796\" height=\"564\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic12.png\" alt=\"\" class=\"wp-image-25\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic12.png 796w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic12-300x213.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic12-768x544.png 768w\" sizes=\"auto, (max-width: 796px) 100vw, 796px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Publish to MQTT<\/h2>\n\n\n\n<p>To publish\nyour data outside the \u2018Home Assistant\u2019 environment, you can use the common MQTT\ninterface. You may use your own, local, MQTT server like Mosquito on your PI,\nor use a public one like \u2018HiveMQ\u2019. If you use an external service, be aware\nthat anyone can read the results. Add the following lines to the YAML file:<\/p>\n\n\n\n<pre class=\"wp-block-verse\">mqtt:<br>  broker: broker.hivemq.com<\/pre>\n\n\n\n<p>You should remove\nthe \u2018API\u2019 line, or add a # (\u2018comment\u2019):<\/p>\n\n\n\n<pre class=\"wp-block-verse\"># Enable Home Assistant API<br>#api:<\/pre>\n\n\n\n<p>After\nuploading, all the results from sensors, state of switches and even debugging\nmessages are published to the MQTT server. The syntax is straight forward:<\/p>\n\n\n\n<p><strong>&lt;name of your esp, as used in \u2018step 1\u2019&gt;\/sensor\/bmp280_temperature\/state<\/strong> is the topic used for the BMP temperature. You could change your ESP name to be unique.<\/p>\n\n\n\n<p>Now you can\ngo to <a href=\"http:\/\/www.hivemq.com\/demos\/websocket-client\/\">http:\/\/www.hivemq.com\/demos\/websocket-client\/<\/a> and \u2018Add new Topic subscription\u2019.\nIf you enter here the &lt;name of your ESP&gt;\/# , all the messages from your\nESP will be shown:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1010\" height=\"743\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic13.png\" alt=\"\" class=\"wp-image-26\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic13.png 1010w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic13-300x221.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic13-768x565.png 768w\" sizes=\"auto, (max-width: 1010px) 100vw, 1010px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">NodeRed<\/h2>\n\n\n\n<p>Now we can\npick up this data in other platforms, like NodeRed<\/p>\n\n\n\n<p>Add a MQTT\ninput node:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"747\" height=\"553\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic14.png\" alt=\"\" class=\"wp-image-27\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic14.png 747w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic14-300x222.png 300w\" sizes=\"auto, (max-width: 747px) 100vw, 747px\" \/><\/figure>\n\n\n\n<p>The topic\nshould start with your node name. The server should be broker.hivemq.com.<\/p>\n\n\n\n<p>If you\nconnect a debug or gauge component, the value will be shown in your dashboard:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"928\" height=\"405\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic15.png\" alt=\"\" class=\"wp-image-28\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic15.png 928w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic15-300x131.png 300w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic15-768x335.png 768w\" sizes=\"auto, (max-width: 928px) 100vw, 928px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"470\" height=\"318\" src=\"http:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic16.png\" alt=\"\" class=\"wp-image-29\" srcset=\"https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic16.png 470w, https:\/\/www.galagaking.org\/wp-content\/uploads\/2019\/11\/pic16-300x203.png 300w\" sizes=\"auto, (max-width: 470px) 100vw, 470px\" \/><\/figure>","protected":false},"excerpt":{"rendered":"<p>Install ESPHome We will use ESPHome to create the binaries for the ESP8266 module. ESPHome will create a binary from a \u2018YAML\u2019 script file. ESPHome is written in Python and is using \u2018PlatformIO\u2019 to build the software. If you installed already some components, you may skip these steps. Install Python If you already installed Python, [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[1],"tags":[2,3,4,7],"class_list":["post-13","post","type-post","status-publish","format-standard","hentry","category-homeassistant","tag-esp8266","tag-esphome","tag-mqtt","tag-nodered"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.galagaking.org\/nl\/wp-json\/wp\/v2\/posts\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.galagaking.org\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.galagaking.org\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.galagaking.org\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.galagaking.org\/nl\/wp-json\/wp\/v2\/comments?post=13"}],"version-history":[{"count":0,"href":"https:\/\/www.galagaking.org\/nl\/wp-json\/wp\/v2\/posts\/13\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.galagaking.org\/nl\/wp-json\/wp\/v2\/media?parent=13"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.galagaking.org\/nl\/wp-json\/wp\/v2\/categories?post=13"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.galagaking.org\/nl\/wp-json\/wp\/v2\/tags?post=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}