BiboWebBot ist eine .NET-10-Lösung zum Abrufen und Auswerten von VÖBB-Ausleihen. Zusätzlich zur bestehenden Blazor-Webanwendung und Console-Anwendung gibt es jetzt ein NetDaemon-Projekt für Home Assistant.
Mit BiboWebBot lassen sich mehrere VÖBB-Konten zentral verwalten und in einem Durchlauf laden. Das früheste Rückgabedatum kann anschließend optional an MQTT und direkt an Home Assistant gemeldet werden.
- Laden von Ausleihen für mehrere VÖBB-Konten
- HTTP-basierter Abruf ohne Browser-Automation
- Anzeige von Status- und Fehlerlogs in der Weboberfläche
- Verwaltung von Konten in der Blazor-App mit Speicherung im Browser
- Unterstützung zusätzlicher Konten aus
appsettings*.json - Optionaler Google-Login in der Web-App
- Auswahl des Zielkalenders
- frei konfigurierbarer Terminname mit
{Konto}und{Datum} - Übertragung des frühesten Rückgabedatums nach manuellem Laden
- Optionaler MQTT-Versand des frühesten Rückgabedatums
- Optionaler täglicher Hintergrundlauf (
DailySync) in der Web-App für Laden und MQTT - Neues NetDaemon-Projekt für Home Assistant mit direkter Ausführung im HA-Umfeld
Projekt/BiboWebBot– Blazor-Server-WebanwendungProjekt/BiboWebBot.Console– Console-Anwendung für lokale und automatisierte LäufeProjekt/BiboWebBot.HomeAssistant– NetDaemon-Projekt für Home AssistantProjekt/BiboWebBot.VoebbParsing– HTTP-basierte VÖBB-Login- und Parsing-LogikProjekt/BiboWebBot.GoogleCalendar– Google-Kalender-IntegrationProjekt/BiboWebBot.Mqtt– MQTT-PublishingProjekt/BiboWebBot.Tests– Tests
- .NET SDK 10
- optional: Google-OAuth-Client für Kalenderfunktionen
- optional: MQTT-Broker für MQTT-Ausgaben
- optional: Home-Assistant-Host und Long-Lived Access Token für das NetDaemon-Projekt
dotnet restore
dotnet builddotnet run --project Projekt/BiboWebBot/BiboWebBot.csprojdotnet run --project Projekt/BiboWebBot.Console/BiboWebBot.Console.csprojdotnet run --project Projekt/BiboWebBot.HomeAssistant/BiboWebBot.HomeAssistant.csprojDie relevanten Einstellungen liegen in den lokalen appsettings.json-Dateien der jeweiligen Projekte.
Projekt/BiboWebBot.HomeAssistant/appsettings.json enthält die NetDaemon- und Home-Assistant-Konfiguration sowie die Bibo-spezifischen Einstellungen:
HomeAssistant:Host/HomeAssistant:Token– HA-VerbindungVoebb:Accounts– Konten für den AbrufMqtt:*– MQTT-KonfigurationDailySync:Enabled– aktiviert den regelmäßigen LaufDailySync:TimeOfDay– Uhrzeit im FormatHH:mm
"Voebb": {
"Accounts": [
{
"LoginName": "Name",
"CardId": "Ausweisnummer",
"Password": "Passwort",
"LoadForBatch": true
}
]
}Bedeutung der Felder:
LoginName– Anzeigename in Logs und AusgabenCardId– BibliotheksausweisnummerPassword– VÖBB-PasswortLoadForBatch– aktiviert das Konto für den Lauf
Geeignet für die manuelle Nutzung im Browser mit sichtbaren Ladeprotokollen, Kontenverwaltung und Google-Kalender-Auswahl.
Geeignet für lokale Tasks, Scheduler oder andere Automatisierungen, wenn Ausleihen ohne Browseroberfläche geladen und weiterverarbeitet werden sollen.
Geeignet für den Betrieb als Home-Assistant-nahe Automatisierung mit MQTT-Ausgabe und optionaler Daily-Sync-Funktion.
Das NetDaemon-Projekt veröffentlicht zusätzlich MQTT-Discovery-Sensoren für das früheste Rückgabedatum und für bald fällige Ausleihen. In Home Assistant erscheinen sie mit Datum bzw. Anzahl als Zustand und Konto-/Ausleihdetails als Attribute.
Wenn MQTT aktiviert ist, legt das NetDaemon-Projekt automatisch die Entitäten sensor.bibowebbot_next_due und sensor.bibowebbot_due_soon an.
sensor.bibowebbot_next_duezeigt das früheste Rückgabedatum im ISO-Formatyyyy-MM-ddsensor.bibowebbot_due_soonzeigt die Anzahl der in den nächsten 7 Tagen fälligen Ausleihen- Weitere Details wie Konto und Ausleihname stehen in den Attributen
- Zugangsdaten nur in lokalen, nicht versionierten
appsettings.json-Dateien pflegen. - Keine echten Zugangsdaten, MQTT-Passwörter oder Google-Secrets in ein öffentliches Repository committen.
Projekt/BiboWebBot.HomeAssistant/program.cs– NetDaemon-Host und DI-KonfigurationProjekt/BiboWebBot.HomeAssistant/appsettings.json– HA-, VÖBB- und MQTT-KonfigurationProjekt/BiboWebBot.HomeAssistant/Services/BiboLoanSyncHostedService.cs– Start- und Daily-Sync-LogikProjekt/BiboWebBot.VoebbParsing/VoebbAutomationService.cs– HTTP-Login und ParsingProjekt/BiboWebBot.Mqtt/MqttPublishService.cs– MQTT-Versand