{"id":1573,"date":"2020-09-04T09:32:28","date_gmt":"2020-09-04T07:32:28","guid":{"rendered":"https:\/\/www.pschatzmann.ch\/home\/?p=1573"},"modified":"2020-11-21T22:22:44","modified_gmt":"2020-11-21T21:22:44","slug":"spektrum-satellite-protocol","status":"publish","type":"post","link":"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/","title":{"rendered":"Using the Spektrum Satellite Protocol in Arduino"},"content":{"rendered":"<h1>Spectrum Satellite API for Arduino<\/h1>\n<p>I was working on a <a href=\"https:\/\/github.com\/pschatzmann\/SpektrumSatellite\">small project<\/a> to implement the <a href=\"https:\/\/github.com\/pschatzmann\/SpektrumSatellite\">Spectrum Satellite Receiver Protocol<\/a> on an Arduino. The project should work with any type of board (e.g. Arduinos, ESP32, ESP8266 etc)<\/p>\n<ul>\n<li>Complete Implementation of the <a href=\"https:\/\/www.spektrumrc.com\/ProdInfo\/Files\/Remote%20Receiver%20Interfacing%20Rev%20A.pdf\">Spektrum Satellite Specification<\/a><\/li>\n<li>Support for <strong>sending data<\/strong> e.g. to build a <strong>Remote Control Transmitter<\/strong><\/li>\n<li>Support for <strong>receiving data<\/strong> e.g. to build a <strong>Remote Control Receiver<\/strong><\/li>\n<li>Support of different data types and automatic scaling of channel values <\/li>\n<li>Support of <strong>logging<\/strong> using a specified Serial pin<\/li>\n<li>Provides Serialization to and from <strong>CSV format<\/strong><\/li>\n<\/ul>\n<h2>Basic Syntax<\/h2>\n<p>The <em>SpektrumSatellite<\/em> class expects a Stream (HardwareSerial, SoftwareSerial, UDP etc) as parameter.  You need to make sure that you set the exected baud rate (e.g. with <code>Serial.begin(SPEKTRUM_SATELLITE_BPS)<\/code> if this is necessary. The most important methods are:<\/p>\n<ul>\n<li><code>setChannelValue(channel, value)<\/code><\/li>\n<li><code>sendData()<\/code><\/li>\n<li><code>getFrame()<\/code><\/li>\n<li><code>getChannelValue(channel)<\/code><\/li>\n<\/ul>\n<p>If you want to work with 16bit unsigned integer numbers you define <code>SpektrumSatellite&lt;uint16_t&gt;<\/code> and if you want to use floats instead you can define <code>SpektrumSatellite&lt;float&gt;<\/code>.<\/p>\n<p>You can also work with your own value range by calling <code>setChannelValueRange(fromValue, toValue)<\/code>;<\/p>\n<h2>Example: Implementing a Remote Control<\/h2>\n<p>In this Example we use of the SpektrumSatellite class to read the data from analog lines and send it via UDP: With this we can implement a simple custom remote control running on a ESP32 which reads the joystick values and sends them out to a receiver.<br \/>\nPlease check and adapt the pin assignments of your Microcontroller.<\/p>\n<pre><code>#include \"SpektrumSatellite.h\"\n#include \"SpektrumCSV.h\"\n\n#ifdef ESP32\n  #include &lt;WiFi.h&gt;\n  #include &lt;WiFiClient.h&gt;\n  #include &lt;WiFiUdp.h&gt;\n#else\n    #error \"This demo requires an ESP32 or ESP8266 -&gt; Please convert the sketch to your board\"\n#endif\n\n\nchar* ssid = \"RemoteControl\";                \nchar* password =  \"password123\";   \n\nIPAddress local_IP(192,168,4,1);\nIPAddress gateway(192,168,4,0);\nIPAddress subnet(255,255,255,0);   \nIPAddress target_IP(192,168,4,2);\n\nconst int udpPort = 6789;\nunsigned long intervall = 500;  \/\/ send every 500ms (=2 messages per second)\nunsigned long intervallTime;\nWiFiUDP udp;\n\nSpektrumSatellite&lt;uint16_t&gt; satellite(udp); \/\/ Assigning the Sattelite to use UDP\nSpektrumCSV&lt;uint16_t&gt; csv;\n\nconst int pins = 6;  \/\/ number of channels for servos\nint inPins[] = {16, 5, 4, 0, 10, 9};  \/\/ analog input pins \nuint8_t buffer[1024];\n\nvoid setup() {\n  Serial.begin(115200);\n  Serial.println();\n  Serial.println(\"setup\");\n\n  \/\/Initiate connection\n  WiFi.disconnect(true);\n\n  WiFi.softAPConfig (local_IP,gateway,subnet);\n  WiFi.softAP(ssid, password);\n  IPAddress myIP = WiFi.softAPIP();\n  Serial.print(\"AP IP address: \");\n  Serial.println(myIP);\n  Serial.println(\"Access Point started\");\n\n  \/\/ Activate the logging to the console only if SpektrumSatellite is not using Serial\n  satellite.setLog(Serial);\n  satellite.setLogMod(0); \/\/ do not log records\n\n  \/\/ setup Input pins\n  for (int j=0;j&lt;pins; j++){\n    pinMode(inPins[j],INPUT);\n  }\n}\n\nvoid loop() {\n\n  if (millis()&gt;intervallTime) {\n    intervallTime = millis()+intervall;\n\n    \/\/ read values from pins\n    for (int j=0;j&lt;pins; j++){\n      int value = analogRead(inPins[j]);\n      Channel channel = (Channel) (j+1);\n      satellite.setChannelValue(channel, analogRead(inPins[j]));\n    }\n\n    \/\/ send binary data\n    udp.beginPacket(target_IP, udpPort);\n    satellite.sendData();\n    udp.endPacket();\n\n    \/\/ log data as CSV to console\n    csv.toString(satellite, buffer, 1024);\n    satellite.sendData(buffer);   \n    Serial.print((char*)buffer);      \n\n  } \n}\n<\/code><\/pre>\n<h2>Example: Implementing the Receiver on the RC Airplane<\/h2>\n<p>In the following Example we use the SpektrumSatellite class on an ESP32 to receive the  data in order to update the servos.<\/p>\n<pre><code>#include \"SpektrumSatellite.h\"\n#include \"SpektrumCSV.h\"\n#include \"ESP32_Servo.h\"\n\n#ifdef ESP32\n  #include &lt;WiFi.h&gt;\n  #include &lt;WiFiUdp.h&gt;\n#else\n    #error \"This demo requires an ESP32 or ESP8266 -&gt; Please convert the sketch to your board\"\n#endif\n\n\nchar* ssid = \"RemoteControl\";                 \/\/Change this to your router SSID.\nchar* password =  \"password123\";        \/\/Change this to your router password.\nconst int udpPort = 6789;\nIPAddress gateway(192,168,4,0);\nIPAddress subnet(255,255,255,0);   \nIPAddress local_IP(192,168,4,2); \nWiFiUDP udp;\n\nSpektrumSatellite&lt;uint16_t&gt; satellite(udp); \/\/ Assing satellite to Serial (use Serial1 or Serial2 if available!)\nSpektrumCSV&lt;uint16_t&gt; csv;\n\nconst int pins = 6;  \/\/ number of channels for servos\nint pwmPins[] = {2, 0, 4, 5, 6, 7};  \/\/ servo pins \nServo servos[pins];  \/\/ allocate servos for all channels\nuint8_t buffer[1024];\n\n\nvoid setup() {\n  Serial.begin(115200);\n  Serial.println();\n  Serial.println(\"setup\");\n\n  \/\/Initiate WIFI Hostspot connection\n  WiFi.disconnect(true);\n  WiFi.config(local_IP, gateway, subnet);\n \/\/ WiFi.mode(WIFI_STA);\n\n  WiFi.begin(ssid, password);\n  while (WiFi.status() != WL_CONNECTED) {\n    Serial.print('.');\n    delay(500);\n  }\n  Serial.println(\"Connected to WIFI\");\n\n  \/\/ Activate the logging to the console only if SpektrumSatellite is not using Serial\n  satellite.setLog(Serial);\n  satellite.setLogMod(0);\n\n  \/\/ setup PWM pins\n  for (int j=0;j&lt;pins; j++){\n    \/\/servos[j].attach(pwmPins[j]);\n  }\n\n  \/\/ start to listen for data\n  if (udp.begin(udpPort))\n    Serial.print(\"Processing UPD now...\");\n\n}\n\n\nvoid loop() {\n  \/\/ Start processing the next available incoming packet\n  if (udp.parsePacket()&gt;0){\n    if (satellite.getFrame()) {   \n      for (int j=0;j&lt;pins; j++){\n         Channel ch = static_cast&lt;Channel&gt;(j);   \n         long value = satellite.getChannelValue(ch);\n         \/\/servos[j].write(value);\n      }  \n\n      \/\/ log data as CSV to console\n      csv.toString(satellite, buffer, 1024);\n      satellite.sendData(buffer);   \n      Serial.print((char*)buffer);       \n    } \n  }\n\n}\n\n<\/code><\/pre>\n<h2>Installation<\/h2>\n<p>You can download this project as ZIP and in the Arduino IDE use -> Sketch -> Include Library -> Add ZIP Library.<\/p>\n<p>The recommended way howerver is to clone the project to your libraries directory. E.g. with<\/p>\n<pre><code>    cd ~\/Documents\/Arduino\/libraries\n    git clone https:\/\/github.com\/pschatzmann\/SpektrumSatellite.git\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Spectrum Satellite API for Arduino I was working on a small project to implement the Spectrum Satellite Receiver Protocol on an Arduino. The project should work with any type of board (e.g. Arduinos, ESP32, ESP8266 etc) Complete Implementation of the Spektrum Satellite Specification Support for sending data e.g. to build [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[20,23],"tags":[],"class_list":["post-1573","post","type-post","status-publish","format-standard","hentry","category-arduino","category-rc"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Using the Spektrum Satellite Protocol in Arduino - Phil Schatzmann<\/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:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using the Spektrum Satellite Protocol in Arduino - Phil Schatzmann\" \/>\n<meta property=\"og:description\" content=\"Spectrum Satellite API for Arduino I was working on a small project to implement the Spectrum Satellite Receiver Protocol on an Arduino. The project should work with any type of board (e.g. Arduinos, ESP32, ESP8266 etc) Complete Implementation of the Spektrum Satellite Specification Support for sending data e.g. to build [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/\" \/>\n<meta property=\"og:site_name\" content=\"Phil Schatzmann\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-04T07:32:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-21T21:22:44+00:00\" \/>\n<meta name=\"author\" content=\"pschatzmann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pschatzmann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/09\\\/04\\\/spektrum-satellite-protocol\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/09\\\/04\\\/spektrum-satellite-protocol\\\/\"},\"author\":{\"name\":\"pschatzmann\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"headline\":\"Using the Spektrum Satellite Protocol in Arduino\",\"datePublished\":\"2020-09-04T07:32:28+00:00\",\"dateModified\":\"2020-11-21T21:22:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/09\\\/04\\\/spektrum-satellite-protocol\\\/\"},\"wordCount\":304,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"articleSection\":[\"Arduino\",\"RC\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/09\\\/04\\\/spektrum-satellite-protocol\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/09\\\/04\\\/spektrum-satellite-protocol\\\/\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/09\\\/04\\\/spektrum-satellite-protocol\\\/\",\"name\":\"Using the Spektrum Satellite Protocol in Arduino - Phil Schatzmann\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#website\"},\"datePublished\":\"2020-09-04T07:32:28+00:00\",\"dateModified\":\"2020-11-21T21:22:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/09\\\/04\\\/spektrum-satellite-protocol\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/09\\\/04\\\/spektrum-satellite-protocol\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/09\\\/04\\\/spektrum-satellite-protocol\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using the Spektrum Satellite Protocol in Arduino\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#website\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/\",\"name\":\"Phil Schatzmann Consulting\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\",\"name\":\"pschatzmann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\",\"contentUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\",\"width\":305,\"height\":305,\"caption\":\"pschatzmann\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using the Spektrum Satellite Protocol in Arduino - Phil Schatzmann","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:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/","og_locale":"en_US","og_type":"article","og_title":"Using the Spektrum Satellite Protocol in Arduino - Phil Schatzmann","og_description":"Spectrum Satellite API for Arduino I was working on a small project to implement the Spectrum Satellite Receiver Protocol on an Arduino. The project should work with any type of board (e.g. Arduinos, ESP32, ESP8266 etc) Complete Implementation of the Spektrum Satellite Specification Support for sending data e.g. to build [&hellip;]","og_url":"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/","og_site_name":"Phil Schatzmann","article_published_time":"2020-09-04T07:32:28+00:00","article_modified_time":"2020-11-21T21:22:44+00:00","author":"pschatzmann","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pschatzmann","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/#article","isPartOf":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/"},"author":{"name":"pschatzmann","@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"headline":"Using the Spektrum Satellite Protocol in Arduino","datePublished":"2020-09-04T07:32:28+00:00","dateModified":"2020-11-21T21:22:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/"},"wordCount":304,"commentCount":2,"publisher":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"articleSection":["Arduino","RC"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/","url":"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/","name":"Using the Spektrum Satellite Protocol in Arduino - Phil Schatzmann","isPartOf":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#website"},"datePublished":"2020-09-04T07:32:28+00:00","dateModified":"2020-11-21T21:22:44+00:00","breadcrumb":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/04\/spektrum-satellite-protocol\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pschatzmann.ch\/home\/"},{"@type":"ListItem","position":2,"name":"Using the Spektrum Satellite Protocol in Arduino"}]},{"@type":"WebSite","@id":"https:\/\/www.pschatzmann.ch\/home\/#website","url":"https:\/\/www.pschatzmann.ch\/home\/","name":"Phil Schatzmann Consulting","description":"","publisher":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pschatzmann.ch\/home\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1","name":"pschatzmann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png","url":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png","contentUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png","width":305,"height":305,"caption":"pschatzmann"},"logo":{"@id":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png"}}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/1573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/comments?post=1573"}],"version-history":[{"count":25,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/1573\/revisions"}],"predecessor-version":[{"id":1769,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/1573\/revisions\/1769"}],"wp:attachment":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/media?parent=1573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/categories?post=1573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/tags?post=1573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}