Opennet API: Unterschied zwischen den Versionen
Erscheinungsbild
Inhalt gelöscht Inhalt hinzugefügt
K MathiasMahnke verschob Seite Geronimo/v2 nach Opennet API |
Keine Bearbeitungszusammenfassung |
||
| (9 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
Geronimo v2 bietet Statusdaten des Mesh-Netzwerks und Meta-Daten der lokalen Communities basierend auf verschiedenen Quellen mittels einer REST-API an. Der Vorgänger dieses Diensts war [[Geronimo/v1|Geronimo v1]]. |
Die Opennet API (Geronimo v2) bietet Statusdaten des Mesh-Netzwerks und Meta-Daten der lokalen Communities basierend auf verschiedenen Quellen mittels einer REST-API an. Der Vorgänger dieses Diensts war [[Geronimo/v1|Geronimo v1]]. |
||
== Überblick == |
== Überblick == |
||
* Vorgedanken und Funktionsumfang: [[Geronimo/v2/Planung]] |
* Vorgedanken und Funktionsumfang: [[Geronimo/v2/Planung]] |
||
* [https://dev.on-i.de/query?status=accepted&status=assigned&status=new&status=reopened&component=on_geronimo&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&desc=1&order=status Tickets] |
* [https://dev.on-i.de/query?status=accepted&status=assigned&status=new&status=reopened&component=on_geronimo&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&desc=1&order=status Tickets] |
||
URLs für einen Node: |
|||
| ⚫ | |||
* https://api.opennet-initiative.de/api/v1/accesspoint/192.168.1.11 |
|||
* https://api.opennet-initiative.de/api/v1/accesspoint/192.168.1.11/links |
|||
Für alle Nodes: |
|||
| ⚫ | |||
* https://api.opennet-initiative.de/api/v1/link |
|||
* https://api.opennet-initiative.de/api/v1/interface |
|||
Filtern nach AP-Status, z.B. "online" (alternativ "flapping") |
|||
* https://map.opennet-initiative.de/api/v1/accesspoint/?status=online&data_format=geojson&in_bbox=10.314788818359373,53.72027890176105,14.860382080078127,54.29969774594346 |
|||
Für JSON-Format ?format=json anhängen, z.B.: |
|||
* https://api.opennet-initiative.de/api/v1/accesspoint/192.168.1.11?format=json |
|||
Für GeoJSON ?format=geojson, z.B. alle Links im GeoJSON Format: |
|||
* https://map.opennet-initiative.de/api/v1/link/?data_format=geojson&in_bbox=10.314788818359373,53.72027890176105,14.860382080078127,54.29969774594346 |
|||
== Datenquellen == |
== Datenquellen == |
||
* Wiki: AP-Liste mit Besitzern und Positionen |
* Wiki: AP-Liste mit Besitzern und Positionen |
||
* [[Ondataservice]]: Hardware, Firmware, Systemzustand, Netzwerkschnittstellen |
* [[Ondataservice]]: Hardware, Firmware, Systemzustand, Netzwerkschnittstellen |
||
** derselbe Datensatz ist auch via [[Ondataservice#Alternativer_HTTP-Abruf|HTTP-Abruf]] verfügbar (erfordert eine manuelle Anpassung für Firmware bis 0.5.4) |
|||
* [[OLSR]]: Links, Qualität, "lastseen"-Zeitstempel |
* [[OLSR]]: Links, Qualität, "lastseen"-Zeitstempel |
||
* manuell gepflegte Liste von Regionen für [[Freifunk API]] |
* manuell gepflegte Liste von Regionen für [[Freifunk API]] |
||
| Zeile 22: | Zeile 39: | ||
== Entwicklung == |
== Entwicklung == |
||
* [ |
* [https://github.com/opennet-initiative/api git-Repository] auschecken: <tt>git clone https://github.com/opennet-initiative/api</tt> |
||
* Dienst lokal starten: <tt>python3 manage.py runserver</tt> |
* Dienst lokal starten: <tt>python3 manage.py runserver</tt> |
||
* Daten importieren (manuell): |
* Daten importieren (manuell): |
||
** python3 manage.py import_olsr |
|||
** python3 manage.py import_wiki |
** python3 manage.py import_wiki |
||
** python3 manage.py |
** python3 manage.py import_olsr http://192.168.2.76:2006/ |
||
** python3 manage.py import_ondataservice examples/ondataservice.db |
|||
* API abfragen (z.B. Browser oder curl): http://localhost:8000/api/v1/accesspoint/ |
* API abfragen (z.B. Browser oder curl): http://localhost:8000/api/v1/accesspoint/ |
||
* Release erstellen: <tt>make release-(major|minor|patch)</tt> |
* Release erstellen: <tt>make release-(major|minor|patch)</tt> |
||
| Zeile 36: | Zeile 53: | ||
* deb-Paket installieren (zuvor eventuell manuell erstellen - siehe oben) |
* deb-Paket installieren (zuvor eventuell manuell erstellen - siehe oben) |
||
* den Anweisungen aus der Datei <tt>/usr/share/doc/on-geronimo-api/README.Debian</tt> folgen |
* den Anweisungen aus der Datei <tt>/usr/share/doc/on-geronimo-api/README.Debian</tt> folgen |
||
== Problembehebung == |
|||
Falls irgendwelche Daten nicht aktualisiert werden, dann schlug vielleicht einer der Datenimporte fehl. |
|||
Fehleranalyse: |
|||
# auf dem Host [[Server/jun]] die Datei <tt>/etc/cron.d/on-geronimo-api</tt> betrachen: hier sind alle Datenimporte aufgeführt |
|||
# die Cron-Jobs können einzeln (im Kontext des angegebenen Ziel-Nutzers) ausgeführt werden |
|||
# bei der manuellen Ausführung können Fehler leicht erkannt werden |
|||
Aktuelle Version vom 16. Februar 2026, 14:07 Uhr
Die Opennet API (Geronimo v2) bietet Statusdaten des Mesh-Netzwerks und Meta-Daten der lokalen Communities basierend auf verschiedenen Quellen mittels einer REST-API an. Der Vorgänger dieses Diensts war Geronimo v1.
Überblick
- Vorgedanken und Funktionsumfang: Geronimo/v2/Planung
- Tickets
URLs für einen Node:
- https://api.opennet-initiative.de/api/v1/accesspoint/192.168.1.11
- https://api.opennet-initiative.de/api/v1/accesspoint/192.168.1.11/links
Für alle Nodes:
- https://api.opennet-initiative.de/api/v1/accesspoint/
- https://api.opennet-initiative.de/api/v1/link
- https://api.opennet-initiative.de/api/v1/interface
Filtern nach AP-Status, z.B. "online" (alternativ "flapping")
Für JSON-Format ?format=json anhängen, z.B.:
Für GeoJSON ?format=geojson, z.B. alle Links im GeoJSON Format:
Datenquellen
- Wiki: AP-Liste mit Besitzern und Positionen
- Ondataservice: Hardware, Firmware, Systemzustand, Netzwerkschnittstellen
- derselbe Datensatz ist auch via HTTP-Abruf verfügbar (erfordert eine manuelle Anpassung für Firmware bis 0.5.4)
- OLSR: Links, Qualität, "lastseen"-Zeitstempel
- manuell gepflegte Liste von Regionen für Freifunk API
Funktionsumfang
- Zusammenfassung verschiedener Datenquelle
- aktuelle Zustände von Accesspoints und Links ausliefern
- Metadaten für die Freifunk API ausliefern
Architektur
- Django-Anwendung liefert Daten via REST-Framework aus (inkl. Unterstützung für Geodaten - z.B. Bounding-Box-Limitierung von Abfragen)
- Import von Daten aus den verschiedenen Quellen via cron-Jobs
Entwicklung
- git-Repository auschecken: git clone https://github.com/opennet-initiative/api
- Dienst lokal starten: python3 manage.py runserver
- Daten importieren (manuell):
- python3 manage.py import_wiki
- python3 manage.py import_olsr http://192.168.2.76:2006/
- python3 manage.py import_ondataservice examples/ondataservice.db
- API abfragen (z.B. Browser oder curl): http://localhost:8000/api/v1/accesspoint/
- Release erstellen: make release-(major|minor|patch)
- deb-Paket bauen: make dist-deb
- deb-Paket bauen und auf einem Server installieren: make deploy-deb-remote DEPLOY_TARGET=root@example.on
Installation
- deb-Paket installieren (zuvor eventuell manuell erstellen - siehe oben)
- den Anweisungen aus der Datei /usr/share/doc/on-geronimo-api/README.Debian folgen
Problembehebung
Falls irgendwelche Daten nicht aktualisiert werden, dann schlug vielleicht einer der Datenimporte fehl.
Fehleranalyse:
- auf dem Host Server/jun die Datei /etc/cron.d/on-geronimo-api betrachen: hier sind alle Datenimporte aufgeführt
- die Cron-Jobs können einzeln (im Kontext des angegebenen Ziel-Nutzers) ausgeführt werden
- bei der manuellen Ausführung können Fehler leicht erkannt werden