{"id":135722,"date":"2018-12-18T15:40:00","date_gmt":"2018-12-18T13:40:00","guid":{"rendered":"https:\/\/ruuvi.com\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/"},"modified":"2026-06-11T07:33:52","modified_gmt":"2026-06-11T04:33:52","slug":"motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag","status":"publish","type":"post","link":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/","title":{"rendered":"Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Wonach suchen wir?<\/h2>\n\n<p class=\"wp-block-paragraph\">Viele Leute fragen uns nach fortgeschritteneren Einsatzm\u00f6glichkeiten f\u00fcr den Beschleunigungssensor im <a href=\"https:\/\/ruuvi.com\/de\/ruuvitag\/\" target=\"_blank\" rel=\"noreferrer noopener\">RuuviTag<\/a>. Eine davon ist die \u00dcberwachung von Vibrationen, um festzustellen, ob eine Maschine an- oder ausgeschaltet ist, und sogar, um vorausschauende Wartung an Maschinen zu betreiben. <\/p>\n\n<p class=\"wp-block-paragraph\">Statt einfach loszurennen und hier und da RuuviTags zu verteilen, ist es wichtig herauszufinden, welche Signale es gibt und wie wir sie verarbeiten sollten. Zum Einstieg nehmen wir eine Reihe roher Beschleunigungsdaten von einem laufenden W\u00e4schetrockner auf. <\/p>\n\n<p class=\"wp-block-paragraph\">Meine erste Annahme ist, dass wir zwei Hauptfrequenzen finden werden, die interessant sind: die Trommelrotation bei 600 U\/min (oder 10 Hz) und 50 Hz der europ\u00e4ischen Netzfrequenz. Au\u00dferdem wollen wir uns die dritte Harmonische der Netzfrequenz ansehen, die bei 150 Hz liegt. Um ein Signal bei 150 Hz abzutasten, m\u00fcssen wir den Beschleunigungssensor gem\u00e4\u00df dem <a href=\"https:\/\/en.wikipedia.org\/wiki\/Nyquist%E2%80%93Shannon_sampling_theorem\" target=\"_blank\" rel=\"noreferrer noopener\">Shannon-Nyquist<\/a>-Theorem mit mindestens 300 Hz abtasten. Der n\u00e4chste Wert des im RuuviTag verbauten <strong>LIS2DH12 <\/strong>liegt bei 400 <em>Hz<\/em>, also w\u00e4hlen wir 400 <em>Hz <\/em>als Abtastfrequenz.   <\/p>\n\n<p class=\"wp-block-paragraph\">Die 12-Bit-Aufl\u00f6sung des <strong>LIS2DH12<\/strong> begrenzt die Beschleunigungsbandbreite auf 1\/9 der Abtastfrequenz, daher verwenden wir den 10-Bit-Modus. Bei 10 Bit Aufl\u00f6sung und 2-<em>G<\/em>-Bereich haben wir ein Bit f\u00fcr das Vorzeichen und 9 Bits f\u00fcr die Amplitude. Das ergibt eine Aufl\u00f6sung von 4 <em>mG <\/em>\/Bit.  <\/p>\n\n<p class=\"wp-block-paragraph\">Da wir die Gravitation in unseren Daten nicht wirklich brauchen, k\u00f6nnen wir den integrierten Hochpassfilter des <strong>LIS2DH12 <\/strong>anwenden, um nur die Vibrationen im Signal zu erhalten. Wir k\u00f6nnen die Daten etwas komprimieren, indem wir sie auf 8 Bit inklusive Vorzeichen beschneiden. Das ergibt eine Amplitude von +- 0,5 <em>G<\/em>, was mehr als genug sein sollte \u2013 aber das sehen wir gleich.  <\/p>\n\n<p class=\"wp-block-paragraph\">Unsere Datenrate wird damit 3 * 400 Byte pro Sekunde betragen, also 1,2 kB\/s. Das sollte sich \u00fcber <strong>GATT<\/strong> streamen lassen. Probieren wir\u2019s aus.  <\/p>\n\n<h2 class=\"wp-block-heading\">Anpassen der Anwendung, um die Daten zu streamen<\/h2>\n\n<p class=\"wp-block-paragraph\">Der Prozess zum Erstellen einer Custom-Firmware ist derselbe wie beim <a href=\"https:\/\/ruuvi.com\/custom-ruuvi-data-format-in-a-day\/\" target=\"_blank\" rel=\"noreferrer noopener\">Battery Data Collector<\/a>. Diesmal m\u00fcssen wir au\u00dferdem die Treiber etwas anpassen: Der <strong>LIS2DH12 <\/strong>-Treiber unterst\u00fctzt nur eine Abtastrate von 200 <em>Hz<\/em>. <\/p>\n\n<pre class=\"wp-block-code\"><code>diff interfaces\/acceleration\/ruuvi_interface_lis2dh12.c\ndiff --git a\/interfaces\/acceleration\/ruuvi_interface_lis2dh12.c b\/interfaces\/acceleration\/ruuvi_interface_lis2dh12.c\nindex 1913d9c..083fcc9 100644\n--- a\/interfaces\/acceleration\/ruuvi_interface_lis2dh12.c\n+++ b\/interfaces\/acceleration\/ruuvi_interface_lis2dh12.c\n@@ -235,7 +235,7 @@ ruuvi_driver_status_t ruuvi_interface_lis2dh12_samplerate_set(uint8_t* samplerat\n\n   if(RUUVI_DRIVER_SENSOR_CFG_NO_CHANGE == *samplerate)   {}\n   else if(RUUVI_DRIVER_SENSOR_CFG_MIN == *samplerate)    { dev.samplerate = LIS2DH12_ODR_1Hz;   }\n-  else if(RUUVI_DRIVER_SENSOR_CFG_MAX == *samplerate)    { dev.samplerate = LIS2DH12_ODR_200Hz; }\n+  else if(RUUVI_DRIVER_SENSOR_CFG_MAX == *samplerate)    { dev.samplerate = LIS2DH12_ODR_400Hz; }\n   else if(RUUVI_DRIVER_SENSOR_CFG_DEFAULT == *samplerate){ dev.samplerate = LIS2DH12_ODR_1Hz;   }\n   else if(1   == *samplerate)                            { dev.samplerate = LIS2DH12_ODR_1Hz;   }\n   else if(10  &gt;= *samplerate)                            { dev.samplerate = LIS2DH12_ODR_10Hz;  }\n@@ -288,6 +288,10 @@ ruuvi_driver_status_t ruuvi_interface_lis2dh12_samplerate_get(uint8_t* samplerat\n       *samplerate = 200;\n       break;\n\n+    case LIS2DH12_ODR_400Hz:\n+      *samplerate = RUUVI_DRIVER_SENSOR_CFG_MAX;\n+      break;\n+\n     default:\n       *samplerate = RUUVI_DRIVER_SENSOR_ERR_NOT_SUPPORTED;\n       err_code |=  RUUVI_DRIVER_ERROR_INTERNAL;<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/gist.githubusercontent.com\/ojousima\/173f7f27f80851dbc7b59a5590b8436c\/raw\/8ac9eddf7bea75db52e5141375d9337feaf71f6b\/acceleration_diff\">Rohdaten auf GitHub ansehen<\/a><\/p>\n\n<p class=\"wp-block-paragraph\">Dann konfigurieren wir den Beschleunigungssensor so, dass er <strong>HIGH_PASS <\/strong>-Filterung und 400 <em>Hz <\/em>Abtastrate in <em>application_config.h<\/em> verwendet<\/p>\n\n<pre class=\"wp-block-code\"><code>\/**\n * Accelerometer configuration\n **\/\n#ifndef APPLICATION_ACCELERATION_CONFIGURED\n  \/\/ 1, 10, 25, 50, 100, 200 for LIS2DH12\n  #define APPLICATION_ACCELEROMETER_SAMPLERATE RUUVI_DRIVER_SENSOR_CFG_MAX\n\n  \/\/ 8, 10, 12 for LIS2DH12\n  #define APPLICATION_ACCELEROMETER_RESOLUTION 10\n\n  \/\/ 2, 4, 8, 16 for LIS2DH12\n  #define APPLICATION_ACCELEROMETER_SCALE   RUUVI_DRIVER_SENSOR_CFG_MIN\n\n  \/\/ LAST or HIGH_PASS\n  #define APPLICATION_ACCELEROMETER_DSPFUNC RUUVI_DRIVER_SENSOR_DSP_HIGH_PASS\n  #define APPLICATION_ACCELEROMETER_DSPPARAM 1\n\n  \/\/ SLEEP or CONTINUOUS\n  #define APPLICATION_ACCELEROMETER_MODE RUUVI_DRIVER_SENSOR_CFG_CONTINUOUS\n\n  \/\/ Up to scale\n  #define APPLICATION_ACCELEROMETER_ACTIVITY_THRESHOLD 0.100f\n#endif<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/gist.githubusercontent.com\/ojousima\/592f9f025ee9822377c35217b55dd66d\/raw\/8b52901f5c96d410c76db53d26ceb47c0cc50f19\/acceleration_config.h\">Rohdaten auf GitHub ansehen<\/a><\/p>\n\n<p class=\"wp-block-paragraph\">Das \u00dcbertragen aller Daten erfordert etwas \u00dcberlegung. Wir f\u00fcgen einen Ringpuffer hinzu, der zu sendende Samples speichert, sowie einen Task, der Samples aus dem Ringpuffer verarbeitet. So haben wir etwas Spielraum bei der Daten\u00fcbertragung: Wir k\u00f6nnen ein paar <strong>FIFO<\/strong>-Puffer des Beschleunigungssensors im <strong>RAM <\/strong>des Tags speichern und sp\u00e4ter verarbeiten.  <\/p>\n\n<p class=\"wp-block-paragraph\">Das Datenformat ist einfach: Wir beschneiden die Daten auf den Bereich +- 125 und setzen die Einheit auf 4 <em>mG <\/em>pro Bit. Dann f\u00fcgen wir X-, Y- und Z-Achsenwerte in 6 Sets pro \u00dcbertragung hinzu, insgesamt 18 Byte pro \u00dcbertragung. <\/p>\n\n<p class=\"wp-block-paragraph\">Da der <strong>ADC <\/strong>f\u00fcr diese Anwendung nicht ben\u00f6tigt wird, entfernen wir das <strong>ADC <\/strong>-Sampling nach Funk\u00fcbertragungen. Au\u00dferdem setzen wir das maximale Verbindungsintervall in<em> application_config.h<\/em> auf 15 ms. <\/p>\n\n<p class=\"wp-block-paragraph\">Zum Sammeln der Daten verwenden wir Nordics nRF Connect und nRF Logger. Wir scannen nach dem Tag \u201eRuuvi\u201c, verbinden uns und abonnieren eingehende Notifications der TX-Characteristic des Nordic UART Service. <\/p>\n\n<p class=\"wp-block-paragraph\">Das Parsen der Daten aus dem nRF-Logger-Log erfordert etwas Arbeit: Im Grunde <a href=\"https:\/\/en.wikipedia.org\/wiki\/Regular_expression\" target=\"_blank\" rel=\"noreferrer noopener\">RegEx<\/a>en wir alles heraus, was nicht 18 Byte sind, die durch Bindestriche getrennt sind, und ersetzen dann drei Byte mit nachfolgendem Bindestrich durch die Bytes, getrennt durch Bindestriche, plus einen Zeilenumbruch. So bleiben 3 Spalten \u00fcbrig, die X-, Y- und Z-Achsen als vorzeichenbehaftete 8-Bit-Integer in 4-<em>mG <\/em>-Einheiten enthalten. Schlie\u00dflich ersetzen wir die Bindestriche durch Kommas, um die Daten in <a href=\"https:\/\/www.scilab.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Scilab<\/a> zu laden.  <\/p>\n\n<p class=\"wp-block-paragraph\">Der erste RegEx matcht eine Zeile mit den Hex-Daten; wir speichern nur die Capture-Group pro Zeile. Die zweite Zeile matcht alles au\u00dfer den Hex-Daten; diese Zeilen k\u00f6nnen wir l\u00f6schen. Ich habe daf\u00fcr pers\u00f6nlich Suchen und Ersetzen in Sublime Text verwendet, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Sed\" target=\"_blank\" rel=\"noreferrer noopener\">Sed<\/a> w\u00e4re nat\u00fcrlich leichter hier zu reproduzieren.  <\/p>\n\n<pre class=\"wp-block-preformatted\">.*\\(0x\\) (..-..-..-..-..-..-..-..-..-..-..-..-..-..-..-..-..-..)<br\/>^(?!(..-..-..-..-..-..-..-..-..-..-..-..-..-..-..-..-..-..)).*<\/pre>\n\n<p class=\"wp-block-paragraph\">Dann m\u00fcssen wir die Daten tats\u00e4chlich plotten. Scilab behandelt die Hex-Strings als unsigned, daher m\u00fcssen wir sie nach dem Laden in signed Werte umwandeln. <\/p>\n\n<pre class=\"wp-block-preformatted\">strings = read_csv(\"data.csv\");<br\/>numbers = hex2dec(strings);<br\/>[rows cols] = size(numbers);<br\/> <br\/>for i=1:rows<br\/> for j=1:cols<br\/> if(numbers(i,j) &gt; 127)<br\/> numbers(i,j) = numbers(i,j) -256;<br\/> end<br\/> end<br\/>endplot(numbers);<\/pre>\n\n<p class=\"wp-block-paragraph\">Und hier sind wir mit Daten von einem stillstehenden Tag. Die Daten zeigen etwas Rauschen, bis zu 2 <strong>LSB <\/strong>oder 12 <em>mG.<\/em> <\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"371\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-still-data.png\" alt=\"Diagramm, das zeigt, dass Rauschen in den Daten sichtbar ist\" class=\"wp-image-2930\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-still-data.png 473w, https:\/\/ruuvi.com\/i\/u\/graph-still-data-450x353.png 450w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><figcaption>Tag steht still, Rauschen ist in den Daten sichtbar.<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Schauen wir, wie es aussieht, wenn man ihn in der Hand h\u00e4lt.<\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"297\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-hand-data-1024x297.png\" alt=\"Diagramm, das Daten vom Tag in der Hand zeigt\" class=\"wp-image-2931\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-hand-data-1024x297.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-hand-data-450x130.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-hand-data-768x223.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-hand-data-600x174.png 600w, https:\/\/ruuvi.com\/i\/u\/graph-hand-data.png 1387w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Tag in der Hand<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Bis hierhin sieht\u2019s gut aus.<\/p>\n\n<h2 class=\"wp-block-heading\">Fangen wir mit dem Messen an<\/h2>\n\n<p class=\"wp-block-paragraph\">In der Mitte der R\u00fcckplatte meines W\u00e4schetrockners gibt es eine sch\u00f6ne, ebene Fl\u00e4che \u2013 dort sammeln wir unsere Daten. Der Tag ist mit einem doppelseitigen 3M-VHB-Klebeband befestigt. <\/p>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1919\" height=\"2560\" src=\"https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-1-scaled.jpg\" alt=\"Ruuvi Tag auf der R&#xFC;ckseite eines W&#xE4;schetrockners\" class=\"wp-image-2932\" srcset=\"https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-1-scaled.jpg 1919w, https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-1-scaled-337x450.jpg 337w, https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-1-scaled-768x1025.jpg 768w, https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-1-scaled-1151x1536.jpg 1151w, https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-1-scaled-1535x2048.jpg 1535w, https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-1-scaled-600x800.jpg 600w\" sizes=\"auto, (max-width: 1919px) 100vw, 1919px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1919\" height=\"2560\" src=\"https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-2-scaled.jpg\" alt=\"Ruuvi Tag auf der R&#xFC;ckseite eines W&#xE4;schetrockners\" class=\"wp-image-2933\" srcset=\"https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-2-scaled.jpg 1919w, https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-2-scaled-337x450.jpg 337w, https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-2-scaled-768x1025.jpg 768w, https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-2-scaled-1151x1536.jpg 1151w, https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-2-scaled-1535x2048.jpg 1535w, https:\/\/ruuvi.com\/i\/u\/ruuvitag-washingmachine-2-scaled-600x800.jpg 600w\" sizes=\"auto, (max-width: 1919px) 100vw, 1919px\" \/><\/figure>\n<\/div>\n<\/div>\n\n<p class=\"wp-block-paragraph\">Wir starten ein 13-min\u00fctiges Trockenprogramm, das die Trommel dreht. Schauen wir, wie die Daten aussehen: <\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"573\" height=\"414\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-laundromat.png\" alt=\"Diagramm, das Vibrationen vom W&#xE4;schetrockner zeigt\" class=\"wp-image-2934\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-laundromat.png 573w, https:\/\/ruuvi.com\/i\/u\/graph-laundromat-450x325.png 450w\" sizes=\"auto, (max-width: 573px) 100vw, 573px\" \/><figcaption>Das ist nicht besonders aussagekr\u00e4ftig.<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Ein kurzer Blick best\u00e4tigt, dass unsere Skalierung gut gew\u00e4hlt war: Die Vibration liegt jederzeit unter 80 <em>mG <\/em>, wir laufen also nicht Gefahr, dass es zum Clipping kommt. Lass uns etwas analysieren, um zu sehen, ob wir noch mehr aus den Daten herauslesen k\u00f6nnen. <\/p>\n\n<p class=\"wp-block-paragraph\">Zuerst teilen wir die Daten in 30-Sample-Bl\u00f6cke und berechnen das <strong>RMS <\/strong>der Bl\u00f6cke. Scilab hat daf\u00fcr keine fertige Funktion, aber ein Matlab-Community-<a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/11871-signal-rms\" target=\"_blank\" rel=\"noreferrer noopener\">Script<\/a> zu portieren ist ein Kinderspiel. <\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"372\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-RMS-acceleration.png\" alt=\"Diagramm, das RMS-Beschleunigung zeigt\" class=\"wp-image-2935\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-RMS-acceleration.png 494w, https:\/\/ruuvi.com\/i\/u\/graph-RMS-acceleration-450x339.png 450w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><figcaption>Y-Achse ist die RMS-Beschleunigung in mG, X-Achse ist die Anzahl der 30-Sample-Serien. Blau ist X-Beschleunigung, Gr\u00fcn ist Y-Beschleunigung, Rot ist Z-Beschleunigung. <\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Etwas \u00fcberraschend hat die Z-Achse, also nach au\u00dfen von der Trommel weg, die h\u00f6chste Beschleunigung. Vielleicht liegt das daran, dass es keine st\u00fctzende Struktur gibt? Ebenso hatte ich erwartet, dass X- und Y-Achse identisch sind, aber sie haben unterschiedliche Amplituden und sogar unterschiedliches Verhalten: Die Beschleunigung der Trommel ist nahe Serie 3000 in den roten und gr\u00fcnen Linien klar zu sehen, aber nicht in Blau.  <\/p>\n\n<p class=\"wp-block-paragraph\">Die blaue Amplitude scheint stetig zu wachsen: Vielleicht liegt das daran, dass die W\u00e4sche trocknet, leichter wird und mehr Bewegung zul\u00e4sst?<\/p>\n\n<p class=\"wp-block-paragraph\">Zum Schluss der Klassiker der Signalanalyse: <strong>FFT<\/strong>. In diesem Fall nehmen wir eine Abk\u00fcrzung und lassen die <strong>FFT <\/strong>\u00fcber das gesamte Signal laufen, was etwas unehrlich ist, da es im Programm mindestens 5 unterschiedliche Phasen gibt. <\/p>\n\n<ul class=\"wp-block-list\"><li>Start (still)<\/li><li>Start (Beschleunigen)<\/li><li>Lauf (volle Geschwindigkeit)<\/li><li>Stopp<\/li><li>Klappe \u00f6ffnen<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Jetzt werden all diese Signale zu einem einzigen zusammengeworfen. Unabh\u00e4ngig davon erhalten wir, wenn wir <a href=\"https:\/\/linuxhint.com\/scilab_fft\/\" target=\"_blank\" rel=\"noreferrer noopener\">diesem Link<\/a> zur <strong>FFT <\/strong>-Erzeugung und <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/answers\/162846-amplitude-of-signal-after-fft-operation\" target=\"_blank\" rel=\"noreferrer noopener\">diesem Link<\/a> zur Amplitudennormalisierung folgen, eine Darstellung der Frequenzen in der Beschleunigung. <\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"353\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-FFT.png\" alt=\"Diagramm, das die FFT der W&#xE4;schetrockner-Vibration zeigt\" class=\"wp-image-2936\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-FFT.png 494w, https:\/\/ruuvi.com\/i\/u\/graph-FFT-450x322.png 450w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><figcaption>FFT der W\u00e4schetrockner-Vibration<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Allerdings sagt uns diese Datenlage nicht wirklich viel. Sind 0,25 <em>mG <\/em>Beschleunigung bei 45 <em>Hz <\/em>viel? Ist das schlecht? Ist das gut? War das schon immer da? Lass uns mit <a href=\"https:\/\/en.wikipedia.org\/wiki\/Spectrogram\" target=\"_blank\" rel=\"noreferrer noopener\">Spektrogrammen<\/a> tiefer graben. Scilab hat zwar eine Time-Frequency-Toolbox mit Unterst\u00fctzung f\u00fcr Spektrogramme, aber ich habe es wegen fehlender <strong>.DLL<\/strong>s nicht geschafft, sie zu installieren. Daher wechseln wir zu Octave:       <\/p>\n\n<pre class=\"wp-block-preformatted\">numbers = csvread(\"csvout.csv\");<br\/>Fs = 400;<br\/>window = ceil(100*Fs\/1000);<br\/>pkg load signal;<br\/>t = 0:1\/Fs:(length(numbers(:,1))-1)\/Fs;subplot(2, 2, 1);<br\/>width = 0.1;<br\/>rc = 5e-3;<br\/>[wx w] = movingrms(numbers, width, rc, Fs);<br\/>plot(t, wx);<br\/>subplot(2, 2, 2);<br\/>specgram(numbers(:,1), 2^nextpow2(window), Fs, window);<br\/>subplot(2, 2, 3);<br\/>specgram(numbers(:,2), 2^nextpow2(window), Fs, window);<br\/>subplot(2, 2, 4);<br\/>specgram(numbers(:,3), 2^nextpow2(window), Fs, window);<\/pre>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-movement-1024x768.png\" alt=\"Diagramme, die RMS-Signale zeigen\" class=\"wp-image-2929\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-movement-1024x768.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-movement-450x338.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-movement-768x576.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-movement-600x450.png 600w, https:\/\/ruuvi.com\/i\/u\/graph-movement.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>RMS-Signale oben links und Spektrogramm der X-, Y- und Z-Achse oben rechts, unten links bzw. unten rechts.<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Was sagen uns diese Spektrogramme also? Ich pers\u00f6nlich sehe nichts wirklich Auff\u00e4lliges in den Daten, obwohl ich erwartet hatte, dass die 600 <strong>RPM <\/strong>deutlicher zu sehen sind. Es scheint, dass die Hauptkomponenten im Bereich knapp unter 50 <em>Hz <\/em>und knapp unter 100 <em>Hz<\/em> liegen; wahrscheinlich h\u00e4ngen sie \u00fcber eine harmonische Wechselwirkung zusammen. Ich bin allerdings kein Maschinenbauingenieur \u2013 melde dich gern, wenn du Ideen hast, was uns die Daten sagen.   <\/p>\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n<p class=\"wp-block-paragraph\">Wir haben jetzt Firmware und Algorithmen, um Vibrationsdaten aus Maschinen auszulesen. Allerdings wissen wir bisher nur, wie eine \u201egesunde\u201c Maschine aussieht. Der n\u00e4chste Schritt w\u00e4re, Maschinen gezielt zu verschlei\u00dfen, damit wir das Signal identifizieren k\u00f6nnen, das einem Ausfall vorausgeht, und einen Algorithmus entwickeln, der den Zustand direkt im RuuviTag \u00fcberwacht. <\/p>\n\n<p class=\"wp-block-paragraph\">Die hier entwickelte Software wird nicht als <strong>DFU <\/strong>-Paket verf\u00fcgbar sein, da sie auf Nordic SDK15.2 aufbaut, w\u00e4hrend RuuviTags mit SDK12.3 ausgeliefert werden. Wir ver\u00f6ffentlichen aber die <a href=\"https:\/\/github.com\/ojousima\/ojousima.logger.c\/tree\/acceleration_streamer\" target=\"_blank\" rel=\"noreferrer noopener\">Quellen<\/a> und das <a href=\"https:\/\/github.com\/ojousima\/ojousima.logger.c\/releases\/download\/1.0.0\/acceleration_streamer_sd_app_1.0.0.hex\" target=\"_blank\" rel=\"noreferrer noopener\">kompilierte Binary<\/a>, damit du es auf deinen Tag flashen kannst, wenn du eine kabelgebundene Verbindung hast.<\/p>\n\n<p class=\"wp-block-paragraph\">Wenn du ein Business rund um Predictive Maintenance aufbauen willst, schreib uns an <em>info@ruuvi.com<\/em> \u2013 wir helfen dir gern beim Start!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wonach suchen wir? Viele Leute fragen uns nach fortgeschritteneren Einsatzm\u00f6glichkeiten f\u00fcr den Beschleunigungssensor im RuuviTag. Eine davon ist die \u00dcberwachung von Vibrationen, um festzustellen, ob eine Maschine an- oder ausgeschaltet ist, und sogar, um vorausschauende Wartung an Maschinen zu betreiben. Statt einfach loszurennen und hier und da RuuviTags zu verteilen, ist es wichtig herauszufinden, welche [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":135723,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[347,324],"tags":[],"class_list":["post-135722","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-anwendungsfalle-fur-bewegungserfassung","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>Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag \u2013 Ruuvi<\/title>\n<meta name=\"description\" content=\"\u00dcberwache die Vibrationen eines Elektromotors mit dem Bluetooth-Sensor RuuviTag und einer Custom-Firmware, die als drahtloser Vibrationssensor fungiert\" \/>\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\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag \u2013 Ruuvi\" \/>\n<meta property=\"og:description\" content=\"\u00dcberwache die Vibrationen eines Elektromotors mit dem Bluetooth-Sensor RuuviTag und einer Custom-Firmware, die als drahtloser Vibrationssensor fungiert\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/\" \/>\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-12-18T13:40: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\/graph-movement.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"8\u00a0Minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/\"},\"author\":{\"name\":\"Otso Jousimaa\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#\\\/schema\\\/person\\\/143b8e2a095f1e6484b9186673c9ec00\"},\"headline\":\"Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag\",\"datePublished\":\"2018-12-18T13:40:00+00:00\",\"dateModified\":\"2026-06-11T04:33:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/\"},\"wordCount\":1320,\"image\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/graph-movement.png\",\"articleSection\":[\"Anwendungsf\u00e4lle f\u00fcr Bewegungserfassung\",\"Ruuvi-Software-Artikel\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/\",\"url\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/\",\"name\":\"Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag \u2013 Ruuvi\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/graph-movement.png\",\"datePublished\":\"2018-12-18T13:40:00+00:00\",\"dateModified\":\"2026-06-11T04:33:52+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#\\\/schema\\\/person\\\/143b8e2a095f1e6484b9186673c9ec00\"},\"description\":\"\u00dcberwache die Vibrationen eines Elektromotors mit dem Bluetooth-Sensor RuuviTag und einer Custom-Firmware, die als drahtloser Vibrationssensor fungiert\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/graph-movement.png\",\"contentUrl\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/graph-movement.png\",\"width\":1200,\"height\":900,\"caption\":\"RMS-Signale oben links und Spektrogramm der X-, Y- und Z-Achse oben rechts, unten links bzw. unten rechts.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/front\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag\"}]},{\"@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":"Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag \u2013 Ruuvi","description":"\u00dcberwache die Vibrationen eines Elektromotors mit dem Bluetooth-Sensor RuuviTag und einer Custom-Firmware, die als drahtloser Vibrationssensor fungiert","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\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/","og_locale":"de_DE","og_type":"article","og_title":"Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag \u2013 Ruuvi","og_description":"\u00dcberwache die Vibrationen eines Elektromotors mit dem Bluetooth-Sensor RuuviTag und einer Custom-Firmware, die als drahtloser Vibrationssensor fungiert","og_url":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/","og_site_name":"Ruuvi","article_publisher":"https:\/\/www.facebook.com\/ruuvi.cc","article_published_time":"2018-12-18T13:40:00+00:00","article_modified_time":"2026-06-11T04:33:52+00:00","og_image":[{"width":1200,"height":900,"url":"https:\/\/ruuvi.com\/i\/u\/graph-movement.png","type":"image\/png"}],"author":"Otso Jousimaa","twitter_card":"summary_large_image","twitter_creator":"@ruuvicom","twitter_site":"@ruuvicom","twitter_misc":{"Verfasst von":"Otso Jousimaa","Gesch\u00e4tzte Lesezeit":"8\u00a0Minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/#article","isPartOf":{"@id":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/"},"author":{"name":"Otso Jousimaa","@id":"https:\/\/ruuvi.com\/de\/#\/schema\/person\/143b8e2a095f1e6484b9186673c9ec00"},"headline":"Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag","datePublished":"2018-12-18T13:40:00+00:00","dateModified":"2026-06-11T04:33:52+00:00","mainEntityOfPage":{"@id":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/"},"wordCount":1320,"image":{"@id":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/#primaryimage"},"thumbnailUrl":"https:\/\/ruuvi.com\/i\/u\/graph-movement.png","articleSection":["Anwendungsf\u00e4lle f\u00fcr Bewegungserfassung","Ruuvi-Software-Artikel"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/","url":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/","name":"Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag \u2013 Ruuvi","isPartOf":{"@id":"https:\/\/ruuvi.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/#primaryimage"},"image":{"@id":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/#primaryimage"},"thumbnailUrl":"https:\/\/ruuvi.com\/i\/u\/graph-movement.png","datePublished":"2018-12-18T13:40:00+00:00","dateModified":"2026-06-11T04:33:52+00:00","author":{"@id":"https:\/\/ruuvi.com\/de\/#\/schema\/person\/143b8e2a095f1e6484b9186673c9ec00"},"description":"\u00dcberwache die Vibrationen eines Elektromotors mit dem Bluetooth-Sensor RuuviTag und einer Custom-Firmware, die als drahtloser Vibrationssensor fungiert","breadcrumb":{"@id":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/#primaryimage","url":"https:\/\/ruuvi.com\/i\/u\/graph-movement.png","contentUrl":"https:\/\/ruuvi.com\/i\/u\/graph-movement.png","width":1200,"height":900,"caption":"RMS-Signale oben links und Spektrogramm der X-, Y- und Z-Achse oben rechts, unten links bzw. unten rechts."},{"@type":"BreadcrumbList","@id":"https:\/\/ruuvi.com\/de\/motor-vibration-monitoring-with-bluetooth-sensor-ruuvitag\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ruuvi.com\/de\/front\/"},{"@type":"ListItem","position":2,"name":"Vibrations\u00fcberwachung mit Bluetooth-Sensor RuuviTag"}]},{"@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\/135722","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=135722"}],"version-history":[{"count":1,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/posts\/135722\/revisions"}],"predecessor-version":[{"id":135727,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/posts\/135722\/revisions\/135727"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/media\/135723"}],"wp:attachment":[{"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/media?parent=135722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/categories?post=135722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/tags?post=135722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}