{"id":21,"date":"2014-10-20T19:50:05","date_gmt":"2014-10-20T17:50:05","guid":{"rendered":"http:\/\/www.embedded-communication.com\/embedded_communication\/wordpress\/?p=21"},"modified":"2016-07-27T17:43:17","modified_gmt":"2016-07-27T15:43:17","slug":"english-cia-309-for-the-internet-of-things","status":"publish","type":"post","link":"http:\/\/www.embedded-communication.com\/en\/canopen\/english-cia-309-for-the-internet-of-things\/","title":{"rendered":"CiA 309 for the Internet of Things"},"content":{"rendered":"<p><\/p>\n<h2>CANopen Gateways in the Internet of Things<\/h2>\n<p>The CANopen\/Ethernet Gateway specification 309 \u201eInterfacing CANopen with TCP\/IP\u201c becomes more and more important in the Internet of things. As its name suggests CiA-309 defines functionalities to access CANopen networks and devices from Ethernet networks. The first version which has been already defined in 2004 was only used in niche applications but starting from 2012 when the specification was updated, CiA-309-gateways have been in use in a broad range of applications and several products are now available as hardware or software. Especially with the internet of things more applications are opened up for the CANopen gateways CiA-309 now.<br \/>\n<!--more--><\/p>\n<h2>An overview on CiA-309<\/h2>\n<p>The CiA-309 specification consists of 3 parts. The 1st part CiA-309-1 describes general services and principles and defines 3 gateway classes.<br \/>\n<strong>Class 1<\/strong><br \/>\nNMT Slave + SDO Client<br \/>\n<strong>Class 2<\/strong><br \/>\nClass 1+ SDO requesting device<br \/>\n<strong>Class 3<\/strong><br \/>\nCANopen Manager<\/p>\n<p>Besides these classes additional CANopen services like PDO, heartbeat consumer, node guarding master, LSS master and more are defined in CiA-309-1 but are optional.<\/p>\n<p>The part CiA-309-2 defines a mapping of these services to a ModBus\/TCP-CANopen gateway. The ModBus\/TCP side of the gateway is a ModBus\/TCP slave and the CANopen side can either be a simple SDO client or a sophisticated CANopen manager depending on the implemented gateway class. Nevertheless, the ModBus\/TCP-CANopen gateway has to work within the limitations of existing Modbus networks, which means that the length of requests and responses is limited to 253 bytes and that asynchronous data transfers (e.g. PDOs) are not allowed. ModBus messages to Modbus\/CANopen gateways are transmitted using the ModBus Encapsulated Interface Transport (MEI) with the function code 43 and the MEI type 13. The 2 bytes are followed by CiA-309-2 commands as binary data.<\/p>\n<p>CiA-309-3 defines an ASCII mapping of the CANopen services and all CANopen services can be transmitted as ASCII strings via TCP\/IP. Nevertheless, the protocol definition does not limit the use of TCP\/IP as transport layer, so also implementation that use UDP\/IP or a serial point-to-point protocol are possible and in use.<\/p>\n<p>The specification covers basically 4 service primitives. These are:<br \/>\nrequest: communication service required<br \/>\nconfirmation: answer to a service request<br \/>\nindication: an event has occurred in the network<br \/>\nresponse: answer to an event<\/p>\n<p>Based on these the ASCII protocol for CANopen defines commands that are composed of tokens that are separated by white-spaces and closed by CRLF characters. All commands that are sent to the gateway are confirmed and preceded with a sequence number that is enclosed in square brackets [ ]. The sequence number is an UNSIGNED32 number and this number is sent back from the gateway with the answer, but it is not used with event-triggered messages from the gateway. After the sequence number the command starts with an optional net-ID and the node-ID which is addressed and followed by the specific command. All commands are defined in CiA-303-3 Backus\u2013Naur Form (BNF). The definition for a SDO request is e.g.:<br \/>\n&#8220;[&#8220;&#8221;]&#8221; [[net] node] r[ead]<br \/>\nand an example for such an request is:<br \/>\n[2232] 1 43 r 0x1000 0 u32<br \/>\nwhich means that the value of the object 0x1000 subindex 0 shall be read from node 43 in net 1. If a CANopen only supports a single CANopen network, the net number can be omitted.<\/p>\n<p>During the latest meeting of the CiA 309 working group it has been decided to open the specification for more complex commands. Although nothing has been defined yet, it paths the way to more sophisticated use cases which might be necessary for the Internet of things.<\/p>\n<h2>ModBus\/TCP and ASCII gateways<\/h2>\n<p>emtas provides both a<a href=\"http:\/\/www.emtas.de\/en\/produkte\/canopen-tcpip-gateway-cia-309-2\"> CiA-309-2 <\/a>gateway to connect ModBus\/TCP to CANopen networks and a <a href=\"http:\/\/www.emtas.de\/en\/produkte\/canopen-tcpip-gateway-cia-309-3\">CiA-309-3<\/a> gateway as well for TCP\/IP connection using ASCII commands.<br \/>\nThe CANopen component of the gateways is based on the proven CANopen master stack from emtas. The CiA-309 gateways are available as Linux applications and can be used with an (embedded) Linux device, that supports a can4linux or SocketCAN CAN interface. Also a source code edition is offered that can be ported to all targets that support a CAN interface and a TCP\/IP stack. Full featured TCP\/IP stacks with BSD sockets facilitate the use, but also light-weight TCP\/IP stacks without BSD socket support can be used. Thus the source code edition is suitable for the integration into small embedded devices. Additionally, using the source code it is possible to add functions and services that exceed the scope of the CiA-309 specification.<\/p>\n<h2>Current use cases of CiA-309<\/h2>\n<p>One of the first use cases of CiA-309 have been CANopen service and diagnostic tools that can operate via Ethernet or Internet connections. The first product that implemented CiA-309, especially CiA-309-3, in hardware was the EtherCAN developed and manufactured by the company EMS W\u00fcnsche from Germany. Besides CANopen tools the CANopen specification 443 for sub sea instruments specifies the use of CAN-309-3 for their transparent maintenance link to configure or updates the devices. More applications as backbones and configuration links to handle parametrization and firmware updates exists, but they haven&#8217;t been specified in CANopen application profiles yet.<\/p>\n<h2>Use cases of Internet of Things(Iot)<\/h2>\n<p>According to Wikipedia the Internet of Things (IoT) refers to the interconnection of uniquely identifiable embedded computing-like devices within the existing Internet infrastructure. Typically, IoT is expected to offer advanced connectivity of devices, systems, and services that goes beyond machine-to-machine communications (M2M) and covers a variety of protocols, domains, and applications.<\/p>\n<p>Transferred to our CANopen domain it means to have Internet access down to a CANopen network or a single CANopen device.<\/p>\n<p>CAN in Automation e.V. has recently established a working group that deals with the Internet of Things and employees of emtas participate in this group. Unfortunately, the experts have just started to work on the topic and consequently no results are available yet. During the 1st meetings the uses case have been defined: Diagnostic of devices and Functional Addressing. Functional addressing means that a CANopen device is no longer address by its CANopen node-ID but instead by a functionally, e.g. \u201cTemperature sensor 4\u201d or an unique function code that represents the functionality. This will not be limited to the scope of nodes but will also cover parameters and data that are normally addressed by index and sub index.<\/p>\n<p>Additionally, it has been discussed that there will be different types of CANopen device with different IoT capabilities:<br \/>\n1) CANopen devices with full Ethernet capabilities that can handle HTTP requests or similar and may able to be a web server itself<br \/>\n2) CANopen devices with limited Ethernet capabilities that can only respond to a restricted set of requests via Ethernet<br \/>\n3) CANopen devices without IoT support \u2013 classic CANopen devices which has to be address via a gateway.<\/p>\n<p>Up to now the preferred method to retrieved data via Ethernet network is to use dedicated HTTP Requests. For all use cases and applications, LAN and WAN access shall be enabled and security considerations have to be taken into account as well.<\/p>\n<h2>CiA 309 and EnergyBus<\/h2>\n<p>The topic Internet of Things is also discussed withing EnergyBus e.V., which has developed the CiA 454 application profile for use in light-electric vehicles and other energy management networks. Without ready solutions from the CiA group \u201cCANopen and Internet of Things\u201d own discussions have been started that led to a first proposal. A current idea is to extend CiA-309 for the use cases of EnergyBus. As discussed within the SIG \u201cCANopen and Internet of Things\u201d there is a need to add a functional addressing scheme to the geographical addressing the CANopen provides today. Mapped to CiA 309 it means:<br \/>\nUsage of device or function names instead of node-IDs<br \/>\ne.g. BATTERY_2 instead of Node-ID 31<br \/>\nUsage of Parameter names instead of index\/sub-index addressing<br \/>\nRegistration on data instead of PDOs<br \/>\nThe usage of device names instead of node-IDs is especially imported in CiA-454 networks because node-IDs are usually assigned dynamically using the Layer Setting Services (LSS).<br \/>\nAdditionally, it is proposed that a CiA-309 gateway only transmits PDO data via TCP\/IP if the values have been changed. Taken this into account additionally an update timer is necessary to ensure that even clients that are connected later have the possibility to get informed about current, but slowly-changing values. Instead of this a \u201cRequest PDO Values\u201d service could be added to the CiA-309 gateways<\/p>\n<p>Mapped to CiA-309-3 these new commands look like these:<br \/>\nValue Read Request similar to SDO read request<br \/>\n&#8220;[&#8220;&#8221;]&#8221; r[ead] example:<br \/>\n&gt;[1234] BATTERY_2 r rated_voltage<br \/>\n&lt;[1234]] 4800<\/p>\n<p>Value Write Request similar to SDO write request<br \/>\n&#8220;[&#8220;&#8221;]&#8221; w[ead]<br \/>\nexample:<br \/>\n&gt;[815] MCU w assistance_level 2<br \/>\n&lt;[815] OK<\/p>\n<p>Value Registration<br \/>\n&#8220;[&#8220;&#8221;]&#8221; register value example:<br \/>\n&gt;[4711] BATTERY_2 register value current_voltage<br \/>\n&lt;[4711] OK<\/p>\n<p>Value Indication<br \/>\nvalue<br \/>\nexample:<\/p>\n<p>The objective of that approach is e.g. that smart-phone applications can be able to read\/write certain information the electric bicycle without having to much about CANopen or EnergyBus (CiA 454) wheres more sophisticated applications or PC tools could use the full features of CiA-309-3.<br \/>\nUsing such an approach the extended CiA-309 gateway in the EnergyBus network has to be aware of the characteristics of CiA-454 devices and the structure of the network. Thus an extended CiA-309-3 gateway for EnergyBus have to be located inside the EnergyBus Controller, which is the virtual device that controls the EnergyBus network. Besides CiA-309-3 other methods like HTTP-POST requests or more specific JSON or XMLHttpRequest requests have been considered as well. Anyway these approaches are currently rejected in favor of extending CiA-309-3 for the sake of backward compatibility.<br \/>\nNevertheless the decision can also be reversed if the CANopen working group \u201cCANopen and Internet of Things\u201d comes up with a better generic approach that fits the needs of most CANopen users.<\/p>\n<h2>Conclusion<\/h2>\n<p>Although everybody is talking about IoT these days there is need for a generic CANopen solution. The proposed idea to extend CiA-309 will suit the needs of the author for the use case in EnergyBus (CiA 454) networks. In a more generalized way, it could be used for a broader range of applications but significantly more work has to be done. More interested parties are welcome to join the efforts of CAN in Automation e.V. to develop a generic solution for the Internet of Things even beyond the current scope of CANopen.<\/p>","protected":false},"excerpt":{"rendered":"<p>CANopen Gateways in the Internet of Things The CANopen\/Ethernet Gateway specification 309 \u201eInterfacing CANopen with TCP\/IP\u201c becomes more and more important in the Internet of things. As its name suggests CiA-309 defines functionalities to access CANopen networks and devices from Ethernet networks. The first version which has been already defined in 2004 was only used &hellip; <a href=\"http:\/\/www.embedded-communication.com\/en\/canopen\/english-cia-309-for-the-internet-of-things\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;CiA 309 for the Internet of Things&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-21","post","type-post","status-publish","format-standard","hentry","category-canopen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CiA 309 for the Internet of Things - embedded communication<\/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.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CiA 309 for the Internet of Things - embedded communication\" \/>\n<meta property=\"og:description\" content=\"CANopen Gateways in the Internet of Things The CANopen\/Ethernet Gateway specification 309 \u201eInterfacing CANopen with TCP\/IP\u201c becomes more and more important in the Internet of things. As its name suggests CiA-309 defines functionalities to access CANopen networks and devices from Ethernet networks. The first version which has been already defined in 2004 was only used &hellip; Continue reading &quot;CiA 309 for the Internet of Things&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/\" \/>\n<meta property=\"og:site_name\" content=\"embedded communication\" \/>\n<meta property=\"article:published_time\" content=\"2014-10-20T17:50:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-07-27T15:43:17+00:00\" \/>\n<meta name=\"author\" content=\"Torsten Gedenk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EmbeddedComm\" \/>\n<meta name=\"twitter:site\" content=\"@EmbeddedComm\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Torsten Gedenk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/\"},\"author\":{\"name\":\"Torsten Gedenk\",\"@id\":\"http:\/\/www.embedded-communication.com\/#\/schema\/person\/8f0fcf033edee00b06d4dd4cf196680e\"},\"headline\":\"CiA 309 for the Internet of Things\",\"datePublished\":\"2014-10-20T17:50:05+00:00\",\"dateModified\":\"2016-07-27T15:43:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/\"},\"wordCount\":1721,\"publisher\":{\"@id\":\"http:\/\/www.embedded-communication.com\/#organization\"},\"articleSection\":[\"CANopen\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/\",\"url\":\"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/\",\"name\":\"CiA 309 for the Internet of Things - embedded communication\",\"isPartOf\":{\"@id\":\"http:\/\/www.embedded-communication.com\/#website\"},\"datePublished\":\"2014-10-20T17:50:05+00:00\",\"dateModified\":\"2016-07-27T15:43:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"http:\/\/www.embedded-communication.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"(English) CiA 309 for the Internet of Things\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.embedded-communication.com\/#website\",\"url\":\"http:\/\/www.embedded-communication.com\/\",\"name\":\"embedded communication\",\"description\":\"A blog about embedded communcation protocols.\",\"publisher\":{\"@id\":\"http:\/\/www.embedded-communication.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.embedded-communication.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/www.embedded-communication.com\/#organization\",\"name\":\"embedded communication\",\"url\":\"http:\/\/www.embedded-communication.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/www.embedded-communication.com\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2016\/08\/embedded-communication.png\",\"contentUrl\":\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2016\/08\/embedded-communication.png\",\"width\":240,\"height\":240,\"caption\":\"embedded communication\"},\"image\":{\"@id\":\"http:\/\/www.embedded-communication.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/EmbeddedComm\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.embedded-communication.com\/#\/schema\/person\/8f0fcf033edee00b06d4dd4cf196680e\",\"name\":\"Torsten Gedenk\",\"url\":\"http:\/\/www.embedded-communication.com\/en\/author\/ged\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CiA 309 for the Internet of Things - embedded communication","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.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/","og_locale":"en_US","og_type":"article","og_title":"CiA 309 for the Internet of Things - embedded communication","og_description":"CANopen Gateways in the Internet of Things The CANopen\/Ethernet Gateway specification 309 \u201eInterfacing CANopen with TCP\/IP\u201c becomes more and more important in the Internet of things. As its name suggests CiA-309 defines functionalities to access CANopen networks and devices from Ethernet networks. The first version which has been already defined in 2004 was only used &hellip; Continue reading \"CiA 309 for the Internet of Things\"","og_url":"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/","og_site_name":"embedded communication","article_published_time":"2014-10-20T17:50:05+00:00","article_modified_time":"2016-07-27T15:43:17+00:00","author":"Torsten Gedenk","twitter_card":"summary_large_image","twitter_creator":"@EmbeddedComm","twitter_site":"@EmbeddedComm","twitter_misc":{"Written by":"Torsten Gedenk","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/#article","isPartOf":{"@id":"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/"},"author":{"name":"Torsten Gedenk","@id":"http:\/\/www.embedded-communication.com\/#\/schema\/person\/8f0fcf033edee00b06d4dd4cf196680e"},"headline":"CiA 309 for the Internet of Things","datePublished":"2014-10-20T17:50:05+00:00","dateModified":"2016-07-27T15:43:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/"},"wordCount":1721,"publisher":{"@id":"http:\/\/www.embedded-communication.com\/#organization"},"articleSection":["CANopen"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/","url":"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/","name":"CiA 309 for the Internet of Things - embedded communication","isPartOf":{"@id":"http:\/\/www.embedded-communication.com\/#website"},"datePublished":"2014-10-20T17:50:05+00:00","dateModified":"2016-07-27T15:43:17+00:00","breadcrumb":{"@id":"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.embedded-communication.com\/canopen\/english-cia-309-for-the-internet-of-things\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"http:\/\/www.embedded-communication.com\/"},{"@type":"ListItem","position":2,"name":"(English) CiA 309 for the Internet of Things"}]},{"@type":"WebSite","@id":"http:\/\/www.embedded-communication.com\/#website","url":"http:\/\/www.embedded-communication.com\/","name":"embedded communication","description":"A blog about embedded communcation protocols.","publisher":{"@id":"http:\/\/www.embedded-communication.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.embedded-communication.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/www.embedded-communication.com\/#organization","name":"embedded communication","url":"http:\/\/www.embedded-communication.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/www.embedded-communication.com\/#\/schema\/logo\/image\/","url":"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2016\/08\/embedded-communication.png","contentUrl":"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2016\/08\/embedded-communication.png","width":240,"height":240,"caption":"embedded communication"},"image":{"@id":"http:\/\/www.embedded-communication.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/EmbeddedComm"]},{"@type":"Person","@id":"http:\/\/www.embedded-communication.com\/#\/schema\/person\/8f0fcf033edee00b06d4dd4cf196680e","name":"Torsten Gedenk","url":"http:\/\/www.embedded-communication.com\/en\/author\/ged\/"}]}},"_links":{"self":[{"href":"http:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/posts\/21","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/comments?post=21"}],"version-history":[{"count":5,"href":"http:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/posts\/21\/revisions"}],"predecessor-version":[{"id":169,"href":"http:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/posts\/21\/revisions\/169"}],"wp:attachment":[{"href":"http:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/media?parent=21"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/categories?post=21"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/tags?post=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}