Sonderlocke für Ruhrgebiet in Freifunk-Karte implementiert

Hmm, das ist übel. Ich maile mal mit den Freunden von Freifunk-Niersufer.

@dgoersch Die Knoten in MG tauchen auch doppelt auf. D.h. für die Niersufer Knoten werden wohl zwei Einträge mit unterschiedlichen Daten geliefert, wenn die einzelnen Communities eigene JSON-Dateien haben.

die node_id wird von @chrisno Perl Merger umgefummelt, damit wir zuordnen können aus welcher Subdomäne / Community / ASN der Eintrag stammt :worried:

Also kann die Lösung nur sein, dass die Knoten nur in eine Datei geschrieben werden, oder? Also entweder in die Sammeldatei oder wenn eine eigene Datei für die lokale Community existiert, dann nur noch dort hin (was ja auch richtig und gewollt wäre).

Ich habe für Neukirchen-Vluyn jetzt testweise die http://map.freifunk-ruhrgebiet.de/data/nodes.json in unserem api-file eingebunden. Jetzt funktioniert das Deduplizieren und es wird der richtige Link und die richtige über geordnete Community angezeigt. Wenn die Knoten wieder von der Karte verschwinden, dann nehme ich unser eigenes json file wieder rein. Ich finde es so besser, als wenn jeder Knoten doppelt auftaucht, oder?

das klang jetzt erstmal so, als würden jetzt alle ruhrgebiet-knoten unter „Neukirchen-Vluyn“ firmieren.
Ist aber wohl nicht so für eure Gruppe werden aktuell 17 Knoten in die Karte aufgenommen.

Irgendwie ist die Gesamtzahl der Knoten wieder unter 21k gesunken, aber das hat wohl andere Gründe.
Keine Ahnung, ob ich ein detailliertes Logging bauen sollte, um das verschwinden einzelner Gruppen besser erkennen zu können.

Tino

Hallo @StilgarBF,

Ich habe die Änderung wieder rückgängig gemacht, nachdem ich die Feindliche Übernahme des Ruhrgebiets durch ein kleines Städtchen am Niederrhein bemerkt habe… :wink:

Nunja, jetzt sind die Vluyner Knoten halt wieder doppelt drin. Da habe ich keinen Einfluss drauf. @dgoersch habt Ihr schon eine Idee, wie man verhindern kann, dass communities vom Niersufer, die ein eigenes gültiges API-File haben, das auf eine eigene Datei verweist, weiter parallel auch in der Ruhrgebietsliste landen?

Bernd

Ich weiß leider zu wenig darüber, wie euer netz aufgebaut ist.
wo die peeren, wo eventuell Daten dazu vorhanden sind, welcher Router nun zu welchem Netz / welcher Community gehört.

Wenn zum Beispiel in dem Allübergreifenenden nodes.json der gemeinsamen Karte zusätzlich vermerkt wäre zu welcher community der Knoten gehört, könnte man daraus sicher was machen.

Die dopplungen sind auch deshalb doof, weil die Daten der freifunk-karte demnächst in eine Karte des Bundes übernommen werden sollen.

Ich kann an der Doppelung nix ändern. @chrisno muss verhindern, dass in der gemergten Karte die NodeID verändert wird. Mein Vorschlag wäre, die zusätzlichen Infos (Herkunft und AS) in extra Key/Value-Paaren im JSON zu speichern. Dann würde der De-Doupler wieder greifen.

Ist irgendwo erklärt, wie diese Daten grundsätzlich generiert werden? Unsere Knoten haben die Niersufer Firmware drauf. Die meldet sich mit den auf den Knoten gespeicherten Daten beim Supernode und der sammelt die Daten und schreibt sie weg? Oder wie muss ich mir das vorstellen? Verstehe ich es richtig, dass die Niersufer Daten alle in die Ruhrgebiets-Datei geschrieben werden? Die Datei für Neukirchen-Vluyn wird anschließend aus der Sammeldatei per Filtering auf den Kontennamen FF-WES-NV- genriert, habe ich das richtig verstanden?

Wenn ich es richtig sehe, sind die Knoten von Niersufer jetzt nicht mehr in der http://map.freifunk-ruhrgebiet.de/data/nodes.json enthalten? Hat das jemand abgeklemmt? Momentan sieht es nach ersten Stichproben für MG und NV jedenfalls super aus. In Krefeld gibt es zwei Firmwares parallel. Die Niersufer Router sind nicht mehr auf der Karte, die Neusser sind drin…

Ich bitte die Krefelder Freunde, ihre eigene json-File http://api.freifunk-niersufer.de/kr/nodes.json bei der API anzumelden. Dann gibt es die auch wieder auf der Karte.

Ok, jetzt sind die Niersuferknoten wieder in der Ruhrgebietsdatei drin… :confused: Und damit natürlich bei uns wieder alles doppelt… Ich warte jetzt einfach mal ab. Ihr bekommt das schon hin :+1:

Wie kommen die Daten in die Map/JSON:

Wir betrieben aktuell zwei Instanzen/Netze:
Moers und Niersufer

NV liegt wie auch Viersen, Mönchengladbach, Jüchen oder Krefeld im Netz Niersufer.

Für beide Netze werten wir die Alfred-Daten aus und stellen sie als JSONs bereit. Darüber hinaus werden die JSON-Daten des Niersufer-Netzes nach Communities gefiltert und wir stellen für die Communities eigene JSONs bereit, so dass sie eine Map mit ausschließlich ihren Nodes betreiben können. Das machen wir aktuell für Mönchengladbach, Viersen, Krefeld, Brüggen, Jüchen, Nettetal und Neukirchen-Vluyn.

Geplant ist eine „gemeinsame“ Niersufer-Map, auf der unsere Netze wieder zusammengeführt werden. Spätestens wenn die nächsten großen Netze wie Krefeld oder Mönchengladbach aus dem alten „Niersufer“-Netz geschoben werden, muss diese zwingend her. Ich arbeite daran.

Welche Daten nun alle vom Ruhrgebiet mit in ihre JSONs gemerged werden, weiß ich nicht. Hierzu kann @CHRlS oder @chrisno sicher mehr sagen.

Das „Problem“ an der Sache ist nun, dass zum einen die Communities (wie gewünscht und designed) sich an der Freifunk-API anmelden, zum anderen aber das Ruhrgebiet ein JSON veröffentlicht, in dem die Router der Communities zusätzlich gelistet werden. Eigentlich dürften da nur die Router drin auftauchen, die direkt in der Domäne Ruhrgebiet und nicht in einer der Sub-Domänen sind.

Um dieses Problem zu umgehen hat @StilgarBF nun diese „Sonderlocke“ geschaffen. Die greift allerdings nicht, weil in dem zusammengefassten JSON des Ruhrgebiet die NodeIDs verändert werden und somit diese nicht mehr als Doublette erkannt werden.

Daher erneut meine eindringliche Bitte an @chrisno hier aktiv zu werden und das zu bereinigen. Alle anderen verhalten sich wie gewünscht oder wie designed, nur dieses gemergte File verursacht das ganze Chaos.

Super, danke für die Erklärung. Was ich nur noch nicht verstanden habe, wie die Daten in der Gesamt-Ruhrgebiets-Datei landen? Sammeln die Ruhrgebietler (also @chrisno) alle Community-Files ein und mergen die dann in die Gesamtdatei, wobei sie dann auch noch die NodeIDs umbiegen? Aber wie Du schon sagst: am besten wäre es, wenn sie nur die eigenen Knoten in diese Datei packen würden.

Ich schließe mich also Deiner Bitte an @chrisno ausdrücklich an. Ich finde es gerade nicht so toll, dass alle Knoten, die so wie vorgesehen per API-File gemeldet werden nun doppelt auf der freifunk-karte.de auftauchen. Auf dem Mobiltelefon habe ich keine Chance, die Karte so groß zu ziehen, dass ich bei den Doppelknoten in die Detailansicht gehen kann.

Wir planen für die gesamte Subdomäne Niersufer auch eine gemeinsame Karte aller Instanzen/Netze. Das ist ja im Prinzip auch nicht schlimm. Nur darf diese dann nicht für Dienste wie die Freifunk-Karte verwendet werden.

Es ist tatsächlich so, dass aktuell zu den „normalen“ Ruhgebiet-Daten, die JSONs der Subdomänen hinzugefügt werden. Dabei wird der Ursprung der Daten in der NodeID als Prefix gekennzeichnet. Durch diese Veränderte NodeID, greift der Dubletten-Filter von @StilgarBF nicht mehr.

Gibt es die gemeinsame Karte nicht schon unter map.freifunk-niersufer.de? Oder meinst Du was anderes?

In dieser Karte fehlt beispielsweise Moers, da es in einer anderen Instanz liegt.

Hey Leute, ich hab momentan wenig Zeit und hab den thread nur überflogen.
Das prefix war ausdrücklich gewünscht. Es zu entfernen führt an anderer Stelle zu Schwierigkeiten. Deshalb bleibt es drin.

Wenn ich anderweitig bei der Lösung des Problems helfen kann, gerne.

Gruß
Chrisno

@chrisno kannst du die originale unique-ID zusätzlich ins json aufnehmen?
dann würde ich, sobald ich dieses Feld vorfinde das verwenden statt der „erweiterten“ ID.

Das sollte dann mit anderen Diensten, die die gleiche Datei nutzen und den Prefix brauchen nicht kollidieren.

Wäre das ein möglicher Weg?

1 „Gefällt mir“

Guter Plan.

Ich hab nächste Woche Urlaub, da baue ich das ein.

Gruß
Chrisno

1 „Gefällt mir“

Muss das mal wieder aufleben lassen… Ruhrgebiet-West (Duisburg/Mülheim) ist auf der Karte tot. Dito auch in der ios App.