Ampel für Mitarbeiter zum An-/Abwesend zeigen

Hallo zusammen,
ein Freund verwies mich auf dieses Forum und ich hoffe ich bin hier richtig.
Und zwar habe ich gerade ein vollständig ehrenamtlich betriebenes Beratungsbüro eröffnet.

Hier soll den Kunden am Flur angezeigt werden, welcher der Berater gerade zu sprechen ist (grün hinterlegter Name) und welcher sich derzeit in Besprechungen befindet (rot hinterlegter Name). Nachdem ich im Office-Forum (zunächst war die Idee von bedingten Formatierungen etc) auch verwiesen wurde, nun hier.

Diese "Fluranzeige" soll auf einem, Monitor/Display ggf. über Raspi oä ausgegeben werden. Jeder Kollege soll von seinem Arbeitsplatz aus die Möglichkeit haben sich eben "rot" oder "grün" zu schalten. Es geht nicht um Überwachung oder Arbeitszeiten. Ganz schlicht nur Rot oder Grün. (ggf. gelb, wenn der Ansprechpartner sich im Home-Office befindet).

Ich kenne mich leider gar nicht auf dem Java-Gebiet aus aber bin wissbegierig und freue mich mit und von anderen zu lernen. Vielleicht kann und mag jemand unserer kleinen kostenlosen und ehrenamtlichen Beratungsstelle helfen?

Beste Grüße!
 
Wenn alle Mitarbeiter einen Laptop zur Verfügung haben, würde ich es als kleine Web-GUI, welche lediglich die drei Modis verwaltet und anzeigt, umsetzen.
 
Naja also das Grund Design wäre wie folgt :

Pi verwaltet eine interne Webseite, welche z.B. einen Login (um den Mitarbeiter zu loggen) und 3 Knöpfe für die 3 Modis besitzt.

Damit etwas beim clicken dieser Knöpfe passiert, muss man sich eingeloggt haben. Sollte dies bereits gegeben sein, wird der Modi angepasst. Deine Modis könntest du mit einem ENUM verwalten 🙂
 
@Kirby_Sike ... du machst mich fertig ^^ 😛
Das sind schon wieder Begriffe (Pi, ENUM) mit denen ich nichts anfangen kann... 😀 ich bin wie gesagt absoluter Anfänger und habe bisher nicht mit Java oder JavaScripts gearbeitet... Ich muss wirklich ganz unten anfangen - so das online möglich ist...
 
Pi ist nur die Abkürzung für RasberryPi und ein Enum ist eine "aufzählung" z.B. so:

Java:
public enum Modus{
    BEREIT, BELEGT, HOMEOFFICE;
}
 
Du könntest z.B. eine Klasse für einen Mitarbeiter erstellen, diese könnte so aussehen:

Java:
public class Mitarbeiter{
    private String name;
    private String roomNumber;
    private Modus availability;
   
    public Mitarbeiter(String name, String roomNumber){
        this.name = name;
        this.roomNumber = roomNumber;
        availability = Modus.BEREIT;
    }
   
    public String getName(){
        return name;
    }
   
    public void setName(String name){
        this.name = name
    }
   
    public String getRoomNumber(){
        return roomNumber;
    }
   
    public void setRoomNumber(String roomNumber){
        this.roomNumber = roomNumber;
    }
   
    public Modus getAvailability(){
        return availability;
    }
   
    public void setAvailability(Modus availability){
        this.availability = availability;
    }
}

Diese würde dann von deiner Main Klasse verwaltet werden (sprich z.B. eine Liste von Mitarbeiter)
 
Ja gut dann wird sich diese Anwendung etwas erschweren 🙂 Ich würde dir empfehlen erstmal die Basics zu lernen und dann dich mit Datenstrukturen zu beschäftigen 🙂

Du hast sicherlich recht... allerdings benötige ich diese Ampel dringend... schon vom ersten Tag an bemerken wir das, und möchten aber nicht alle Türen hinter jedem Kunden abschließen wollen (was auch brandschutztechnisch mehr als fragwürdig wäre)... Und Geld ist in so einem Ehrenamtsprojekt halt auch eher knapp.
Wobei ich so ein Programm bisher auch im Netz noch nicht gefunden habe...
 
Ohne Erfahrung, muss Sofort da sein und kein Budget sind natürlich gute voraussetzungen...
Ich würde nochmal nach einer entsprechenden Software schauen. Wenn man nach "Raumplanung" googlet gibt es schon einige Ergebnisse.

Jetzt ist "nur" noch die Frage der Anzeige an den Räumen selber. Entweder unterstützen die Programme bestimmte Geräte oder haben eine Webschnitstelle, die man einblenden kann.

EDIT:
Hier gibts auch was fertiges und kann ggf. adaptiert werden:
 
Ohne Erfahrung, muss Sofort da sein und kein Budget sind natürlich gute voraussetzungen...
🙂

@DerVerwaltungsmensch Ich würde das einfach mal mit einem Websocket und einer HTML-Seite versuchen. Anbei mal etwas zum Spielen zusammengeschustert. Fürs Übersetzen brauchst Du Maven. Das POM ist so gestaltet, dass ein ausführbares Jar erzeugt wird.

Um den Spaß einfach mal zu testen, rufst Du das Jar auf, das dem Zip beigefügt ist (unter Windows sollte nach dem Entpacken ein Doppelklick reichen, ansonsten java -jar ampel-1.0-SNAPSHOT.jar im "Projektverzeichnis" aufrufen). Wichtig ist, dass der Spaß in dem Verzeichnis ausgeführt wird, in dem auch die index.html liegt. Danach kannst Du mal den Browser gen localhost:8000 richten - in mehreren Fenstern (=Räumen), sonst siehst Du die Funktionsweise nicht.
 

Anhänge

Ok cool, vielen Dank. Die Eingabe des Status habe ich nun entdeckt. Aber das mit dem .jar verstehe ich noch nicht. Windows fragt womit er öffnen soll und ich kann es ihm nicht sagen 😀
Und ich muss unseren Netzwerkadministrator wohl nochmal kontaktieren. localhost:8000 ist nämlich nicht zu erreichen - ggf. hat er das aus Sicherheitsgründen gesperrt


🙂

@DerVerwaltungsmensch Ich würde das einfach mal mit einem Websocket und einer HTML-Seite versuchen. Anbei mal etwas zum Spielen zusammengeschustert. Fürs Übersetzen brauchst Du Maven. Das POM ist so gestaltet, dass ein ausführbares Jar erzeugt wird.

Um den Spaß einfach mal zu testen, rufst Du das Jar auf, das dem Zip beigefügt ist (unter Windows sollte nach dem Entpacken ein Doppelklick reichen, ansonsten java -jar ampel-1.0-SNAPSHOT.jar im "Projektverzeichnis" aufrufen). Wichtig ist, dass der Spaß in dem Verzeichnis ausgeführt wird, in dem auch die index.html liegt. Danach kannst Du mal den Browser gen localhost:8000 richten - in mehreren Fenstern (=Räumen), sonst siehst Du die Funktionsweise nicht.
 
Die .jar ist eine Java Datei, die kannst Du mit
Bash:
java -jar ampel-1.0-SNAPSHOT.jar
starten. Vorrausgesetzt Du hast Java auf Deinem Rechner und in den Umgebungsvariablen zum Path hinzugefügt.

localhost:8000 ist erst dann erreichbar, wenn die Jar läuft.
 
localhost ist Lokal. Da sollte der Netzwerkadmin nichts machen müssen.
Produktiv musst du das auf einem entsprechenden Server laufen lassen und brauchst dessen IP bzw. DNS Name (und ggf. Netzwerkfreischaltungen).
 
Wenn keinerlei IT/Programmier-Erfahrung vorhanden ist, ist doch eine (funktionierende) und schnell zu realisierende Softwarelösung völlig ausgeschlossen.
Was hältst du denn von einem ganz einfachen Kärtchenhalter, den man draussen neben die Tür schrauben/kleben kann und einfach eine grüne oder rote Karte stecken kann. Oder einfach ein "Besetzt" vs "Frei" "flipbares" Schild an einem Bindfaden... ich halte eine automatisierte IT-gestützte Lösung für völlig overengineered.
 
Ich hab hier gerade mal etwas schmunzelnd diesen Thread hier gelesen... Ohne Programmiererfahrung halte ich das auch für knackig, sowas selbst zu realisieren...
Da du Anfangs etwas vom Office-Forum geschrieben hast mit bedingten Formatierungen etc...
Excel hat ja mit Sicherheit jeder. Vielleicht wäre eine VBA-Lösung hier die schnellere (aber sicher nicht schönere!!) Lösung?

Jeder hat ein VBA-Makro mit einer simplen GUI in der er seinen Status anpasst. Mit Klick wird diese Information in einer Datei auf dem Zielrechner aktualisiert. Auf diesem Läuft auch ein Makro was die separaten Status-Dateien der Mitarbeiter alle 10 Sekunde ausliest und seine Anzeige aktualisiert...
Auch wenn da jeder ITler die Hände über dem Kopf zusammenschlagen würde... Könnte das vielleicht eine schnelle Lösung sein?
 
Oder nochmal kurz weitergesponnen...
Wenn die Anzeige ein Raspi sein soll, dann könnte VBA auf dieser Seite schwierig sein (ich weiß es nicht, noch nie gemacht...). Aber hier hättest du Java oder Python, was du auf Mitarbeiterseite vermutlich wohl eher nicht zur Verfügung hast (deswegen auch die Idee mit dem Webserver, denn einen Browser haben alle).
Also aus den Büros einfach nur über ein VBA-Userform Zugriff auf eine kleine Textdatei auf dem Raspi. Eine Datei pro Büro.
Und dann in Python oder Java einfach immer alle 10 Sekunde ein Auslesen des Wertes aus dieser Datei und dann grafisch darstellen.
 
Ich habe noch nie eine Netzwerk Freigabe von Raspberry Pi zu Windows gemacht, aber das scheint (mit Raspbian) nicht sonderlich kompliziert zu sein:
Eine Textdatei über VBA zu editieren ist in 3 Zeilen geschrieben. Einfach den String "1","2","3" für die unterschiedlichen Stati in die Datei schreiben. Dazu vielleicht noch der Name und die Büro Nummer oder was auch immer.
Die grafische Oberfläche dazu auf Nutzerseite kannst du auch ganz simpel ohne Programmierkenntnisse aufbauen.
Aktualisierung der Dateien übers Netzwerk sollte (sofern die Netzwerkfreigabe passt und die IPs statisch sind) dann auch kein Problem sein.

Bis dahin ist es wirklich minimalster Programmieraufwand in Excel.

Jetzt ist das einzige noch der FileWatcher, den du in Python oder Java kreieren musst mit einer grafischen Anzeige. Die liest einfach die Werte aus den einzelnen Dateien aus und aktualisiert dann die Farbe im Feld. Das ist dann Programmierarbeit, aber wirklich viel viel weniger, denn du hast hier keine Logins, Netzwerke oder Benutzer-Interaktion...
Das wäre dann eine Lösung mit reinen Bordmitteln die dir (vermute ich) zur Verfügung stehen.
 
Zuletzt bearbeitet:
Ja, man könnte statt eines Webservers auch einen nahezu x-beliebigen anderen Server verwenden, so dass Fileserver oder "DB"-Server natürlich auch gingen.
 
Hmmm, welchen Sinn hat denn frei, unbesetzt und abmelden?
Für mich ist das 3mal die gleiche Eigenschaft... Kenne mich im Office aber nicht so aus. 😀
 
Naja, ich hatte es so verstanden:
Mitarbeiter Hans hockt sich in Raum 1, d.h. er meldet sich für diesen Raum an. Dann ist der Status frei.
Kunde kommt rein, Hans ändert seinen Status auf belegt.
Kunde geht raus, Hans ändert sich auf Frei.
Hans wechselt jetzt in Raum 5, d.h. er meldet sich in Raum 5 an, dadurch ist Raum 1 dann wieder unbesetzt, weil ja keiner drin ist. Zum Feierabend meldet er sich dann ab, so wie auch alle seine Kollegen. Dadurch sind dann alle Räume unbesetzt.
Was in dem Kontext nicht so viel Sinn macht ist das "Home Office"... Allerdings weiß ich ja auch nicht mehr über die Implementierung - geht auch eher darum noch einen dritten Status aufzuzeigen, wie auch immer der dann heißen soll...
 
Hier ist der Sinn einfach zur besseren Zuordnung und Sichtbarkeit. In der Regel hat der Mitarbeiter tatsächlich ein festes Büro dauerhaft für sich. Die Auswahl bzw. Eingabe der Büronummer ist daher zuvernachlässigenden, aber ein schöner Ansatz.

Naja, ich hatte es so verstanden:
Mitarbeiter Hans hockt sich in Raum 1, d.h. er meldet sich für diesen Raum an. Dann ist der Status frei.
Kunde kommt rein, Hans ändert seinen Status auf belegt.
Kunde geht raus, Hans ändert sich auf Frei.
Hans wechselt jetzt in Raum 5, d.h. er meldet sich in Raum 5 an, dadurch ist Raum 1 dann wieder unbesetzt, weil ja keiner drin ist. Zum Feierabend meldet er sich dann ab, so wie auch alle seine Kollegen. Dadurch sind dann alle Räume unbesetzt.
Was in dem Kontext nicht so viel Sinn macht ist das "Home Office"... Allerdings weiß ich ja auch nicht mehr über die Implementierung - geht auch eher darum noch einen dritten Status aufzuzeigen, wie auch immer der dann heißen soll...
 

Zurück
Oben