{"id":1112,"date":"2020-10-08T19:48:45","date_gmt":"2020-10-08T23:48:45","guid":{"rendered":"https:\/\/blog.lufamily.ca\/kang\/?p=1112"},"modified":"2020-10-18T10:58:58","modified_gmt":"2020-10-18T14:58:58","slug":"gosund-tuya-smart-outlet-with-homekit","status":"publish","type":"post","link":"https:\/\/blog.lufamily.ca\/kang\/2020\/10\/08\/gosund-tuya-smart-outlet-with-homekit\/","title":{"rendered":"Gosund (Tuya) Smart Outlet with HomeKit"},"content":{"rendered":"\n<p>Recently I received an Amazon email, and I found the above <a rel=\"noreferrer noopener\" href=\"https:\/\/www.amazon.ca\/Gosund-Required-Control-Devices-Anywhere\/dp\/B07NNPBT2Y?ref_=ast_sto_dp\" target=\"_blank\">Gosund Smart Socket promotion<\/a>. Four smart plugs for $33 CAD. Unfortunately, it was not HomeKit compatible. I did not want to have any of my smart IoT devices connected to Amazon or Google so no thank you Alexa and Google Home.<\/p>\n\n\n\n<p>A few years ago, I built my own smart garage door opener and hooked it up to the Homebridge server that is running on my NAS media server. The Homebridge server allows non-certified IoT devices to be connected to HomeKit. My garage door opener being one of them. I did a cursory search on Google and found that it should be possible to connect the Gosund outlets to HomeKit using Homebridge, so I took the plunge and made the purchase.<\/p>\n\n\n\n<p>The plugs came and I downloaded the Gosund app and setup one of the outlet. It worked like a charm through the Gosund app. As I was setting up this single outlet with Homebridge, I found <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/ct-Open-Source\/tuya-convert\" target=\"_blank\"><code>tuya-convert<\/code><\/a>. This is an alternative to Homebridge. Instead of registering the device to Homebridge, <code>tuya-convert<\/code> claims that I can just flash the firmware and I can add the Gosund plug directly to HomeKit. Sounds attractive and I have to give it a shot. Long story short, I was successful with replacing the firmware, but when configuring the plug I provided wrong configuration data and as such I was locked out of the plug, effectively bricking the plug. Nothing ventured, nothing gained. While doing this exercise, I learned a lot about how to use <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/RavenSystem\/esp-homekit-devices\" target=\"_blank\">esp-homekit-devices<\/a> project to turn any ESP8266 chip set and make it HomeKit compatible. This could be very handy in a future project, but for now let&#8217;s go back to Homebridge.<\/p>\n\n\n\n<p>I found that the version of homebridge on my NAS server was outdated, and so was the version of node. I backed up my existing homebridge configuration and proceed to uninstall homebridge.<\/p>\n\n\n\n<p>I installed the latest stable version of <code>node<\/code> as of the writing of this blog, <code>v12.19.0<\/code>. I then followed <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/homebridge\/homebridge\/wiki\/Install-Homebridge-on-Debian-or-Ubuntu-Linux\" target=\"_blank\">these instructions<\/a> and installed the latest version of Homebridge. This new version came with a web based UI as well. For convenience, this is what I did:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x\nsudo hb-service install --user homebridge<\/code><\/pre>\n\n\n\n<p>I then reinstalled the Homebridge plugins that I previously had, which included <code>homebridge-camera-ffmpeg<\/code>, and my custom <code>homebridge-kl-garage<\/code>.<\/p>\n\n\n\n<p>The Gosund plugs effectively uses the Tuya IoT Platform. So instead of using the Gosund App, I downloaded the <a href=\"https:\/\/apps.apple.com\/us\/app\/tuyasmart\/id1034649547\" target=\"_blank\" rel=\"noreferrer noopener\">TuyaSmart App from the App Store<\/a>. The user interface is nearly identical to the Gosund App and I re-added the outlet with the TuyaSmart App.<\/p>\n\n\n\n<p>Now I&#8217;m ready to install the <code>homebridge-tuya<\/code> plugin using the instructions <a href=\"https:\/\/www.npmjs.com\/package\/homebridge-tuya\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% sudo npm install -g --unsafe-perm homebridge-tuya<\/code><\/pre>\n\n\n\n<p>As per the instructions, I watched the YouTube video and followed its steps using the QR-Code method.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/oq0JL_wicKg?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-CA&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<\/div><\/figure>\n\n\n\n<p>However, I found the video to be incomplete and I ran into issues when running the <code>tuya-cli<\/code> command. Essentially I got an error indicating that I did not have permission to run the API.<\/p>\n\n\n\n<p>Using the information I had from the video and after some more Google searches,  here are the steps which I followed and they worked for me.<\/p>\n\n\n\n<p>First, install the <code>tuya-cli<\/code> command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo npm i @tuyapi\/cli -g<\/code><\/pre>\n\n\n\n<p>Next I had to create an account with <a rel=\"noreferrer noopener\" href=\"https:\/\/iot.tuya.com\" target=\"_blank\">iot.tuya.com<\/a>. The sign-up process was a bit tricky because their email sending out the verification code seem to be slower than the allotted 60 seconds before the whole process timeout. It took me a couple of tries before I was able to create an account.<\/p>\n\n\n\n<p>Once the account is created, I proceeded to create a project called HomeKit as part of Cloud Development. Below is a screenshot from the site.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/iot.tuya_.com_.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"1879\" height=\"725\" src=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/iot.tuya_.com_.png\" alt=\"\" class=\"wp-image-1124\" srcset=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/iot.tuya_.com_.png 1879w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/iot.tuya_.com_-300x116.png 300w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/iot.tuya_.com_-1024x395.png 1024w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/iot.tuya_.com_-768x296.png 768w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/iot.tuya_.com_-1536x593.png 1536w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption>After project creation<\/figcaption><\/figure>\n\n\n\n<p>Click into the project and under Device Management, we need to link devices using the <strong>Link devices by App Account<\/strong> tab. When you click on the <strong>Add App Account<\/strong>, a QR-Code will be presented which needs to be scanned from the TuyaSmart App.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Link-App-Account.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"1878\" height=\"634\" src=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Link-App-Account.png\" alt=\"\" class=\"wp-image-1127\" srcset=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Link-App-Account.png 1878w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Link-App-Account-300x101.png 300w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Link-App-Account-1024x346.png 1024w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Link-App-Account-768x259.png 768w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Link-App-Account-1536x519.png 1536w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption>After linking the App account<\/figcaption><\/figure>\n\n\n\n<p>To scan the QR-Code, open the TuyaSmart App and select the Me tab at the bottom, and tap on the scan icon in the upper right hand corner.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/scan.jpg\" alt=\"\" class=\"wp-image-1131\" width=\"-82\" height=\"-177\" srcset=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/scan.jpg 1125w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/scan-139x300.jpg 139w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/scan-473x1024.jpg 473w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/scan-768x1663.jpg 768w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/scan-709x1536.jpg 709w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/scan-946x2048.jpg 946w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption>Use TuyaSmart App<br>to Scan QR-Code<\/figcaption><\/figure><\/div>\n\n\n\n<p>Once the TuyaSmart App scans the QR-Code, you will see the Account along with a device count that you previously linked to your App.<\/p>\n\n\n\n<p>You should be able to list all the devices that you previously registered \/ paired with the TuyaSmart App. I had to select <strong>America<\/strong> before I see the devices. See below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Device-List.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"1031\" height=\"420\" src=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Device-List.png\" alt=\"\" class=\"wp-image-1129\" srcset=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Device-List.png 1031w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Device-List-300x122.png 300w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Device-List-1024x417.png 1024w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Device-List-768x313.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption>Devices previously added to the TuyaSmart App will be displayed<\/figcaption><\/figure>\n\n\n\n<p>You will need the virtual id which is the identifier below the device name. Go back to Project Overview and take note of the client id and secret:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/tuya-Cloud-Dev.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"816\" height=\"465\" src=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/tuya-Cloud-Dev.png\" alt=\"\" class=\"wp-image-1136\" srcset=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/tuya-Cloud-Dev.png 816w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/tuya-Cloud-Dev-300x171.png 300w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/tuya-Cloud-Dev-768x438.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><figcaption>The Client ID is the same as the API key for tuya-cli<\/figcaption><\/figure>\n\n\n\n<p>Once you have these three pieces of information, you can then find the keys for your devices that you will need to configure the <code>homebridge-tuya<\/code> plugin. To do this, execute the following (note that the API key and secret below are fake):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% DEBUG=* tuya-cli wizard\n? The API key from tuya.com: akkopy4vox723px9kcb23\n? The API secret from tuya.com 3hfjodfu672kfm08711kpsnbvzzuyerk\n? Provide a 'virtual ID' of a device currently registered in the app: 46616355e09806ca6ba7\n<\/code><\/pre>\n\n\n\n<p>The above command should yield something like (again the key is fake):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;\n  {\n    name: 'Mini Smart Plug',\n    id: '46616355e09806ca6ba7',\n    key: '823a8ee651beefdead'\n  }\n]<\/code><\/pre>\n\n\n\n<p>Now that we have the id and key for the Gosund outlet, we can then configure Homebridge using the <code>homebridge-tuya<\/code> plugin. We use the Homebridge web interface to do this.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Homebridge.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" width=\"1885\" height=\"1237\" src=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Homebridge.png\" alt=\"\" class=\"wp-image-1134\" srcset=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Homebridge.png 1885w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Homebridge-300x197.png 300w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Homebridge-1024x672.png 1024w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Homebridge-768x504.png 768w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Homebridge-1536x1008.png 1536w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><figcaption>Homebridge Web UI<\/figcaption><\/figure>\n\n\n\n<p>The configuration for the plugin looks something like:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"platform\": \"TuyaLan\",\n    \"name\": \"TuyaLan\",\n    \"devices\": &#91;\n        {\n            \"name\": \"Mini Smart Plug\",\n            \"type\": \"Outlet\",\n            \"manufacturer\": \"Gosund\",\n            \"model\": \"WP3 Mini Smart Plug\",\n            \"id\": \"46616355e09806ca6ba7\",\n            \"key\": \"823a8ee651beefdead\"\n        }\n    ]\n}<\/code><\/pre>\n\n\n\n<p>Once I restarted Homebridge on my NAS server, my Home App on my iPhone showed the smart plugs all configured. Below is what it looks like once I configured three of the Gosund smart plugs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"711\" height=\"1024\" src=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/HomeKit-711x1024.jpg\" alt=\"\" class=\"wp-image-1130\" srcset=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/HomeKit-711x1024.jpg 711w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/HomeKit-208x300.jpg 208w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/HomeKit-768x1107.jpg 768w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/HomeKit-1066x1536.jpg 1066w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/HomeKit.jpg 1125w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><figcaption>Home App<\/figcaption><\/figure>\n\n\n\n<p>The integration is pretty good. The plugs are pretty cheap that I decided to buy four more.<\/p>\n\n\n\n<p><strong>Update<\/strong>: I had to add the <code>\"encoderOptions\": \"-preset ultrafast\"<\/code> property in the <code>videoConfig<\/code> object, as well as ensure the <code>\"audio\"<\/code> property is set to <code>false<\/code> of the <code>homebridge-camera-ffmpeg<\/code> plug-in configuration to fix the HomeKit camera streaming. With the latest version 3.0.3, the picture freezes and only get audio if this encoder option was not provided. Below is a complete sample for one of the Unifi cameras:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"cameras\": &#91;\n                {\n                    \"name\": \"Dining Room\",\n                    \"videoConfig\": {\n                        \"source\": \"-rtsp_transport http -re -i rtsp:\/\/192.168.168.198:7447\/5e42fef4a8faffa2326b5d38_0\",\n                        \"maxStreams\": 4,\n                        \"maxWidth\": 1280,\n                        \"maxHeight\": 720,\n                        \"maxFPS\": 15,\n                        \"maxBitrate\": 600,\n                        \"vcodec\": \"h264\",\n                        \"packetSize\": 188,\n                        \"mapvideo\": \"0:1\",\n                        \"mapaudio\": \"0:0\",\n                        \"audio\": false,\n                        \"encoderOptions\": \"-preset ultrafast\",\n                        \"debug\": false\n                    }\n                }\n]<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Recently I received an Amazon email, and I found the above Gosund Smart Socket promotion. Four smart plugs for $33 CAD. Unfortunately, it was not HomeKit compatible. I did not want to have any of my smart IoT devices connected to Amazon or Google so no thank you Alexa and Google Home. A few years &hellip; <a href=\"https:\/\/blog.lufamily.ca\/kang\/2020\/10\/08\/gosund-tuya-smart-outlet-with-homekit\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Gosund (Tuya) Smart Outlet with HomeKit&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1113,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[108,111],"tags":[],"class_list":["post-1112","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-electronics-hobby","category-tech"],"jetpack_featured_media_url":"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2020\/10\/Screen-Shot-2020-10-08-at-2020-10-08-5.34.53-PM.png","jetpack_shortlink":"https:\/\/wp.me\/p7V6i8-hW","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/posts\/1112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/comments?post=1112"}],"version-history":[{"count":20,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/posts\/1112\/revisions"}],"predecessor-version":[{"id":1156,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/posts\/1112\/revisions\/1156"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/media\/1113"}],"wp:attachment":[{"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/media?parent=1112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/categories?post=1112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/tags?post=1112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}