Probleme mit dem ffmap-backend

Ich versuche schon seit einiger Zeit unsere ffmap einzurichten:
http://map.freifunk-ehingen.de
Ich hatte dazu seit einiger Zeit das Backend von Freifunk Mainz benutzt:
http://mettigel.freifunk-mainz.de/ffmap-backend/
Allerdings haben die Statistiken nicht funktioniert (angeblich alles offline) und die Anzahl der Clients konnte ich auch nicht wie hier beschrieben korrigieren.
Gestern habe ich also den aktuellen Master von github geklont. Als erstes kam schonmal ein Fehler, dass die aliases.json nicht korrekt aufgebaut wäre. Ich musste dann alles in eine Zeile schreiben und seitdem kommen auch keine Fehlermeldungen mehr.
Allerdings werden mir jetzt gar keine Clients mehr angezeigt, obwohl ich mit batctl tg eindeutig Clients angezeigt bekomme. Wenn ich die Map neu mit dem Backend von Mainz generiere erscheinen mir auch die Clients wieder (aber eben wieder zu viele).
Mit dem neuen Master scheinen auch die Statistiken fast zu funktionieren, jedenfalls zeigt die Statistik des Gateways wie bei den anderen Communities gar nichts. Die Statistiken der Nodes zeigen jedoch immer noch offline an. Ein kleiner online Balken ist aktuell noch zu sehen (kurz nachdem ich die Karte das erste mal generiert habe gestern Abend).


Kann mir irgendjemand sein funktionierendes Backend zuschicken, oder weiß jemand woran das liegen könnte?

Hier ein paar Ausgaben:

root@ffeh-gw01:~# /home/ffeh/ffmap-backend/alfred.py
{‚e8:94:f6:2a:94:9e‘: {‚firmware‘: ‚0.1~exp20141225‘, ‚id‘: ‚e8:94:f6:2a:94:9e‘, ‚name‘: ‚steffend-kkh-01‘, ‚gps‘: ‚48.279008978946 9.7199070453644‘}}
root@ffeh-gw01:~# /home/ffeh/ffmap-backend/batman.py
[‚56:4b:5d:3c:ef:eb‘]
{‚mode‘: ‚server‘, ‚bandwidth‘: ‚96MBit/96MBit)‘}
root@ffeh-gw01:~# alfred-json -r 158 -z
{
„e8:94:f6:2a:94:9e“: {
„location“: {
„longitude“: 9.7199070453643994,
„latitude“: 48.279008978946003
},
„network“: {
„mac“: „e8:94:f6:2a:94:9e“,
„addresses“: [
„fd71:b56:9f72:855e:ea94:f6ff:fe2a:949e“,

alfred und batadv-vis werden wie folgt gestartet:
/etc/network/interfaces:

[…]
allow-hotplug bat0
iface bat0 inet6 manual
[…]
post-up start-stop-daemon -b --start --exec /usr/local/sbin/alfred – -m -i br-ffeh -b bat0;
post-up start-stop-daemon -b --start --exec /usr/local/sbin/batadv-vis – -si bat0;

Tja, die Statistiken (diese Balkendiagramme) haben die meisten Communities/Defekt „defekt“… leider.

Unsere Clients werden aber überhaupt nicht angezeigt. Die Frage ist dann eben ob die Statistiken funktionieren, wenn die Clients endlich richtig angezeigt werden…

Vielleicht kann dir @phip das von http://map.freifunk-wuppertal.net oder @stefan von http://map.freifunk-troisdorf.de

Habt ihr mal einen link zur nodes.json für mich?

Meinst du http://map.freifunk-wuppertal.net/nodes.json ?

Daran könnte es liegen. Die Anzahl der Clients wird auf 159 propagiert:

alfred-json -r 159 -z
[…]
    "clients": {
  "wifi": 4,
  "total": 4
},
[…]

es wurde aber kurzzeitig (grüner Abschnitt) erfolgreich etwas übermittelt. Versuche mehr als ein mal in der Minute das Backend laufen zu lassen. Versuche die Map erst ein mal ohne Stefans Ptach laufen zu lassen. Welches Gluon und welchen Batman nutzt Ihr? der Patch ist nur für bat15 gedacht, da sich dort 2 TTs statt einen auf dem Knoten befinden. Für bat14 sollte da schon

node.clientcount -= 1

stehen und nicht 2. Möglicherweise ist das der Fehler. Lass es erst einmal ohne Patch laufen.

Also alfred-json -r 159 -z gibt gar nichts mit Clients aus:

root@gw1:~# alfred-json -r 159 -z
{
„e8:94:f6:2a:94:9e“: {
„processes“: {
„total“: 58,
„running“: 4
},
„gateway“: „56:4b:5d:3c:ef:eb“,
„idletime“: 337838.65000000002,
„traffic“: {
„tx“: {
„packets“: 1510670,
„bytes“: 329005086,
„dropped“: 3368
},
„mgmt_tx“: {
„bytes“: 8324827,
„packets“: 207319
},
„rx“: {
„bytes“: 1629362183,
„packets“: 1724267
},
„mgmt_rx“: {
„bytes“: 6910184,
„packets“: 171769
},
„forward“: {
„bytes“: 0,
„packets“: 0
}
},
„uptime“: 346512.09000000003,
„memory“: {
„free“: 3076,
„cached“: 8040,
„total“: 29212,
„buffers“: 2144
},
„node_id“: „e894f62a949e“,
„loadavg“: 0
}

Mehr ist nicht.
alfred-json Version:
alfred-json v0.3.1

root@gw1:~# alfred --version
alfred 2014.3.0
A.L.F.R.E.D. - Almighty Lightweight Remote Fact Exchange Daemon
root@gw1:~# batadv-vis --version
batadv-vis 2014.3.0
VIS alfred client
root@gw1:~# batctl -v
batctl debian-2013.4.0-2 [batman-adv: 2013.4.0]

Stimmt da was nicht?

diese?
http://ffmap.freifunk-rheinland.net/nodes.json

dann liegt da der Fehler begraben, da die neueste Map damit arbeitet. Ich hätte es früher sehen sollen:

'firmware': '0.1~exp20141225'

Offensichtlich arbeitest Du mit einer alten Gluon-Version, die die Anzahl der Clients gar nicht veröffentlicht. Ich kann Dir hier leider nicht mehr helfen, da ich mich mit den Eigenschaften der 0.1er Version nicht auskenne. Ich schlage vor, Du kompilierst zumindest den 2014.3.1er Gluon, um glücklich zu sein mit der Karte.
http://gluon.readthedocs.org/en/v2014.3.1/

Die Version habe ich so genannt (in der site.mk), da es aktuell eine Beta zum testen ist. Die Firmware basiert auf Gluon 2014.3.1.

Tut mir Leid, ich ich kann Dir da leider nicht helfen, da ich keine Ahnung habe, warum bei Dir die Anzahl der Clients nicht über den Datentyp 159 verbreitet wird. Ich hoffe, ein Anderer hier findet die Ursache. Viel Erfolg.

Stimmen denn die Versionen von alfred, batadv-vis und batman-adv alle?

was zeigt denn batctl -o auf den nodes und dem supernode an? Könnte es sein, dass da schon keine sinnvollen daten von den Nodes kommen? Hat Du Dir mal die Pakete angesdchaut, die die Nodes da verschicken?

root@steffend-kkh-01:~# batctl o [B.A.T.M.A.N. adv 2013.4.0, MainIF/MAC: wlan0-1/ea:94:f6:2a:94:9e (bat0)] Originator last-seen (#/255) Nexthop [outgoingIF]: Potential nexthops ... 56:4b:5d:3c:ef:eb 5.070s (255) 56:4b:5d:3c:ef:eb [ mesh-vpn]: 56:4b:5d:3c:ef:eb (255) Auf dem Gateway: root@gw1:~# batctl o [B.A.T.M.A.N. adv 2013.4.0, MainIF/MAC: mesh-vpn/56:4b:5d:3c:ef:eb (bat0)] Originator last-seen (#/255) Nexthop [outgoingIF]: Potential nexthops ... ea:94:f6:2b:94:9e 3.548s (252) ea:94:f6:2b:94:9e [ mesh-vpn]: ea:94:f6:2b:94:9e (252) ea:94:f6:2a:94:9e 0.704s (255) ea:94:f6:2b:94:9e [ mesh-vpn]: ea:94:f6:2b:94:9e (255) Die Nodes verschicken sinnvolle Daten, sonst würde die alte Karte doch auch keine Clients anzeigen oder? root@steffend-kkh-01:~# batadv-vis -i bat0 -f json { "primary" : "ea:94:f6:2b:94:9e" } { "router" : "ea:94:f6:2b:94:9e", "neighbor" : "56:4b:5d:3c:ef:eb", "label" : "1.000" } { "router" : "ea:94:f6:2b:94:9e", "gateway" : "e8:94:f6:2a:94:9e", "label" : "TT" } { "router" : "ea:94:f6:2b:94:9e", "gateway" : "11:22:33:44:55:66", "label" : "TT" } # Client MAC angepasst { "router" : "ea:94:f6:2b:94:9e", "gateway" : "22:33:44:55:66:77", "label" : "TT" } # Client MAC angepasst { "primary" : "56:4b:5d:3c:ef:eb" } { "router" : "56:4b:5d:3c:ef:eb", "neighbor" : "ea:94:f6:2b:94:9e", "label" : "1.000" } { "router" : "56:4b:5d:3c:ef:eb", "gateway" : "da:57:5a:ac:50:f6", "label" : "TT" } Die Ausgabe entspricht genau der des Gateways.

Das ist ein reines Alfred Node Thema…wenn das Gluon jung genug ist, dann kommen auch die Daten zu WIFI und VPN in IFD 159 mit…das ist bei unseren Nodes ab 2014.3.1.149 blabla der Fall…

Die Firmware basiert auf dem Release 2014.3.1, also von dem her sollte das doch passen oder?

Hast Du eine alfred_merged.json irgendwo liegen?

Also bspw. diesen Output:

alfred-json -r 158 -f json > /tmp/alfred.json
alfred-json -r 159 -f json > /tmp/alfred_stats.json
jq -s '.[0] * .[1]' /tmp/alfred.json /tmp/alfred_stats.json > /tmp/alfred_merged.json
root@gw1:/home/ffeh/gluon-alfred-vis# ./mkalfred.sh 
jq: error: object and object cannot be multiplied

Aber der einzelne Output:
alfred.json

{
  "da:57:5a:ac:50:f6": {
    "hostname": "gw1.ffeh.de",
    "vpn": true,
    "software": {
      "batman-adv": {
        "version": "2013.4.0"
      },
      "firmware": {
        "release": "14.04",
        "base": "Ubuntu"
      },
      "fastd": {
        "enabled": true,
        "version": "v16-1-g724cc31"
      }
    }
  },
  "e8:94:f6:2a:94:9e": {
    "location": {
      "longitude": 9.7199070453643994,
      "latitude": 48.279008978946003
    },
    "network": {
      "mac": "e8:94:f6:2a:94:9e",
      "addresses": [
        "fd71:b56:9f72:855e:ea94:f6ff:fe2a:949e",
        "fe80::ea94:f6ff:fe2a:949e"
      ],
      "mesh_interfaces": [
        "ea:94:f6:2a:94:9e",
        "ea:94:f6:2b:94:9e"
      ]
    },
    "node_id": "e894f62a949e",
    "hostname": "steffend-kkh-01",
    "hardware": {
      "model": "TP-Link TL-WR841N/ND v9"
    },
    "owner": {
      "contact": "wasfüreinplaudermauldieseralfred..." # angepasst
    },
    "software": {
      "fastd": {
        "version": "v14",
        "enabled": true
      },
      "autoupdater": {
        "enabled": true,
        "branch": "stable"
      },
      "firmware": {
        "base": "gluon-unknown",
        "release": "0.1~exp20141225"
      },
      "batman-adv": {
        "version": "2013.4.0"
      }
    }
  }
}

alfred-stats.json:

{
  "da:57:5a:ac:50:f6": {
    "traffic": {
      "forward": {
        "packets": 0,
        "bytes": 0
      },
      "mgmt_rx": {
        "packets": 21651,
        "bytes": 868210
      },
      "tx": {
        "bytes": 21857445,
        "dropped": 171,
        "packets": 33414
      },
      "rx": {
        "packets": 31589,
        "bytes": 5163265
      },
      "mgmt_tx": {
        "packets": 12924,
        "bytes": 520983
      }
    },
    "idletime": 41462.309999999998,
    "loadavg": 0.070000000000000007,
    "processes": {
      "total": 142,
      "running": 1
    },
    "memory": {
      "buffers": 126804,
      "total": 1017952,
      "cached": 347564,
      "free": 423992
    },
    "uptime": 43495.800000000003
  },
  "e8:94:f6:2a:94:9e": {
    "processes": {
      "total": 58,
      "running": 2
    },
    "gateway": "56:4b:5d:3c:ef:eb",
    "idletime": 43257.82,
    "traffic": {
      "tx": {
        "packets": 37472,
        "bytes": 6190589,
        "dropped": 84
      },
      "mgmt_tx": {
        "bytes": 1062405,
        "packets": 26449
      },
      "rx": {
        "bytes": 23611897,
        "packets": 38390
      },
      "mgmt_rx": {
        "bytes": 882571,
        "packets": 21963
      },
      "forward": {
        "bytes": 0,
        "packets": 0
      }
    },
    "uptime": 44237.330000000002,
    "memory": {
      "free": 3052,
      "cached": 8144,
      "total": 29212,
      "buffers": 2316
    },
    "node_id": "e894f62a949e",
    "loadavg": 0.070000000000000007
  }
}

base und release sind in Deinem Output vergurkt:

  "firmware": {
    "base": "gluon-unknown",
    "release": "0.1~exp20141225"

Das sollte so aussehen:

  "firmware": {
    "base": "gluon-v2014.3.1",
    "release": "0.5.1-beta-1"
  },

Und so muss es aussehen, wenn das Gluon jung genug ist. Das ist die älteste Gluon die ich bei uns finden kann bei der das angegeben ist:

  "firmware": {
    "base": "gluon-v2014.3-128-gb7187df",
    "release": "2014.4-beta-3_exp20141121-ad"
  },