      {"id":310,"date":"2017-03-01T10:09:37","date_gmt":"2017-03-01T09:09:37","guid":{"rendered":"http:\/\/www.konnekting.de\/?page_id=310"},"modified":"2022-05-03T19:14:19","modified_gmt":"2022-05-03T17:14:19","slug":"lektion-3-aufbau-von-konnekting","status":"publish","type":"page","link":"https:\/\/www.konnekting.de\/en\/konnekting-lernen\/lektion-3-aufbau-von-konnekting\/","title":{"rendered":"Lektion 3: Aufbau von KONNEKTING"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Gegen\u00fcberstellung KONNEKTING KNX<\/h1>\n\n\n\n<p>Nachdem wir uns in <a href=\"https:\/\/www.konnekting.de\/konnekting-lernen\/l1-knx-mit-arduino\/\">Lektion 1<\/a> mit dem prinzipiellen Hardwareaufbau und und <a href=\"https:\/\/www.konnekting.de\/konnekting-lernen\/lektion-2-was-steckt-in-der-siemens-bcu\/\">Lektion 2<\/a> mit dem KNX Transceiver-Chip befasst haben, geht es in Lektion 3 nun darum, wie ein KONNEKTING Ger\u00e4teprojekt aufgebaut ist.<\/p>\n\n\n\n<p>Zu allererst sei gesagt, dass KONNEKTING darauf ausgerichtet ist, ein KNX &#8220;Ger\u00e4t&#8221; zu entwerfen, das sich &#8211; wie andere KNX Ger\u00e4te auch &#8211; \u00fcber den KNX Bus programmieren\/einstellen l\u00e4sst.<\/p>\n\n\n\n<p>KONNEKTING versucht, sich so nahe wie m\u00f6glich an bekannten Dingen und Abl\u00e4ufen aus der KNX Welt zu orientieren. Aber fangen wir von vorne an:<\/p>\n\n\n\n<p>Wenn man in der KNX Welt ein neues KNX Ger\u00e4t installieren m\u00f6chte, dann muss man sich vom Hersteller des Ger\u00e4tes eine Produktdatenbank in Form einer (seit ETS4) .knxprod Datei besorgen.&nbsp;Das Ger\u00e4t selbst schlie\u00dft man an die Bus-Leitung an, startet auf seinem Computer die ETS Software und f\u00fcgt das Ger\u00e4t mittels der Produktdatenbank-Datei hinzu. Danach stellt man in der ETS die physikalische Adresse des Ger\u00e4tes ein, stellt die Parameter des Ger\u00e4ts auf die eigenen Bed\u00fcrfnisse ein und verbindet die Kommunikationsobjekte mit einer Gruppenadresse. Dann dr\u00fcckt man am Ger\u00e4t den Programmierknopf und in der ETS startet man dann die Programmierung. Fertig.<\/p>\n\n\n\n<p>Mit KONNEKTING funktioniert das \u00e4hnlich. Die &#8220;Produktdatenbank&#8221; ist hier jedoch keine .knxprod Datei, sondern eine Datei mit der Endung &#8220;.kdevice.xml&#8221;. Man verbindet das KONNEKTING Ger\u00e4t mit der Bus-Leitung, startet die Programmiersoftware &#8220;<a href=\"https:\/\/www.konnekting.de\/software-docs\/konnekting-suite\/\">KONNEKTING Suite<\/a>&#8220;, f\u00fcgt das neue Ger\u00e4t mittels der .kdevice.xml Datei hinzu, setzt die Parameter gem\u00e4\u00df den eigenen Bed\u00fcrfnissen, verbindet die Kommunikationsobjekte mit einer Gruppenadresse. Dann dr\u00fcckt man am Ger\u00e4t den Programmierknopf und in der Suite startet man dann die Programmierung. Fertig.<\/p>\n\n\n\n<p>Ist Dir etwas aufgefallen? Das funktioniert genau so wie in der ETS. Nur hat die Produktdatenbank eine andere Endung, und die Suite bedient sich ein klein wenig anders als die ETS.<\/p>\n\n\n\n<p>Soweit so gut. Ein KONNEKTING Ger\u00e4t ben\u00f6tigt also eine Produktdatenbank. F\u00fcr den KONNEKTING <em>Benutzer<\/em> reicht das an Information. Wer aber KONNEKTING Ger\u00e4te <em>entwickeln<\/em> m\u00f6chte, der muss sich zwangsweise ein wenig mit dem Format der Produktdatenbank .kdevice.xml besch\u00e4ftigen. Doch keine Sorge, das ist keine Raketenwissenschaft.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Die Sache mit den IDs<\/h1>\n\n\n\n<p>Wie bei der ETS gibt es auch bei KONNEKTING &#8220;Hersteller von Ger\u00e4ten&#8221;. Man kann eine Produktdatenbank von Hersteller A nicht auf Ger\u00e4te von Hersteller B anwenden. Damit das sichergestellt ist, wei\u00df ein Ger\u00e4t und auch die Produktdatenbank von\/f\u00fcr welchen Hersteller es\/sie ist. Kurzum: Es muss irgendwo eine ID hinterlegt sein. So auch bei KONNEKTING.<\/p>\n\n\n\n<p>Jedes Ger\u00e4t ist einem Hersteller zugeordnet. Und jedes Ger\u00e4t hat auch noch eine &#8220;Ger\u00e4te ID&#8221;, sowie eine &#8220;Revision&#8221;. Das ist notwendig, damit man Produktdatenbank X von Hersteller A nicht auf ein Ger\u00e4t Y von Hersteller A anwenden kann. Und wenn das Ger\u00e4t X in einer neuen, verbesserten Version (die z.B. eine Hardware-\u00c4nderung notwendig gemacht hat) erscheint, dann muss auch hier sichergestellt sein, dass Ger\u00e4t X Version 1 nicht mit einer Produktdatenbank f\u00fcr Ger\u00e4t X Version 2 verwendet werden kann.<\/p>\n\n\n\n<p>Ein Ger\u00e4t wird also eindeutig beschrieben durch:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Hersteller ID<\/li><li>Ger\u00e4te ID<\/li><li>Revision<\/li><\/ul>\n\n\n\n<p>Und dieses <a href=\"https:\/\/de.wikipedia.org\/wiki\/Tupel\">3-Tupel<\/a>&nbsp;muss im Ger\u00e4t und in der Produktdatenbank bekannt sein.<\/p>\n\n\n\n<p>Prinzipiell kann sich jeder Entwickler eigene IDs \u00fcberlegen. Doch wenn Ger\u00e4te dann in <em>Open Source\/Open Hardware<\/em>&nbsp;-Manier im Netz &#8220;geteilt&#8221; werden, kann es schnell zu ID-Konflikten kommen. Das passiert dann, wenn Entwickler A die gleiche Hersteller ID wie Entwickler B verwendet, und beide Ger\u00e4te am selben Bus h\u00e4ngen. Es gilt also ID-Konflikte zu vermeiden. Aus diesem Grund kann man sich bei uns eine kostenlose ID registrieren, die wir dann in einer offiziellen Liste pflegen und die jeder einsehen kann.<\/p>\n\n\n\n<p><strong>Die Registrierung ist selbstverst\u00e4ndlich optional und keine Pflicht. Aber sie ist kostenlos und hilft Konflikte zu vermeiden, weswegen wir sie nachdr\u00fccklich empfehlen.<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Wenn du selbst Ger\u00e4te entwickeln willst, registrierst du Dir am besten JETZT GLEICH eine Hersteller-ID.&nbsp;Wie das geht und welche IDs es schon gibt, steht <a href=\"https:\/\/github.com\/KONNEKTING\/KonnektingDocumentation\/blob\/master\/konnekting_manufacturers.md\" target=\"_blank\" rel=\"noopener noreferrer\">hier<\/a>.<\/p><\/blockquote>\n\n\n\n<h1 class=\"wp-block-heading\">Das .kdevice.xml Format<\/h1>\n\n\n\n<p>Bisher hierhin wissen wir also, dass sich KONNEKTING \u00e4hnlich wie KNX\/ETS verh\u00e4lt, und \u00e4hnliche Informationen zur korrekten Identifikation ben\u00f6tigt.<\/p>\n\n\n\n<p>Das ETS Produktdatenbankformat .knxprod ist mehr oder weniger eine getarnte ZIP-Datei, welche eine Vielzahl an recht aufwendigen <a href=\"https:\/\/de.wikipedia.org\/wiki\/Extensible_Markup_Language\">XML<\/a>-Dateien enth\u00e4lt, die das Ger\u00e4t beschreiben.<\/p>\n\n\n\n<p>Bei KONNEKTING ist das ein wenig einfacher. Die Produktdatenbank .kdevice.xml ist direkt eine &#8220;lesbare&#8221; XML-Datei. Lesbar im Sinne von &#8220;nicht als ZIP getarnt&#8221;, und auch m\u00f6glichst einfach gehalten. Der Benutzer verwendet sie einfach, der Entwickler muss sie f\u00fcr sein Ger\u00e4t aber erst einmal erstellen (und dann den Benutzern seines Ger\u00e4ts zur Verf\u00fcgung stellen). Idealerweise tut er das bevor er die Firmware bzw. den Sketch f\u00fcr sein Ger\u00e4t entwickelt.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Eine ausf\u00fchrliche .kdevice.xml Dokumentation mit Beispiel-Elementen findet man <a href=\"https:\/\/wiki.konnekting.de\/index.php\/KONNEKTING_XML_Device_Description\">hier<\/a>.<\/p><\/blockquote>\n\n\n\n<p>Aber nehmen wir uns f\u00fcr den Anfang mal ein einfaches Beispiel her. Wir wollen ein Ger\u00e4t entwickeln, das eine Temperatur misst, und diese in regelm\u00e4\u00dfigen Abst\u00e4nden auf den Bus sendet. Was ben\u00f6tigen wir hierzu?<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Ein Parameter der den Sende-Intervall angibt. Der sp\u00e4tere Benutzer soll einstellen k\u00f6nnen wie oft er den Temperaturwert auf dem Bus sehen will.<\/li><li>Ein Kommunikationsobjekt, welches der Benutzer mit einer Gruppenadresse versehen kann, und das zum Senden des Temperaturwertes genutzt wird.<\/li><\/ol>\n\n\n\n<p>Punkt 1 ist recht einfach. Man muss sich \u00fcberlegen welchen Datentyp man daf\u00fcr&nbsp;ben\u00f6tigt. Wir nehmen als Beispiel hier mal den Datentyp &#8220;uint32&#8221;. Also &#8220;unsigned integer 32bit&#8221;. Oder vereinfacht gesagt: Ein ganzzahliger, positiver Zahlenwert mit 32bit L\u00e4nge. Das hei\u00dft, ein Zahlentyp der die Werte 0 bis&nbsp;4294967295 erm\u00f6glicht. Das sollte ausreichend sein um die Anzahl Sekunden Wartezeit zwischen zwei Temperaturwerten zu speichern. Wem das zu viel ist, der nimmt eben uint16 oder uint8.<\/p>\n\n\n\n<p><em>Hinweis:<\/em> Der Datentyp ist dann auch der, den man sp\u00e4ter im Arduino-Code verwendet.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Wer mit uint32, uint16, &#8230; nichts anfangen kann, der liest sich am besten hier ein: <a href=\"https:\/\/www.arduino.cc\/en\/Reference\/UnsignedInt\" target=\"_blank\" rel=\"noopener noreferrer\">Arduino &#8211; UnsignedInt<\/a><\/p><\/blockquote>\n\n\n\n<p>Punkt 2 ist ein wenig komplizierter. Schlie\u00dflich geht es hier um ein Kommunikationsobjekt (kurz KO). Vielleicht kennt man es schon aus der ETS dass man einem KO &#8220;Flags&#8221; setzen kann. So etwas wie<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>K-Flag (Kommunikation)<\/li><li>L-Flag (Lesen)<\/li><li>S-Flag (Schreiben)<\/li><li>\u00dc-Flag (\u00dcbertragen)<\/li><li>A-Flag (Aktualisieren)<\/li><\/ul>\n\n\n\n<p>Je nachdem wie diese Flags gesetzt sind, verh\u00e4lt sich das KO anders. Im gro\u00dfen und ganzen gibt es f\u00fcr den Einstieg nur zwei wichtige Konstellationen:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Sensor Profil -&gt; K+L+\u00dc<\/li><li>Aktor&nbsp;Profil -&gt; K+S+A<\/li><\/ul>\n\n\n\n<p>Also entweder das KO sendet bei einer Wert-\u00c4nderung Daten auf den Bus (Sensorprofil), oder das KO wartet auf ein Telegramm vom Bus, damit das Ger\u00e4t irgend etwas damit macht, z.B. einen Ausgang schaltet (Aktor-Profil). F\u00fcr unser Beispiel hier ist das Sensor-Profil relevant.<\/p>\n\n\n\n<p>Und zuguter letzt muss man sich noch \u00fcberlegen, welchen Datentyp bzw. DPT das KO hat. KNX Telegramme k\u00f6nnen ja die unterschiedlichsten Informationen transportieren. DPT1 z.B. f\u00fcr Schaltvorg\u00e4nge, DPT9 f\u00fcr soetwas wie eine Temperatur, &#8230;<br>Hier kann man sich am besten am den orientieren was \u00e4hnliche\/vergleichbare Ger\u00e4te in der KNX Welt f\u00fcr DPTs nutzen. Die Infos hierzu finden sich in den jeweiligen Handb\u00fcchern der Ger\u00e4te, sowie in der Produktdatenbank.<\/p>\n\n\n\n<p>So, aber nun zur XML. Die folgende XML deckt unser exemplarisches Beispiel ab:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; auto-links: false; title: ; quick-code: false; notranslate\" title=\"\">\n&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt;\n&lt;KonnektingDevice xmlns=&quot;http:\/\/konnekting.de\/xml\/KonnektingDevice\/v0&quot;&gt;\n    &lt;Device ManufacturerId=&quot;57005&quot; DeviceId=&quot;3&quot; Revision=&quot;0&quot; SystemType=&quot;1&quot;&gt;\n        &lt;ManufacturerName&gt;KONNEKTING&lt;\/ManufacturerName&gt;\n        &lt;DeviceName&gt;SimpleSensor&lt;\/DeviceName&gt;\n\n        &lt;Parameters&gt;\n            &lt;ParameterGroup Name=&quot;Temperatur&quot; Id=&quot;0&quot;&gt;\n                &lt;Parameter Id=&quot;0&quot; IdName=&quot;tempPollingTime&quot;&gt;\n                    &lt;Description&gt;Cycle &#x5B;s]&lt;\/Description&gt;\n                    &lt;Value Type=&quot;uint32&quot; Default=&quot;0000001E&quot; Options=&quot;&quot; Min=&quot;00000000&quot; Max=&quot;000FFFFF&quot;\/&gt;\n                &lt;\/Parameter&gt;\n            &lt;\/ParameterGroup&gt;\n        &lt;\/Parameters&gt;\n\n        &lt;CommObjects&gt;\n            &lt;CommObject Id=&quot;0&quot; IdName=&quot;tempValue&quot;&gt;\n                &lt;Name&gt;Temperature&lt;\/Name&gt;\n                &lt;Function&gt;Value&lt;\/Function&gt;\n                &lt;DataPointType&gt;9.001&lt;\/DataPointType&gt;\n                &lt;Flags&gt;52&lt;\/Flags&gt;\n            &lt;\/CommObject&gt;\n        &lt;\/CommObjects&gt;\n    &lt;\/Device&gt;\n&lt;\/KonnektingDevice&gt;\n\n<\/pre><\/div>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Tipp: Unter Windows ist das kostenlose Programm <a href=\"https:\/\/notepad-plus-plus.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Notepad++<\/a>&nbsp;ganz hilfreich zum erstellen oder bearbeiten von XML Dateien.<\/p><\/blockquote>\n\n\n\n<p>Die ersten beiden Zeilen sind quasi Standard. Daran \u00e4ndert sich eigentlich nichts, die kann man einfach so in jede .kdevice.xml \u00fcbernehmen.<\/p>\n\n\n\n<p>Die Zeile mit dem Element &#8220;Device&#8221; (Element nennt man die Teile in der XML die mit einem &lt;&gt; eingefasst sind) enth\u00e4lt Attribute f\u00fcr die Hersteller-ID, Ger\u00e4te-ID und Revision des Ger\u00e4ts. Attribute werden mit <em>AttributName=&#8221;AttributWert&#8221;<\/em> innerhalb des Elements definiert.<\/p>\n\n\n\n<p>Optional kann man noch einen Hersteller- und Ger\u00e4tenamen mittels weiteren Elementen wie gezeigt setzen. Muss man nicht, geh\u00f6rt aber zum guten Ton.<\/p>\n\n\n\n<p>Parameter sind immer einer Gruppe zugeordnet. Das hilft bei vielen Parametern. Wir haben hier nur einen Parameter. Die zugeh\u00f6rige Gruppe nennen wir mal &#8220;Temperature&#8221;. F\u00fcr &#8220;interne&#8221; Zwecke gibt es an vielen Elementen auch ein &#8220;Id&#8221; Attribut. Genaueres dazu entnimmst Du bitte der <a href=\"https:\/\/github.com\/KONNEKTING\/KonnektingDocumentation\/blob\/master\/konnekting_xml_device_description.md\" target=\"_blank\" rel=\"noopener noreferrer\">detailierten Doku<\/a>.<\/p>\n\n\n\n<p>Innerhalb der Parametergruppe folgt dann der Parameter. &#8220;Description&#8221; ist die Beschreibung des Parameters wie er sp\u00e4ter in der <a href=\"https:\/\/www.konnekting.de\/software-docs\/konnekting-suite\/\">KONNEKTING Suite<\/a> aufgef\u00fchrt wird.<\/p>\n\n\n\n<p>Etwas kniffliger ist das Element &#8220;Value&#8221;. Hier muss man den Parametertypen (in unserem Fall &#8220;uint32&#8221; angeben. Damit die Suite einen vern\u00fcnftigen Default-Wert f\u00fcr den Benutzer anbietet, sollte man mit &#8220;Default=&#8221; angeben, was der Standard sein soll. Die Angabe erfolgt in Hexadezimaler Schreibweise!<\/p>\n\n\n\n<p>\u00c4hnlich dazu der Minimal-Wert (&#8220;Min=&#8221;) und Maximalwert (&#8220;Max=&#8221;) den man in der Suite eintragen kann. Das ist ganz hilfreich wenn man z.B. den uint32 Datentyp von seiner L\u00e4nge bis&nbsp;4294967295 nicht voll ausreizen will. Die Suite erlaubt dann keine Werte die sich au\u00dferhalb von Min\/Max bewegen. Das Attribut &#8220;Options=&#8221; ist hier in diesem Beispiel nicht n\u00f6tig und bleibt leer (mehr Details dazu findest du nat\u00fcrlich in der <a href=\"https:\/\/github.com\/KONNEKTING\/KonnektingDocumentation\/blob\/master\/konnekting_xml_device_description.md\" target=\"_blank\" rel=\"noopener noreferrer\">Doku<\/a>&#8230;).<\/p>\n\n\n\n<p>KOs werden im Element &#8220;CommObjects&#8221; gelistet. Jedes KO sitzt dabei in einem eigenen Element &#8220;CommObject&#8221;. Die Kind-Elemente &#8220;Name&#8221; und &#8220;Function&#8221; sind quasi Freitext-Elemente. Hier kann man textuell angeben wie das KO hei\u00dft und welche Funktion es hat. &#8220;DataPointType&#8221; gibt den DPT des KOs an. Hier im Beispiel &#8220;9.001&#8221; f\u00fcr unseren Temperaturwert. Und zuguter letzt noch das Element &#8220;Flags&#8221;. Das ist im Detail ein bisschen knifflig. Aber da wir hier prim\u00e4r nur zwei &#8220;Profile&#8221; haben, tr\u00e4gt man hier entweder 52 f\u00fcr ein Sensor-KO oder 42 f\u00fcr ein Aktor-KO ein. Details wie man zu diesen Zahlen kommt findet man, du err\u00e4tst es sicherlich schon, in der <a href=\"https:\/\/github.com\/KONNEKTING\/KonnektingDocumentation\/blob\/master\/konnekting_xml_device_description.md\" target=\"_blank\" rel=\"noopener noreferrer\">Doku<\/a>.<\/p>\n\n\n\n<p>Und das war es dann auch schon mit der XML. Es gibt zwar noch einige weitere Elemente mit denen man die Sichtbarkeit von KOs und Parametern in Abh\u00e4ngigkeit von anderen Parametern einschr\u00e4nken kann. Aber das ist f\u00fcr ein solch kleines Anf\u00e4nger-Beispiel erst einmal nicht relevant und kann weggelassen werden.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Und was gibt es noch?<\/h1>\n\n\n\n<p>Aus der .kdevice.xml kann man \u00fcber ein in der Suite enthaltenes Tool eine Header-Datei generieren lassen, die einem den notwendigen Code-Abschnitt im Arduino-Sketch f\u00fcr die Parameter und KOs abnimmt. Aber das kommt dann in der n\u00e4chsten Lektion, wo es dann darum geht, den Arduino-Sketch f\u00fcr das Ger\u00e4t zu schreiben.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Ausblick<\/h1>\n\n\n\n<p>Das Erstellen der .kdevice.xml ist nicht unbedingt trivial. Speziell wenn man mitten in der Entwicklung ist und hier und da ein KO noch hinzuf\u00fcgt oder eins entfernen\/streichen m\u00f6chte, ist das von Hand zwar m\u00f6glich, aber zeitraubend, und vor allem fehleranf\u00e4llig.<\/p>\n\n\n\n<p>Sobald die Definition des XML-Formats einen stabilen Zustand erreicht hat (KONNEKTING ist ja noch in der Beta-Phase), werden wir uns dran setzen ein Programm zu entwickeln, mit dessen Hilfe man die XML Datei &#8220;zusammenklicken&#8221; kann, gef\u00fchrt von Men\u00fcs\/Wizards. Damit wird das Erstellen der XML deutlich&nbsp;einfacher und fehlerfreier. Bis dahin f\u00fchrt aber kein Weg an der h\u00e4ndischen Erstellung der XML vorbei.<\/p>\n\n\n<p><a href=\"https:\/\/www.konnekting.de\/konnekting-lernen\/lektion-2-was-steckt-in-der-siemens-bcu\/\">&lt;&#8211; Lektion 2: Was steckt in der Siemens BCU?<\/a><a href=\"https:\/\/www.konnekting.de\/konnekting-lernen\/lektion-4-es-geht-in-die-praxis\/\" class=\"alignright\">Lektion 4: Es geht in die Praxis &#8211;&gt;<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Gegen\u00fcberstellung KONNEKTING KNX Nachdem wir uns in Lektion 1 mit dem prinzipiellen Hardwareaufbau und und Lektion 2 mit dem KNX Transceiver-Chip befasst haben, geht es in Lektion 3 nun darum, wie ein KONNEKTING Ger\u00e4teprojekt aufgebaut ist. Zu allererst sei gesagt, dass KONNEKTING darauf ausgerichtet ist, ein KNX &#8220;Ger\u00e4t&#8221; zu entwerfen, das sich &#8211; wie andere &hellip; <a href=\"https:\/\/www.konnekting.de\/en\/konnekting-lernen\/lektion-3-aufbau-von-konnekting\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Lektion 3: Aufbau von KONNEKTING&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":163,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-310","page","type-page","status-publish","hentry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"en","enabled_languages":["de","en"],"languages":{"de":{"title":true,"content":true,"excerpt":false},"en":{"title":false,"content":false,"excerpt":false}}},"_links":{"self":[{"href":"https:\/\/www.konnekting.de\/en\/wp-json\/wp\/v2\/pages\/310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.konnekting.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.konnekting.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.konnekting.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.konnekting.de\/en\/wp-json\/wp\/v2\/comments?post=310"}],"version-history":[{"count":26,"href":"https:\/\/www.konnekting.de\/en\/wp-json\/wp\/v2\/pages\/310\/revisions"}],"predecessor-version":[{"id":716,"href":"https:\/\/www.konnekting.de\/en\/wp-json\/wp\/v2\/pages\/310\/revisions\/716"}],"up":[{"embeddable":true,"href":"https:\/\/www.konnekting.de\/en\/wp-json\/wp\/v2\/pages\/163"}],"wp:attachment":[{"href":"https:\/\/www.konnekting.de\/en\/wp-json\/wp\/v2\/media?parent=310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}