{"id":1038,"date":"2018-11-11T17:25:21","date_gmt":"2018-11-11T16:25:21","guid":{"rendered":"http:\/\/eiseler.de\/wordpress\/?p=1038"},"modified":"2020-10-03T12:04:55","modified_gmt":"2020-10-03T10:04:55","slug":"raspberry-pi-waveshare-2-7-e-ink-display-python","status":"publish","type":"post","link":"https:\/\/eiseler.de\/wordpress\/?p=1038","title":{"rendered":"Raspberry pi &#038; waveshare 2.7 e-ink Display &#038; python"},"content":{"rendered":"<p>Start with a headless raspberry, no need to connect monitor, keyboard:\u00a0<a href=\"https:\/\/raspberrypi.stackexchange.com\/questions\/10251\/prepare-sd-card-for-wifi-on-headless-pi\">https:\/\/raspberrypi.stackexchange.com\/questions\/10251\/prepare-sd-card-for-wifi-on-headless-pi<\/a><\/p>\n<p>Find the raspberry in your router and connect with ssh. Useullay steps are:<\/p>\n<pre>sudo raspi-config\nsudo reboot\n<\/pre>\n<p>(neu einloggen)<\/p>\n<pre class=\"highlight\"><code>sudo apt-get update -y\nsudo apt-get upgrade -y<\/code><\/pre>\n<p>Here&#8217;s some example python code for drawing text horizontal on the waveshare e-ink display. You&#8217;ll find also a example where to find the length of text where to break lines. This examples reads some small text from a web site and looks up a rss feed for the weather.<\/p>\n<p>Install the fonts <a href=\"https:\/\/www.raspberrypi.org\/forums\/viewtopic.php?t=133772\">https:\/\/www.raspberrypi.org\/forums\/viewtopic.php?t=133772<\/a><\/p>\n<pre>sudo apt-get install ttf-mscorefonts-installer<\/pre>\n<p>Install libraries <a href=\"https:\/\/www.waveshare.com\/wiki\/Pioneer600#Libraries_Installation_for_RPi\">https:\/\/www.waveshare.com\/wiki\/Pioneer600#Libraries_Installation_for_RPi<\/a><\/p>\n<pre>sudo apt-get install git-core<\/pre>\n<pre><del>git clone git:\/\/git.drogon.net\/wiringPi<\/del><\/pre>\n<pre><del>cd wiringPi\n\u00a0.\/build<\/del><\/pre>\n<pre>https:\/\/www.waveshare.com\/wiki\/3.7inch_e-Paper_HAT\n\n\nsudo apt-get install wiringpi<\/pre>\n<pre>wget https:\/\/project-downloads.drogon.net\/wiringpi-latest.deb\nsudo dpkg -i wiringpi-latest.deb\ngpio -v<\/pre>\n<pre>cd<\/pre>\n<pre>wget http:\/\/www.airspayce.com\/mikem\/bcm2835\/bcm2835-1.59.tar.gz<\/pre>\n<pre>tar zxvf bcm2835-1.59.tar.gz\ncd bcm2835-1.59\n.\/configure\nmake\nsudo make check\nsudo make install<\/pre>\n<ul>\n<li>Install Python2 libraries<\/li>\n<\/ul>\n<pre>sudo apt-get update\nsudo apt-get install python-pip\nsudo apt-get install python-pil\nsudo apt-get install python-numpy\nsudo pip install RPi.GPIO\nsudo pip install spidev\n<\/pre>\n<ul>\n<li>Install Python3 libraries<\/li>\n<\/ul>\n<pre>sudo apt-get update\nsudo apt-get install python3-pip\nsudo apt-get install python3-pil\nsudo apt-get install python3-numpy\nsudo pip3 install RPi.GPIO\nsudo pip3 install spidev\n\npip install feedparser<\/pre>\n<p>(Before running the API codes we provided, you should start up the corresponding core drivers of the interfaces. In the ready-to-use system image file, both I2C and SPI are set to Enable by default, but the serial port is still in the terminal debugging function mode.)<\/p>\n<ol>\n<li><b>Enable the I2C function<\/b>. Run the following command to configure your Raspberry Pi board:\n<pre>\u00a0sudo raspi-config<\/pre>\n<p>Select <del>Advanced<\/del> Interface Options -&gt; I2C -&gt; yes, to start up the I2C core driver. Then you also need to modify the configuration file. Run the following command to open the configuration file:<\/p>\n<pre>sudo nano \/etc\/modules<\/pre>\n<p>Add the following two lines to the configuration file<\/p>\n<dl>\n<dd>\n<dl>\n<dd>i2c-bcm2708<\/dd>\n<dd>i2c-dev<\/dd>\n<\/dl>\n<\/dd>\n<dd>Press the keys Ctrl+X to exit, and input Y to save the settings. Then, reboot the module to make the settings take effect.<\/dd>\n<\/dl>\n<\/li>\n<li><b>Enable the serial function<\/b>. The serial port of RPi is set to serial terminal debugging function mode by default. If you want the serial port services as a common IO, you should modify the settings on the RPi. When the terminal debugging function is disabled, you cannot access RPi board via the serial port any more. If you want to control the RPi, you may need to enable the debugging function of the serial port again.\n<pre>sudo raspi-config<\/pre>\n<p>Select <del>Advanced<\/del> Interface Options -&gt; Serial. Select the option no can disable the serial debugging function. And then, the serial port can be used for serial communication. And select the option yes can enable the serial debugging function. You should reboot the module to make the settings take effect.<\/li>\n<\/ol>\n<dl>\n<dd><b>Note: the serial port on Raspberry Pi 3 Model B is unusable, because Pin 14 and Pin 15 is connected to the on-board Bluetooth model.<\/b><\/dd>\n<\/dl>\n<ol>\n<li><b>Start up the spi function<\/b>, run the following command:\n<pre>sudo raspi-config<\/pre>\n<p>Select <del>Advanced<\/del> Interface Options -&gt; I2C -&gt; yes, to start up I2C core driver.<\/li>\n<\/ol>\n<pre><\/pre>\n<p><a href=\"http:\/\/eiseler.de\/wordpress\/?attachment_id=1040\" rel=\"attachment wp-att-1040\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1040\" data-permalink=\"https:\/\/eiseler.de\/wordpress\/?attachment_id=1040\" data-orig-file=\"https:\/\/eiseler.de:443\/wordpress\/wp-content\/uploads\/2018\/11\/img_8466-e1541953811554.jpg\" data-orig-size=\"4032,3024\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;1.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 8 Plus&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1541955940&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.99&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.25&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;6&quot;}\" data-image-title=\"img_8466\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/eiseler.de:443\/wordpress\/wp-content\/uploads\/2018\/11\/img_8466-e1541953811554-300x225.jpg\" data-large-file=\"https:\/\/eiseler.de:443\/wordpress\/wp-content\/uploads\/2018\/11\/img_8466-e1541953811554-1024x768.jpg\" class=\"alignleft size-large wp-image-1040\" src=\"http:\/\/eiseler.de\/wordpress\/wp-content\/uploads\/2018\/11\/img_8466-e1541953811554-1024x768.jpg\" alt=\"\" width=\"584\" height=\"438\" srcset=\"https:\/\/eiseler.de:443\/wordpress\/wp-content\/uploads\/2018\/11\/img_8466-e1541953811554-1024x768.jpg 1024w, https:\/\/eiseler.de:443\/wordpress\/wp-content\/uploads\/2018\/11\/img_8466-e1541953811554-300x225.jpg 300w, https:\/\/eiseler.de:443\/wordpress\/wp-content\/uploads\/2018\/11\/img_8466-e1541953811554-768x576.jpg 768w, https:\/\/eiseler.de:443\/wordpress\/wp-content\/uploads\/2018\/11\/img_8466-e1541953811554-400x300.jpg 400w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><\/p>\n<p>Code<\/p>\n<pre>\u2029# coding: utf8\n##\n #  width 176\n #  height 264\n ##\n\n\n\nimport epd2in7\nfrom PIL import Image\nfrom PIL import ImageFont\nfrom PIL import ImageDraw\nimport time\nimport urllib2\nimport feedparser\nimport datetime\n\ndef getLengthText(myTextInput, myFont, pixels):\n    #font = ImageFont.truetype('\/usr\/share\/fonts\/truetype\/freefont\/msttcorefonts\/comic.ttf', 28)\n    #font = ImageFont.truetype(\"arial\", 20)\n    myText = myTextInput\n    mlen = 0\n    mlen = len(myText)\n    w, h = myFont.getsize(myText)\n    while pixels &lt; w:\n        myText = myText[0:mlen-2]\n        mlen = len(myText)\n        w, h = myFont.getsize(myText)\n    return mlen\n\ndef addText(myImage,myText, myFont, xx,yy):\n    #font = ImageFont.truetype('\/usr\/share\/fonts\/truetype\/freefont\/msttcorefonts\/comic.ttf', 28)\n    #font = ImageFont.truetype(\"arial\", 20)\n    w, h = myFont.getsize(myText)\n    mask = Image.new('1', (w, h), 255)\n    draw2 = ImageDraw.Draw(mask)\n    draw2.text((0, 0), myText, font = myFont, fill = 0)\n    mask = mask.rotate(90, expand=True)\n    myImage.paste(mask, (xx,epd2in7.EPD_HEIGHT - w - yy ))\n\ndef main():\n    epd = epd2in7.EPD()\n    epd.init()\n\n    image = Image.new('1', (epd2in7.EPD_WIDTH, epd2in7.EPD_HEIGHT), 255)    # 255: clear the image with white\n    draw = ImageDraw.Draw(image)\n    \n    font = ImageFont.truetype(\"arial\", 18)\n    font2 = ImageFont.truetype(\"comic\", 24)\n    font3 = ImageFont.truetype(\"arial\", 28)\n\n    # get text from a feed\n    #d = feedparser.parse('http:\/\/www.reddit.com\/r\/news\/.rss')\n    d = feedparser.parse('https:\/\/www.br.de\/wetter\/action\/feeds\/bayernwetter.do')\n    dnr = 0\n    dlen = len(d['entries'])\n    #test\n    oberbayern = 0\n    for n in range(dlen):\n        actentry = d['entries'][n]['title'].encode('utf-8').strip()\n        print str(n) + \" \" + actentry[0:8]\n        if actentry[0:8] == \"Oberbaye\":\n            oberbayern = n\n        #m\u00fcnchen\n        if actentry[0:8] == \"M\u00fcnchen\":\n            muenchen = n\n    \n    \n    print d['entries'][oberbayern]['title'].encode('utf-8').strip()\n    print d['entries'][muenchen]['title'].encode('utf-8').strip()\n    nb = d['entries'][oberbayern]['title'].strip()\n    \n    # get text from a website\n    ttext = \"err\"\n    try:\n            #response = urllib2.urlopen('http:\/\/4johannes.de\/weather\/lowest.txt')\n            response = urllib2.urlopen('http:\/\/eiseler.com\/perltest\/tempmysqlcoldestblank.pl')\n            ttext = response.read().strip()\n            print(ttext)\n    except:\n            print(\"fehler2\")\n            ttext = \"err2\"\n\n    # add to display\n\n    # first Line\n    grad = u'\u00b0'\n    #entlang umgerechnet oben 1,1 nach 1,264\/2\n    draw.line((0, 264, 0, 0), fill = 0)\n    draw.line((1, 264, 1, 0), fill = 0)\n    addText(image, datetime.datetime.now().strftime(\"%H:%M %d.%m.\"), font3, 5, 6)\n    addText(image, ttext + grad, font3, 5, 182)\n    # horizontal unter der schrift:\n    draw.line((38, 264, 38, 0), fill = 0)\n    draw.line((39, 264, 39, 0), fill = 0)\n    # senkrechte Linien, wenn quer gesehen\n    draw.line((0, 264-180+5, 39, 264-180+5), fill = 0)\n    draw.line((0, 264-180+4, 39, 264-180+4), fill = 0)\n    draw.line((0, 263, 39, 263), fill = 0)\n    draw.line((0, 262, 39, 262), fill = 0)\n\n    draw.line((0, 0, 39, 0), fill = 0)\n    draw.line((0, 1, 39, 1), fill = 0)\n\n\n    muc = \"M\u00fcnchen\"\n    mstr = d['entries'][muenchen]['title'].strip()\n    mstr2 = mstr[mstr.find(\"):\")+3:]\n\n    xlen = 0\n    xlen = getLengthText(mstr2,font, 264)\n    mstr3 = mstr2[0:xlen]\n    msRest = mstr2[xlen:]\n    xlen = getLengthText(msRest,font, 264)\n    mstr4 = msRest[0:xlen]\n\n    addText(image, mstr3, font, 40, 0)\n    addText(image, mstr4, font, 60, 0)\n    #addText(image, \"012345678901234567890123456789\", font, 60, 0)\n\n    print(nb.encode('utf-8'))\n    xlen = 0\n    xlen = getLengthText(nb,font, 264)\n    nb1 = nb[0:xlen]\n    nbRest = nb[xlen:]\n    xlen = getLengthText(nbRest,font, 264)\n    nb2 = nbRest[0:xlen]\n    nbRest = nbRest[xlen:]\n    xlen = getLengthText(nbRest,font, 264)\n    nb3 = nbRest[0:xlen]\n    nbRest = nbRest[xlen:]\n    xlen = getLengthText(nbRest,font, 264)\n    nb4 = nbRest[0:xlen]\n    nbRest = nbRest[xlen:]\n    xlen = getLengthText(nbRest,font, 264)\n    nb5 = nbRest[0:xlen]\n    \n    print(nb1.encode('utf-8'))\n    print(nb2.encode('utf-8'))\n    print(nb3.encode('utf-8'))\n    print(nb4.encode('utf-8'))\n    print(nb5.encode('utf-8'))\n    addText(image, nb1, font, 80, 0)\n    addText(image, nb2, font, 100, 0)\n    addText(image, nb3, font, 120, 0)\n    addText(image, nb4, font, 140, 0)\n    addText(image, nb5, font, 160, 0)\n    #addText(image, \"abcdef\", font, 140, 0)\n    #addText(image, \"abcdef\", font, 160, 0)\n\n\n    epd.display_frame(epd.get_frame_buffer(image))\n    # display images\n    #epd.display_frame(epd.get_frame_buffer(Image.open('demopill2.bmp')))\n\nif __name__ == '__main__':\n    main()\n<\/pre>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-1038\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/eiseler.de\/wordpress\/?p=1038&amp;share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-1038\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/eiseler.de\/wordpress\/?p=1038&amp;share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\"><span>Twitter<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-1038\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/eiseler.de\/wordpress\/?p=1038&amp;share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-pocket\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-pocket sd-button share-icon\" href=\"https:\/\/eiseler.de\/wordpress\/?p=1038&amp;share=pocket\" target=\"_blank\" title=\"Click to share on Pocket\"><span>Pocket<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Start with a headless raspberry, no need to connect monitor, keyboard:\u00a0https:\/\/raspberrypi.stackexchange.com\/questions\/10251\/prepare-sd-card-for-wifi-on-headless-pi Find the raspberry in your router and connect with ssh. Useullay steps are: sudo raspi-config sudo reboot (neu einloggen) sudo apt-get update -y sudo apt-get upgrade -y Here&#8217;s some &hellip; <a href=\"https:\/\/eiseler.de\/wordpress\/?p=1038\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-1038\" class=\"share-facebook sd-button share-icon\" href=\"https:\/\/eiseler.de\/wordpress\/?p=1038&amp;share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\"><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-1038\" class=\"share-twitter sd-button share-icon\" href=\"https:\/\/eiseler.de\/wordpress\/?p=1038&amp;share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\"><span>Twitter<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-1038\" class=\"share-linkedin sd-button share-icon\" href=\"https:\/\/eiseler.de\/wordpress\/?p=1038&amp;share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\"><span>LinkedIn<\/span><\/a><\/li><li class=\"share-pocket\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-pocket sd-button share-icon\" href=\"https:\/\/eiseler.de\/wordpress\/?p=1038&amp;share=pocket\" target=\"_blank\" title=\"Click to share on Pocket\"><span>Pocket<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":1040,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[22,25,36],"tags":[],"class_list":["post-1038","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hardware","category-raspberry-pi","category-tipps-tricks"],"jetpack_featured_media_url":"https:\/\/eiseler.de:443\/wordpress\/wp-content\/uploads\/2018\/11\/img_8466-e1541953811554.jpg","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8zAuQ-gK","jetpack-related-posts":[{"id":479,"url":"https:\/\/eiseler.de\/wordpress\/?p=479","url_meta":{"origin":1038,"position":0},"title":"Raspberry Pi mit Internetradio und Airplay","date":"30\/11\/2013","format":false,"excerpt":"Hier der einige Tipps zum Aufbau eines Raspberry Pis ohns Monitor, Tastatur und Maus mit den F\u00e4higkeiten remote eine Oberfl\u00e4che bereit zu stellen, Internetradio wieder zu geben und als Airplay Station zu dienen. Achso und nebneher noch einen Webserver (LAMP) laufen lassen. Was braucht man? Raspberry Pi, Stromversorgung dazu, WLAN-Stick,\u2026","rel":"","context":"In &quot;iOS App&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1341,"url":"https:\/\/eiseler.de\/wordpress\/?p=1341","url_meta":{"origin":1038,"position":1},"title":"Mount Synology on Raspberry","date":"09\/11\/2020","format":false,"excerpt":"create a user on Synology nas: pinasOn raspberry mkdir a directory: NAS2mount: sudo mount -t cifs \/\/192.168.178.25\/home \/home\/pi\/NAS2 -o user=pinas,pass=xxxx,uid=1000,gid=1000,dir_mode=0700,file_mode=0600,vers=1.0 or add to \/etc\/fstab: \/\/192.168.178.25\/home \/home\/pi\/NAS2 cifs user=pinas,pass=xxxx,uid=1000,gid=1000 ,dir_mode=0700,file_mode=0600,nounix,vers=1.0 0 0","rel":"","context":"In \"Synology NAS\"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":954,"url":"https:\/\/eiseler.de\/wordpress\/?p=954","url_meta":{"origin":1038,"position":2},"title":"Raspberry Pi as NAS with OpenMediaVault and Wifi","date":"28\/03\/2018","format":false,"excerpt":"Be warned, the Raspberry Pi with wlan is a slow nas. But I wanted to build one and there are no full instructions for it. So here are the steps to follow. I used this instruction, but some things are missing and so I put everything down in short form:\u2026","rel":"","context":"In &quot;Gadgets&quot;","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/eiseler.de\/wordpress\/wp-content\/uploads\/2018\/04\/img_5026.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":952,"url":"https:\/\/eiseler.de\/wordpress\/?p=952","url_meta":{"origin":1038,"position":3},"title":"Synology Photo Station Messed Up","date":"25\/03\/2018","format":false,"excerpt":"My Synology photo station seemed messed up. The indexing of photos never found an end, so it looked for me. This helped: cd \/var\/spool\/ sudo synoservicectl --stop synoindexd sudo rm syno_indexing* \u00a0 --\u00a0(delete all indexing files under \/var\/spool\/) sudo synoservicectl --start synoindexd the solution was found here. Based on this","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1036,"url":"https:\/\/eiseler.de\/wordpress\/?p=1036","url_meta":{"origin":1038,"position":4},"title":"Connect Raspberry Pi & Arduino USB bidirectional","date":"25\/10\/2018","format":false,"excerpt":"How to connect an Arduino to a raspberry pi via USB bidirectional. The raspberry reads all from the serial and prints it. Next it reads a textile from a webpage and sends the text (one word) to serial, next a random car to the Arduino. Arduino got a LCD attached\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1435,"url":"https:\/\/eiseler.de\/wordpress\/?p=1435","url_meta":{"origin":1038,"position":5},"title":"Raspberry Pi 4 & Camera","date":"19\/08\/2022","format":false,"excerpt":"Problem was that I didn't get a live picture from the camera. Solution: Use the HDMI 1 not 2 port.","rel":"","context":"In &quot;Raspberry Pi&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1038"}],"version-history":[{"count":37,"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1038\/revisions"}],"predecessor-version":[{"id":1332,"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1038\/revisions\/1332"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/1040"}],"wp:attachment":[{"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eiseler.de\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}