Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projekte:clubstatus [2017-04-30 19:56] – [Presence] clonejoprojekte:clubstatus [2024-01-24 23:53] (current) – [Clubstatus] rentin
Line 3: Line 3:
 <WRAP right> <WRAP right>
 ^ clubstatus  || ^ clubstatus  ||
-^ Git | [[https://github.com/clonejo/clubstatusd|clubstatusd]] [[https://github.com/clonejo/clubstatus-web|Web-Frontend]] |+^ Git | [[https://git.aachen.ccc.de/clubstatus/clubstatusd|clubstatusd]] [[https://git.aachen.ccc.de/clubstatus/clubstatus-web|Web-Frontend]] [[https://git.aachen.ccc.de/clubstatus/maccollect|maccollect]] |
 ^ Host | [[https://wiki-intern.aachen.ccc.de/infrastruktur:server:tokamak:web-status|web-status.server.aachen.ccc.de]] | ^ Host | [[https://wiki-intern.aachen.ccc.de/infrastruktur:server:tokamak:web-status|web-status.server.aachen.ccc.de]] |
 ^ Kontakt | [[wiki:user:clonejo |clonejo ]] | ^ Kontakt | [[wiki:user:clonejo |clonejo ]] |
-^ Status | <fc green>aktiv</fc> (2016-03-16 19:10) |+^ Status | <fc green>aktiv</fc> (2022-05-16) |
 </WRAP> </WRAP>
  
-  * Passwort: siehe [[https://wiki-intern.aachen.ccc.de/infrastruktur:server:tokamak:web-status|internes Wiki]] (das altbekannte Passwort, Benutzername ist egal)+  * Passwort: siehe [[https://wiki-intern.aachen.ccc.de/doku.php?id=vereinsfoo:logindaten#status|internes Wiki]] (Benutzername ist egal)
   * läuft unter https://status.aachen.ccc.de/   * läuft unter https://status.aachen.ccc.de/
   * die [[https://github.com/clonejo/clubstatusd/blob/master/api-specification.md|API]] ist unter https://status.aachen.ccc.de/api/   * die [[https://github.com/clonejo/clubstatusd/blob/master/api-specification.md|API]] ist unter https://status.aachen.ccc.de/api/
  
 ===== Presence ===== ===== Presence =====
 +
 === Die Clubinfrastruktur erkennt deine Hosts und meldet dich als anwesend === === Die Clubinfrastruktur erkennt deine Hosts und meldet dich als anwesend ===
-  auf Dynamo läuft in der Munin-VM das Programm maccollect ([[https://git.aachen.ccc.de/~luks/maccollect|repo]], Branch "status-api"+<WRAP right> 
-  * Mac-Adressen der eigenen Geräte eintragen; dafür einen Admin, z.bclonejo oder spq fragen +{{ :projekte:clubstatus-maccollect-screenshot.png?400|}} 
-    in der Munin-VM in der Datei /home/maccollect/maccollect/config.yaml den Benutzernamen und zugehörige Mac-Adressen eintragen +</WRAP> 
-    /etc/init.d/maccollect restart+ 
 +  Geräte im Club-Netz werden anhand der MAC-Adresse erkannt. 
 +  * **Jetzt NEU mit Selfservice™!** Navigiere mit dem zu erkennenden Gerät zu [[http://pile.space.aachen.ccc.de:1234/]], vergebe einen Nicknamen und wähle "Register device". Innerhalb von 1-2 Minuten sollte der Nickname im Clubstatus auftauchen
 +  Der Code für dieses Feature liegt separat im Gitlab: https://git.aachen.ccc.de/clubstatus/maccollect 
 +  Die MAC-Adressen deiner Endgeräte werden ausschließlich gehasht abgelegt.
  
 === vom eigenen Rechner === === vom eigenen Rechner ===
   * Die Präsenzliste wird nicht sofort aktualisiert. Solange der Server bei einem Presence-Request mit 200 antwortet, hat es geklappt :)   * Die Präsenzliste wird nicht sofort aktualisiert. Solange der Server bei einem Presence-Request mit 200 antwortet, hat es geklappt :)
 +  * Nach 10+n Minuten gibt es einen Timeout, und der Benutzername wird wieder aus der Präsenzliste entfernt. Daher muss alle 10min ein neuer Request gesendet werden.
 <code python> <code python>
 #!/bin/python3 #!/bin/python3
  
-import subprocess 
-import requests 
 import json import json
 +import requests
 +import subprocess
 +import sys
 +import time
 +
  
 USER = "Hans Acker" USER = "Hans Acker"
-PASSWORD = "zensiert" +PASSWORD = "zensiert :)
-DEVICE = "wlp3s0"+
  
 def in_cccac_wlan(): def in_cccac_wlan():
-    output = subprocess.check_output(["nmcli", "device", "show", DEVICE]) +    output = subprocess.check_output(["nmcli", "device", "show"]) 
-    for in output.split(b"\n"): +    for line in output.split(b"\n"): 
-        columns = l.split(b": ") +        columns = line.split(b": ") 
-        if columns[0] == b"IP4.DOMAIN[1]":+        if columns[0] == b"IP4.SEARCHES[1]":
             if columns[1].strip() == b"space.aachen.ccc.de":             if columns[1].strip() == b"space.aachen.ccc.de":
 +                print("CCCAC network detected", file=sys.stderr)
                 return True                 return True
 +    print("CCCAC network not detected", file=sys.stderr)
     return False     return False
  
-if in_cccac_wlan(): + 
-    session = requests.Session() +while True: 
-    session.auth = ("", PASSWORD) +    if in_cccac_wlan(): 
-    j = {'type''presence''user': USER} +        print(f"Marking {USER} as currently present.", file=sys.stderr) 
-    r = session.put("https://status.aachen.ccc.de/api/v0", data=json.dumps(j))+        session = requests.Session() 
 +        session.auth = ("", PASSWORD) 
 +        j = {"type""presence""user": USER} 
 +        r = session.put("https://status.aachen.ccc.de/api/v0", data=json.dumps(j)) 
 +        r.raise_for_status() 
 +    time.sleep(600) 
 </code> </code>
  
 Alternativ: Alternativ:
 <code bash> <code bash>
-#!/bin/bash+#!/bin/sh
  
 if arping -c 1 172.20.122.1 | grep -q 00:A0:57:24:80:7D if arping -c 1 172.20.122.1 | grep -q 00:A0:57:24:80:7D
Line 59: Line 76:
 </code> </code>
  
 +
 +===== SpaceAPI =====
 +Der clubstatusd implementiert auch https://spaceapi.io/, unter https://status.aachen.ccc.de/spaceapi.
 +
 +Die statischen Werte werden im Config-File vom clubstatusd eingestellt, unsere [[https://wiki-intern.aachen.ccc.de/doku.php?id=infrastruktur:admins|Admins]] können diese ändern.
Navigation



You are not allowed to add pages