|
|
(15 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) |
Zeile 2: |
Zeile 2: |
| |description=Geronimo | | |description=Geronimo |
| |nextMeeting=nur bei Bedarf | | |nextMeeting=nur bei Bedarf |
− | |members=[[Benutzer:Matthias M|Matthias M.]], [[Benutzer:Lars|Lars]], Vally | + | |members=[[Benutzer:Matthias M|Matthias M.]], [[Benutzer:Lars|Lars]] |
| |kontakt=[mailto:admin@opennet-initiative.de admin@opennet-initiative.de] | | |kontakt=[mailto:admin@opennet-initiative.de admin@opennet-initiative.de] |
| |logo=Geronimo Logo.png | | |logo=Geronimo Logo.png |
| }} | | }} |
| | | |
− | == Vorbemerkung == | + | == Überblick == |
− | | + | Geronimo ist ein zentrales Framework für die Sammlung und Verteilung Opennet-relevanter Informationen. Der Fokus liegt auf der Verwendbarkeit durch Dienste. |
− | {{hinweis
| + | |
− | |Aktuell wird eine [[Geronimo/Planungv2|neue Version 2 geplant]]
| + | |
− | }}
| + | |
− | | + | |
− | Geronimo ist ein zentrales Informationsframework, dass insbesondere die Kartendarstellung unterstützt. | + | |
− | * Datenquelle [[Ondataservice]] (per [[OLSR]] AP Infos sammeln)
| + | |
− | * Karten-Darstellung mit verbesserter [[Openlayers]] Karte
| + | |
− | * Export nach [[Freifunk]] Nodelist API per ''geronimo_freifunknodelist.sh''
| + | |
− | | + | |
− | ==Ziele==
| + | |
− | *Vereinheitlichung der Daten (AP namen, Daten , ...)
| + | |
− | *Zusammenfassung aller Informationsquellen (OLSR, ondataservice, Wiki, ...)
| + | |
− | *lose Kopplung (REST API, Erweiterbarkeit, ...)
| + | |
− | *flexible Datengenerierung
| + | |
− | *Speicherung Langzeitinfos
| + | |
− | | + | |
− | ==To do==
| + | |
− | * <s>Ablösung der Minikarte (Anzeigen der Nachbarn)</s>
| + | |
− | * <s>Datenmenge reduzieren </s>
| + | |
− | * <s>leere Felder weglassen in final weglassen</s>
| + | |
− | * UGW Erreichbarkeit je AP berechnen und anzeigen
| + | |
− | * Wiki auswerten
| + | |
− | **ein ressourcenschonender Wiki-Reader ist in der Entwicklung
| + | |
− | **Ansprechpartner, Standort, Foto des APs aus Wiki finden
| + | |
− | **[[:Vorlage:accesspoint]] für verteilte Wartung der Daten einführen
| + | |
− | * Kanal/SSID Ansicht für Links
| + | |
− | **zur Zeit nicht sinnvoll machbar, da viele APs keine Daten per [[OLSR]] liefern, was wohl an veralteter Firmware liegt
| + | |
− | * UGW Erreichbarkeit eines Knotens
| + | |
− | * Formatierung mit pylint prüfen
| + | |
− | * Code cleanup
| + | |
− | * Openlayers schrumpfen
| + | |
− | * Wifidog Funkkegel anpassbar machen
| + | |
− | * Zeitliche Dimension einführen, ggF. rrdtools dadurch ersetzen oder anzapfen
| + | |
− | | + | |
− | ===v2===
| + | |
− | * hervorgegangen aus [[Benutzer:Lars/Blog:2015 January 02 22:00:18 CET|Blog-Beitrag "Technik-Treffen: Karten und API (02.01.2015)"]]
| + | |
− | * siehe [[Geronimo/Planungv2]]
| + | |
− | | + | |
− | ==Architektur==
| + | |
− | Der Quellcode liegt in einem [https://dev.opennet-initiative.de/browser/on_geronimo GIT Repository] und ist komplett in Python geschrieben. Er gliedert sich in zwei Hauptmodule
| + | |
− | *geronimo.py - Backend, das die Daten zusammensammelt
| + | |
− | *geronimoCGI.py - HTTP Frontend ([http://cherrypy.org CherryPy]), dass an Apache gekoppelt wird
| + | |
− | Der Datenaustausch erfolgt über die Dateien nodes.cache, links.cache (Pickle Framework) und die interne Repräsentation über einfache Objekte (siehe primitives.py). Die Backend Module, welche die Daten einsammeln liegen unter /helpers (zur Zeit nur Wiki, ondataservice DB und OLSR lastseen CSV) und diese werden über config.ini mit den richtigen Pfaden versorgt.
| + | |
− | | + | |
− | Das Frontend liefert derzeit geoJSON und kann wie folgt aufgerufen werden:
| + | |
− | <pre>
| + | |
− | http://www.opennet-initiative.de/api/node/neighbours?ip=192.168.1.59
| + | |
− | http://www.opennet-initiative.de/api/nodes/online/
| + | |
− | http://www.opennet-initiative.de/api/nodes/offline/
| + | |
− | http://www.opennet-initiative.de/api/links/online/
| + | |
− | </pre>
| + | |
− | Letztere können auch mit einer Suchbox mit Mercator Koordinaten gefiltert werden
| + | |
− | <pre>
| + | |
− | http://www.opennet-initiative.de/api/links/online?bbox=11.925507659912,54.040317086552,12.314492340088,54.119673430674
| + | |
− | </pre>
| + | |
− | Das ganze wird durch eine verbesserte Version der [[Openlayers]] Karte im Browser angezeigt und liegt unter ./src/www.
| + | |
− | | + | |
− | ===Ablauf===
| + | |
− | Ein cronjob ruft regelmäßig geronimo.py auf. Dort wird zunächst das lastseen Verzeichnis gelesen und ermittelt welche APs wann online waren. Danach wird eine Liste der APs aus dem Wiki generiert ([[Opennet Nodes]]) und alle APs mit wichtigen Details aus [[ondataservice]] ergänzt. Zum Schluss wird das ganze in die Cache Dateien geschrieben.
| + | |
− | | + | |
− | Wenn nun per Openlayers dir Karte angezeigt wird, wird die aktuelle BBOX bestimmt und ein Call auf den API-Services gemacht (je Layer). Über WSGI und Cherrypy wird dann aus der geronimoCGI.py dann der entsprechende Einstiegspunkt gewählt und abgearbeitet. Dabei werden die Cache-Dateien gelesen und je nach Anforderung nachgefiltert, sowie als JSON formatiert und ausgegeben. Openlayers parst dieses wieder auf Client-Seite und wendet basierend auf den Eigenschaften der Objekte die definierten Stile an.
| + | |
− | | + | |
− | ==Einrichtung==
| + | |
− | Der Dienst läuft derzeit auf dem WWW Server ([[Server/on-v6]]) und ist unter '''/var/www/geronimo/src''' zu finden | + | |
− | In der '''config.ini''' sind die Pfade entsprechend der lokalen Einrichtung zu setzen. Das Unterverzeichnis ./www muss dann dem '''Apache''' zugänglich und über diesen statisch freigegeben werden. Außerdem muss eine zusätzliche URL (z.Z. www.on-i.de/api/) per WSGI mit geronimoCGI.py verknüpft werden. Diese öffentliche URL muss anschließend in ./www/index.html als BASE_URL=* eingetragen werden.
| + | |
| | | |
| + | Status: |
| + | * [[Geronimo/v1|Geronimo v1]] (auslaufender Betrieb) wird genutzt von: |
| + | ** alte [[Openlayers|Karte]]: https://opennet-initiative.de/map |
| + | ** Wiki: https://on-i.de/wiki/Extension:APData |
| + | * [[Geronimo/v2|Geronimo v2]] (aktiv in Betrieb und Entwicklung) wird genutzt von: |
| + | ** API zur Abfrage von Routing- und Geräteinformationen: https://api.opennet-initiative.de/ |
| + | ** neue [[Openlayers|Karte]]: https://map.opennet-initiative.de/ |
| + | ** Kartendarstellung auf der Status-Seite jedes AP |
| | | |
− | ==Siehe auch== | + | == Siehe auch == |
| * [[Freifunk API]] | | * [[Freifunk API]] |
| * [[Karte]] | | * [[Karte]] |
| | | |
| [[Category:Software]] | | [[Category:Software]] |
Geronimo ist ein zentrales Framework für die Sammlung und Verteilung Opennet-relevanter Informationen. Der Fokus liegt auf der Verwendbarkeit durch Dienste.