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

Über Admin

Adapter › Alle Adapter › nach esmobil suchen › Instanz anlegen. Der Adapter ist im offiziellen latest-Repository gelistet.

Falls die Suche nichts findet: den Experten-Modus aktivieren, dann unter Einstellungen › Repositories auf Latest umstellen – ohne Experten-Modus ist diese Auswahl standardmäßig ausgeblendet und es bleibt beim Stable-Repository, in dem der Adapter noch nicht gelistet ist.

Manuell per npm

npm install iobroker.esmobil

Im ioBroker-Datenverzeichnis ausführen, danach die Instanz über Admin anlegen.

Direkt von GitHub

Für den allerneuesten Stand direkt vom main-Branch (z. B. um einen frischen Fix vor dem nächsten npm-Release zu testen): in Admin unter Adapter das kleine Wolken-Symbol neben der Suche anklicken (benutzerdefinierte Installation) und eintragen:

beabel/ioBroker.esmobil

Kontakt

Fragen oder Feedback?

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