beste.schule für Home Assistant – HACS Integration für Stundenplan, Abwesenheiten und Noten

beste.schule für Home Assistant

Hey Community,

ich wollte euch hier mal mein kleines neues Projekt vorstellen: eine Home-Assistant-Integration für beste.schule.

Auslöser war, dass ich Stundenplan, Abwesenheiten und ein paar Schulinfos gern direkt in Home Assistant sehen wollte, ohne immer in die App oder Webseite schauen zu müssen. Daraus ist jetzt eine erste HACS-fähige Custom Integration geworden.

Die Integration ist aktuell rein lesend und nutzt einen Personal Access Token aus dem beste.schule-Benutzerkonto.


Was die Integration aktuell kann

Stundenplan als Kalender

Der Stundenplan wird als Home-Assistant-Kalender angelegt.

Wichtig: beste.schule liefert hier nach aktuellem Stand eher einen Wochenplan als fertige einzelne Kalenderevents. Die Integration erzeugt daraus deshalb Termine ab Start der Integration und maximal 3 Wochen in die Zukunft.

Vertretung und Ausfall werden, soweit über die API verfügbar, berücksichtigt.

Abwesenheiten als Kalender

Abwesenheiten werden in einem eigenen Kalender angezeigt.

Bei uns tauchen Krankmeldungen dadurch als ganztägige Termine auf.

Schulzeit-Sensor

Es gibt einen Binary Sensor Schulzeit.

Der ist an, wenn laut Stundenplan gerade Unterricht ist und keine Abwesenheit für den Tag vorliegt.

Aktuelle und nächste Stunde

Zusätzlich gibt es Sensoren für:

  • aktuelle Stunde
  • nächste Stunde

Das ist ganz praktisch für Dashboards oder Automationen.

Kranktage

Es gibt einen Sensor für bekannte Kranktage.

Der zählt Abwesenheitstage, deren Grund nach krank bzw. sick aussieht.

Noten pro Fach

Für jedes Fach wird ein Sensor angelegt:

  • Note Deutsch
  • Note Biologie
  • Note Englisch
  • usw.

Wenn beste.schule selbst schon einen Durchschnitt liefert, wird dieser verwendet. Falls nicht, versucht die Integration den Durchschnitt selbst zu berechnen.


Schnellinfo

  • HACS Custom Integration
  • Lizenz: MIT
  • Status: frühe Beta
  • Sprache: Deutsch und Englisch
  • Keine offizielle Integration von beste.schule
  • Read-only, es wird aktuell nichts in beste.schule geschrieben

Installation mit HACS

Am einfachsten über diesen Button:

Open your Home Assistant instance and open this repository in HACS.

Oder manuell:

  1. HACS öffnen

  2. Integrationen öffnen

  3. Rechts oben auf die drei Punkte

  4. Benutzerdefinierte Repositories auswählen

  5. Repository eintragen:

    GitHub - RF1705/beste-schule: Read-only Home Assistant integration for beste.schule timetables, absences, school time and grade averages. · GitHub

  6. Kategorie: Integration

  7. Installieren

  8. Home Assistant neu starten

  9. Integration über Geräte & Dienste hinzufügen


Token erstellen

Für die Einrichtung wird ein Personal Access Token von beste.schule benötigt.

So kommt man daran:

  1. Bei beste.schule anmelden
  2. Oben rechts das Benutzerkonto öffnen
  3. Links den Bereich API auswählen
  4. Unter Personal Access Token einen neuen Token erstellen
  5. Token kopieren und in Home Assistant einfügen

Auch wenn man sich mit Apple anmeldet, sollte der Token im beste.schule-Benutzerkonto erstellt werden können.


Feedback willkommen

Das Ganze ist noch frisch und sicher nicht für jede Schule / jeden API-Fall perfekt.

Besonders interessant wäre Feedback zu:

  • ob Stundenplan-Einträge korrekt erscheinen
  • ob Ausfall und Vertretung richtig erkannt werden
  • ob Abwesenheiten sauber angezeigt werden
  • ob Notendurchschnitte plausibel sind
  • welche Daten bei anderen Schulen noch anders aussehen

GitHub:

Release:

Issues gern direkt auf GitHub oder hier im Thread melden.

Viel Spaß beim Testen.

1 „Gefällt mir“

beste.schule bietet wirklich eine Fülle an Daten, man muss nur die richtigen Punkte finden. Zwar gibt es - anders als bei stundenplan24 - eine dokumentierte API, aber die ist wie ich finde recht unübersichtlich.

Ich habe mir das ganze in NodeRed zusammen gebastelt, damit ich immer den Stundenplan meiner Kinder für den nächsten Tag sowie die Aufgaben für die nächsten 7 Tage sehe. Es macht das Leben wirklich leichter, wenn man nicht ständig in die beste.schule-App muss, um am Morgen zu sehen, dass die erste Stunde Ausfall ist :slight_smile:

@rf1705 Dass du den Stundenplan in den HA-Kalender integrierst ist ein spannender Ansatz. Schaue ich mir an.

Kann ich denn die Integration mehrfach laufen haben? Also z.B. für 2 Kinder?

@ttarzan ja die Api ist nicht grade übersichtlich.

Aktuell ist die Integration technisch eher auf „ein Token = ein Kind“ ausgelegt. Wenn in einem beste.schule-Konto mehrere Kinder hängen, wird im Moment wahrscheinlich nur das erste Kind sauber verwendet.

Mangels 2tem Kind konnte ich da aber noch nichts testen.

Geplant ist aber, das sauber umzubauen: ein beste.schule-Token soll dann mehrere Geräte in Home Assistant anlegen, also pro Kind ein eigenes Device.

Ich habe ja schon 2 Token, da 2 getrennte Login. Ich probiere es mal bei Gelegenheit.

Ok, die Variante sollte klappen. Über ein kurzes Feedback würde ich mich freuen.

Leider kann man die Integration nicht 2x nutzen, obwohl ich 2 getrennte Tokens habe. Schade. Vielleicht kannst du das noch einbauen.

Noch eine Frage zum Notendurchschnitt: Berechnet den die Integration selbst? Oder kommt das auch von beste.schule? Ich frage nur, weil ja z.B. Klassenarbeiten stärker gewichtet werden als Leistungskontrollen (zumindest bei uns) .

Ah, danke fürs Testen. Da war tatsächlich noch eine interne Unique-ID fest verdrahtet, dadurch hat Home Assistant jeden zweiten beste.schule-Eintrag blockiert, auch wenn ein anderer Token verwendet wurde. Ich habe das in der aktuellen Version geändert. Wenn du Gelegenheit hast, kannst du bitte nochmal testen, ob zwei getrennte Tokens jetzt als zwei Integrationen funktionieren?

Zum Notendurchschnitt: Die API liefert mir aktuell leider keinen fertigen Durchschnitt zurück, daher berechnet die Integration den Wert selbst. Momentan werden Klassenarbeiten doppelt gewichtet und alle anderen Noten einfach. Ich hoffe das passt auch bei dir, wenn nicht könnte man unterschiedliche Berechnungen einbauen.

Du kannst ein Fach in Home Assistant öffnen, oben rechts über die drei Punkte auf Details gehen. Dort sieht man, welche Noten und Informationen für die Berechnung verwendet wurden.

Perfekt, es funktioniert jetzt. Ich teste mal weiter.

Ich glaube, das passt. Aber ich muss mal meine Kinder fragen, wie genau der Durchschnitt berechnet wird.

Und noch eine Frage: Bei uns ist es so, dass es an manchen Tagen immer noch zusätzliche Hinweise gibt, die für den ganzen Tag gelten. Z.B. wenn es wegen Hitze der Kurzplan gilt, wenn Kuchenbasar ist. wenn AGs ausfallen usw. Rufst du das schon mit ab?

Perfekt, es funktioniert jetzt. Ich teste mal weiter.

Super.

Ich glaube, das passt. Aber ich muss mal meine Kinder fragen, wie genau der Durchschnitt berechnet wird.

Ja, das wäre interessant. Die Berechnung lässt sich leicht anpassen.

Und noch eine Frage: Bei uns ist es so, dass es an manchen Tagen immer noch zusätzliche Hinweise gibt, die für den ganzen Tag gelten. Z.B. wenn es wegen Hitze der Kurzplan gilt, wenn Kuchenbasar ist. wenn AGs ausfallen usw. Rufst du das schon mit ab?

Wenn du ein weiteres Update durchführst, gibt es in der neuen Version einen neuen Hinweis-Kalender. Eventuell musst du diesen in den Optionen einmal aktivieren.

1 „Gefällt mir“

@ttarzan du kannst dir gerne noch die Stundenplan-Card anschauen. Die nutze ich selbst. Jedes Kind hat eine Stundenplan-Card-Entity, die mit der Card kompatibel ist. Wähle einfach „JSON” als Quelle aus und hinterlege die Entity.

Im dem Kalender werden Ausfall und Vertretung direkt mit dargestellt.

1 „Gefällt mir“

Musst du nicht. Soweit ich das verstanden habe, passt das. Ich habe mal deine Berechnung mit den Endjahresnoten verglichen, die schon feststehen und die stimmen mit deiner Berechnung überein.

Du bist ja ein ganz schneller :slight_smile: Funktioniert perfekt. Ich lasse mir die Einträge über die custom:atomic-calendar-revive - Card anzeigen, was super funktioniert.

Die Karte von @Fabel-Smith kenne ich. Auch hatte ich seine Stundenplan-Suite installiert. Lief auch gut. Man muss wohl aber aufpassen, dass man nicht zu oft abruft, um nicht in eine IP-Sperre zu laufen.

Ich habe bis vor kurzem den Stundenplan über stundenplan24 abgerufen, wofür ich NodeRed nutzte. Allerdings ist es über beste.schule wesentlich einfacher, da es dort eine dokumentierte API und einen eigenen Token gibt. Zudem hat man alles über einen Abruf.

Ergänzung zum Notenschnitt:

Es ist wohl so bei uns, dass zuerst zwei Durchschnitte gebildet werden: Klassenarbeiten vs. restliche Noten. Diese beiden Durchschnitte werden addiert und wieder durch 2 geteilt. Laut KI kann deine Methode je nach Noten und Anzahl der Noten zu einem anderen Schnitt führen.

Ich habe gestern und heute noch einmal die API durchforstet. Für manche Fächer wird tatsächlich eine Formel mitgegeben (0,5 * ((So_sum)/(So_count)) + 0,5 * ((Ka_sum)/(Ka_count))). Diese habe ich jetzt als Standard gesetzt. Falls eine Formel von der API kommt, wird diese bevorzugt.

Du kannst gerne testen, ob die Noten nun besser sind.

Die Card muss ich mir mal genauer anschauen.

Das sollte bei beste.schule nicht passieren, da es eine öffentliche API gibt. :slight_smile:

1 „Gefällt mir“

Das ist ja spannend! Super, dass du das entdeckt hast. Danke für deine Arbeit!