Alfred-json liefert einen leeren {} retour

Ich versuche gerade mit mehreren raspberries ein batman mesh netzwerk aufzubauen. Das funktioniert auch bis jetzt ganz ok, ich kann Geräte hinzufügen und auch pingen (ping6 -i bat0 macht zwar 20% packet loss, aber er geht …) und ich nun wollte ich so eine Ansicht davon erzeugen wie ich sie hier im Forum schon oft gesehen habe. Dazu habe ich mir alfred-json installiert und mein raspberry A (der ist auch über eth0 mit dem internet verbunden) kommuniziert mit meinem raspberry B (über batman angebunden). Ich starte nun also auf Raspberry A (master)

alfred -i bat0 -m

und in der console kommt dann alle 10 sec oder so

Announcing master ...

Soweit also so gut, nun habe ich eine neue console aufgemacht und versuche mit alfred-json eine Ausgabe für mein meshed network zu erhalten. Allerdings kriege ich nach Eingabe von

alfred-json -r 158

nur {} retour. Erste Vermutung ist natürlich dass ich den Datentyp nicht richtig konfiguriert habe (ist 158 überhaupt der Standardwert?), da habe ich aber das Problem dass wenn ich mit

alfred -i bat0 -m -s 158 

versuche die Daten mit dem Datentyp 158 zu verteilen, dass ich als Fehlermeldung bekomme:

can't connect to unix socket: Connection refused

Wo bin ich hier falsch abgebogen?
Extra Frage: Wo finde ich den json file, so denn dann mal einer erzeugt wird mit alfred-json?

Moin,

ich denke, dein Problem ist, es gibt keine Daten die angezeigt werden könnten. Oder hast du da irgendwas im Mesh, das ein announce Script uÄ laufen hat?

Gruß

Chrisno

So startet man alfred grob:

alfred -m -b bat0 -i bat0 -u /var/run/alfred.sock &
batadv-vis -s -i bat0 -u /var/run/alfred.sock &

Danach kann man auch die entsprechenden Mäsch-Daten bekommen

batadv-vis -f json -i bat0 -u /var/run/alfred.sock

Und bei alfred-json sollte man auch vorher etwas mit alfred reingezwitschert haben.

Danke euch für eure Zeit erstmal.

@phip
Das hat funktioniert. Mit dem zweiten Absatz:

batadv-vis -f json -i bat0 -u /var/run/alfred.sock

bekomme ich dann als Rückmeldung:

{ "primary" : "7c:33:90:79:e6:52" }
{ "router" : "7c:33:90:79:e6:52", "neighbor" : "7c:33:90:79:e6:1d", "label" : "1.085" }
{ "router" : "7c:33:90:79:e6:52", "gateway" : "96:44:f0:e9:cb:d0", "label" : "TT" }

das sollte also soweit passen. Nur habe ich noch nicht verstanden wo die Datei dazu landet. Oder soll ich mir einfach selbst ein Script schreiben dass das alle x sec aufruft und abspeichert?

@chrisno
Ich muss gestehen ich bin noch über kein Announce Script gestolpert, wo kann ich sowas in Beispielform finden?

Danke!

edit:

Wenn nun ein zweiter client aktiv ist, dann sieht es so aus:

{ "primary" : "7c:33:90:79:e6:52" }
{ "router" : "7c:33:90:79:e6:52", "neighbor" : "7c:33:90:79:e6:1d", "label" : "1.154" }
{ "router" : "7c:33:90:79:e6:52", "neighbor" : "7c:33:90:79:e6:19", "label" : "1.045" }
{ "router" : "7c:33:90:79:e6:52", "gateway" : "96:44:f0:e9:cb:d0", "label" : "TT" }

Wie verkaufe ich das nun an den alfred-json?

alfred-json -r 158 -s /var/run/alfred.sock

Wäre meine erste Idee, aber ich habe das ja noch nicht als 158 definiert…?!

Ich habe nun auch ohne alfred-json mal eine Visualisierung gebaut, das geht alles relativ problemlos. Ich habe aber noch immer zwei Fragen:

  • Label: Da habe ich mal so auf die schnelle nur in der batctl (glaube ich) manpage gefunden, dass das der Wert für die Qualität der Übertragung ist, nach diesem 255/TQ standard, ist das korrekt (ETX?).
  • Ich bin immernoch nicht ganz durch die Datentypen gestiegen. Wo kann ich dazu was lesen?