====== Yanic & Meshviewer ====== Wir betreiben fuer unsere Karte eine Yanic-Installation auf ffs03. Wir benutzen als Datenbank fuer Yanic influxdb und als Karte meshviewer. ===== Yanic ===== Yanic sammelt in unserem Netz die respondd-Daten von allen Nodes ein. Sie werden dann in folgenden Formaten zur Verfuegung gestellt: * in der influxdb fuer Statistiken im Grafana und auf der Karte * fuer die Karte (Meshviewer) als JSON * die rohen eingesammelten Daten als so genannte raw.json (nur mit Authentifizierung) * fuer den FFS-Monitor * fuer das Konvertierskript auf yanic ==== URLs ==== ^ URL ^ Zweck ^ generiert von ^ | https://map.freifunk-stuttgart.de/data/nodelist.json | nodelist fuer [[technik:api-file|ffapi]] | yanic, output nodes.output.nodelist | | https://map.freifunk-stuttgart.de/data/meshviewer.json | Daten fuer meshviewer | yanic, output nodes.output.meshviewer-ffrgb | | https://map.freifunk-stuttgart.de/data/nodelist.json | Details fuer freifunk-karte.de | yanic, output nodes.output.nodelist | | https://map.freifunk-stuttgart.de/data/nodes.geojson | ? | yanic, output nodes.output.geojson | | https://map.freifunk-stuttgart.de/data/raw.json | Restricted, monitore | yanic, output nodes.output.raw | | https://map.freifunk-stuttgart.de/json/FreifunkStuttgart-api.json | [[technik:api-file|API]] | [[https://gitlab.freifunk-stuttgart.de/nrb/respondd-alfred-converter|respondd-alfred-converter]], update_apifile.py | | https://map.freifunk-stuttgart.de/json/nodes.json | appmap, unklar? | [[https://gitlab.freifunk-stuttgart.de/nrb/respondd-alfred-converter|respondd-alfred-converter]], update_appmap.py | | https://map.freifunk-stuttgart.de/nodelist/ | Nodelist | [[https://gitlab.freifunk-stuttgart.de/nrb/respondd-alfred-converter|respondd-alfred-converter]], nodes-list.py | ==== Konvertierskript ==== Aus historischen Gruenden™ gibt es auf yanic ein [[https://github.com/poldy79/FfsScripts/blob/master/carbon.py|Konvertierskript carbon.py]], das die raw.json von Yanic aus dem Dateisystem liest und in collectd-Format konvertiert. Collectd wird dann wiederrum per Prometheus gescraped. Ja, das muesste mal™ jemand aufraeumen. ===== Meshviewer ===== - apt install npm - git clone https://github.com/ffsh/meshviewer.git cd meshviewer npm install ./node_modules/.bin/yarn ./node_modules/.bin/yarn run gulp - dann landet eine Application unter build Eine Buildumgebung fuer Meshviewer liegt auf ffs-yanic01 unter /opt/meshviewer. Die erzeugten Dateien aus dem Build-Verzeichnuss muessen nach /var/www/html/meshviewer kopiert werden. In der meshviewer Config haben wir fuer das Segment und die PLZ benutzerdefinierte Felder hinterlegt. Die interessanten Codezeilen sind: { 'name': 'node.segment', 'value': function(d) { var seg = null d.addresses.forEach(function(addr) { if (addr.startsWith("fd21:b4dc")) { addr_split = addr.split(":") if (addr_split.length > 2) { seg = addr_split[2].replace("4b", "") } } }) if (!seg) { return "?" } return seg } }, { 'name': 'node.zip', 'value': function(d) { if (d.custom_fields && d.custom_fields.zip) { return d.custom_fields.zip } return "?" } },