{"id":378,"date":"2020-03-30T20:23:15","date_gmt":"2020-03-31T01:23:15","guid":{"rendered":"https:\/\/sundrysites.com\/?page_id=378"},"modified":"2020-03-30T20:23:15","modified_gmt":"2020-03-31T01:23:15","slug":"fire-alarm-sketch","status":"publish","type":"page","link":"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/","title":{"rendered":"Fire Alarm Sketch"},"content":{"rendered":"\n<p>This sketch controls an Arduino that acts like a fire alarm panel for a 4-wire monitored alarm system.&nbsp; When any of the detectors senses a fire or trouble it sends that status to HCA.&nbsp;&nbsp;&nbsp; It can reset the alarm system when HCA tells it to do so.<\/p>\n\n\n\n<p>#include &lt;SPI.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ needed for Arduino versions later than 0018<br>#include &lt;Ethernet.h&gt;<br>#include &lt;EthernetUdp.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ UDP library<br>byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x69 };<br>IPAddress ip(192, 168, 0, 69);<br>unsigned int localPort = 5001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ local port to listen on<br>IPAddress IP_Remote(192, 168, 0, 10);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ IP address for smarthome<br>unsigned int Port_Remote = 5000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ Remote Arduino remote port<br>char cmdStatusCheck = &#8216;9&#8217;;&nbsp;&nbsp; \/\/ a &#8220;9&#8221; means smarthome is asking for status<br>char cmdResetFire = &#8216;1&#8217;;&nbsp;&nbsp; \/\/ a &#8220;1&#8221; means reset the fire alarm<br>EthernetUDP Udp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;\/\/ An EthernetUDP instance<br>char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; \/\/buffer to hold incoming packet<br>char cmdIn = &#8216;0&#8217;;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;\/\/ used to obtain and compare buffer character<br>\/\/ pins 2, 4, 10, 11, 12, 13 are used by the ethernet shield<br>int val = 0;<br>int fireAlarmPin = 0;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;\/\/ analog pin 0<br>int fireAlarmRelayPin = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ digital pin 0<br>int fireTroubleLedPin = 5;&nbsp;&nbsp; &nbsp;\/\/ digital pin 5<br>int firePowerFaultPin = 6;&nbsp;&nbsp; &nbsp;\/\/ digital pin 6<br>int fireRelayPin = 7;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;\/\/ digital pin 7<br>int fireTripLedPin = 8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ digital pin 8<br>int fireResetPin = 9;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ digital pin 9<br>\/\/ boolean flags to keep track of statii<br>boolean fireAlarm = false;<br>boolean fireTrouble = false;<br>boolean firePowerTrouble = false;<br>\/\/ finally do the setup<br>void setup()<br>{<br>\/\/ Open serial communications and wait for port to open:<br>\/\/&nbsp;&nbsp; &nbsp;Serial.begin(9600);<br>delay(10000);<br>\/\/ start the Ethernet and UDP:<br>Ethernet.begin(mac,ip);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ no need for gateway or mask<br>Udp.begin(localPort);<br>\/\/ first set the led outputs<br>digitalWrite(fireTripLedPin,LOW);&nbsp;&nbsp;&nbsp; \/\/ set alarm light off<br>digitalWrite(fireAlarmRelayPin,HIGH);&nbsp;&nbsp;&nbsp; \/\/ set alarm relay off<br>digitalWrite(fireTroubleLedPin,LOW);&nbsp;&nbsp;&nbsp; \/\/ set trouble light off<br>digitalWrite(fireRelayPin,HIGH);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ turn power relay on, uses nc contacts<br>\/\/ then set all the output pin modes<br>pinMode(fireTripLedPin, OUTPUT);<br>pinMode(fireAlarmRelayPin, OUTPUT);<br>pinMode(fireTroubleLedPin, OUTPUT);<br>pinMode(fireRelayPin, OUTPUT);<br>\/\/ and set the input pin modes<br>pinMode(fireResetPin, INPUT_PULLUP);<br>pinMode(firePowerFaultPin, INPUT_PULLUP);<\/p>\n\n\n\n<p>Udp.beginPacket(IP_Remote, Port_Remote);<br>Udp.write(&#8220;ardfirearmed=yes&#8221;);<br>Udp.endPacket();<\/p>\n\n\n\n<p>\/\/&nbsp;&nbsp;&nbsp;&nbsp; Serial.print(&#8220;starting.\\n&#8221;);<br>}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ end of setup<br>\/\/ start of loop<br>void loop()<br>{<br>delay(1000);&nbsp; \/\/cycle through every second<br>\/\/ check on alarm pin value<br>val = analogRead(fireAlarmPin);<br>\/\/&nbsp; Serial.println(val);<br>if ( (val &gt; 1000) &amp;&amp; (!fireTrouble) )<br>{<br>\/\/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serial.print(&#8220;Fire Trouble\\n&#8221;);<br>fireTrouble = true;<br>digitalWrite(fireTroubleLedPin,HIGH);<br>Udp.beginPacket(IP_Remote, Port_Remote);<br>Udp.write(&#8220;ardfiretrouble=yes&#8221;);<br>Udp.endPacket();<br>}<br>if ( (val &lt; 300) &amp;&amp; (!fireAlarm) )<br>{<br>\/\/&nbsp;&nbsp;&nbsp;&nbsp; Serial.print(&#8220;Fire alarm!\\n&#8221;);<br>fireAlarm = true;<br>digitalWrite(fireTripLedPin,HIGH);<br>digitalWrite(fireAlarmRelayPin,LOW);<br>Udp.beginPacket(IP_Remote, Port_Remote);<br>Udp.write(&#8220;ardfirealarm=yes&#8221;);<br>Udp.endPacket();<br>}<br>if ( (digitalRead(firePowerFaultPin) == HIGH) &amp;&amp; !firePowerTrouble )<br>{<br>\/\/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serial.print(&#8220;Fire power fault!\\n&#8221;);<br>firePowerTrouble = true;<br>digitalWrite(fireTroubleLedPin,HIGH);<br>Udp.beginPacket(IP_Remote, Port_Remote);<br>Udp.write(&#8220;ardfirepowerfault=yes&#8221;);<br>Udp.endPacket();<br>}<br>if ( (digitalRead(firePowerFaultPin) == LOW) &amp;&amp; firePowerTrouble )<br>{<br>\/\/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Serial.print(&#8220;Fire power fault!\\n&#8221;);<br>firePowerTrouble = false;<br>digitalWrite(fireTroubleLedPin,LOW);<br>Udp.beginPacket(IP_Remote, Port_Remote);<br>Udp.write(&#8220;ardfirepowerfault=no&#8221;);<br>Udp.endPacket();<br>}<\/p>\n\n\n\n<p>if (digitalRead(fireResetPin) == LOW)<br>{<br>\/\/&nbsp;&nbsp; Serial.print(&#8220;Fire reset\\n&#8221;);<br>digitalWrite(fireTroubleLedPin,LOW);<br>digitalWrite(fireTripLedPin,LOW);<br>digitalWrite(fireAlarmRelayPin,HIGH);<br>digitalWrite(fireRelayPin,LOW);<br>fireAlarm = false;<br>fireTrouble = false;<br>firePowerTrouble = false;<br>Udp.beginPacket(IP_Remote, Port_Remote);<br>Udp.write(&#8220;ardfirearmed=no&#8221;);<br>Udp.endPacket();<br>delay(5000);<br>Udp.beginPacket(IP_Remote, Port_Remote);<br>Udp.write(&#8220;ardfirearmed=yes&#8221;);<br>Udp.endPacket();<br>digitalWrite(fireRelayPin,HIGH);<br>}<br>\/\/ see if there&#8217;s an incoming packet<br>int packetSize = Udp.parsePacket();<br>if(packetSize)<br>{<br>Udp.read(packetBuffer,1);<br>cmdIn = (packetBuffer[0]);<br>\/\/ respond to status check<br>if (cmdIn == cmdStatusCheck)<br>{<br>\/\/&nbsp; Serial.println(&#8220;matched9!&#8221;);<br>Udp.beginPacket(IP_Remote, Port_Remote);<br>Udp.write(&#8220;ard69ok=yes&#8221;);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;\/\/ send packet good status<br>Udp.endPacket();<br>}<br>\/\/ end of status check<br>\/\/ start of remote fire alarm reset<br>if (cmdIn == cmdResetFire)<br>{<br>\/\/&nbsp;&nbsp; Serial.print(&#8220;Remote Fire reset\\n&#8221;);<br>digitalWrite(fireTroubleLedPin,LOW);<br>digitalWrite(fireTripLedPin,LOW);<br>digitalWrite(fireAlarmRelayPin,HIGH);<br>digitalWrite(fireRelayPin,LOW);<br>fireAlarm = false;<br>fireTrouble = false;<br>firePowerTrouble = false;<br>Udp.beginPacket(IP_Remote, Port_Remote);<br>Udp.write(&#8220;ardfirearmed=no&#8221;);<br>Udp.endPacket();<br>delay(5000);<br>Udp.beginPacket(IP_Remote, Port_Remote);<br>Udp.write(&#8220;ardfirearmed=yes&#8221;);<br>Udp.endPacket();<br>digitalWrite(fireRelayPin,HIGH);<br>}<br>\/\/ end of remote fire alarm reset<br>}<br>\/\/ end of incoming packet handler<br>}&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;\/\/ end of main loop<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This sketch controls an Arduino that acts like a fire alarm panel for a 4-wire monitored alarm system.&nbsp; When any of the detectors senses a fire or trouble it sends that status to HCA.&nbsp;&nbsp;&nbsp; It can reset the alarm system when HCA tells it to do so. #include &lt;SPI.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ needed for Arduino versions later &hellip; <a href=\"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Fire Alarm Sketch<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":370,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-378","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Fire Alarm Sketch - Sundrysites<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fire Alarm Sketch - Sundrysites\" \/>\n<meta property=\"og:description\" content=\"This sketch controls an Arduino that acts like a fire alarm panel for a 4-wire monitored alarm system.&nbsp; When any of the detectors senses a fire or trouble it sends that status to HCA.&nbsp;&nbsp;&nbsp; It can reset the alarm system when HCA tells it to do so. #include &lt;SPI.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ needed for Arduino versions later &hellip; Continue reading Fire Alarm Sketch &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/\" \/>\n<meta property=\"og:site_name\" content=\"Sundrysites\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sundrysites.com\\\/index.php\\\/home-info\\\/arduino-projects\\\/sketches\\\/fire-alarm-sketch\\\/\",\"url\":\"https:\\\/\\\/sundrysites.com\\\/index.php\\\/home-info\\\/arduino-projects\\\/sketches\\\/fire-alarm-sketch\\\/\",\"name\":\"Fire Alarm Sketch - Sundrysites\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sundrysites.com\\\/#website\"},\"datePublished\":\"2020-03-31T01:23:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sundrysites.com\\\/index.php\\\/home-info\\\/arduino-projects\\\/sketches\\\/fire-alarm-sketch\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sundrysites.com\\\/index.php\\\/home-info\\\/arduino-projects\\\/sketches\\\/fire-alarm-sketch\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sundrysites.com\\\/index.php\\\/home-info\\\/arduino-projects\\\/sketches\\\/fire-alarm-sketch\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sundrysites.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home Info\",\"item\":\"https:\\\/\\\/sundrysites.com\\\/index.php\\\/home-info\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Arduino Projects\",\"item\":\"https:\\\/\\\/sundrysites.com\\\/index.php\\\/home-info\\\/arduino-projects\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Sketches\",\"item\":\"https:\\\/\\\/sundrysites.com\\\/index.php\\\/home-info\\\/arduino-projects\\\/sketches\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Fire Alarm Sketch\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sundrysites.com\\\/#website\",\"url\":\"https:\\\/\\\/sundrysites.com\\\/\",\"name\":\"Sundrysites\",\"description\":\"As In Various and Sundry\",\"publisher\":{\"@id\":\"https:\\\/\\\/sundrysites.com\\\/#\\\/schema\\\/person\\\/1e11ce6af1587a3431e57dfc0797ab61\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sundrysites.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/sundrysites.com\\\/#\\\/schema\\\/person\\\/1e11ce6af1587a3431e57dfc0797ab61\",\"name\":\"Wayne Gulden\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c0392cdfb7826ed5407aad362998bc6dd03fe293560ce15ccc2211357e3cec6e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c0392cdfb7826ed5407aad362998bc6dd03fe293560ce15ccc2211357e3cec6e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c0392cdfb7826ed5407aad362998bc6dd03fe293560ce15ccc2211357e3cec6e?s=96&d=mm&r=g\",\"caption\":\"Wayne Gulden\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c0392cdfb7826ed5407aad362998bc6dd03fe293560ce15ccc2211357e3cec6e?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/sundrysites.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Fire Alarm Sketch - Sundrysites","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/","og_locale":"en_US","og_type":"article","og_title":"Fire Alarm Sketch - Sundrysites","og_description":"This sketch controls an Arduino that acts like a fire alarm panel for a 4-wire monitored alarm system.&nbsp; When any of the detectors senses a fire or trouble it sends that status to HCA.&nbsp;&nbsp;&nbsp; It can reset the alarm system when HCA tells it to do so. #include &lt;SPI.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/ needed for Arduino versions later &hellip; Continue reading Fire Alarm Sketch &rarr;","og_url":"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/","og_site_name":"Sundrysites","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/","url":"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/","name":"Fire Alarm Sketch - Sundrysites","isPartOf":{"@id":"https:\/\/sundrysites.com\/#website"},"datePublished":"2020-03-31T01:23:15+00:00","breadcrumb":{"@id":"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/fire-alarm-sketch\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sundrysites.com\/"},{"@type":"ListItem","position":2,"name":"Home Info","item":"https:\/\/sundrysites.com\/index.php\/home-info\/"},{"@type":"ListItem","position":3,"name":"Arduino Projects","item":"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/"},{"@type":"ListItem","position":4,"name":"Sketches","item":"https:\/\/sundrysites.com\/index.php\/home-info\/arduino-projects\/sketches\/"},{"@type":"ListItem","position":5,"name":"Fire Alarm Sketch"}]},{"@type":"WebSite","@id":"https:\/\/sundrysites.com\/#website","url":"https:\/\/sundrysites.com\/","name":"Sundrysites","description":"As In Various and Sundry","publisher":{"@id":"https:\/\/sundrysites.com\/#\/schema\/person\/1e11ce6af1587a3431e57dfc0797ab61"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sundrysites.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/sundrysites.com\/#\/schema\/person\/1e11ce6af1587a3431e57dfc0797ab61","name":"Wayne Gulden","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c0392cdfb7826ed5407aad362998bc6dd03fe293560ce15ccc2211357e3cec6e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c0392cdfb7826ed5407aad362998bc6dd03fe293560ce15ccc2211357e3cec6e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c0392cdfb7826ed5407aad362998bc6dd03fe293560ce15ccc2211357e3cec6e?s=96&d=mm&r=g","caption":"Wayne Gulden"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/c0392cdfb7826ed5407aad362998bc6dd03fe293560ce15ccc2211357e3cec6e?s=96&d=mm&r=g"},"sameAs":["https:\/\/sundrysites.com"]}]}},"_links":{"self":[{"href":"https:\/\/sundrysites.com\/index.php\/wp-json\/wp\/v2\/pages\/378","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sundrysites.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sundrysites.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sundrysites.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sundrysites.com\/index.php\/wp-json\/wp\/v2\/comments?post=378"}],"version-history":[{"count":1,"href":"https:\/\/sundrysites.com\/index.php\/wp-json\/wp\/v2\/pages\/378\/revisions"}],"predecessor-version":[{"id":379,"href":"https:\/\/sundrysites.com\/index.php\/wp-json\/wp\/v2\/pages\/378\/revisions\/379"}],"up":[{"embeddable":true,"href":"https:\/\/sundrysites.com\/index.php\/wp-json\/wp\/v2\/pages\/370"}],"wp:attachment":[{"href":"https:\/\/sundrysites.com\/index.php\/wp-json\/wp\/v2\/media?parent=378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}