{"id":135728,"date":"2018-11-16T13:44:00","date_gmt":"2018-11-16T11:44:00","guid":{"rendered":"https:\/\/ruuvi.com\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/"},"modified":"2026-06-11T07:33:52","modified_gmt":"2026-06-11T04:33:52","slug":"ruuvi-firmware-teil-17-nfc-schreibvorgaenge","status":"publish","type":"post","link":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/","title":{"rendered":"Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" src=\"https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17-1024x536.jpeg\" alt=\"Einf&#xFC;hrungsbild der Ruuvi Firmware-Serie Teil 17\" class=\"wp-image-4015\" srcset=\"https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17-1024x536.jpeg 1024w, https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17-450x236.jpeg 450w, https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17-768x402.jpeg 768w, https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17-600x314.jpeg 600w, https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17.jpeg 1400w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">In diesem Teil des Tutorials f\u00fcgen wir das Schreiben von <a href=\"https:\/\/ruuvi.com\/ruuvi-firmware-part-10-nfc-reading\/\">Near Field Communication<\/a> (<strong>NFC<\/strong>) vom Smartphone auf den RuuviTag hinzu. Den finalen Code dieses Blogbeitrags kannst du auf <a href=\"https:\/\/github.com\/ruuvi\/ruuvi.firmware.c\">Ruuvi GitHub<\/a> im <em>ruuviblog<\/em>-Branch, Tag <em>3.17.0-alpha<\/em>, herunterladen. <\/p>\n\n<p class=\"wp-block-paragraph\">Bitte folge <a href=\"https:\/\/ruuvi.com\/ruuvi-firmware-part-1-sleep\/\">Teil 1 der Serie<\/a> f\u00fcr Details zum Klonen des Repositories und Kompilieren des Codes. Die finale Hex-Datei dieses Tutorials kann vom <a href=\"http:\/\/jenkins.ruuvi.com\/job\/ruuvi.firmware.c\/42\/\">Ruuvi Jenkins<\/a> heruntergeladen werden. <\/p>\n\n<h2 class=\"wp-block-heading\">NFC-Schreibvorg\u00e4nge<\/h2>\n\n<p class=\"wp-block-paragraph\">Zuvor haben wir das <strong>NFC-Lesen<\/strong> vom Tag in unserem Projekt implementiert. Das Hinzuf\u00fcgen des Schreibens auf den Tag ist eine relativ einfache Angelegenheit, bei der lediglich die Ereignisbehandlung und das Parsen von Daten hinzugef\u00fcgt werden m\u00fcssen. Die Struktur von <strong>NFC<\/strong>-Nachrichten erschwert die Arbeit jedoch ein wenig: Eine einzelne <strong>NFC<\/strong>&#8211;<em>Nachricht<\/em> hat mehrere <em>Datens\u00e4tze<\/em>, und wir m\u00fcssen die <em>Datens\u00e4tze<\/em> aus der <em>Nachricht<\/em> parsen.  <\/p>\n\n<p class=\"wp-block-paragraph\">Nordic Semiconductor hat eine <strong>NFC<\/strong>-Parsing-Bibliothek, die uns die meiste Arbeit abnimmt. Der Einfachheit halber werden wir jeden <em>Datensatz<\/em> als <em>Bin\u00e4rdatensatz<\/em> behandeln. Eine zus\u00e4tzliche Komplexit\u00e4t ergibt sich durch den Nordic <strong>NFC<\/strong>-Treiber: Die Daten auf dem Tag befinden sich in einem einzigen Puffer, und das Schreiben in den Puffer modifiziert Daten, die f\u00fcr den Leser eingerichtet sind.  <\/p>\n\n<h2 class=\"wp-block-heading\"><strong>Anh\u00e4ngen des NFC-Treibers<\/strong><\/h2>\n\n<p class=\"wp-block-paragraph\">Unser <strong>NFC<\/strong>-Treiber hat eine Platzhalterfunktion zum Lesen empfangener Daten, die jedoch bisher einfach <strong>RUUVI_DRIVER_ERROR_NOT_IMPLEMENTED<\/strong> zur\u00fcckgegeben hat.<\/p>\n\n<p class=\"wp-block-paragraph\">Unsere implementierte Empfangsfunktion parst zuerst die <em>Nachrichtenstruktur<\/em>, um die <em>Datens\u00e4tze<\/em> zu finden, und parst dann die Daten des ersten <em>Datensatzes<\/em> in einen gegebenen Zeiger. Die Funktion verfolgt den <em>Datensatzindex<\/em> und gibt bei nachfolgenden Aufrufen den n\u00e4chsten <em>Datensatz<\/em> zur\u00fcck, bis der letzte <em>Datensatz<\/em> erreicht ist. Wenn der letzte <em>Datensatz<\/em> geparst ist, werden die urspr\u00fcnglichen Daten wiederhergestellt und der <em>Datensatz-Z\u00e4hler<\/em> zur\u00fcckgesetzt.  <\/p>\n\n<pre class=\"wp-block-code\"><code>\/* Read and parse RX buffer into records. Parse records into Ruuvi \n * communication messages.\n * Restore original data after last record has been parsed\n *\n * parameter msg: Ruuvi Communication message, received record payload is \n *                copied into message payload field.\n *\n * Return RUUVI_DRIVER_STATUS_MORE_AVAILABLE if payload was parsed into \n *        msg and more data is available\n * Return RUUVI_SUCCESS if payload was parsed into msg \n *        and no more data is available\n * Return RUUVI_DRIVER_ERROR_NOT_FOUND if no data was buffered and \n *        message could not be parsed.\n * Return RUUVI_ERROR_DATA_SIZE if received message could not \n *        fit into message payload\n *\/\nruuvi_driver_status_t \nruuvi_interface_communication_nfc_receive(ruuvi_interface_communication_message_t* msg)\n{\n  \/\/Input check\n  if (NULL == msg) { return RUUVI_DRIVER_ERROR_NULL; }\n  \/\/ If new data is not received, return not found\n  if (!nrf5_sdk15_nfc_state.rx_updated) { return RUUVI_DRIVER_ERROR_NOT_FOUND; }\n  ruuvi_driver_status_t err_code = RUUVI_DRIVER_SUCCESS;\n\n  \/\/ If we're at index 0, parse message into records\n  if (0 == nrf5_sdk15_nfc_state.msg_index)\n  {\n    uint32_t desc_buf_len = sizeof(nrf5_sdk15_nfc_state.desc_buf);\n    uint32_t data_lenu32 = sizeof(nrf5_sdk15_nfc_state.nfc_ndef_msg);\n    \/\/Skip NFCT4T length bytes with +2\n    err_code = ndef_msg_parser(nrf5_sdk15_nfc_state.desc_buf,\n                               &amp;desc_buf_len,\n                               nrf5_sdk15_nfc_state.nfc_ndef_msg+2, \n                               &amp;data_lenu32);\n    \/\/Debug print records\n    \/\/ndef_msg_printout((nfc_ndef_msg_desc_t*) nrf5_sdk15_nfc_state.desc_buf);\n  }\n\n  \/\/ If there is a new message, parse the payload into Ruuvi Message.\n  if (nrf5_sdk15_nfc_state.msg_index &lt; \n     ((nfc_ndef_msg_desc_t*)nrf5_sdk15_nfc_state.desc_buf)-&gt;record_count)\n  {\n    \/\/ PLATFORM_LOG_INFO(\"Parsing message %d\", msg_index);\n    nfc_ndef_record_desc_t* const p_rec_desc = \n      ((nfc_ndef_msg_desc_t*)\n      nrf5_sdk15_nfc_state.desc_buf)-&gt;pp_record&#091;nrf5_sdk15_nfc_state.msg_index];\n    \n    nfc_ndef_bin_payload_desc_t* p_bin_pay_desc = p_rec_desc-&gt;p_payload_descriptor;\n    \/\/ Data length check\n    if (p_bin_pay_desc-&gt;payload_length &gt; msg-&gt;data_length) \n    { err_code = RUUVI_DRIVER_ERROR_DATA_SIZE; }\n    else {\n      memcpy(msg-&gt;data, \n             (uint8_t*)p_bin_pay_desc-&gt;p_payload, \n             p_bin_pay_desc-&gt;payload_length);\n      msg-&gt;data_length = p_bin_pay_desc-&gt;payload_length;\n    }\n    nrf5_sdk15_nfc_state.msg_index++;\n    if(RUUVI_DRIVER_SUCCESS == err_code) \n    { err_code = RUUVI_DRIVER_STATUS_MORE_AVAILABLE; }\n  }\n\n  \/\/ If no more records could\/can be parsed, reset buffer and message counter\n  if (RUUVI_DRIVER_STATUS_MORE_AVAILABLE != err_code || \n      nrf5_sdk15_nfc_state.msg_index == \n      ((nfc_ndef_msg_desc_t*)nrf5_sdk15_nfc_state.desc_buf)-&gt;record_count)\n  {\n    nrf5_sdk15_nfc_state.msg_index = 0;\n    nrf5_sdk15_nfc_state.rx_updated = false;\n    \/\/ If tag is not writeable, restore original data\n    if(nrf5_sdk15_nfc_state.configurable)\n    {\n      ruuvi_interface_communication_nfc_data_set();\n    }\n  }\n\n  return err_code;\n}<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/gist.githubusercontent.com\/ojousima\/40a7f594a8e8938209d694c4d1a77508\/raw\/16590dac6774ab9456c8a3a01968960914ac90c2\/ruuvi_firmware_3.17_nfc_driver.c\">Rohdaten anzeigen<\/a><\/p>\n\n<h2 class=\"wp-block-heading\">Umgang mit Schreibvorg\u00e4ngen in der Anwendung<\/h2>\n\n<p class=\"wp-block-paragraph\">Die Integration der \u00c4nderungen in unsere Anwendung ist einfach. Wir behandeln den Callback vom <em>Treiber<\/em> und <a href=\"https:\/\/ruuvi.com\/ruuvi-firmware-part-11-scheduler\/\">planen<\/a> das Parsen der Daten in <em>task_nfc.c<\/em>. Sobald die Daten geparst sind, geben wir sie aus. Der aufmerksame Leser bemerkt, dass wir auch den <em>Watchdog<\/em> <a href=\"https:\/\/ruuvi.com\/ruuvi-firmware-part-15-watchdog\/\">f\u00fcttern<\/a>, wenn Daten \u00fcber <strong>NFC<\/strong> vom Tag gelesen werden.   <\/p>\n\n<pre class=\"wp-block-code\"><code>void task_acceleration_scheduler_task(void *p_event_data, uint16_t event_size)\n{\n  \/\/ Message + null + &lt;\\r&gt;\\&lt;n&gt;\n  char str&#091;APPLICATION_COMMUNICATION_NFC_TEXT_BUFFER_SIZE + 3] = { 0 };\n  ruuvi_interface_communication_message_t message = {0};\n  ruuvi_driver_status_t err_code = RUUVI_DRIVER_SUCCESS;\n  do{\n     message.data_length = sizeof(message.data);\n     memset(&amp;(message.data), 0, sizeof(message.data));\n     err_code = channel.read(&amp;message);\n     snprintf(str, sizeof(str), \"%s\\r\\n\", (char *)message.data);\n     ruuvi_platform_log(RUUVI_INTERFACE_LOG_INFO, str);\n  }while(RUUVI_DRIVER_SUCCESS == err_code || \n         RUUVI_DRIVER_STATUS_MORE_AVAILABLE == err_code);\n}\n\nruuvi_driver_status_t \ntask_nfc_on_nfc(ruuvi_interface_communication_evt_t evt, void* p_data, size_t data_len)\n{\n  ruuvi_driver_status_t err_code = RUUVI_DRIVER_SUCCESS;\n  switch(evt)\n  {\n    case RUUVI_INTERFACE_COMMUNICATION_CONNECTED:\n      ruuvi_platform_log(RUUVI_INTERFACE_LOG_INFO, \"NFC connected \\r\\n\");\n      break;\n\n    case RUUVI_INTERFACE_COMMUNICATION_DISCONNECTED:\n      ruuvi_platform_log(RUUVI_INTERFACE_LOG_INFO, \"NFC disconnected \\r\\n\");\n      break;\n\n    case RUUVI_INTERFACE_COMMUNICATION_SENT:\n      ruuvi_platform_log(RUUVI_INTERFACE_LOG_INFO, \"NFC data sent\\r\\n\");\n      ruuvi_interface_watchdog_feed();\n      break;\n\n    case RUUVI_INTERFACE_COMMUNICATION_RECEIVED:\n      ruuvi_platform_log(RUUVI_INTERFACE_LOG_INFO, \"NFC data received\\r\\n\");\n      ruuvi_platform_scheduler_event_put(NULL, 0, task_acceleration_scheduler_task);\n      break;\n\n    default:\n      break;\n\n  }\n  return err_code;\n}<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/gist.githubusercontent.com\/ojousima\/8fd365433c4c91af3d5987ae7de78303\/raw\/bd2d3b75b10f38a1e411f83cd2ee5ea9fc7d30a3\/ruuvi_firmware_3.17_task_nfc.c\">Rohdaten anzeigen<\/a><\/p>\n\n<p class=\"wp-block-paragraph\">Um das Programm zu testen, verwenden wir <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.wakdev.wdnfc&amp;hl=en\">NFC Tools<\/a>, um 4 Textdatens\u00e4tze mit der Nachricht \u201eHello world\u201c zu schreiben.<\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"493\" height=\"401\" src=\"https:\/\/ruuvi.com\/i\/u\/debug-terminal-include-language-header.png\" alt=\"Debug-Terminal mit Sprachheadern\" class=\"wp-image-4013\" srcset=\"https:\/\/ruuvi.com\/i\/u\/debug-terminal-include-language-header.png 493w, https:\/\/ruuvi.com\/i\/u\/debug-terminal-include-language-header-450x366.png 450w\" sizes=\"auto, (max-width: 493px) 100vw, 493px\" \/><figcaption>Die Textdaten enthalten den Sprachheader \u201een\u201c und \u201e\u00e4\u201c wird nicht gedruckt, aber Bytes bewegen sich<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Daten kommen gut durch!<\/p>\n\n<h2 class=\"wp-block-heading\">Die Firmware ein wenig stylen<\/h2>\n\n<p class=\"wp-block-paragraph\">Um die Serie mit etwas Brauchbarem abzuschlie\u00dfen, stellen wir die Datenformat-5-Broadcasts wieder her und kommentieren das <strong>GATT<\/strong> aus. Wir f\u00fcgen auch einen <em>Watchdog-Feed<\/em> bei gesendeten Advertisements hinzu, wenn keine Fehler aufgetreten sind. <\/p>\n\n<p class=\"wp-block-paragraph\">Mal sehen, wie der Stromverbrauch aussieht!<\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"628\" src=\"https:\/\/ruuvi.com\/i\/u\/power-profile-at-27-ua-1024x628.png\" alt=\"Leistungsprofil, das anzeigt, dass wir bei 27 &#x3BC;A liegen\" class=\"wp-image-4014\" srcset=\"https:\/\/ruuvi.com\/i\/u\/power-profile-at-27-ua-1024x628.png 1024w, https:\/\/ruuvi.com\/i\/u\/power-profile-at-27-ua-450x276.png 450w, https:\/\/ruuvi.com\/i\/u\/power-profile-at-27-ua-768x471.png 768w, https:\/\/ruuvi.com\/i\/u\/power-profile-at-27-ua-1536x941.png 1536w, https:\/\/ruuvi.com\/i\/u\/power-profile-at-27-ua-2048x1255.png 2048w, https:\/\/ruuvi.com\/i\/u\/power-profile-at-27-ua-600x368.png 600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Wir liegen bei 27 \u03bcA<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Der Verbrauch von 27 <em>\u03bcA<\/em> ist sehr gut vergleichbar mit dem 2.X-Zweig, der mit den gleichen Funktionen 29 <em>\u03bcA<\/em> verbraucht. Ein so geringer Unterschied liegt innerhalb der Fehlermarge der Messung, sodass wir nicht mit Sicherheit sagen k\u00f6nnen, ob es eine echte Energieeinsparung gibt. <\/p>\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n<p class=\"wp-block-paragraph\">In den letzten 17 Wochen haben wir eine komplette Sensor-Beacon-Software von Grund auf neu aufgebaut, mit leicht erweiterbaren Schnittstellen f\u00fcr verschiedene Sensoren und Boards. Die Arbeit ist jedoch noch lange nicht abgeschlossen. Unsere n\u00e4chsten Schritte werden sein, eine bessere Dokumentation und Tests zu erstellen sowie sicherzustellen, dass das Benennungsschema und das Verhalten der Funktionen konsistent sind.  <\/p>\n\n<p class=\"wp-block-paragraph\">Sobald wir ziemlich sicher sein k\u00f6nnen, dass die definierten Schnittstellen stabil sein werden, k\u00f6nnen wir die Firmware aus der Alpha-Phase herausbringen und die verbleibenden Fehler beheben \u2013 das k\u00f6nnte eine Weile dauern. In der Zwischenzeit freuen wir uns immer \u00fcber deine Erfahrungen beim Aufbau deines Projekts auf Basis von Ruuvi. <\/p>\n\n<p class=\"wp-block-paragraph\">Dies ist der letzte w\u00f6chentliche Teil des Blogs, aber die Serie wird hin und wieder aktualisiert.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Bleib dran und folge <\/strong><a href=\"https:\/\/twitter.com\/ojousima\"><strong>@ojousima<\/strong><\/a><strong> und <\/strong><a href=\"https:\/\/twitter.com\/ruuvicom\"><strong>@ruuvicom<\/strong><\/a><strong> auf Twitter f\u00fcr #FirmwareFriday-Beitr\u00e4ge!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Teil des Tutorials f\u00fcgen wir das Schreiben von Near Field Communication (NFC) vom Smartphone auf den RuuviTag hinzu. Den finalen Code dieses Blogbeitrags kannst du auf Ruuvi GitHub im ruuviblog-Branch, Tag 3.17.0-alpha, herunterladen. Bitte folge Teil 1 der Serie f\u00fcr Details zum Klonen des Repositories und Kompilieren des Codes. Die finale Hex-Datei dieses [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":135730,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[324],"tags":[],"class_list":["post-135728","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ruuvi-software-artikel"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge \u2013 Ruuvi<\/title>\n<meta name=\"description\" content=\"Anh\u00e4ngen des NFC-Treibers an den Firmware-Code des RuuviTags, um NFC-Schreibvorg\u00e4nge zus\u00e4tzlich zum zuvor hinzugef\u00fcgten NFC-Lesen zu erm\u00f6glichen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge \u2013 Ruuvi\" \/>\n<meta property=\"og:description\" content=\"Anh\u00e4ngen des NFC-Treibers an den Firmware-Code des RuuviTags, um NFC-Schreibvorg\u00e4nge zus\u00e4tzlich zum zuvor hinzugef\u00fcgten NFC-Lesen zu erm\u00f6glichen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/\" \/>\n<meta property=\"og:site_name\" content=\"Ruuvi\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ruuvi.cc\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-16T11:44:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-11T04:33:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"733\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Otso Jousimaa\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ruuvicom\" \/>\n<meta name=\"twitter:site\" content=\"@ruuvicom\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Otso Jousimaa\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u00a0Minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/\"},\"author\":{\"name\":\"Otso Jousimaa\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#\\\/schema\\\/person\\\/143b8e2a095f1e6484b9186673c9ec00\"},\"headline\":\"Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge\",\"datePublished\":\"2018-11-16T11:44:00+00:00\",\"dateModified\":\"2026-06-11T04:33:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/\"},\"wordCount\":619,\"image\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/ruuvi-firmware-series-part-17.jpeg\",\"articleSection\":[\"Ruuvi-Software-Artikel\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/\",\"url\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/\",\"name\":\"Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge \u2013 Ruuvi\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/ruuvi-firmware-series-part-17.jpeg\",\"datePublished\":\"2018-11-16T11:44:00+00:00\",\"dateModified\":\"2026-06-11T04:33:52+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#\\\/schema\\\/person\\\/143b8e2a095f1e6484b9186673c9ec00\"},\"description\":\"Anh\u00e4ngen des NFC-Treibers an den Firmware-Code des RuuviTags, um NFC-Schreibvorg\u00e4nge zus\u00e4tzlich zum zuvor hinzugef\u00fcgten NFC-Lesen zu erm\u00f6glichen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/ruuvi-firmware-series-part-17.jpeg\",\"contentUrl\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/ruuvi-firmware-series-part-17.jpeg\",\"width\":1400,\"height\":733,\"caption\":\"Einf\u00fchrungsbild der Ruuvi Firmware-Serie Teil 17\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/front\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/\",\"name\":\"Ruuvi\",\"description\":\"Measure Your World\",\"potentialAction\":[],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#\\\/schema\\\/person\\\/143b8e2a095f1e6484b9186673c9ec00\",\"name\":\"Otso Jousimaa\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd52303e35b8b23c01cfeec7bb2636768de567cd33604f794ae86dd971e61645?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd52303e35b8b23c01cfeec7bb2636768de567cd33604f794ae86dd971e61645?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd52303e35b8b23c01cfeec7bb2636768de567cd33604f794ae86dd971e61645?s=96&d=mm&r=g\",\"caption\":\"Otso Jousimaa\"},\"url\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/author\\\/ojousima\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge \u2013 Ruuvi","description":"Anh\u00e4ngen des NFC-Treibers an den Firmware-Code des RuuviTags, um NFC-Schreibvorg\u00e4nge zus\u00e4tzlich zum zuvor hinzugef\u00fcgten NFC-Lesen zu erm\u00f6glichen.","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:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/","og_locale":"de_DE","og_type":"article","og_title":"Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge \u2013 Ruuvi","og_description":"Anh\u00e4ngen des NFC-Treibers an den Firmware-Code des RuuviTags, um NFC-Schreibvorg\u00e4nge zus\u00e4tzlich zum zuvor hinzugef\u00fcgten NFC-Lesen zu erm\u00f6glichen.","og_url":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/","og_site_name":"Ruuvi","article_publisher":"https:\/\/www.facebook.com\/ruuvi.cc","article_published_time":"2018-11-16T11:44:00+00:00","article_modified_time":"2026-06-11T04:33:52+00:00","og_image":[{"width":1400,"height":733,"url":"https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17.jpeg","type":"image\/jpeg"}],"author":"Otso Jousimaa","twitter_card":"summary_large_image","twitter_creator":"@ruuvicom","twitter_site":"@ruuvicom","twitter_misc":{"Verfasst von":"Otso Jousimaa","Gesch\u00e4tzte Lesezeit":"7\u00a0Minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/#article","isPartOf":{"@id":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/"},"author":{"name":"Otso Jousimaa","@id":"https:\/\/ruuvi.com\/de\/#\/schema\/person\/143b8e2a095f1e6484b9186673c9ec00"},"headline":"Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge","datePublished":"2018-11-16T11:44:00+00:00","dateModified":"2026-06-11T04:33:52+00:00","mainEntityOfPage":{"@id":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/"},"wordCount":619,"image":{"@id":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/#primaryimage"},"thumbnailUrl":"https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17.jpeg","articleSection":["Ruuvi-Software-Artikel"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/","url":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/","name":"Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge \u2013 Ruuvi","isPartOf":{"@id":"https:\/\/ruuvi.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/#primaryimage"},"image":{"@id":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/#primaryimage"},"thumbnailUrl":"https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17.jpeg","datePublished":"2018-11-16T11:44:00+00:00","dateModified":"2026-06-11T04:33:52+00:00","author":{"@id":"https:\/\/ruuvi.com\/de\/#\/schema\/person\/143b8e2a095f1e6484b9186673c9ec00"},"description":"Anh\u00e4ngen des NFC-Treibers an den Firmware-Code des RuuviTags, um NFC-Schreibvorg\u00e4nge zus\u00e4tzlich zum zuvor hinzugef\u00fcgten NFC-Lesen zu erm\u00f6glichen.","breadcrumb":{"@id":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/#primaryimage","url":"https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17.jpeg","contentUrl":"https:\/\/ruuvi.com\/i\/u\/ruuvi-firmware-series-part-17.jpeg","width":1400,"height":733,"caption":"Einf\u00fchrungsbild der Ruuvi Firmware-Serie Teil 17"},{"@type":"BreadcrumbList","@id":"https:\/\/ruuvi.com\/de\/ruuvi-firmware-teil-17-nfc-schreibvorgaenge\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ruuvi.com\/de\/front\/"},{"@type":"ListItem","position":2,"name":"Ruuvi Firmware \u2013 Teil 17: NFC-Schreibvorg\u00e4nge"}]},{"@type":"WebSite","@id":"https:\/\/ruuvi.com\/de\/#website","url":"https:\/\/ruuvi.com\/de\/","name":"Ruuvi","description":"Measure Your World","potentialAction":[],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/ruuvi.com\/de\/#\/schema\/person\/143b8e2a095f1e6484b9186673c9ec00","name":"Otso Jousimaa","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/fd52303e35b8b23c01cfeec7bb2636768de567cd33604f794ae86dd971e61645?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fd52303e35b8b23c01cfeec7bb2636768de567cd33604f794ae86dd971e61645?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fd52303e35b8b23c01cfeec7bb2636768de567cd33604f794ae86dd971e61645?s=96&d=mm&r=g","caption":"Otso Jousimaa"},"url":"https:\/\/ruuvi.com\/de\/author\/ojousima\/"}]}},"_links":{"self":[{"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/posts\/135728","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/comments?post=135728"}],"version-history":[{"count":1,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/posts\/135728\/revisions"}],"predecessor-version":[{"id":135731,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/posts\/135728\/revisions\/135731"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/media\/135730"}],"wp:attachment":[{"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/media?parent=135728"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/categories?post=135728"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/tags?post=135728"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}