technik:yanic_meshviewer

Yanic & Meshviewer

Wir betreiben fuer unsere Karte eine Yanic-Installation auf ffs03. Wir benutzen als Datenbank fuer Yanic influxdb und als Karte meshviewer.

Wir haben folgende Patches zu Yanic beigetragen:

  • raw output support merged in upstream. Gibt aehnlich wie bei hopglass server alle eingesammelten respondd-Daten als JSON aus. Wichtig fuer unseren Monitor.
  • support for custom fields PR noch offen. Mit diesem Patch kann man Yanic anweisen, benutzerdefinierte Felder per respondd einzusammeln. Das ist wichtig fuer unser PLZ-Feld. Standardmaessig wuerde die PLZ in den von Yanic erzeugten Dateien nicht auftauchen.

Aktuell (stand Dezember 2019) ist der PR mit den custom Fields noch nicht gemerged. Wir haben derzeit noch einen FFS-spezifischen Patch, der die PLZ unterhalb von „location“ in die Ausgabe-JSON der raw.json einfuegt. Das Ziel ist, diesen zu entfernen. Der Monitor unterstuetzt bereits beide Formate.

  1. apt install npm
  2. git clone https://github.com/ffsh/meshviewer.git
    cd meshviewer
    npm install
    ./node_modules/.bin/yarn
    ./node_modules/.bin/yarn run gulp
  3. 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 "?"
        }
      },
  • technik/yanic_meshviewer.txt
  • Zuletzt geändert: vor 5 Tagen
  • von nrb