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!
 

Kirby.exe

Top Contributor
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.
 

Kirby.exe

Top Contributor
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 ^^ :p
Das sind schon wieder Begriffe (Pi, ENUM) mit denen ich nichts anfangen kann... :D 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...
 

Kirby.exe

Top Contributor
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;
}
 

Kirby.exe

Top Contributor
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...
 

Dukel

Top Contributor
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:
 

mihe7

Top Contributor
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

  • ampel.zip
    1,8 MB · Aufrufe: 5
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 :D
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.
 

sascha-sphw

Top Contributor
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.
 

Dukel

Top Contributor
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).
 

httpdigest

Top Contributor
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.
 

affot

Mitglied
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?
 

affot

Mitglied
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.
 

affot

Mitglied
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:

mihe7

Top Contributor
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.
 

user30

Mitglied
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. :D
 

affot

Mitglied
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...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
P9cman Ampel in Java implementieren Java Basics - Anfänger-Themen 3
S Ampel Programmieren Java Basics - Anfänger-Themen 5
Y Ampel Java Basics - Anfänger-Themen 11
L Ampel-Simulation Java Basics - Anfänger-Themen 20
T Ampel implementieren Java Basics - Anfänger-Themen 12
M Ampel Symbole Java Basics - Anfänger-Themen 4
B Ampel (mitBlueJ) Java Basics - Anfänger-Themen 6
M Ampel Java Basics - Anfänger-Themen 14
B Erste Schritte handgeschaltete Ampel programieren Java Basics - Anfänger-Themen 8
Z Ampel Java Basics - Anfänger-Themen 19
D Ampel Programmieren Java Basics - Anfänger-Themen 5
G Ampel automatisch umschalten Java Basics - Anfänger-Themen 18
I Ampel mit Verzögerung Java Basics - Anfänger-Themen 2
V Grafische Auswertung (Ampel-System) Java Basics - Anfänger-Themen 12
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
D Apache HTTPClient für alle Fälle Java Basics - Anfänger-Themen 41
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
M Minimax-Algorithmus für Vier gewinnt Java Basics - Anfänger-Themen 11
M GUI für Vier-Gewinnt. Java Basics - Anfänger-Themen 4
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
Ostkreuz Counter für Booleanwerte Java Basics - Anfänger-Themen 8
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
Jxhnny.lpz Randomisier für Buttons Java Basics - Anfänger-Themen 13
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
M monte carlo Algorithmus für 4 gewinnt Java Basics - Anfänger-Themen 12
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33
M generate Methode für Streams Java Basics - Anfänger-Themen 6
I Datenmodell für "Tags" Java Basics - Anfänger-Themen 6
Lion.King for-Kontrollstruktur für Pyramide Java Basics - Anfänger-Themen 8
B Mit Countdown Midnestdauer für Teilaufgabenerledigung erzwingen Java Basics - Anfänger-Themen 8
J File length als Prüfwert für Download Java Basics - Anfänger-Themen 5
K Spieleidee gesucht für Informatikprojekt - JAVA (BlueJ)? Java Basics - Anfänger-Themen 15
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
javamanoman Java für Online Banking Java Basics - Anfänger-Themen 12
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
P9cman Tipps für Rekursive Aufgaben mit Strings oder allgemein Java Basics - Anfänger-Themen 2
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
I SQL / JPA Query für StartDate und EndDate Java Basics - Anfänger-Themen 1
T getMethode für ein Array Java Basics - Anfänger-Themen 2
Fats Waller Farben mixen für den Hintergrund ? Java Basics - Anfänger-Themen 1
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
K Für was braucht man die left und right shift operatoren? Was bringen die, also welchen Zweck haben die? Java Basics - Anfänger-Themen 15
N Api nur für Textdatein (.txt) Java Basics - Anfänger-Themen 2
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
R Ist Java das Richtige für mich? Java Basics - Anfänger-Themen 4
E Mittelquadratmethode für Hexadezimalzahlen Java Basics - Anfänger-Themen 1
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
S BubbleSort für ArrayLists Java Basics - Anfänger-Themen 3
T Übungsbuch für Anfänger Java Basics - Anfänger-Themen 3
L Konzept für Quiz Java Basics - Anfänger-Themen 33
D Methoden Plathhalter für Integer in einer Methode Java Basics - Anfänger-Themen 19
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
T Algorithmus für Index mit min-Wert Java Basics - Anfänger-Themen 2
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
L loop für Namen Java Basics - Anfänger-Themen 11
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
S Fehler bei Code mit SubStrings für mich nicht auffindbar. Java Basics - Anfänger-Themen 4
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
I Entity erstellen, die für API gedacht ist Java Basics - Anfänger-Themen 33
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
A Junit Test für MysqlDataSource JDBC Java Basics - Anfänger-Themen 3
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
A Java die richtige Programmiersprache für mein Projekt? Java Basics - Anfänger-Themen 1
I DecimalFormat in Zahlenformat für Währung, habe 7,99, bekomme aber 7 Java Basics - Anfänger-Themen 4
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
Kanaska Datentyp für Zahlenbereiche Java Basics - Anfänger-Themen 7
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
U BestPractise für Deployment unter Windows gesucht Java Basics - Anfänger-Themen 12
lilrack UML Diagramm für Parkplatzverwaltung Java Basics - Anfänger-Themen 8
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
B Generische Typen für dynamisches Formular Java Basics - Anfänger-Themen 3
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
T Alternative für switch case Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben