{"id":1167,"date":"2019-01-05T19:01:59","date_gmt":"2019-01-05T18:01:59","guid":{"rendered":"http:\/\/www.boichat.ch\/wpjrsp\/?p=1167"},"modified":"2019-06-23T18:29:02","modified_gmt":"2019-06-23T16:29:02","slug":"communication-socket-esp8266-raspberry-pi-phython-java","status":"publish","type":"post","link":"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/","title":{"rendered":"Communication socket &#8211; ESP8266 &#8211; Raspberry Pi &#8211; Python &#8211; Java"},"content":{"rendered":"<p>Pour les makers, j&rsquo;ai aussi pass\u00e9 \u00e0 MicroPython, dont voici un de mes autres articles paru dans le magazine Programmez :\u00a0<a href=\"http:\/\/www.boichat.ch\/joomla\/index.php?option=com_content&amp;view=article&amp;id=129:micropython-esp8266-thonny&amp;catid=92&amp;Itemid=503\" target=\"_blank\" rel=\"noopener\">MicroPython, NodeMCU ESP8266 et Thonny<\/a>.<\/p>\n<p>J&rsquo;ai ador\u00e9 faire cet exercice. Il permet de v\u00e9rifier que nous ma\u00eetrisons:<\/p>\n<ul>\n<li>l&rsquo;\u00e9criture de sketchs sur un ESP8266<\/li>\n<li>l&rsquo;utilisation du PC pour d\u00e9velopper, v\u00e9rifier nos sketchs et programmer notre code Java ou Python<\/li>\n<li>programmer une communication socket entre un ESP8266 et un Raspberry Pi<\/li>\n<\/ul>\n<p>Le code qui suit est facilement modifiable pour ajouter un LM35. L&rsquo;article\u00a0<a href=\"https:\/\/www.boichat.ch\/wpjrsp\/2018\/12\/28\/controle-de-temperature-sur-un-raspberry-pi-depuis-un-tm37-depose-sur-un-esp8266-nodemcu\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Contr\u00f4le de temp\u00e9rature avec un Raspberry Pi par un LM35 d\u00e9pos\u00e9 sur un NODEMCU esp8266<\/strong><\/a>\u00a0utilisait une interface Web avec le serveur sur l&rsquo;ESP8266 avec un LM35. Ici c&rsquo;est le Raspberry Pi qui sera le serveur de l&rsquo;interface socket et l&rsquo;ESP8266 qui enverra en continu la \u00ab\u00a0temp\u00e9rature\u00a0\u00bb (ou autre) mesur\u00e9e.<\/p>\n<p>Une interface socket client en Java ou en Python serait aussi possible pour communiquer entre plusieurs Raspberry Pi pour \u00e9changer des donn\u00e9es ponctuelles ou distribu\u00e9es. Le code n&rsquo;est pour l&rsquo;instant pas pr\u00e9sent\u00e9 ici.<\/p>\n<h3>Le sketch sur l&rsquo;ESP8266<\/h3>\n<pre>#include &lt;ESP8266WiFi.h&gt;\n#include &lt;WiFiClient.h&gt;\n\nconst char* ssid = \"....\";\nconst char* pass = \"....\";\nconst char* host = \"192.168.2.9\";\nconst int   port = 3333;\n\nvoid setup() {\n  delay(500);\n  Serial.begin(38400);\n  Serial.println();\n  Serial.print(\"Connect\u00e9 \u00e0 \");\n  Serial.println(ssid);\n  Serial.println(\"Essai de connection \u00e0 \");\n  Serial.println(host);\n  \n  WiFi.mode(WIFI_STA); \n  delay(1000);\n  WiFi.begin(ssid, pass);\n  \n  while (WiFi.status() != WL_CONNECTED) {\n    delay(1000);\n    Serial.print(\".\");\n  }\n}\n\nvoid loop() {\n  long randNumber = random(300);\n  WiFiClient client;\n  \n  if (!client.connect(host, port)) {\n    Serial.println(\".\");\n    return;\n  }\n  \n  Serial.println();\n  Serial.print(\"Connect\u00e9 \u00e0 \");\n  Serial.println(host);\n\n  Serial.print(\"Envoi d'une temp\u00e9rature: \");\n  Serial.println(randNumber);\n\n  client.println(randNumber);\n  delay(100);\n  \n  String line = client.readStringUntil('\\n');\n  Serial.print(line);\n\n  client.flush();\n  client.stop();\n}<\/pre>\n<p>Nous utiliserons l&rsquo;Arduino IDE\u00a0 comme pour l&rsquo;article\u00a0<strong><a href=\"https:\/\/www.boichat.ch\/wpjrsp\/2018\/12\/28\/controle-de-temperature-sur-un-raspberry-pi-depuis-un-tm37-depose-sur-un-esp8266-nodemcu\" target=\"_blank\" rel=\"noreferrer noopener\">Contr\u00f4le de temp\u00e9rature avec un Raspberry Pi par un LM35 d\u00e9pos\u00e9 sur un NODEMCU esp8266<\/a>\u00a0<\/strong>\u00a0o\u00f9 est d\u00e9crit l&rsquo;installation et la configuration pour le NODEMCU, un mod\u00e8le d&rsquo;ESP8266.<\/p>\n<p>Si je trouve le temps, j&rsquo;essaierai de d\u00e9crire ce code en d\u00e9tails.<br \/>\nIl faudra \u00e9videmment mettre les valeurs juste au ssid et pass (mot de passe) pour notre routeur. Ici l&rsquo;adresse IP est un peu particuli\u00e8re: c&rsquo;est mon Laptop Windows connect\u00e9 \u00e0 un second routeur dans ma maison. Les tests Python et Java ont \u00e9t\u00e9 fait sur ce Laptop avec Eclipse et Thonny (voir ci-dessous). Lorsqu&rsquo;on d\u00e9placera le code Java compil\u00e9 ou le script Python sur un Raspberry Pi, il faudra modifier l&rsquo;adresse IP avec celui du Raspberry Pi. Ce dernier devrait \u00eatre fix\u00e9 dans le routeur (voir le livre).<\/p>\n<p>L&rsquo;instruction\u00a0<strong>random(300)<\/strong> est volontaire. Cela donnerait par exemple 241 pour une temp\u00e9rature de 24.1 degr\u00e9s. C&rsquo;est plus facile de convertir apr\u00e8s.<\/p>\n<h3>Le code Python du serveur<\/h3>\n<pre># coding: utf-8\nimport socket\n\nHOST = ''\nPORT = 3333 # Port de lecture\n\nprint('Socket serveur sur: ', PORT)\n\nwhile True:\n  with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as soc:\n    soc.bind((HOST, PORT))\n    soc.listen()\n    conn, addr = soc.accept()\n    with conn:\n      print('Connect\u00e9 par ', addr)\n      while True:\n        data = conn.recv(1024)\n        if not data:\n          break\n        print('Re\u00e7u: ', data.decode(\"utf-8\"))\n        conn.sendall(data)\n        break<\/pre>\n<p>A nouveau, si je trouve le temps, j&rsquo;essaierai de d\u00e9crire ce code en d\u00e9tails en particulier le tr\u00e8s important HOST. Le port 3333 est \u00e9videmment le m\u00eame que celui d\u00e9fini dans le sketch pr\u00e9c\u00e9dent.<\/p>\n<p>Je mes suis amus\u00e9 avec <a href=\"https:\/\/thonny.org\/\" target=\"_blank\" rel=\"noopener\">Tonny<\/a> qui marche tr\u00e8s bien. J&rsquo;aime aussi bien essayer de nouveaux outils, et simple comme ce dernier. Tout en gardant l&rsquo;ESP8266 connect\u00e9 avec un c\u00e2ble USB pour corriger mon sketch, j&rsquo;ai pu aussi v\u00e9rifier l\u2019ex\u00e9cution de ce code dans le Shell de Tonny et modifier le script Python (3.5.3 sous Windows).<\/p>\n<p>D\u00e8s que nous aurons re\u00e7u une donn\u00e9e de l&rsquo;ESP8266, nous coupons la communication, apr\u00e8s avoir envoy\u00e9 un \u00e9cho, et nous recommen\u00e7ons.<\/p>\n<h3>Le code Java du serveur<\/h3>\n<pre>import java.io.*;\nimport java.net.*;\n\npublic class Server {\nstatic final int port = 3333;\n\npublic static void main(String[] args) throws Exception {\n  for(;;) {\n    ServerSocket ss = new ServerSocket(port);\n    Socket soc = ss.accept();\n\n    BufferedReader bR = new BufferedReader(\n                   new InputStreamReader(soc.getInputStream()));\n\n    PrintWriter pW = new PrintWriter(new BufferedWriter(\n            new OutputStreamWriter(soc.getOutputStream())), true);\n\n    while (true) {\n      String tempStr = bR.readLine(); \/\/ Lecture de la temp\u00e9rature\n      if (tempStr == null) {\n        Thread.sleep(1000);\n        break;\n      }\n\n      System.out.println(\"Temp\u00e9rature = \" + tempStr);\n      pW.println(\"Ok\"); \/\/ Renvoi d'un \u00e9cho\n      break;\n    }\n\n    bR.close();\n    pW.close();\n    soc.close();\n    ss.close();\n   }\n }\n}<\/pre>\n<p>A nouveau, encore une fois, si je trouve le temps, je devrais d\u00e9crire ce code en d\u00e9tails. Nous renvoyons aussi un Echo. Le code Java est tr\u00e8s similaire \u00e0 la lecture et l&rsquo;\u00e9criture de fichiers Java (chapitre 10).<\/p>\n<p>Nous sommes sur Eclipse, dans un projet Eclipse, et c&rsquo;est dans la console d&rsquo;Eclipse que viennent les \u00ab\u00a0temp\u00e9ratures\u00a0\u00bb depuis l&rsquo;ESP8266 qui est toujours connect\u00e9 avec un c\u00e2ble USB (sans Thonny actif \u00e9videmment) et une console IDE Arduino avec l&rsquo;autre partie du protocole socket et l&rsquo;\u00e9diteur du sketch toujours actif.<\/p>\n<p>Tout ce travail se fait tr\u00e8s tr\u00e8s rapidement &#8230; sauf le communication PC au ESP8266 pour compiler et t\u00e9l\u00e9charger le sketch corrig\u00e9! C&rsquo;est normal.<\/p>\n<h4>Exercice 1<\/h4>\n<p>Ajouter un LM35 sur un ESP8266 (un NODEMCU par exemple), adapter le sketch et v\u00e9rifier que les valeurs re\u00e7ues sont correctes en touchant le capteur avec deux doigts pour faire varier la temp\u00e9rature.<\/p>\n<h4>Exercice 2<\/h4>\n<p>D\u00e9poser le script Python et le code Java sur un Raspberry Pi et modifier l&rsquo;adresse IP du sketch. V\u00e9rifier la temp\u00e9rature re\u00e7ue par les deux programmes dans une console bash \u00e0 partir de Putty.<\/p>\n<h4>Exercice 3<\/h4>\n<p>Ins\u00e9rer le code Java ci-dessus dans un Thread Java (chapitre 12), l&rsquo;adapter, activer une sir\u00e8ne buzzer (chapitre 17) avec un SOS r\u00e9p\u00e9titif (intervalle \u00e0 d\u00e9finir) si la temp\u00e9rature passe en dessous d&rsquo;un certain niveau (d\u00e9fini comme param\u00e8tre (chapitre 10)) et impl\u00e9menter une s\u00e9quence d&rsquo;arr\u00eat de la sir\u00e8ne avec un bouton poussoir (chapitre 19). Si le bouton pressoir n&rsquo;est pas touch\u00e9 apr\u00e8s un intervalle \u00e0 d\u00e9finir (aussi comme param\u00e8tre), stopper la sir\u00e8ne et envoyer un e-mail (chapitre 24).<\/p>\n<p>D\u00e9velopper tout le code sous Windows et Eclipse, avec simulation, comme expliquer \u00e0 plusieurs occasions dans le livre.\u00a0 Faire tout de m\u00eame un exercice de d\u00e9bogage \u00e0 distance sur le Raspberry Pi (chapitre 15).<\/p>\nDate de la derni\u00e8re modification: 23 juin 2019\n","protected":false},"excerpt":{"rendered":"<p>Pour les makers, j&rsquo;ai aussi pass\u00e9 \u00e0 MicroPython, dont voici un de mes autres articles paru dans le magazine Programmez :\u00a0MicroPython, NodeMCU ESP8266 et Thonny.&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[1],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Communication socket - ESP8266 - Raspberry Pi - Python - Java - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3<\/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.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Communication socket - ESP8266 - Raspberry Pi - Python - Java - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3\" \/>\n<meta property=\"og:description\" content=\"Pour les makers, j&rsquo;ai aussi pass\u00e9 \u00e0 MicroPython, dont voici un de mes autres articles paru dans le magazine Programmez :\u00a0MicroPython, NodeMCU ESP8266 et Thonny.&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Un livre sur Java, Python, Eclipse et le Raspberry Pi 3\" \/>\n<meta property=\"article:published_time\" content=\"2019-01-05T18:01:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-06-23T16:29:02+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jean-Bernard Boichat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/#website\",\"url\":\"https:\/\/www.boichat.ch\/wpjrsp\/\",\"name\":\"Un livre sur Java, Python, Eclipse et le Raspberry Pi 3\",\"description\":\"Jean-Bernard Boichat - Auteur chez Eyrolles\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.boichat.ch\/wpjrsp\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/#webpage\",\"url\":\"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/\",\"name\":\"Communication socket - ESP8266 - Raspberry Pi - Python - Java - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3\",\"isPartOf\":{\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/#website\"},\"datePublished\":\"2019-01-05T18:01:59+00:00\",\"dateModified\":\"2019-06-23T16:29:02+00:00\",\"author\":{\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.boichat.ch\/wpjrsp\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Communication socket &#8211; ESP8266 &#8211; Raspberry Pi &#8211; Python &#8211; Java\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751\",\"name\":\"Jean-Bernard Boichat\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.boichat.ch\/wpjrsp\/#personlogo\",\"inLanguage\":\"fr-FR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/862886ce35a52b9d13595e18ac3c3ea5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/862886ce35a52b9d13595e18ac3c3ea5?s=96&d=mm&r=g\",\"caption\":\"Jean-Bernard Boichat\"},\"sameAs\":[\"http:\/\/www.boichat.ch\"],\"url\":\"https:\/\/www.boichat.ch\/wpjrsp\/author\/bjb\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Communication socket - ESP8266 - Raspberry Pi - Python - Java - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3","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.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/","og_locale":"fr_FR","og_type":"article","og_title":"Communication socket - ESP8266 - Raspberry Pi - Python - Java - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3","og_description":"Pour les makers, j&rsquo;ai aussi pass\u00e9 \u00e0 MicroPython, dont voici un de mes autres articles paru dans le magazine Programmez :\u00a0MicroPython, NodeMCU ESP8266 et Thonny.&hellip;","og_url":"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/","og_site_name":"Un livre sur Java, Python, Eclipse et le Raspberry Pi 3","article_published_time":"2019-01-05T18:01:59+00:00","article_modified_time":"2019-06-23T16:29:02+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Jean-Bernard Boichat","Dur\u00e9e de lecture estim\u00e9e":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/www.boichat.ch\/wpjrsp\/#website","url":"https:\/\/www.boichat.ch\/wpjrsp\/","name":"Un livre sur Java, Python, Eclipse et le Raspberry Pi 3","description":"Jean-Bernard Boichat - Auteur chez Eyrolles","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.boichat.ch\/wpjrsp\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/#webpage","url":"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/","name":"Communication socket - ESP8266 - Raspberry Pi - Python - Java - Un livre sur Java, Python, Eclipse et le Raspberry Pi 3","isPartOf":{"@id":"https:\/\/www.boichat.ch\/wpjrsp\/#website"},"datePublished":"2019-01-05T18:01:59+00:00","dateModified":"2019-06-23T16:29:02+00:00","author":{"@id":"https:\/\/www.boichat.ch\/wpjrsp\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751"},"breadcrumb":{"@id":"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.boichat.ch\/wpjrsp\/2019\/01\/05\/communication-socket-esp8266-raspberry-pi-phython-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.boichat.ch\/wpjrsp\/"},{"@type":"ListItem","position":2,"name":"Communication socket &#8211; ESP8266 &#8211; Raspberry Pi &#8211; Python &#8211; Java"}]},{"@type":"Person","@id":"https:\/\/www.boichat.ch\/wpjrsp\/#\/schema\/person\/fe6328cc5b74b8a6e8d841285a928751","name":"Jean-Bernard Boichat","image":{"@type":"ImageObject","@id":"https:\/\/www.boichat.ch\/wpjrsp\/#personlogo","inLanguage":"fr-FR","url":"https:\/\/secure.gravatar.com\/avatar\/862886ce35a52b9d13595e18ac3c3ea5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/862886ce35a52b9d13595e18ac3c3ea5?s=96&d=mm&r=g","caption":"Jean-Bernard Boichat"},"sameAs":["http:\/\/www.boichat.ch"],"url":"https:\/\/www.boichat.ch\/wpjrsp\/author\/bjb\/"}]}},"_links":{"self":[{"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/posts\/1167"}],"collection":[{"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/comments?post=1167"}],"version-history":[{"count":0,"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/posts\/1167\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/media?parent=1167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/categories?post=1167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.boichat.ch\/wpjrsp\/wp-json\/wp\/v2\/tags?post=1167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}