Use the API of UNMS and Unifi Controller to display Unifi Hardware in Freifunk Map
Go to file
2024-09-25 18:33:41 +02:00
.drone.jsonnet syntax guessing 2023-04-28 22:46:08 +02:00
.gitignore Ignore config files! 2021-02-06 22:45:10 +01:00
.woodpecker.yml bugfix 2024-03-18 18:57:55 +01:00
Dockerfile bugfix 2024-03-18 18:57:55 +01:00
example.config.json Bugfixing UISP 503 Errors. 2024-09-25 17:53:38 +02:00
example.devices.json Cleanup jsons 2021-02-14 19:23:11 +01:00
example.devices.router.json First test for Influx data 2023-03-20 15:38:48 +01:00
example.ucDevices.json cleanup ucDevices.json 2021-02-14 19:23:59 +01:00
go.mod Check if device is online for statistics processing 2023-04-28 16:47:15 +02:00
go.sum First test for Influx data 2023-03-20 15:38:48 +01:00
influx.go Added InfluxDB for Gateways 2023-05-12 15:14:06 +02:00
main.go Bugfixing UISP 503 Errors. 2024-09-25 17:53:38 +02:00
meshviewer.go Bugfixing UISP 503 Errors. 2024-09-25 17:53:38 +02:00
README.md Readme angepasst 2023-05-14 11:44:11 +02:00
staticDevices.go send influx datapoints only when enabled 2024-03-18 19:34:06 +01:00
types.go Bugfixing UISP 503 Errors. 2024-09-25 17:53:38 +02:00
unifi.go Fixing ghost devices in Unifi 2024-09-25 18:33:41 +02:00
unms.go Bugfixing UISP 503 Errors. 2024-09-25 17:53:38 +02:00

Freifunk Meshviewer Unifi Access Points und Richtfunkstrecken import

Dieses tool Importiert Nodes für die Freifunk Map aus den APIs UISP (Richtfunk) & Unifi (Access Points). Ebenfalls ist der Import statischer devices möglich. Da diese alle in unerem Proxmox cluster laufen, werden Statistikdaten aus der Proxmox InfluxDB geholt.

Alle Config dateien müssen per http erreichbar sein (z.B. in einem Git) Für Troisdorf werden diese Dateien hier gepflegt: https://git.freifunk-rhein-sieg.net/Freifunk-Troisdorf/ubnt-api-devices Für die Rhein-Sieg-Map hier: https://git.freifunk-rhein-sieg.net/Freifunk-Rhein-Sieg/ubnt-api-devices

Config

Unifi Access Points (unifi_devices.json)

In der Datei unifi_devices.json können die Access Points gepflegt werden, die auf der Freifunk Map erscheinen sollen.

Hierzu muss die Datei im json Format erweitert werden.

Für jedes Gerät muss dieser Block angelegt werden:

{
    "name": "ROUTERNAME",
    "mac": "00:00:00:00:00",
    "gateway_nexthop": "1234567890",
    "gateway": "1234567890",
    "linked_to": "18:e8:29:24:17:0a",
    "domain": "unifi",
    "location": {
      "longitude":7.148406208,
      "latitude":50.817093402
},

Erklärung:

  • name: Dient nur zur Wiedererkennung. Auf der Map erscheint der Name aus dem Unifi Controller
  • mac: Die MAC Adresse des Access Points. Zu finden im Controller. (Statistik Übersicht in der Geräteansicht)
  • gateway_nexthop: Die Node ID (MAC ohne :) des Freifunk Routers an den der AP angeschlossen ist.
  • gateway: Im Normalfall die NodeID des Supernodes (zu finden in der MAP)
  • linked_to: (Optional) Die MAC Adresse des Routers an dem der AP angeschlossen ist. Normalerweise gateway_nexthop mit Doppelpunkten. Wenn nicht gesetzt wird kein Link auf der Map angezeigt.
  • domain: Die Domain in der sich der AP befindet. (tdf, inn, flu)

UISP Richtfunkstrecken

In der Datei rifu_devices.json können die Richtfunkstrecken gepflegt werden, die auf der Freifunk Map erscheinen sollen.

{
  "name": "Rathaus2Bahnhof",
  "mac": "18:E8:29:8E:C6:4D",
  "gateway_nexthop": "18e8292f7de6",
  "gateway": "a28cae6ff604",
  "domain": "rifu",
  "location": {
    "longitude":7.148406208,
    "latitude":50.817093402
  }
}

Erklärung:

  • name: Dient nur zur Wiedererkennung. Auf der Map erscheint der Name aus dem UNMS Controller
  • mac: Die MAC Adresse des Gerätes. Zu finden im Controller.
  • gateway_nexthop: Die Node ID (MAC ohne :) des Freifunk Routers an dem das Gerät angeschlossen ist.
  • gateway: Im Normalfall die NodeID des Supernodes (zu finden in der MAP)
  • domain: Die Domain in der sich der AP befindet. (tdf, inn, flu)

UISP Router

In dieser datei werden die Router (meist ER-X) gepflegt. Diese Daten werden dann ebenfalls aus der UISP API Importiert.

{
        "name": "Rathaus Uplink",
        "mac": "18:e8:29:ad:9a:34",
        "gateway_nexthop": "18e8292f7de6",
        "gateway": "a28cae6ff604",
        "domain": "tdf",
        "location": {
          "longitude":7.149406208,
          "latitude":50.817093402
        }
      },

Gateways.json

Hier werden Statische Geräte eingetragen die auf dem Proxmox Cluster laufen.

{
      "name": "VPN01",
      "fqdn": "vpn01.fftdf.de",
      "mac": "00:00:00:00:00:01",
      "domain": "VPN1",
      "adresses": ["5.9.220.114"]
    },

Config.json

Es gibt 3 Module die Ein/Ausgeschatet werden können:

  • UNMS
  • Unifi
  • Meshviewer
  • Gateways

Die Funktion Meshviewer importiert die vorhandenen meshviewer.json und manipuliert dort die Userzahlen. Sobald ein Access Point einen Node aus einer Meshviwer.json als "gateway_nexthop" eingetragen hat, werden die Clients an dem verbundenen Access Point und nicht mehr am Offloader angezeigt.