{"id":485,"date":"2021-02-19T04:34:06","date_gmt":"2021-02-19T04:34:06","guid":{"rendered":"http:\/\/kiphaynes.com\/?p=485"},"modified":"2025-08-28T15:33:36","modified_gmt":"2025-08-28T15:33:36","slug":"locally-controlled-open-source-home-assistant-with-voice-control","status":"publish","type":"post","link":"https:\/\/kiphaynes.com\/?p=485","title":{"rendered":"Locally Controlled Open Source Home Assistant &#8211; With Voice Control!"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>Have you ever bought a product or service and were forced to create an online account to access some or all of it&#8217;s functionality? Have you ever wondered if it&#8217;s possible to have 100% local, off grid control over your smart home devices?<\/p>\n<p>Like many people, I&#8217;ve always been uncomfortable with those Amazon Alexa and Google Nest speakers listening to everything you say in the privacy of your home. In fact, I think many people willingly forgo the convenience of smart home devices simply because they are not willing to invite Google, Amazon or Apple to listen in to every word spoken in the privacy of the home. In most cases, the user is forced either integrate with one of the big three smart home integrators, or load a different app for each brand of device with less than stellar functionality and UI, while being subject to 3rd party cloud dependency.<\/p>\n<p>Most any smart device you purchase includes a dedicated cloud service attached to it, and it will often not be fully functional without connecting to your wifi. This dedicated cloud-based component may be a server in another country providing automation services, controlling your device and relaying your commands to smart home services including Google or Amazon. It&#8217;s difficult to know what other data the device may be collecting and transmitting to it&#8217;s mothership in the cloud. Additionally, if the company stops supporting the device or goes out of business, or even if it&#8217;s <a href=\"https:\/\/www.nytimes.com\/2016\/01\/14\/fashion\/nest-thermostat-glitch-battery-dies-software-freeze.html\">cloud servers go down for a time,<\/a> your smart device may cease to function at all!<\/p>\n<p>Recently my curiosity about all this led me to test out the open source driven <a href=\"https:\/\/www.home-assistant.io\/\">Home Assistant project<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-487 aligncenter\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/HASS.png\" alt=\"\" width=\"225\" height=\"225\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS.png 225w, https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-150x150.png 150w, https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-120x120.png 120w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/p>\n<p><em>Home Assistant, or HASS, is a free and open-source home automation software designed to be the central home automation control system for smart home technology. Both the Home Assistant &#8220;core&#8221; application itself and its software extensions are written in Python. Its main focus is on local control and privacy. &#8211;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Home_Assistant\">Wikepedia<\/a><\/em><\/p>\n<p>HASS runs in a linux environment and is designed for Raspberry Pi. It sits on your local lan (or cloud server of your choosing) and provides a high level of automation and control of many smart devices in your home. Out of the box, HASS provides integration with a wide variety of devices&#8230;<\/p>\n<figure id=\"attachment_512\" aria-describedby=\"caption-attachment-512\" style=\"width: 1024px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-512 size-large\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/HASS-Dashboard-Demo-1024x455.jpg\" alt=\"\" width=\"1024\" height=\"455\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-Dashboard-Demo-1024x455.jpg 1024w, https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-Dashboard-Demo-300x133.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-Dashboard-Demo-768x342.jpg 768w, https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-Dashboard-Demo.jpg 1830w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption id=\"caption-attachment-512\" class=\"wp-caption-text\">Home Assistant Web Dashboard<\/figcaption><\/figure>\n<figure id=\"attachment_510\" aria-describedby=\"caption-attachment-510\" style=\"width: 267px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-510 size-full\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/dashboard-mobile.jpg\" alt=\"\" width=\"267\" height=\"543\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/dashboard-mobile.jpg 267w, https:\/\/kiphaynes.com\/wp-content\/uploads\/dashboard-mobile-148x300.jpg 148w\" sizes=\"auto, (max-width: 267px) 100vw, 267px\" \/><figcaption id=\"caption-attachment-510\" class=\"wp-caption-text\">Home Assistant Mobile App<\/figcaption><\/figure>\n<p>Home Assistant can work with cloud controlled devices just like Amazon Alexa or Google Nest. However, if you want total local control, you can replace the firmware in many devices with open source firmware, giving you, the homeowner and purchaser of such devices, 100% local and private control of your home. It turns out that many small IOT device on the market (at least when it comes to smart light dimmers and switches) are controlled by the same MCU: The ESP8266:<\/p>\n<figure id=\"attachment_514\" aria-describedby=\"caption-attachment-514\" style=\"width: 300px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-514 size-medium\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/ESP8266-1-300x297.jpg\" alt=\"\" width=\"300\" height=\"297\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/ESP8266-1-300x297.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/ESP8266-1-150x150.jpg 150w, https:\/\/kiphaynes.com\/wp-content\/uploads\/ESP8266-1-120x120.jpg 120w, https:\/\/kiphaynes.com\/wp-content\/uploads\/ESP8266-1.jpg 528w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-514\" class=\"wp-caption-text\">ESP8266.. totally hackable!<\/figcaption><\/figure>\n<p>Most of these chips have <a href=\"https:\/\/en.wikipedia.org\/wiki\/ESP8266\">1MiB internal memory, WIFI, 16 GPIO pins<\/a> and can be easily re-flashed with custom firmware. And, it just so happens, that there are a lot of people doing just that! There are two popular open source firmware packages available for this chip, <a href=\"https:\/\/tasmota.github.io\/docs\/\">Tasmota<\/a> and <a href=\"https:\/\/esphome.io\/\">ESPHome<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-515 size-full alignleft\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/Tasmota-ESPHome.jpg\" alt=\"\" width=\"706\" height=\"226\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/Tasmota-ESPHome.jpg 706w, https:\/\/kiphaynes.com\/wp-content\/uploads\/Tasmota-ESPHome-300x96.jpg 300w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>I chose to work with Tasmota, as it appears to be a little more user friendly, while ESPHome requires you to compile a binary with all configuration options, while Tasmota spins up a web host right on the device allowing you to change configurations more easily. Until recently, one could flash many devices over the air without having to open the device at all, but now most devices are locked down and require access to the serial data pins on the MCU to re-flash the device. Here is a photo of me flashing a few smart 3-way dimmers with the serial pins on a pi.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-493 size-full\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/me.jpg\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/me.jpg 960w, https:\/\/kiphaynes.com\/wp-content\/uploads\/me-300x169.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/me-768x432.jpg 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<figure id=\"attachment_492\" aria-describedby=\"caption-attachment-492\" style=\"width: 457px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-492 size-full\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/soldier.jpg\" alt=\"\" width=\"457\" height=\"457\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/soldier.jpg 457w, https:\/\/kiphaynes.com\/wp-content\/uploads\/soldier-150x150.jpg 150w, https:\/\/kiphaynes.com\/wp-content\/uploads\/soldier-300x300.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/soldier-400x400.jpg 400w, https:\/\/kiphaynes.com\/wp-content\/uploads\/soldier-120x120.jpg 120w\" sizes=\"auto, (max-width: 457px) 100vw, 457px\" \/><figcaption id=\"caption-attachment-492\" class=\"wp-caption-text\">Flashing Open Source Firmware on a ESP8266 based Smart Dimmer<\/figcaption><\/figure>\n<figure id=\"attachment_532\" aria-describedby=\"caption-attachment-532\" style=\"width: 444px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-532\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/20210121_231742.jpg\" alt=\"\" width=\"444\" height=\"623\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/20210121_231742.jpg 444w, https:\/\/kiphaynes.com\/wp-content\/uploads\/20210121_231742-214x300.jpg 214w\" sizes=\"auto, (max-width: 444px) 100vw, 444px\" \/><figcaption id=\"caption-attachment-532\" class=\"wp-caption-text\">De-soldering the ESP<\/figcaption><\/figure>\n<p>Here is my current home setup:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-488\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/HASS-Connect.jpg\" alt=\"\" width=\"919\" height=\"702\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-Connect.jpg 919w, https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-Connect-300x229.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-Connect-768x587.jpg 768w\" sizes=\"auto, (max-width: 919px) 100vw, 919px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-489\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/dashboard1.jpg\" alt=\"\" width=\"660\" height=\"576\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/dashboard1.jpg 660w, https:\/\/kiphaynes.com\/wp-content\/uploads\/dashboard1-300x262.jpg 300w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/p>\n<p>And a little video!<\/p>\n<div style=\"width: 1110px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-485-1\" width=\"1110\" height=\"624\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/HomeSmart2-HB.mp4?_=1\" \/><a href=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/HomeSmart2-HB.mp4\">https:\/\/kiphaynes.com\/wp-content\/uploads\/HomeSmart2-HB.mp4<\/a><\/video><\/div>\n<p>My next quest was to add voice control. Home Assistant natively supports an open Source voice assistant called <a href=\"https:\/\/almond.stanford.edu\/\">Almond<\/a>, but the actual <a href=\"https:\/\/www.home-assistant.io\/blog\/2019\/11\/20\/privacy-focused-voice-assistant\/\">voice recognition is not included and must be sent to the cloud<\/a>.\u00a0 I wanted a 100% off cloud voice controlled home assistant. I found another voice\/assistant\/intent tech stack called <a href=\"https:\/\/rhasspy.readthedocs.io\/en\/latest\/\">Rhasspy<\/a> that supports Home Assistant integration.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-505 alignright\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/Rhasspy-LOGO.jpg\" alt=\"\" width=\"346\" height=\"115\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/Rhasspy-LOGO.jpg 346w, https:\/\/kiphaynes.com\/wp-content\/uploads\/Rhasspy-LOGO-300x100.jpg 300w\" sizes=\"auto, (max-width: 346px) 100vw, 346px\" \/>Rhasspy has a nice collection of speech to text, text to speech, intent handling and authoring tools that allow highly customizable approach to voice control for Home Assistant. It will run just fine on a Raspberry pi 3 or later, although depending on how you use it, it can be slow. I used <a href=\"https:\/\/www.tonormic.com\/products\/tonor-g11-conference-usb-microphone\">this USB microphone<\/a> with the pi with great success.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1436\/5272\/products\/TN120072BL-1.jpg?v=1590130334\" width=\"512\" height=\"512\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-506\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/Rhasspy.jpg\" alt=\"\" width=\"489\" height=\"556\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/Rhasspy.jpg 489w, https:\/\/kiphaynes.com\/wp-content\/uploads\/Rhasspy-264x300.jpg 264w\" sizes=\"auto, (max-width: 489px) 100vw, 489px\" \/><\/p>\n<p>Rhasspy accepts your custom voice commands and tries to determine the logical intent of your statement. For example, here are a few sentences that I wrote with logic operators in parenthesis:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-504\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/Rhasspy-phrases.jpg\" alt=\"\" width=\"410\" height=\"581\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/Rhasspy-phrases.jpg 410w, https:\/\/kiphaynes.com\/wp-content\/uploads\/Rhasspy-phrases-212x300.jpg 212w\" sizes=\"auto, (max-width: 410px) 100vw, 410px\" \/><\/p>\n<p>And here is an example output of the intent engine when I ask &#8220;What time is it&#8221;..<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-503\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/Intent.jpg\" alt=\"\" width=\"436\" height=\"424\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/Intent.jpg 436w, https:\/\/kiphaynes.com\/wp-content\/uploads\/Intent-300x292.jpg 300w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/><\/p>\n<p>Over in Home Assistant, I created several automatons and actions to handle intent, and create the voice responses here as well. Notice the responsetext, which I send back to Rhasspy:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-501\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/HASS-Automations.jpg\" alt=\"\" width=\"297\" height=\"594\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-Automations.jpg 297w, https:\/\/kiphaynes.com\/wp-content\/uploads\/HASS-Automations-150x300.jpg 150w\" sizes=\"auto, (max-width: 297px) 100vw, 297px\" \/><\/p>\n<p>Now that I have integrated voice control, I want to expand home assistant to control and automate more devices in my home. My GE Smart Washer and Dryer will be the next victim! The native app interface is not a great experience, and I would like to see this and other appliance usage in my histogram. There is an integration available using the <a href=\"https:\/\/products.geappliances.com\/appliance\/gea-support-search-content?contentId=23807\">If This Then That protocol<\/a>, but I believe it still requires cloud integration.<\/p>\n<figure id=\"attachment_499\" aria-describedby=\"caption-attachment-499\" style=\"width: 724px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-499 size-full\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/washer3.jpg\" alt=\"\" width=\"724\" height=\"407\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/washer3.jpg 724w, https:\/\/kiphaynes.com\/wp-content\/uploads\/washer3-300x169.jpg 300w\" sizes=\"auto, (max-width: 724px) 100vw, 724px\" \/><figcaption id=\"caption-attachment-499\" class=\"wp-caption-text\">GE Smart Appliances<\/figcaption><\/figure>\n<figure id=\"attachment_509\" aria-describedby=\"caption-attachment-509\" style=\"width: 711px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-509 \" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/histogram.jpg\" alt=\"\" width=\"711\" height=\"420\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/histogram.jpg 1158w, https:\/\/kiphaynes.com\/wp-content\/uploads\/histogram-300x177.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/histogram-768x454.jpg 768w, https:\/\/kiphaynes.com\/wp-content\/uploads\/histogram-1024x605.jpg 1024w\" sizes=\"auto, (max-width: 711px) 100vw, 711px\" \/><figcaption id=\"caption-attachment-509\" class=\"wp-caption-text\">My Home IOT Histogram. Find the hidden correlations.<\/figcaption><\/figure>\n<p>I also will be testing a <a href=\"https:\/\/sense.com\/\">Sense Sensor<\/a> soon, this will allow more detailed usage analytics based on electrical noise caused by various appliances and devices in the home. There is even a nice plugin available for Home Assistant!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-498\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/Sense.jpg\" alt=\"\" width=\"408\" height=\"389\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/Sense.jpg 408w, https:\/\/kiphaynes.com\/wp-content\/uploads\/Sense-300x286.jpg 300w\" sizes=\"auto, (max-width: 408px) 100vw, 408px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-497\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/Sense-HASS.jpg\" alt=\"\" width=\"630\" height=\"430\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/Sense-HASS.jpg 630w, https:\/\/kiphaynes.com\/wp-content\/uploads\/Sense-HASS-300x205.jpg 300w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/p>\n<p>What have I learned from this experience? Mostly that off grid automation is possible, useful and very stable! Unfortunately I don&#8217;t think that this kind of setup is available to most people that don&#8217;t have a high degree of technical skills and patience. I don&#8217;t want to even say how much time I&#8217;ve put into this project. I think there is a real market opportunity for more locally controlled IOT devices and services. I also think that home and personal data is a powerful resource and commodity, and should be protected and controlled by the owner.\u00a0 I had a great time learning about the communication protocols between devices, and I&#8217;m excited to get a taste of what a highly personalized responsive home of the future might look like!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Have you ever bought a product or service and were forced to create an online account to access some or all of it&#8217;s functionality? Have you ever wondered if it&#8217;s possible to have 100% local, off grid control over your smart home devices? Like many people, I&#8217;ve always been uncomfortable with those Amazon Alexa<\/p>\n<p><span class=\"xf__dots\">&#8230;<\/span><a class=\"xf__more xf__button\" href=\"https:\/\/kiphaynes.com\/?p=485\">Read More<\/a><\/p>\n","protected":false},"author":2,"featured_media":527,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-485","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","xf__entry"],"_links":{"self":[{"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/posts\/485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=485"}],"version-history":[{"count":15,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/posts\/485\/revisions"}],"predecessor-version":[{"id":617,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/posts\/485\/revisions\/617"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/media\/527"}],"wp:attachment":[{"href":"https:\/\/kiphaynes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}