====== 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 "?"
}
},