ioBroker.esmobil GitHub

läuft im Daemon-Modus, Poll alle 30 Minuten

Stundenplan, Hausaufgaben & Noten als ioBroker-States.

iobroker.esmobil holt Stundenplan (VpMobil/Indiware) sowie Hausaufgaben, Bemerkungen, Zensuren (Home.InfoPoint) und optional Moodle-Termine der vier TEGW-Schulen automatisch in deinen ioBroker – bereit für eigene Automatisierungen, Visualisierungen und Benachrichtigungen.

MIT-Lizenz Open Source Keine eigene Cloud, keine Werbung
Admin › Objekte › esmobil.0
plan.day1.zusatzInfo "Sonderplan Wandertag"
homework.newCount 2
grades.subjects.de.averageNote "2+"
remarks.newEntries [ {...} ]
info.lastNewAt 2026-09-11T07:12:03
info.connection true

Dieser Adapter ist bewusst kein generischer VpMobil/Indiware-Adapter – er ist fest auf die vier Schulen der TEGW-Schulgruppe zugeschnitten (Serveradressen sind hinterlegt, nur die eigene Schule wird ausgewählt): EOSW (Europäische Oberschule Waldenburg), EGW (Europäisches Gymnasium Waldenburg), EOSH (Europäische Oberschule Hartmannsdorf) und EGL (Europäische Grundschule Lichtenstein). Name und Datenanbindung stammen von der gleichnamigen Android-App ESmobil derselben Schulgruppe – hier 1:1 nach Node.js portiert. Unabhängiges Community-Projekt, keine Verbindung zu den Betreibern von VpMobil/Indiware oder Home.InfoPoint.

Was der Adapter liefert

Vier Datenquellen, ein Adapter

Stundenplan

VpMobil/Indiware, Montag–Freitag der jeweils relevanten Woche – auch Tage ohne Daten (z. B. Ferien) werden mit korrektem Datum abgebildet, nicht einfach weggelassen.

Sonderplan-Hinweise

Allgemeine Tageshinweise der Schule (z. B. Wandertag, Veranstaltung) landen als eigener zusatzInfo-State pro Tag.

Hausaufgaben & Bemerkungen

Aus Home.InfoPoint, inklusive eines separaten Zählers und einer Liste ausschließlich der seit dem letzten Abgleich neuen Einträge.

Zensuren

Gruppiert nach Fach, mit Durchschnitt pro Fach (als Zahl und als Note) sowie einem gewichteten Gesamtdurchschnitt über alle Fächer.

Moodle-Termine

Optional über die persönliche Kalender-Export-URL – Abgabefristen laufen korrekt in Ortszeit (Europe/Berlin) ein, unabhängig von der Tageszeit der UTC-Zeitstempel im Export.

Vier Schulen, ein Adapter

Schule einmal in der Instanz-Konfiguration wählen – Serveradressen und verfügbare Funktionen (z. B. kein Stundenplan für die EGL) passen sich automatisch an.

Objekte

Der State-Baum

Alles, was die Konfiguration hergibt, landet als durchsuchbare, typisierte States unter esmobil.0.* – nutzbar in Skripten, Blockly, Node-RED oder einem eigenen vis-Dashboard.

Für eine Wochenansicht reicht meist ein einziger State: plan.week.days liefert alle fünf Tage als ein einziges JSON-Array.

esmobil.0.info.connection          boolean
esmobil.0.plan.day1.date           string
esmobil.0.plan.day1.zusatzInfo     string
esmobil.0.plan.week.days           string  # JSON, Mo-Fr
esmobil.0.homework.count           number
esmobil.0.homework.newEntries      string  # JSON
esmobil.0.remarks.newCount         number
esmobil.0.grades.subjects.de.average     number
esmobil.0.grades.overallAverageNote      string
esmobil.0.info.lastNewAt           string  # ISO, bester Trigger
// eigenes JavaScript-Adapter-Skript
on({ id: 'esmobil.0.info.lastNewAt', change: 'ne' }, () => {
    const homework = JSON.parse(
        getState('esmobil.0.homework.newEntries').val
    );
    const grades = JSON.parse(
        getState('esmobil.0.grades.newEntries').val
    );
    // z.B. sendTo('telegram.0', 'send', { text: '...' });
});

Push-Benachrichtigungen selbst bauen

Eigene Trigger statt fertiger App

Der Adapter verschickt selbst nichts – er kennt dein Telegram/Pushover/… nicht. Stattdessen liefert er alles, was eine eigene Automatisierung braucht:

  • info.lastNewAt ändert sich nur, wenn ein Abgleich wirklich etwas Neues fand – der zuverlässigste Auslöser, unempfindlich gegenüber zwei gleich großen Batches hintereinander.
  • newCount/newEntries je Kategorie liefern Anzahl und Inhalt für den Benachrichtigungstext.
  • Beim allerersten Abgleich nach Installation/Update gilt nichts als "neu" – sonst würden alle bestehenden Einträge einmalig gemeldet.

Loslegen

Installation

Empfohlen, solange noch nicht gelistet

Direkt von GitHub

In Admin unter Adapter das kleine Wolken-Symbol neben der Suche anklicken (benutzerdefinierte Installation) und eintragen:

beabel/ioBroker.esmobil

Oder per CLI auf dem ioBroker-Host:

iobroker url https://github.com/beabel/ioBroker.esmobil/tarball/main esmobil

Manuell per npm

npm install iobroker.esmobil

Im ioBroker-Datenverzeichnis ausführen, danach die Instanz über Admin anlegen. Funktioniert schon heute, da der Adapter bereits auf npm veröffentlicht ist.

Über Admin (sobald gelistet)

Adapter › Alle Adapter › nach esmobil suchen › Instanz anlegen – sobald die Aufnahme in die offizielle Adapter-Liste abgeschlossen ist.

Kontakt

Fragen oder Feedback?

Bug gefunden, Feature-Wunsch oder eine Frage zur Konfiguration – kurze Nachricht reicht.