{"id":85,"date":"2020-05-10T16:12:42","date_gmt":"2020-05-10T16:12:42","guid":{"rendered":"https:\/\/himbeergarten.de\/?p=85"},"modified":"2020-05-10T19:47:08","modified_gmt":"2020-05-10T19:47:08","slug":"alle-daten-aber-bitte-bunt","status":"publish","type":"post","link":"https:\/\/www.himbeergarten.de\/?p=85","title":{"rendered":"Alle Daten&#8230;.aber bitte bunt"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In diesem Teil geht da darum, die im vorherigen <a href=\"https:\/\/www.himbeergarten.de\/?p=53\">Teil<\/a> ermittelten Temperaturen grafisch darzustellen. Hierzu bedienen wir uns den Paketen von <em>rrdtool<\/em>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RRDTOOL klingt spannend aber was ist das f\u00fcr ein Humbug? Ganz einfach, es ist eine einfach Art und Weise zeitbezogene Daten zu speichern. Zeitbezogen bedeutet das ein Wert immer gemeinsam mit einem Zeit\/Datumsttempel abgelegt wird (Datenpunkt). RRD steht f\u00fcr &#8222;Round-Robin-Database&#8220; was nichts anderes heisst als das im Gegensatz zu einer SQL-Datenbank die Datei einer RRD-Datenbank nicht gr\u00f6\u00dfer wird als diese direkt nach deren Erstellung ist. Ist die Dateigr\u00f6\u00dfe ersch\u00f6pft werden die \u00e4ltesten Werte einfach \u00fcberschrieben. Wer mehr dar\u00fcber wissen m\u00f6chte wird hier gut bedient -> <a href=\"https:\/\/oss.oetiker.ch\/rrdtool\/\">Link<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Das Ziel soll es sein, eine Anzeige der Temperaturen zu erstellen wie ich sie im <a href=\"https:\/\/www.himbeergarten.de\/?page_id=40\">Datengarten<\/a> verwende. Los gehts&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als erstes sorgen wir daf\u00fcr das unsere Paketlisten auf dem aktuellen Stand sind mit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dann sorgen wir daf\u00fcr das alle installierten Pakete auf die aktuellste Version gebracht werden. Und zwar mit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get upgrade<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn das erledigt ist machen wir uns daran die Pakete f\u00fcr das rrdtool zu installieren. Dies geschieht mit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install rrdtool<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nachdem das nun erledigt ist k\u00f6nnen wir die erste RRD-Datenbank erstellen. ich habe dazu wieder ein kleines Script bem\u00fcht da ich mehrere Datenbanken ben\u00f6tige und f\u00fcr mich alles etwas nachvollziehbar gestalten wollte, ich bin ja nicht mehr der J\u00fcngste.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\nWDIR=\/home\/pi\/tomatenpi\nETCDIR=$WDIR\/etc\nOUTDIR=$WDIR\/output\nRRDDIR=$WDIR\/rrd\n\nrrdtool create $RRDDIR\/btemp_left.rrd --step 60 \\\n  DS:data1:GAUGE:120:-20:100 \\\n  RRA:AVERAGE:0.5:1:2160 \\\n  RRA:AVERAGE:0.5:5:2016 \\\n  RRA:AVERAGE:0.5:15:2880 \\\n  RRA:AVERAGE:0.5:60:8760 \\\n  RRA:MAX:0.5:1:2160 \\\n  RRA:MAX:0.5:5:2016 \\\n  RRA:MAX:0.5:15:2880 \\\n  RRA:MAX:0.5:60:8760 \\<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Schauen wir uns das mal genauer an. Oben findet man wieder den Teil mit meinen Umgebungsvariablen. Nicht alle sind hier n\u00f6tig aber ich kopiere die immer komplett, aus Angewohnheit. Schritt f\u00fcr Schritt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rrdtool create $RRDDIR\/btemp_left.rrd --step 60 \\<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Datenbank mit dem Namen btemp_left.rrd wird erstellt. $RRDDIR ist meine Variable f\u00fcr das Ausgabeverzeichnis. Step 60 bedeutet das alle 60 Sekunden ein Wert in die Datenbank geschrieben werden soll. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DS:data1:GAUGE:120:-20:100 \\<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DS<\/strong> = Data Source, die Datenquelle, <strong>data1<\/strong> ist lediglich ein name daf\u00fcr und kann selbst gew\u00e4hlt werden. <strong>Gauge<\/strong> ist der Typ der Datenquelle und bedeutet das der \u00fcbergebene Zahlenwert (positiv wie auch negativ) unver\u00e4ndert abgespeichert wird. Mit <strong>120<\/strong> haben wir hier den Heartbeat angegeben, da es mal vorkommen kann das ein Wert ausbleibt weil z.B. ein Sensor fehlerhaft, mit dem Heartbeat akzeptiert RRDtool auch einen sp\u00e4ter kommenden Wert (in diesem Falle bis zu maximal 120 Sekunden) bevor ein Zeitstempel als &#8222;undefiniert&#8220; in die Datenbank eingetragen wird. Die Werte <strong>-20:100<\/strong> geben den minimalen und den Maximalen Wert an den RRDTool akzeptiert, Werte au\u00dferhalb dieses Bereiches werden verworfen und als &#8222;undefined&#8220; eingetragen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nun noch etwas technischer, es geht um die Archivierung:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>RRA<\/strong>: Gibt an das es um ein Round-Robin-Archive geht<\/li><li><strong>Average:<\/strong> Gibt an das mehrere Datenpunkte zusammengefasst und deren Mittelwert gebildet wird. Dieser Mittelwert wird archiviert. Erlaubt w\u00e4ren hier au\u00dferdem MAX \/ MIN und LAST. Indem Falle w\u00fcrde der h\u00f6chste, der niedrigste oder aber der Letzte Wert genommen werden.<\/li><li><strong>0.5:1:2160<\/strong>: Da muss ich etwas weiter ausholen. Die Datenpunkte werden in RRD auch Primary Data Points (PDP) genannt. Zusammengefasste (konsolidierte) Datenpunkte werden als Consolidated Data Points (CDP) bezeichnet. Ein weiter Begriff ist der X-Files-Factor, dazu kommen wir aber noch. Nun zur Erkl\u00e4rung des Teils <strong>0.5:1:2160. <\/strong>Die <strong>0.5<\/strong> bestimmt den X-Files-Factor, das bedeutet das min 50% der PDPs die zusammengefasst werden sollen einen g\u00fcltigen Wert enthalten m\u00fcssen und nicht &#8222;undefined&#8220; sein d\u00fcrfen. Die <strong>1<\/strong> gibt an das nur ein PDP archiviert werden soll (in sp\u00e4teren Zeilen erh\u00f6ht sich das dann ja) und die <strong>2160 <\/strong>gibt an, das in dem Archiv 2160 CDPs Platz finden.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Rufen wir dieses Script nun einmalig auf, wird eine entsprechende RRD-Datenbank erstellt.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Was fehlt nun noch?<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Unsere Messwerte m\u00fcssen in die Datenbank gelangen<\/li><li>Wir m\u00f6chten bunte Bilder (Verlaufsgrafiken) erstellen<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Das erledigen wir im n\u00e4chsten Teil dieser Reihe&#8230;..<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Teil geht da darum, die im vorherigen Teil ermittelten Temperaturen grafisch darzustellen. Hierzu bedienen wir uns den Paketen von rrdtool. RRDTOOL klingt spannend aber was ist das f\u00fcr ein Humbug? Ganz einfach, es ist eine einfach Art und Weise zeitbezogene Daten zu speichern. Zeitbezogen bedeutet das ein Wert immer gemeinsam mit einem Zeit\/Datumsttempel [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":93,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[1,22],"tags":[16,5,19,18,8,17],"class_list":["post-85","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry","category-tomatenpi","tag-bash","tag-raspberry","tag-round-robin","tag-rrd","tag-rrdtool","tag-script"],"_links":{"self":[{"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=\/wp\/v2\/posts\/85","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=85"}],"version-history":[{"count":6,"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=\/wp\/v2\/posts\/85\/revisions"}],"predecessor-version":[{"id":92,"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=\/wp\/v2\/posts\/85\/revisions\/92"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=\/wp\/v2\/media\/93"}],"wp:attachment":[{"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=85"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=85"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.himbeergarten.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=85"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}