{"id":135702,"date":"2019-04-20T15:10:00","date_gmt":"2019-04-20T12:10:00","guid":{"rendered":"https:\/\/ruuvi.com\/bluetooth-beacon-maximum-density\/"},"modified":"2026-06-11T07:32:40","modified_gmt":"2026-06-11T04:32:40","slug":"bluetooth-beacon-maximum-density","status":"publish","type":"post","link":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/","title":{"rendered":"Maximale Bluetooth-Beacon-Dichte"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"350\" src=\"https:\/\/ruuvi.com\/i\/u\/monitor-meme.jpg\" alt=\"Meme, das darauf hinweist, dass alles &#xFC;berwacht werden sollte\" class=\"wp-image-2910\" srcset=\"https:\/\/ruuvi.com\/i\/u\/monitor-meme.jpg 494w, https:\/\/ruuvi.com\/i\/u\/monitor-meme-450x319.jpg 450w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><figcaption>Finden wir die Grenzen dessen, was wir messen k\u00f6nnen<\/figcaption><\/figure><\/div>\n\n<h2 class=\"wp-block-heading\">Wie viele Bluetooth-Beacons kann ich an einem Ort haben?<\/h2>\n\n<p class=\"wp-block-paragraph\">Immer wieder fragt jemand, wie viele <a href=\"https:\/\/ruuvi.com\/de\/ruuvitag\/\" target=\"_blank\" rel=\"noreferrer noopener\">RuuviTag Bluetooth-Sensor-Beacons<\/a> er im Bereich eines einzelnen Gateways haben kann. Ist es machbar, jede Kiste in einem Lagerhaus zu \u00fcberwachen? Jede einzelne Milchpackung in diesen Kisten?  <\/p>\n\n<p class=\"wp-block-paragraph\">Es stellt sich heraus, dass es keine exakte Antwort gibt, da die Daten in eigenst\u00e4ndigen Paketen gesendet werden. Die Frage lautet: Mit welcher Rate k\u00f6nnen Bluetooth Low-Energy (BLE)-Pakete empfangen werden? <\/p>\n\n<h2 class=\"wp-block-heading\">Theoretisches Maximum von Bluetooth-Beacons<\/h2>\n\n<p class=\"wp-block-paragraph\">Bluetooth-Advertisements werden auf drei separaten Frequenzkan\u00e4len gesendet, bekannt als 37, 38 und 39. Texas Instruments hat eine <a href=\"http:\/\/www.ti.com\/lit\/an\/swra475a\/swra475a.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">ausgezeichnete Einf\u00fchrung<\/a> zu den Kan\u00e4len und zum Advertising, falls du an tiefergehenden Details interessiert bist. <\/p>\n\n<p class=\"wp-block-paragraph\">Die minimale Gr\u00f6\u00dfe eines Advertisement-Pakets betr\u00e4gt 80 Bit (oder 10 Byte) und enth\u00e4lt:<\/p>\n\n<ul class=\"wp-block-list\"><li>Pr\u00e4ambel: 1 Byte<\/li><li>Zugriffsadresse: 4 Byte<\/li><li>Header: 2 Byte<\/li><li>CRC: 3 Byte<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Angenommen, wir wollen das Spektrum nur mit g\u00fcltigen BLE-Advertisement-Daten f\u00fcllen und irgendwie alle Ger\u00e4te perfekt synchronisieren, k\u00f6nnten wir diese Pakete auf jedem Kanal senden und jeden Kanal separat empfangen. Der limitierende Faktor w\u00e4re die Datenrate von BLE 4, die <br\/>1 <em>Mbit<\/em> \/ <em>s<\/em> betr\u00e4gt. <\/p>\n\n<p class=\"wp-block-paragraph\">Insgesamt w\u00e4ren das 1.000.000 <em>Bit<\/em> \/ <em>s<\/em> geteilt durch 80 <em>Bit<\/em> \/ <em>s<\/em> mal 3 Kan\u00e4le, oder <br\/>37.500 \u00dcbertragungen pro Sekunde. Es gibt jedoch zahlreiche praktische Grenzen, angefangen bei unserem Gateway, das wahrscheinlich nur auf einem Kanal scannt. <\/p>\n\n<h2 class=\"wp-block-heading\">Praktische Grenzen der Paketrate bei Bluetooth<\/h2>\n\n<h3 class=\"wp-block-heading\">Kan\u00e4le<\/h3>\n\n<p class=\"wp-block-paragraph\">Da die Sensor-Beacons als einzelne Komponente und nicht als integriertes System geliefert werden, m\u00fcssen wir auf allen Kan\u00e4len werben, um sicherzustellen, dass wir den Kanal treffen, auf dem unser Gateway gerade lauscht. Da wir auf jedem Kanal dieselbe Werbung senden m\u00fcssen, k\u00f6nnen wir kein Multiplexing \u00fcber drei Kan\u00e4le verwenden, und die 37.500 \u00dcbertragungen werden durch drei auf 12.500 reduziert. <\/p>\n\n<h3 class=\"wp-block-heading\">Datengr\u00f6\u00dfe<\/h3>\n\n<p class=\"wp-block-paragraph\">Unsere urspr\u00fcngliche Annahme war, dass die Datengr\u00f6\u00dfe eines Pakets 80 Bit betr\u00e4gt. Das ist jedoch \u00fcberhaupt nicht n\u00fctzlich \u2013 diese 80 Bit enthalten nicht einmal die MAC-Adresse des Beacons. Seien wir vorsichtiger mit der Sch\u00e4tzung der Datengr\u00f6\u00dfe und verwenden wir die vollen 376 Bit eines BLE 4 Advertisements. Dies begrenzt uns auf 2.659 Pakete pro Sekunde.   <\/p>\n\n<h3 class=\"wp-block-heading\">Synchronisation<\/h3>\n\n<p class=\"wp-block-paragraph\">Bluetooth verf\u00fcgt \u00fcber keinen Mechanismus zur Synchronisierung der Beacons, um die Bandbreite gleichm\u00e4\u00dfig auf alle Ger\u00e4te aufzuteilen. Die Beacons senden stattdessen zu zuf\u00e4lligen Zeitpunkten, in der Hoffnung, andere St\u00f6rungen zumindest die meiste Zeit zu vermeiden. Nat\u00fcrlich sinkt die Wahrscheinlichkeit, andere Pakete zu verpassen, wenn der Datenverkehr in den B\u00e4ndern zunimmt. Nordic Devzone hat eine <a href=\"https:\/\/devzone.nordicsemi.com\/f\/nordic-q-a\/13685\/how-to-deal-with-broadcasting-collision\" target=\"_blank\" rel=\"noreferrer noopener\">ausgezeichnete Antwort<\/a> zur Sch\u00e4tzung der Kollisionswahrscheinlichkeit: Im Wesentlichen gehen wir davon aus, dass, wenn zwei Pakete auf einem Kanal kollidieren, beide verloren gehen. Die Kollisionswahrscheinlichkeit wird zwischen zwei Advertisern basierend auf der Sendezeit eines Pakets und dem \u00dcbertragungsintervall berechnet.    <\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"322\" src=\"https:\/\/ruuvi.com\/i\/u\/single-transmittor-transfare-1024x322.png\" alt=\"Grafik, die anzeigt, dass ein einzelnes Paket in 650 Mikrosekunden &#xFC;bertragen wird\" class=\"wp-image-2911\" srcset=\"https:\/\/ruuvi.com\/i\/u\/single-transmittor-transfare-1024x322.png 1024w, https:\/\/ruuvi.com\/i\/u\/single-transmittor-transfare-450x141.png 450w, https:\/\/ruuvi.com\/i\/u\/single-transmittor-transfare-768x241.png 768w, https:\/\/ruuvi.com\/i\/u\/single-transmittor-transfare-1536x482.png 1536w, https:\/\/ruuvi.com\/i\/u\/single-transmittor-transfare-2048x643.png 2048w, https:\/\/ruuvi.com\/i\/u\/single-transmittor-transfare-600x188.png 600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Ein einzelnes Paket wird in 650 Mikrosekunden \u00fcbertragen.<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">W\u00e4hrend das theoretische Modell, das auf der Modulationsgeschwindigkeit basiert, vorhersagt, dass eine einzelne \u00dcbertragung auf einem einzelnen Kanal 376 Mikrosekunden dauert, werden wir etwas praktischer und messen die Zeit vom Stromanstieg bis zum Stromabfall in einem Advertisement. Die Ergebnisse variieren etwas, da sie vom genauen Zeitpunkt der Probenahme abh\u00e4ngen, aber wir w\u00e4hlen 650 Mikrosekunden als unseren gemessenen Wert. <\/p>\n\n<p class=\"wp-block-paragraph\">Wir w\u00e4hlen eine Sekunde als unser Intervall, da wir herausfinden wollen, wie viele Advertisements wir in einer Sekunde empfangen k\u00f6nnen. Unsere Wahrscheinlichkeit, Pakete zu kollidieren P(<em>Treffer<\/em>) betr\u00e4gt 2 * 65e-5 \/ 1, was 0,13 % entspricht. Unsere Wahrscheinlichkeit, andere Pakete nicht zu treffen P(<em>Verpassen<\/em>) ist dann 1 &#8211; P(<em>Treffer<\/em>), oder 99,87 %.  <\/p>\n\n<p class=\"wp-block-paragraph\">Da die Beacons unabh\u00e4ngig sind, k\u00f6nnen wir die Wahrscheinlichkeit, keines der <em>N<\/em> Beacons zu treffen, als zusammengesetzte Wahrscheinlichkeit berechnen, ein Beacon nicht zu treffen: P(alle_verpassen) = P(verpassen)^<em>N-1. <\/em>Wir werden den Gesamtdurchsatz von Beacons, die Pakete einmal pro Sekunde senden, mit <a href=\"https:\/\/www.scilab.org\" target=\"_blank\" rel=\"noreferrer noopener\">Scilab<\/a> plotten.<\/p>\n\n<pre class=\"wp-block-preformatted\">N = 1:1:5000;<br\/>throughput = zeros(1, 5000);<br\/>Pmiss = 1 - (2*65*10^-5);<br\/>for i=1:1:length(N)<br\/>  Pmiss_all = Pmiss^(i-1);<br\/>  throughput(1, i) = i * Pmiss_all;<br\/>end<br\/>plot(N, throughput)<br\/>[v, i] = max(throughput)<br\/>a = gca();<br\/>a.font_size = 5;<br\/>a.x_label.text = string(\"Anzahl der Beacons\") ;  <br\/>a.x_label.font_size = 6;  <br\/>a.y_label.text = \"Durchsatz (N\/s)\";<br\/>a.y_label.font_size = 6;  <br\/>e=gce();<br\/>p1=e.children(1);<br\/>t=datatipCreate(p1,769);<br\/>t.font_size = 5;<\/pre>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"778\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-number-beacons-1024x778.png\" alt=\"Grafik, die die Anzahl der verwendeten Beacons anzeigt\" class=\"wp-image-2912\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-number-beacons-1024x778.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-number-beacons-450x342.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-number-beacons-768x584.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-number-beacons-600x456.png 600w, https:\/\/ruuvi.com\/i\/u\/graph-number-beacons.png 1124w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Unsere magische Zahl scheint 769 \u00dcbertragungen pro Sekunde zu sein, wobei etwa 2\/3 der Pakete verloren gehen<\/figcaption><\/figure><\/div>\n\n<h3 class=\"wp-block-heading\">Gateway und Hintergrundrauschen<\/h3>\n\n<p class=\"wp-block-paragraph\">Zus\u00e4tzlich zu den Beacons selbst gibt es immer ein gewisses Hintergrundrauschen, das die Anzahl der Pakete begrenzt, die wir empfangen k\u00f6nnen. Ebenso k\u00f6nnte das Gateway selbst eine gemeinsame Antenne f\u00fcr Wi-Fi und Bluetooth verwenden. In der Praxis habe ich Gateways gesehen, die unter ansonsten guten Bedingungen 5 % bis 50 % Paketverlust aufweisen. Angenommen, das Gateway kann 100 % der Advertisements abh\u00f6ren und der Hintergrund ist ansonsten ruhig, k\u00f6nnten wir 95 % der nicht kollidierenden Pakete oder 268 \u00dcbertragungen pro Sekunde empfangen \u2013 ein ziemlicher Unterschied zum theoretischen Maximum von 37.500!   <\/p>\n\n<h3 class=\"wp-block-heading\">Backend und Konnektivit\u00e4t<\/h3>\n\n<p class=\"wp-block-paragraph\">W\u00e4hrend die Bluetooth-Nutzdatenrate keineswegs extrem ist \u2013 im obigen Fall nur etwa 12 <em>kB\/s<\/em> \u2013 kann der tats\u00e4chliche Internetverkehr viel h\u00f6her sein, insbesondere wenn Daten mit separaten Verbindungen f\u00fcr jeden Datenpunkt geschrieben werden, anstatt ein paar tausend Punkte auf einmal zu \u00fcbertragen. Die Leistung verschiedener Backend-L\u00f6sungen liegt jedoch au\u00dferhalb des Rahmens dieses Beitrags. <\/p>\n\n<h2 class=\"wp-block-heading\">Wie viele Bluetooth-Beacons kann ich also letztendlich einsetzen?<\/h2>\n\n<p class=\"wp-block-paragraph\">Es gibt keine einfache Antwort, daher m\u00fcssen wir sagen: \u201eEs kommt darauf an\u201c. Die obige Grafik deutet darauf hin, dass selbst bei 5.000 Beacons, die einmal pro Sekunde Daten senden, einige Daten durchkommen w\u00fcrden, aber die Wahrscheinlichkeit, dass eine \u00dcbertragung empfangen wird, betr\u00e4gt nur 0,15 %. Im Durchschnitt w\u00fcrde eine von 668 \u00dcbertragungen empfangen \u2013 das sind 11 Minuten. Der limitierende Faktor wird, <em>wie lange ich warten kann, um eine \u00dcbertragung mit ausreichend hoher Sicherheit zu empfangen<\/em>.   <\/p>\n\n<p class=\"wp-block-paragraph\">Nehmen wir an, wir \u00fcberwachen Temperatur und Luftfeuchtigkeit in einem Lagerhaus. 11 Minuten Wartezeit k\u00f6nnten v\u00f6llig sicher sein, da sich diese Werte unter normalen Bedingungen nicht schnell \u00e4ndern. Wenn die Beacons hingegen zur Bestandsverfolgung in einem Lagerhaus verwendet werden, haben wir m\u00f6glicherweise nur 10 Sekunden in der N\u00e4he des Gateways, bevor die Waren abtransportiert werden.  <\/p>\n\n<p class=\"wp-block-paragraph\">Wir w\u00e4hlen 2 Schwellenwerte f\u00fcr die Sicherheit der Erkennung eines Tags innerhalb einer bestimmten Zeit: strenge 99,99999 % f\u00fcr die mobile Bestandsverfolgung und viel entspanntere 99 % f\u00fcr die Verfolgung der Bedingungen eines statischen Assets. Legen wir auch die anderen Variablen fest. <\/p>\n\n<ul class=\"wp-block-list\"><li>\u00dcbertragungszeit: 650 Mikrosekunden<\/li><li>Intervall: 1 Sekunde<\/li><li>Gateway, Hintergrundrauschen: 5 % der Pakete gehen verloren<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Als N\u00e4chstes berechnen wir eine Matrix der Erkennungswahrscheinlichkeiten innerhalb einer bestimmten Zeit, finden die erste Zeit, die eine gr\u00f6\u00dfere Wahrscheinlichkeit als unser Schwellenwert aufweist, und plotten die Zeiten in Scilab.<\/p>\n\n<pre class=\"wp-block-preformatted\">Ttransmission = 65e-5;<br\/>Tinterval = 1;<br\/>Penvironment = 0.95;<br\/>Ntags = 1:1:5000;<br\/>Pmiss = 1 - (2*Ttransmission\/Tinterval);<br\/>Pmiss_all = Pmiss^(Ntags - 1) * Penvironment;<br\/>Pnot_miss_all = 1-Pmiss_all;<br\/>Nbroadcasts = 1000;<br\/>for i=1:1:Nbroadcasts<br\/> Pnot_detect(i, :) = Pnot_miss_all^i;<br\/>end<br\/>Pdetect = 1 - Pnot_detect;<br\/><br\/>th1 = 0.99;<br\/>th2 = 0.9999999;<br\/>[idx, idy] = find(Pdetect &gt; th1);<br\/>[uniq, map] = unique(idy);<br\/>plot(1:1:length(map), idx(map));<br\/>[idx2, idy2] = find(Pdetect &gt; th2);<br\/>[uniq2, map2] = unique(idy2);<br\/>plot(1:1:length(map2), idx2(map2), 'g');<br\/><br\/>a = gca();<br\/>a.font_size = 5;<br\/>a.x_label.text = string(\"Anzahl der Beacons\") ; <br\/>a.x_label.font_size = 6; <br\/>a.y_label.text = \"Zeit bis zur Erkennung mit Wahrscheinlichkeit (s)\";<br\/>a.y_label.font_size = 6;<br\/><br\/>hl = legend([\"99 %\", \"99.99999 %\"], 2);<br\/>hl.font_size = 5;<\/pre>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-beacons-detected-1024x771.png\" alt=\"Grafik, die anzeigt, wie viele Beacons erkannt werden\" class=\"wp-image-2913\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-beacons-detected-1024x771.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-detected-450x339.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-detected-768x578.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-detected-600x451.png 600w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-detected.png 1212w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Die Zeit zur Erkennung eines Beacons w\u00e4chst nach etwa 2.000\u20133.000 Beacons rapide an.<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Jetzt k\u00f6nnen wir einige Beispiele f\u00fcr Beacon-Dichten ausw\u00e4hlen. In einem Lagerszenario, in dem wir die Beacon-Daten einmal pro Minute mit 99 %iger Sicherheit erkennen m\u00f6chten, k\u00f6nnen wir etwa 1.900 Beacons haben, die einmal pro Sekunde senden. <\/p>\n\n<p class=\"wp-block-paragraph\">In einem Szenario zur Bestandsverfolgung, in dem wir die \u00dcbertragung in 10 Sekunden mit 99,99999 %iger Sicherheit erkennen m\u00f6chten, k\u00f6nnen wir 100 Beacons in Reichweite haben.<\/p>\n\n<h2 class=\"wp-block-heading\">\u00dcberpr\u00fcfung der Sch\u00e4tzungen<\/h2>\n\n<p class=\"wp-block-paragraph\">Jede gute Theorie kann auf ihre Richtigkeit \u00fcberpr\u00fcft werden. Die \u00dcberpr\u00fcfung dieser Beispiele sollte nicht allzu schwierig sein, alles, was wir brauchen, ist ein Raspberry Pi und ein paar tausend RuuviTags. <\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"494\" height=\"370\" src=\"https:\/\/ruuvi.com\/i\/u\/ruuvi-tag-fry-meme.jpg\" alt=\"Meme von Futurama Fry, der misstrauisch schaut\" class=\"wp-image-2914\" srcset=\"https:\/\/ruuvi.com\/i\/u\/ruuvi-tag-fry-meme.jpg 494w, https:\/\/ruuvi.com\/i\/u\/ruuvi-tag-fry-meme-450x337.jpg 450w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><figcaption>Vielleicht finden wir eine Abk\u00fcrzung, die nicht so viel Hardware erfordert?<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Gl\u00fccklicherweise k\u00f6nnen wir die Zahlen etwas anpassen, um die Grundidee zu \u00fcberpr\u00fcfen, sodass wir nicht Tausende von Tags kaufen m\u00fcssen. Wir beschleunigen alles und verwenden ein Intervall von 100 <em>ms<\/em> und pr\u00fcfen, ob wir mindestens eine \u00dcbertragung pro Sekunde von den Tags erhalten. <\/p>\n\n<p class=\"wp-block-paragraph\">Wir programmieren 16 Beacons so, dass sie in einem Intervall von 100 <em>ms<\/em> senden, und platzieren sie neben einem Raspberry Pi und einem ESP32-Dongle, die die Daten an InfluxDB weiterleiten. Der Raspberry Pi ist \u00fcber Ethernet und der ESP32 \u00fcber Wi-Fi verbunden. <\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1920\" src=\"https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled.jpg\" alt=\"Beispiel f&#xFC;r die maximale Anzahl von Bluetooth-Beacons\" class=\"wp-image-2909\" srcset=\"https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled.jpg 2560w, https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled-450x338.jpg 450w, https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled-1024x768.jpg 1024w, https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled-768x576.jpg 768w, https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled-1536x1152.jpg 1536w, https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled-2048x1536.jpg 2048w, https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled-600x450.jpg 600w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption>RuuviTags mit verschiedenen Empf\u00e4ngern auslesen<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Das Endergebnis ist ziemlich entt\u00e4uschend: Die Backend-Verbindung ist bei etwa 150 Samples pro Sekunde Spitzenwert ges\u00e4ttigt, und es k\u00f6nnen keine weiteren Daten empfangen werden.<\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"468\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-measurements-1024x468.png\" alt=\"Grafik, die einen nicht so erfolgreichen Versuch anzeigt\" class=\"wp-image-2915\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-measurements-1024x468.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-measurements-450x206.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-measurements-768x351.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-measurements-1536x703.png 1536w, https:\/\/ruuvi.com\/i\/u\/graph-measurements-2048x937.png 2048w, https:\/\/ruuvi.com\/i\/u\/graph-measurements-600x274.png 600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Der erste Versuch war nicht so erfolgreich<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Unser n\u00e4chster Versuch hat eine lokale Datenbank, die auf einem PC l\u00e4uft, was den Backend-Engpass beseitigen sollte. Hier sto\u00dfen wir jedoch auf einen Engpass beim Scannen: Selbst wenn nur ein Tag aktiv ist, erhalten wir weniger als 10 % der Advertisements. Eine schnelle Suche im Internet zeigt, dass dies mit der Mac OSX BLE-Scanning-Firmware und -Hardware zusammenh\u00e4ngen k\u00f6nnte, die die Antenne mit Wi-Fi teilt und nicht 100 % der Zeit scannt.  <\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"477\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-beacons-measurements-1024x477.png\" alt=\"Grafik, die anzeigt, dass es keine signifikante Verschlechterung der empfangenen Paketrate gibt\" class=\"wp-image-2916\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-beacons-measurements-1024x477.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-measurements-450x210.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-measurements-768x358.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-measurements-1536x716.png 1536w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-measurements-2048x955.png 2048w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-measurements-600x280.png 600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Es gibt keine signifikante Verschlechterung der empfangenen Paketrate, wenn wir 16 Beacons mit 100 ms senden lassen<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Optisch scheint der Gesamtdurchsatz bei einem Tag 0,75, bei 8 Tags 4,5 und bei 16 Tags 11 zu betragen. Der Durchsatz eines einzelnen Tags war die ganze Zeit \u00fcber ziemlich konstant 0,75. <\/p>\n\n<h3 class=\"wp-block-heading\">Verfeinerung des Modells<\/h3>\n\n<p class=\"wp-block-paragraph\">Ein Vorteil unseres theoretischen Modells ist, dass es Gateway-Unvollkommenheiten ber\u00fccksichtigt. Wir aktualisieren unsere Sch\u00e4tzungen mit einem Gateway-Verlust von 92 % und sch\u00e4tzen die Empfangsrate mit 51 Tags. Zur besseren Messung verwenden wir auch das tats\u00e4chliche durchschnittliche \u00dcbertragungsintervall von 105 <em>ms<\/em>, das die durchschnittliche zuf\u00e4llige Verz\u00f6gerung in unserer Vorhersage ber\u00fccksichtigt.  <\/p>\n\n<p class=\"wp-block-paragraph\">Ein erster Durchlauf zeigt, dass das Modell eine schnellere Kollisionszunahmerate aufweist, als wir sie bei einer \u00dcbertragungszeit von 650 Mikrosekunden sehen, und daher setzen wir die \u00dcbertragungszeit auf 450 Mikrosekunden, was etwas \u00fcber der theoretischen Zeit liegt, die sich aus der Modulationsgeschwindigkeit ergibt. Nun stimmt unser Modell ziemlich gut mit dem Experiment \u00fcberein, zumindest im Bereich von 1 bis 16 Beacons. Die Ergebnisse des ersten Durchlaufs lassen wir der K\u00fcrze halber weg.  <\/p>\n\n<pre class=\"wp-block-preformatted\">N = 1:1:60;<br\/>throughput = zeros(1, length(N));<br\/>Tinterval = 0.105<br\/>Ttx = 65*10^-5<br\/>Pmiss = 1-(2*Ttx\/Tinterval);<br\/>Penvironment = 0.080;<br\/>for i=1:1:length(N)<br\/>  Pmiss_all = Pmiss^(i-1);<br\/>  throughput(1, i) = i * Pmiss_all * Penvironment \/ Tinterval;<br\/>end<br\/>plot(N, throughput)<br\/>[v, i] = max(throughput)<br\/>a = gca();<br\/>a.font_size = 5;<br\/>a.x_label.text = string(\"Anzahl der Beacons\") ;  <br\/>a.x_label.font_size = 6;  <br\/>a.y_label.text = \"Durchsatz (N\/s)\";<br\/>a.y_label.font_size = 6;  <br\/>e=gce();<br\/>p1=e.children(1);<br\/>t=datatipCreate(p1,1);<br\/>t.font_size = 5;<br\/>t=datatipCreate(p1,8);<br\/>t.font_size = 5;<br\/>t=datatipCreate(p1,16);<br\/>t.font_size = 5;<\/pre>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"413\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-beacons-throughput-1024x413.png\" alt=\"Grafik, die anzeigt, dass die gesch&#xE4;tzten Werte mit den gemessenen Werten verglichen werden k&#xF6;nnen\" class=\"wp-image-2917\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-beacons-throughput-1024x413.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-throughput-450x181.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-throughput-768x310.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-throughput-1536x619.png 1536w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-throughput-2048x826.png 2048w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-throughput-600x242.png 600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Die gesch\u00e4tzten Werte k\u00f6nnen mit den gemessenen Werten verglichen werden.<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Jetzt haben wir ein verfeinertes Modell, das einigerma\u00dfen gut mit den gemessenen realen Daten \u00fcbereinstimmt. Es ist Zeit zu sehen, wie sich das Modell verh\u00e4lt, wenn wir insgesamt 51 Tags hinzuf\u00fcgen. <\/p>\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"811\" height=\"886\" src=\"https:\/\/ruuvi.com\/i\/u\/51-ruuvitags-on-a-table.png\" alt=\"Einundf&#xFC;nfzig RuuviTags auf einem Tisch\" class=\"wp-image-40020\" srcset=\"https:\/\/ruuvi.com\/i\/u\/51-ruuvitags-on-a-table.png 811w, https:\/\/ruuvi.com\/i\/u\/51-ruuvitags-on-a-table-412x450.png 412w, https:\/\/ruuvi.com\/i\/u\/51-ruuvitags-on-a-table-768x839.png 768w, https:\/\/ruuvi.com\/i\/u\/51-ruuvitags-on-a-table-600x655.png 600w\" sizes=\"auto, (max-width: 811px) 100vw, 811px\" \/><figcaption>Einundf\u00fcnfzig RuuviTags warten darauf, das Spektrum mit Daten zu f\u00fcllen.<br\/><\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Die hier verwendeten Tags sind Fabrikausschuss, faire Vorf\u00fchrmuster usw. Bei diesem Experiment wurden keine Ruuvis besch\u00e4digt. Da einige der von uns zum Testen verwendeten Tags unsere Produktionstests nicht bestanden haben, sendeten zwei der Tags \u00fcberhaupt nichts. Die endg\u00fcltige Gesamtzahl der Sender betrug 49.   <\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"513\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-data-1024x513.png\" alt=\"Grafik, die Daten zeigt\" class=\"wp-image-2920\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-data-1024x513.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-data-450x226.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-data-768x385.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-data-1536x770.png 1536w, https:\/\/ruuvi.com\/i\/u\/graph-data-2048x1026.png 2048w, https:\/\/ruuvi.com\/i\/u\/graph-data-600x301.png 600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Und wir haben die Daten erhalten.<\/figcaption><\/figure><\/div>\n\n<pre class=\"wp-block-preformatted\">N = 1:1:60;<br\/>throughput = zeros(1, length(N));<br\/>throughput_single = zeros(1, length(N));<br\/>throughput_measured = [ 3, 6.5, 9.1, 11.2, 16.9, 20, 24.6, 27.2, 29.5, 31.9 ];<br\/>throughput_samples = [ 5, 10, 14, 18, 25, 30, 35, 40, 45, 49 ];<br\/>Tinterval = 0.105<br\/>Ttx = 45*10^-5<br\/>Pmiss = 1-(2*Ttx\/Tinterval);<br\/>Penvironment = 0.080;<br\/>for i=1:1:length(N)<br\/>  Pmiss_all = Pmiss^(i-1);<br\/>  throughput(1, i) = i * Pmiss_all * Penvironment \/ Tinterval;<br\/>  throughput_single(1, i) = Pmiss_all * Penvironment \/ Tinterval;<br\/>end<br\/>plot(N, throughput)<br\/>plot(throughput_samples, throughput_measured, 'g')<br\/>a = gca();<br\/>a.font_size = 5;<br\/>a.x_label.text = string(\"Anzahl der Beacons\") ;  <br\/>a.x_label.font_size = 6;  <br\/>a.y_label.text = \"Durchsatz (N\/s)\";<br\/>a.y_label.font_size = 6;  <br\/>hl = legend([\"Gesch\u00e4tzt\", \"Gemessen\"], 2);<br\/>hl.font_size = 5;<\/pre>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"791\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-beacons-data-1024x791.png\" alt=\"Grafik, die anzeigt, dass unsere gemessene Datenrate nicht den gleichen Abfall wie die Sch&#xE4;tzung zeigt\" class=\"wp-image-2921\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-beacons-data-1024x791.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-data-450x348.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-data-768x593.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-data-600x463.png 600w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-data.png 1098w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Unsere gemessene Datenrate zeigt nicht den gleichen Abfall wie die Sch\u00e4tzung<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Merkw\u00fcrdigerweise gibt es keinen merklichen Effekt, dass weniger Pakete empfangen werden, wenn wir mehr Beacons hinzuf\u00fcgen. Vielleicht begrenzt die Firmware meines Macbooks die Ergebnisse, wenn sie mit extremer Rate eingehen, und wir empfangen weiterhin Pakete mit der maximalen Rate, die von meiner Hardware unterst\u00fctzt wird? <\/p>\n\n<p class=\"wp-block-paragraph\">Wir k\u00f6nnen einen anderen Ansatz w\u00e4hlen, um die Zuverl\u00e4ssigkeit zu bestimmen. Wir lassen 46 Beacons \u00fcber Nacht eingeschaltet und \u00fcberpr\u00fcfen die Anzahl der 10-Sekunden-Intervalle, in denen mindestens ein Beacon nicht gesehen wurde. <\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"555\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-missing-beacons-1024x555.png\" alt=\"Grafik, die fehlende Beacons anzeigt\" class=\"wp-image-2922\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-missing-beacons-1024x555.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-missing-beacons-450x244.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-missing-beacons-768x416.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-missing-beacons-1536x832.png 1536w, https:\/\/ruuvi.com\/i\/u\/graph-missing-beacons-2048x1109.png 2048w, https:\/\/ruuvi.com\/i\/u\/graph-missing-beacons-600x325.png 600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Ich z\u00e4hle 70 fehlende Beacons, deine Z\u00e4hlung k\u00f6nnte abweichen.<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Im Laufe von 10 Stunden gibt es 3.600 10-Sekunden-Intervalle, und wir haben 46 Beacons f\u00fcr insgesamt 165.600 Samples eines Beacons, das 10 Sekunden lang Daten sendet. Bei 70 dieser Samples wurden keine Daten empfangen. <\/p>\n\n<p class=\"wp-block-paragraph\">Ein <a href=\"https:\/\/quality-one.com\/reliability-calculator\/\" target=\"_blank\" rel=\"noreferrer noopener\">Zuverl\u00e4ssigkeitsrechner<\/a> gibt uns eine 99,99%ige Sicherheit f\u00fcr eine 99,94%ige Zuverl\u00e4ssigkeit des Datenempfangs innerhalb eines 10-Sekunden-Intervalls. Wir werden dieses Ergebnis mit unserem fr\u00fcheren Zuverl\u00e4ssigkeitssch\u00e4tzer \u00fcberpr\u00fcfen. <\/p>\n\n<pre class=\"wp-block-preformatted\">Ttransmission = 65e-5;<br\/>Tinterval = 0.1;<br\/>Penvironment = 0.95;<br\/>Ntags = 1:1:50;<br\/>Pmiss = 1 - (2*Ttransmission\/Tinterval);<br\/>Pmiss_all = Pmiss^(Ntags - 1) * Penvironment;<br\/>Pnot_miss_all = 1-Pmiss_all;<br\/>Nbroadcasts = 1000;<br\/>for i=1:1:Nbroadcasts<br\/> Pnot_detect(i, :) = Pnot_miss_all^i;<br\/>end<br\/>Pdetect = 1 - Pnot_detect;<br\/><br\/>th1 = 0.9994;<br\/>[idx, idy] = find(Pdetect &gt; th1);<br\/>[uniq, map] = unique(idy);<br\/>plot(1:1:length(map), idx(map));<br\/><br\/>a = gca();<br\/>a.font_size = 5;<br\/>a.x_label.text = string(\"Anzahl der Beacons\") ; <br\/>a.x_label.font_size = 6; <br\/>a.y_label.text = \"Zeit bis zur Erkennung mit Wahrscheinlichkeit (s)\";<br\/>a.y_label.font_size = 6;<br\/><br\/>hl = legend([\"99.94 %\"], 2);<br\/>hl.font_size = 5;<\/pre>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"789\" src=\"https:\/\/ruuvi.com\/i\/u\/graph-beacons-time-1024x789.png\" alt=\"Grafik, die die Zeit zur Anzeige von Beacons angibt\" class=\"wp-image-2923\" srcset=\"https:\/\/ruuvi.com\/i\/u\/graph-beacons-time-1024x789.png 1024w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-time-450x347.png 450w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-time-768x591.png 768w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-time-600x462.png 600w, https:\/\/ruuvi.com\/i\/u\/graph-beacons-time.png 1096w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Die Sch\u00e4tzung stimmt \u00fcberein, dass es 10 Sekunden dauert, um 46 Tags mindestens einmal mit 99,94 %iger Sicherheit zu scannen, wenn die Tags in einem Intervall von 100 ms senden und das Gateway die \u00dcbertragungen mit 95 %iger Sicherheit empf\u00e4ngt.<\/figcaption><\/figure><\/div>\n\n<p class=\"wp-block-paragraph\">Merkw\u00fcrdigerweise stimmt unser Zuverl\u00e4ssigkeitssch\u00e4tzer genau mit den Messungen \u00fcberein, w\u00e4hrend die Paketverlustrate stark abwich. Eine m\u00f6gliche Ursache ist, dass die Macbook BLE-Firmware mehrere \u00dcbertragungen von derselben MAC-Adresse in einem Batch sammelt und nur ratenbegrenzte Ergebnisse an h\u00f6here Ebenen des Betriebssystems und der Anwendungen meldet. <\/p>\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n<p class=\"wp-block-paragraph\">Die urspr\u00fcngliche Frage war: <em>Wie viele Beacons kann ich in einem Bereich haben?<\/em> F\u00fcr die meisten Leute k\u00f6nnen wir mit Zuversicht sagen: <em>Genug<\/em>. Wir hatten bis zu 46 Beacons, die in einem Intervall von 100 <em>ms<\/em> sendeten, und wir konnten sie alle mit relativ hoher Geschwindigkeit und guter Zuverl\u00e4ssigkeit h\u00f6ren. <\/p>\n\n<p class=\"wp-block-paragraph\">Wenn die Ergebnisse auf langsamere Intervalle und eine gr\u00f6\u00dfere Anzahl von Beacons skaliert werden k\u00f6nnen, k\u00f6nnten wir sch\u00e4tzen, dass 460 Beacons, die in einem Intervall von 1 <em>s<\/em> senden, innerhalb von 100 Sekunden geh\u00f6rt werden k\u00f6nnten und 4.600 Beacons, die in einem Intervall von 10 s senden, innerhalb von 1.000 Sekunden mit ziemlich guter Zuverl\u00e4ssigkeit geh\u00f6rt werden k\u00f6nnten. Diese Sch\u00e4tzung wird jedoch nicht durch ein Experiment untermauert. <\/p>\n\n<p class=\"wp-block-paragraph\">Modelle f\u00fcr Paketverluste konnten nicht verifiziert werden, da die meisten Pakete aus noch unbekannten Gr\u00fcnden nicht von unserer Empfangshardware empfangen wurden. Eine Nachuntersuchung mit dedizierter Scan-Hardware und -Software muss durchgef\u00fchrt werden, um diese Sch\u00e4tzungen zu \u00fcberpr\u00fcfen. <\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Bleib dran f\u00fcr einen Folgebeitrag mit dedizierten nRF52-Scannern und Tags, die mehrere MAC-Adressen senden, um pr\u00e4zisere Ergebnisse zu den Grenzen der Sender in diesem Bereich zu erhalten.<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Vielen Dank an Lauri J\u00e4ms\u00e4. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie viele Bluetooth-Beacons kann ich an einem Ort haben? Immer wieder fragt jemand, wie viele RuuviTag Bluetooth-Sensor-Beacons er im Bereich eines einzelnen Gateways haben kann. Ist es machbar, jede Kiste in einem Lagerhaus zu \u00fcberwachen? Jede einzelne Milchpackung in diesen Kisten? Es stellt sich heraus, dass es keine exakte Antwort gibt, da die Daten in [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":135703,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[324],"tags":[],"class_list":["post-135702","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>Maximale Bluetooth-Beacon-Dichte \u2013 Ruuvi<\/title>\n<meta name=\"description\" content=\"Wie viele Beacons kann man an einem Ort haben? Wir berechnen das theoretische Maximum und messen die praktischen Grenzen der Paketrate.\" \/>\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\/bluetooth-beacon-maximum-density\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Maximale Bluetooth-Beacon-Dichte \u2013 Ruuvi\" \/>\n<meta property=\"og:description\" content=\"Wie viele Beacons kann man an einem Ort haben? Wir berechnen das theoretische Maximum und messen die praktischen Grenzen der Paketrate.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/\" \/>\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=\"2019-04-20T12:10:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-11T04:32:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1920\" \/>\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=\"12\u00a0Minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/\"},\"author\":{\"name\":\"Otso Jousimaa\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#\\\/schema\\\/person\\\/143b8e2a095f1e6484b9186673c9ec00\"},\"headline\":\"Maximale Bluetooth-Beacon-Dichte\",\"datePublished\":\"2019-04-20T12:10:00+00:00\",\"dateModified\":\"2026-06-11T04:32:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/\"},\"wordCount\":2061,\"image\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/bluetooth-beacon-density-maximum-scaled.jpg\",\"articleSection\":[\"Ruuvi-Software-Artikel\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/\",\"url\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/\",\"name\":\"Maximale Bluetooth-Beacon-Dichte \u2013 Ruuvi\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/bluetooth-beacon-density-maximum-scaled.jpg\",\"datePublished\":\"2019-04-20T12:10:00+00:00\",\"dateModified\":\"2026-06-11T04:32:40+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/#\\\/schema\\\/person\\\/143b8e2a095f1e6484b9186673c9ec00\"},\"description\":\"Wie viele Beacons kann man an einem Ort haben? Wir berechnen das theoretische Maximum und messen die praktischen Grenzen der Paketrate.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/bluetooth-beacon-density-maximum-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/ruuvi.com\\\/i\\\/u\\\/bluetooth-beacon-density-maximum-scaled.jpg\",\"width\":2560,\"height\":1920,\"caption\":\"RuuviTags mit verschiedenen Empf\u00e4ngern auslesen\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/bluetooth-beacon-maximum-density\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ruuvi.com\\\/de\\\/front\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Maximale Bluetooth-Beacon-Dichte\"}]},{\"@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":"Maximale Bluetooth-Beacon-Dichte \u2013 Ruuvi","description":"Wie viele Beacons kann man an einem Ort haben? Wir berechnen das theoretische Maximum und messen die praktischen Grenzen der Paketrate.","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\/bluetooth-beacon-maximum-density\/","og_locale":"de_DE","og_type":"article","og_title":"Maximale Bluetooth-Beacon-Dichte \u2013 Ruuvi","og_description":"Wie viele Beacons kann man an einem Ort haben? Wir berechnen das theoretische Maximum und messen die praktischen Grenzen der Paketrate.","og_url":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/","og_site_name":"Ruuvi","article_publisher":"https:\/\/www.facebook.com\/ruuvi.cc","article_published_time":"2019-04-20T12:10:00+00:00","article_modified_time":"2026-06-11T04:32:40+00:00","og_image":[{"width":2560,"height":1920,"url":"https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled.jpg","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":"12\u00a0Minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/#article","isPartOf":{"@id":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/"},"author":{"name":"Otso Jousimaa","@id":"https:\/\/ruuvi.com\/de\/#\/schema\/person\/143b8e2a095f1e6484b9186673c9ec00"},"headline":"Maximale Bluetooth-Beacon-Dichte","datePublished":"2019-04-20T12:10:00+00:00","dateModified":"2026-06-11T04:32:40+00:00","mainEntityOfPage":{"@id":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/"},"wordCount":2061,"image":{"@id":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/#primaryimage"},"thumbnailUrl":"https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled.jpg","articleSection":["Ruuvi-Software-Artikel"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/","url":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/","name":"Maximale Bluetooth-Beacon-Dichte \u2013 Ruuvi","isPartOf":{"@id":"https:\/\/ruuvi.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/#primaryimage"},"image":{"@id":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/#primaryimage"},"thumbnailUrl":"https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled.jpg","datePublished":"2019-04-20T12:10:00+00:00","dateModified":"2026-06-11T04:32:40+00:00","author":{"@id":"https:\/\/ruuvi.com\/de\/#\/schema\/person\/143b8e2a095f1e6484b9186673c9ec00"},"description":"Wie viele Beacons kann man an einem Ort haben? Wir berechnen das theoretische Maximum und messen die praktischen Grenzen der Paketrate.","breadcrumb":{"@id":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/#primaryimage","url":"https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled.jpg","contentUrl":"https:\/\/ruuvi.com\/i\/u\/bluetooth-beacon-density-maximum-scaled.jpg","width":2560,"height":1920,"caption":"RuuviTags mit verschiedenen Empf\u00e4ngern auslesen"},{"@type":"BreadcrumbList","@id":"https:\/\/ruuvi.com\/de\/bluetooth-beacon-maximum-density\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ruuvi.com\/de\/front\/"},{"@type":"ListItem","position":2,"name":"Maximale Bluetooth-Beacon-Dichte"}]},{"@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\/135702","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=135702"}],"version-history":[{"count":1,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/posts\/135702\/revisions"}],"predecessor-version":[{"id":135714,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/posts\/135702\/revisions\/135714"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/media\/135703"}],"wp:attachment":[{"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/media?parent=135702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/categories?post=135702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ruuvi.com\/de\/wp-json\/wp\/v2\/tags?post=135702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}