{"id":1557,"date":"2016-04-17T00:00:38","date_gmt":"2016-04-16T22:00:38","guid":{"rendered":"https:\/\/makerspace-rheinfelden.ch\/blog\/?p=1557"},"modified":"2016-04-16T23:54:43","modified_gmt":"2016-04-16T21:54:43","slug":"wort-uhr-teil-3-software-und-sommerzeit","status":"publish","type":"post","link":"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/","title":{"rendered":"Wort-Uhr (Teil 3, Software und Sommerzeit)"},"content":{"rendered":"<p>Es folgt der letzte Teil dieser <a href=\"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-1-rahmen-und-leds\/\">Artikelserie<\/a>. Hier geht es um die Software, die auf dem Particle.io Photon l\u00e4uft und speziell um die Probleme mit der Sommerzeit und Zeitzonen. Zuletzt gehe ich noch auf ein paar Ideen ein, die man in die Software integrieren k\u00f6nnten.<\/p>\n<p><!--more--><\/p>\n<p>Hier in der Schweiz gilt die Zeitzone UTC+1. Wie ihr wisst kommt zus\u00e4tzlich zu dieser Stunde w\u00e4hrend dem Sommerhalbjahr nochmals eine Stunde dazu. Wir haben also zwei verschiedene Zeitzonen.<\/p>\n<p>Vom letzten Sonntag im M\u00e4rz 02:00 bis zum letzten Sonntag im Oktober 03:00 leben wir in UTC+2 und die restliche Zeit in UTC+1. Selbstverst\u00e4ndlich baue ich keine Uhr, die manuell gestellt werden muss. Ausserdem hat die Firwmare des Photon bereits eine eingebaute Zeitsynchronisation. Wie fast alle Uhrzeiten in der IT synchronisiert der aber auf UTC.\u00a0Ausserdem kennt die Firmware vom Photon keine Sommer- bzw Winterzeit.<\/p>\n<p>Wie findet man nun auf einem kleinen Mikrocontroller heraus, ob wir zur UTC-Zeit eine oder zwei Stunden hinzuf\u00fcgen m\u00fcssen (Winter-\/Sommerzeit)? Ganz einfach, man bescheisst&#8230; :). Es ist alles andere als trivial\u00a0den letzten Sonntag im M\u00e4rz\/Oktober zu identifizieren also habe ich mal kurz die entsprechenden Tage f\u00fcr die n\u00e4chsten 24 Jahre rausgesucht und eingebaut:<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nstatic const uint16_t _baseYear = 2016;\r\nstatic const uint16_t _maxYear  = 2040;\r\n\/\/                                  2016 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40\r\nstatic const uint8_t _EuDSTStart[] = {27,26,25,31,29,28,27,26,31,30,29,28,26,25,31,30,28,27,26,25,30,29,28,27,25};\r\nstatic const uint8_t _EuDSTEnd[]   = {30,29,28,27,25,31,30,29,27,26,25,31,29,28,27,26,31,30,29,28,26,25,31,30,25};\r\n<\/pre>\n<p>Jetzt fehlt nur noch eine Funktion, die f\u00fcr eine bestimmte Uhrzeit erkennen kann, ob die in den Bereich f\u00e4llt, w\u00e4hrend die Sommerzeit gilt.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nbool isEuroDST(uint32_t tnow) {\r\n  \/\/ 1am last Sunday in March to 1am on last Sunday October (UTC!)\r\n  uint32_t day = Time.day(tnow);\r\n  uint32_t year = Time.year(tnow);\r\n  uint8_t  month = Time.month(tnow);\r\n\r\n  \/\/ Always return false if no data is available for this year\r\n  if (year &gt; _maxYear || year &lt; _baseYear) {\r\n    return false;\r\n  }\r\n  if (month&gt;3 &amp;&amp; month&lt;10) {\r\n    return true;\r\n  } else if (month == 3) {\r\n    if ((day == _EuDSTStart[year-_baseYear] &amp;&amp; Time.hour(tnow) &gt;= 1) ||\r\n\t      (day &gt;  _EuDSTStart[year-_baseYear])) {\r\n      return true;\r\n    }\r\n  } else if (month == 10) {\r\n    if (!((day == _EuDSTEnd[year-_baseYear] &amp;&amp; Time.hour(tnow) &gt;= 1) ||\r\n\t        (day &gt;  _EuDSTEnd[year-_baseYear]))) {\r\n      return true;\r\n    }\r\n  }\r\n  return false;\r\n}\r\n<\/pre>\n<p>Im oberen Bereich werden die Funktionen der Firmware genutzt um den \u00fcbergebenen Zeitstempel in Tag, Monat und Jahr aufzubrechen. Danach wird, gepr\u00fcft ob das Datum im Bereich der Sommerzeit liegt oder nicht und dazu die oben erw\u00e4hnte Tabelle genutzt. Die Monate April bis September sind immer Sommerzeit und werden im ersten Teil abgehandelt. F\u00fcr die Monate M\u00e4rz (3) und Oktober (10) wird die Tabelle und Uhrzeit genutzt um es exakt festzustellen. November bis Februar sind immer Winterzeit und werden mit dem &#8222;return false&#8220; auf der letzten Zeile abgehandelt.<\/p>\n<p>Wir wissen nun also die aktuelle Uhrzeit. Aber sehen tut man noch nichts auf dem Display. Dazu ist es n\u00f6tig, abh\u00e4ngig von der Uhrzeit, gewisse LEDs ein- bzw. auszuschalten. Das wird komplizierter wegen dieser zick-zack Verdrahtung der LEDs. Schlussendlich habe ich mir im Programm ein Array von Listen angelegt, die f\u00fcr jede Zeit angeben, welche LEDs jeweils eingeschaltet werden m\u00fcssen. Als letzter Eintrag in diesen Listen habe ich immer -1 erfasst, da ich ja irgendwie erkennen muss, wenn die Liste fertig ist. In der Programmiersprache C gibt es keinen Befehl um die L\u00e4nge der Liste abzufragen.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nint8_t mins5[][13] = {\r\n  {-1}, \/\/ 0min\r\n  {74, 93, 94, 113 \/*F\u00dcNF*\/, 77, 90, 97, 110 \/*NACH*\/, -1}, \/\/  5min\r\n  {12, 15, 32, 35 \/*ZEHN*\/, 77, 90, 97, 110 \/*NACH*\/, -1}, \/\/ 10min\r\n  {51, 56, 71, 76, 91, 96, 111 \/*VIERTEL*\/, 77, 90, 97, 110 \/*NACH*\/, -1}, \/\/ 15min\r\n  {52, 55, 72, 75, 92, 95, 112 \/*ZWANZIG*\/, 77, 90, 97, 110 \/*NACH*\/, -1}, \/\/ 20min\r\n  {74, 93, 94, 113 \/*F\u00dcNF*\/, 10, 17, 30 \/*VOR*\/, 9, 18, 29, 38 \/*HALB*\/, -1}, \/\/ 25min\r\n  {9, 18, 29, 38 \/*HALB*\/, -1}, \/\/ 30min\r\n  {74, 93, 94, 113 \/*F\u00dcNF*\/, 77, 90, 97, 110 \/*NACH*\/, 9, 18, 29, 38 \/*HALB*\/, -1}, \/\/ 35min\r\n  {52, 55, 72, 75, 92, 95, 112 \/*ZWANZIG*\/, 10, 17, 30 \/*VOR*\/, -1}, \/\/ 40min\r\n  {51, 56, 71, 76, 91, 96, 111 \/* VIERTEL *\/, 10, 17, 30 \/*VOR*\/, -1}, \/\/ 45min\r\n  {12, 15, 32, 35 \/*ZEHN*\/, 10, 17, 30 \/*VOR*\/, -1}, \/\/ 50min\r\n  {74, 93, 94, 113 \/*F\u00dcNF*\/, 10, 17, 30 \/*VOR*\/, -1}, \/\/ 55min\r\n};\r\n<\/pre>\n<p>Also nehme ich die aktuelle &#8222;Minute&#8220;, teile die durch 5 und weiss schon, welche der obigen Listen ich einschalten muss. Das funktioniert aber nur, weil in C eine Division von Ganzzahlen (Integer) immer abrundet. Die Darstellung der Stunden ist sogar noch einfacher, da ich die Stunden direkt in der Liste nachschlagen kann ohne erst noch etwas berechnen zu m\u00fcssen.<\/p>\n<h2>Wie weiter?<\/h2>\n<p>Was soll ich sagen&#8230; die Uhr funktioniert super! Inzwischen ist das bei mir Zuhause die am h\u00e4ufigsten genutzte Uhr, wenn ich die Zeit wissen will. Die Helligkeit der LEDs muss ich noch optimieren und vermutlich werde ich die gefr\u00e4ste Maske noch weiss anmalen um das Licht besser zu reflektieren. Ich hoffe damit die Lesbarkeit von der Seite zu verbessern.<\/p>\n<p>F\u00fcr die Software habe ich noch viele Ideen. Die ganze Uhr kann als 11&#215;10 RGB LED-Matrix genutzt werden. Man k\u00f6nnte also grosse Buchstaben dar\u00fcberscrollen lassen. Oder Animationen einbauen. Die Uhr k\u00f6nnte als Kommunikationsplattform f\u00fcr alles m\u00f6gliche genutzt werden. Zum Beispiel als Erinnerung, dass die Pflanzen gerne mal wieder Wasser h\u00e4tten oder, dass die Waschmaschine mit dem Programm durch ist. Durch den eingesetzen Photon Mikrocontroller ist die Uhr bereits &#8222;Cloud-Ready&#8220; und kann problemlos Events empfangen, die von einem PC oder einem anderen Mikrocontroller geschickt werden.<\/p>\n<h2>Ich will auch eine!<\/h2>\n<p>Das L\u00f6ten der LEDs und auch das Aufkleben der Folie sind eine unglaubliche Fummelarbeit und brauchen viel Zeit. Auch sind diese Art von Uhren vermutlich urheberrechtlich gesch\u00fctzt und daher wird es keinen Workshop zum Erstellen dieser Uhren geben und ich werde vermutlich auch keine weiteren Exemplare mehr herstellen.<\/p>\n<p>Die Grafiken (Affinity Designer f\u00fcr 2D, Google SketchUp f\u00fcr 3D) gebe ich gerne weiter. Die komplette Software ist <a href=\"https:\/\/git.makerspace-rheinfelden.ch\/tht\/pt_qlocktwo\/tree\/master\" target=\"_blank\">auf unserem GitLab<\/a> verf\u00fcgbar und darf selbstverst\u00e4ndlich auch benutzt werden. Einfach bei mir melden, falls jemand so ein Projekt starten m\u00f6chte.<\/p>\n<p>Was k\u00f6nnte man mit der Uhr noch machen? Was habt ihr bereits f\u00fcr Uhren gebaut? Schickt Fotos!!!<\/p>\n","protected":false},"excerpt":{"rendered":"Es folgt der letzte Teil dieser Artikelserie. Hier geht es um die Software, die auf dem Particle.io Photon l\u00e4uft und speziell um die Probleme mit der Sommerzeit und Zeitzonen. Zuletzt gehe ich noch auf ein paar Ideen ein, die man in die Software integrieren k\u00f6nnten.","protected":false},"author":2,"featured_media":1559,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[3],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wort-Uhr (Teil 3, Software und Sommerzeit) - Makerspace FabLab Rheinfelden\" \/>\n<meta property=\"og:description\" content=\"Es folgt der letzte Teil dieser Artikelserie. Hier geht es um die Software, die auf dem Particle.io Photon l\u00e4uft und speziell um die Probleme mit der Sommerzeit und Zeitzonen. Zuletzt gehe ich noch auf ein paar Ideen ein, die man in die Software integrieren k\u00f6nnten.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/\" \/>\n<meta property=\"og:site_name\" content=\"Makerspace FabLab Rheinfelden\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-16T22:00:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-04-16T21:54:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-content\/uploads\/2016\/04\/IMG_3243.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3024\" \/>\n\t<meta property=\"og:image:height\" content=\"4032\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thomas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/#website\",\"url\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/\",\"name\":\"Makerspace FabLab Rheinfelden\",\"description\":\"Webseite des Vereins Makerspace Fablab Rheinfelden\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/#primaryimage\",\"inLanguage\":\"de\",\"url\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-content\/uploads\/2016\/04\/IMG_3243.jpg\",\"contentUrl\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-content\/uploads\/2016\/04\/IMG_3243.jpg\",\"width\":3024,\"height\":4032,\"caption\":\"Fertige Wort-Uhr\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/#webpage\",\"url\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/\",\"name\":\"Wort-Uhr (Teil 3, Software und Sommerzeit) - Makerspace FabLab Rheinfelden\",\"isPartOf\":{\"@id\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/#primaryimage\"},\"datePublished\":\"2016-04-16T22:00:38+00:00\",\"dateModified\":\"2016-04-16T21:54:43+00:00\",\"author\":{\"@id\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/#\/schema\/person\/188b0e4e97fe9b53bb9144561896e487\"},\"breadcrumb\":{\"@id\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wort-Uhr (Teil 3, Software und Sommerzeit)\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/#\/schema\/person\/188b0e4e97fe9b53bb9144561896e487\",\"name\":\"Thomas\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-content\/uploads\/2016\/01\/DSC_2415_A-small-120x120.jpg\",\"contentUrl\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-content\/uploads\/2016\/01\/DSC_2415_A-small-120x120.jpg\",\"caption\":\"Thomas\"},\"url\":\"https:\/\/makerspace-rheinfelden.ch\/blog\/author\/tht\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"de_DE","og_type":"article","og_title":"Wort-Uhr (Teil 3, Software und Sommerzeit) - Makerspace FabLab Rheinfelden","og_description":"Es folgt der letzte Teil dieser Artikelserie. Hier geht es um die Software, die auf dem Particle.io Photon l\u00e4uft und speziell um die Probleme mit der Sommerzeit und Zeitzonen. Zuletzt gehe ich noch auf ein paar Ideen ein, die man in die Software integrieren k\u00f6nnten.","og_url":"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/","og_site_name":"Makerspace FabLab Rheinfelden","article_published_time":"2016-04-16T22:00:38+00:00","article_modified_time":"2016-04-16T21:54:43+00:00","og_image":[{"width":3024,"height":4032,"url":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-content\/uploads\/2016\/04\/IMG_3243.jpg","path":"\/home\/httpd\/vhosts\/makerspace-rheinfelden.ch\/httpdocs\/blog\/wp-content\/uploads\/2016\/04\/IMG_3243.jpg","size":"full","id":1559,"alt":"","pixels":12192768,"type":"image\/jpeg"}],"twitter_card":"summary","twitter_misc":{"Verfasst von":"Thomas","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/makerspace-rheinfelden.ch\/blog\/#website","url":"https:\/\/makerspace-rheinfelden.ch\/blog\/","name":"Makerspace FabLab Rheinfelden","description":"Webseite des Vereins Makerspace Fablab Rheinfelden","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/makerspace-rheinfelden.ch\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"ImageObject","@id":"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/#primaryimage","inLanguage":"de","url":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-content\/uploads\/2016\/04\/IMG_3243.jpg","contentUrl":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-content\/uploads\/2016\/04\/IMG_3243.jpg","width":3024,"height":4032,"caption":"Fertige Wort-Uhr"},{"@type":"WebPage","@id":"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/#webpage","url":"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/","name":"Wort-Uhr (Teil 3, Software und Sommerzeit) - Makerspace FabLab Rheinfelden","isPartOf":{"@id":"https:\/\/makerspace-rheinfelden.ch\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/#primaryimage"},"datePublished":"2016-04-16T22:00:38+00:00","dateModified":"2016-04-16T21:54:43+00:00","author":{"@id":"https:\/\/makerspace-rheinfelden.ch\/blog\/#\/schema\/person\/188b0e4e97fe9b53bb9144561896e487"},"breadcrumb":{"@id":"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/makerspace-rheinfelden.ch\/blog\/2016\/04\/wort-uhr-teil-3-software-und-sommerzeit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/makerspace-rheinfelden.ch\/blog\/"},{"@type":"ListItem","position":2,"name":"Wort-Uhr (Teil 3, Software und Sommerzeit)"}]},{"@type":"Person","@id":"https:\/\/makerspace-rheinfelden.ch\/blog\/#\/schema\/person\/188b0e4e97fe9b53bb9144561896e487","name":"Thomas","image":{"@type":"ImageObject","@id":"https:\/\/makerspace-rheinfelden.ch\/blog\/#personlogo","inLanguage":"de","url":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-content\/uploads\/2016\/01\/DSC_2415_A-small-120x120.jpg","contentUrl":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-content\/uploads\/2016\/01\/DSC_2415_A-small-120x120.jpg","caption":"Thomas"},"url":"https:\/\/makerspace-rheinfelden.ch\/blog\/author\/tht\/"}]}},"_links":{"self":[{"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/posts\/1557"}],"collection":[{"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/comments?post=1557"}],"version-history":[{"count":11,"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/posts\/1557\/revisions"}],"predecessor-version":[{"id":1599,"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/posts\/1557\/revisions\/1599"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/media\/1559"}],"wp:attachment":[{"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/media?parent=1557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/categories?post=1557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/makerspace-rheinfelden.ch\/blog\/wp-json\/wp\/v2\/tags?post=1557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}