Eine Home Assistant Integration für BibKat Bibliotheken mit Multi-Account-Support, automatischen Benachrichtigungen und Actionable Notifications. Unterstützt alle BibKat-Bibliotheken deutschlandweit.
✅ Multi-Bibliothek Support - Unterstützt alle BibKat-Bibliotheken
✅ Multi-Account pro Bibliothek - Mehrere Leserkonten (Familie) verwalten
✅ Sensoren pro Account - Getrennte Übersicht für jedes Familienmitglied
✅ Kombinierter Sensor - Gesamtübersicht aller Konten
✅ Kontostand-Tracking - Gebühren, Kartenablauf, Vormerkungen
✅ Vormerkungen/Reservierungen - Tracking vorgemerkter Medien mit Position
✅ Exakte Datumsberechnung - Präzise Tage bis zur Rückgabe
✅ Verlängerungserkennung - Zeigt an, wann Medien verlängerbar sind
✅ Verlängerungsdatum-Extraktion - Automatisch aus Server-Antwort
✅ ISO-Datumsformat - Für Automatisierungen und Sortierung
✅ Familienkonten - Automatische Erkennung verknüpfter Konten
✅ Externe Familienmitglieder - Bücher von nicht konfigurierten Konten
✅ Auto-Update Verlängerungsdatum - Bei jedem Verlängerungsversuch
✅ Neue BibKat API Unterstützung - Kompatibel mit aktuellem BibKat System (2025)
✅ Actionable Notifications - Verlängern direkt aus der Benachrichtigung!
✅ Smart Actions - Buttons nur wenn Verlängerung möglich
✅ Automatische Checks - Alle 6 Stunden Prüfung (1x täglich Details)
✅ Konfigurierbare Schwellenwerte - Wann soll benachrichtigt werden
✅ Multi-Language - Deutsche und englische Templates
✅ Verlängerung - Alle oder einzelne Konten verlängern
✅ Test-Benachrichtigung - Notification-Setup prüfen
✅ Native Kalender - Fälligkeiten im Home Assistant Kalender
✅ Verlängerungs-Erinnerungen - 3 Tage vor Fälligkeit
✅ Farbcodierte Events - Nach Dringlichkeit (überfällig, heute, bald)
✅ Kombinierter Kalender - Alle Konten in einer Ansicht
✅ Auto-generiertes Dashboard - Übersichtliche Medienverwaltung
✅ 30 Template-Sensoren - Stabile UI-Referenzen für dynamische Medien
✅ Automatische Sortierung - Nach Fälligkeit (überfällig, bald fällig, normal)
✅ Farbcodierte Karten - Visuelle Dringlichkeitsanzeige
✅ One-Click Verlängerung - Alle verlängerbaren Bücher auf einmal
✅ Statistik-Übersicht - Gesamtzahl, überfällige, verlängerbare Bücher
- Klicke den Button oben ↑
- HACS öffnet sich automatisch mit diesem Repository
- Klicke "Download" → "Download" → Wähle die neueste Version
- Starte Home Assistant neu
- HACS öffnen
- Integrationen → Menü (3 Punkte oben rechts) → Custom repositories
- Repository URL:
https://github.com/yourusername/bibkat_ha_integration - Kategorie:
Integration - "Add" klicken
- Das neue Repository "BibKat Bibliothek" suchen und öffnen
- "Download" klicken → Neueste Version wählen
- Home Assistant neustarten
- Lade die neueste Version von GitHub Releases herunter
- Entpacke die ZIP-Datei
- Kopiere den
custom_components/bibkatOrdner in dein Home Assistantconfig/custom_components/Verzeichnis - Die Struktur sollte so aussehen:
config/ └── custom_components/ └── bibkat/ ├── __init__.py ├── manifest.json └── ... - Starte Home Assistant neu
- Gehe zu Einstellungen → Geräte & Dienste
- Klicke auf "+ Integration hinzufügen"
- Suche nach "BibKat"
- Folge den Konfigurationsschritten
- Bibliotheks-URL eingeben (z.B.
https://www.bibkat.de/boehl/) - Erstes Konto hinzufügen:
- Lesernummer
- Passwort
- Alias (z.B. "Hauptkonto")
- Weitere Konten optional hinzufügen (Checkbox "Weiteres Konto hinzufügen")
In den Integrationsoptionen unter "Features":
- Template-Sensoren erstellen: Aktivieren für erweiterte Dashboard-Funktionen
- Dashboard erstellen: Generiert ein vorkonfiguriertes Dashboard
Nach der Erstellung:
- Fügen Sie
template: - !include bibkat_template_slots.yamlzu Ihrer configuration.yaml hinzu - Starten Sie Home Assistant neu
- Laden Sie das Dashboard unter Einstellungen → Dashboards → Dashboard hinzufügen
In den Integrationsoptionen:
- Benachrichtigungsdienst auswählen (z.B.
notify.mobile_app_phone) - Schwellenwerte setzen:
- Tage vor Fälligkeit: 1-14 Tage
- Kontostand-Warnung: EUR-Betrag
- Benachrichtigungstypen aktivieren/deaktivieren
- Kalender-Optionen:
- "Erstelle separate Kalender pro Account" - Nur aktivieren wenn gewünscht (sonst doppelte Events!)
Alle BibKat-Bibliotheken werden unterstützt:
- KÖB Böhl:
https://www.bibkat.de/boehl/ - Kreuth:
https://www.bibkat.de/kreuth/ - Deine lokale Bibliothek:
https://www.bibkat.de/DEINE_BIBLIOTHEK/
Jedes ausgeliehene Buch wird als eigene Button-Entity erstellt:
button.bibkat_[bibliothek]_[buchtitel]_[id]- Ein Buch- Press = Verlängern! (wenn verlängerbar)
- Automatisch erstellt/gelöscht beim Ausleihen/Zurückgeben
Beispiel:
button.bibkat_boehl_harry_potter_12345:
state: "on" # = verlängerbar
attributes:
title: "Harry Potter und der Stein der Weisen"
author: "J.K. Rowling"
days_remaining: 5
account_alias: "Hauptkonto"
renewal_date: "06.07.2025" # NEU!
renewal_date_formatted: "06.07.2025"
days_until_renewable: 21 # NEU!sensor.bibkat_[bibliothek]_[account]_ausgeliehene_medien- Anzahl ausgeliehener Mediensensor.bibkat_[bibliothek]_[account]_kontostand- Aktueller Kontostand
sensor.bibkat_[bibliothek]_alle_ausgeliehene_medien- Alle Medien aller Konten
Füge dies zu deiner configuration.yaml hinzu:
template: !include custom_components/bibkat/template_slots_full.yamlDies erstellt 20 stabile Slot-Sensoren für Dashboards:
sensor.bibkat_book_slot_1bissensor.bibkat_book_slot_20- Automatisch gefüllt mit Büchern nach Dringlichkeit
- Leere Slots zeigen "Leer"
Gesamt-Kalender: calendar.bibkat_[bibliothek]_kalender
- Alle Fälligkeiten und Erinnerungen
- Farbcodierte Events nach Dringlichkeit
Konto-Kalender: calendar.bibkat_[bibliothek]_[konto]_kalender (Optional)
- Pro-Konto Ansicht für Familien
- Nur Events des jeweiligen Kontos
⚠️ Hinweis: Zeigt die gleichen Events wie der Gesamt-Kalender. Aktiviere diese Option nur, wenn du separate Kalender pro Familienmitglied möchtest. Sonst siehst du alle Events doppelt!
borrowed_media:
- title: "Das kleine Gespenst"
author: "Otfried Preußler"
due_date: "Rückgabe bis: So., 13. Jul."
due_date_iso: "2025-07-13" # Für Automatisierungen
days_remaining: 25
renewable: true
renewal_date: "30.06.2025" # NEU! Wann verlängerbar
renewal_date_iso: "2025-06-30"
is_renewable_now: false # Wird true wenn verlängerbar
account: "family"
account_alias: "Kinderkonto"
external_account: false # true für nicht konfigurierte Familienmitgliedersensor.bibkat_[bibliothek]_vormerkungen- Gesamtzahl aller Vormerkungensensor.bibkat_[bibliothek]_[account]_vormerkungen- Vormerkungen pro Konto
Attribute:
vormerkungen:
- title: "Die drei ??? - Das Gespensterschloss"
author: "Robert Arthur"
position: 3 # Position in der Warteliste
total_holds: 5 # Gesamtzahl der Vormerkungen
estimated_date: "15.08.2025" # Geschätzte Verfügbarkeit
reserved_since: "01.06.2025"
branch: "Hauptstelle"Die Integration erstellt automatisch 30 Template-Sensoren als "Slots" für die Mediendarstellung:
sensor.bibliothek_slot_1bissensor.bibliothek_slot_30sensor.bibliothek_bucher_gesamt- Gesamtzahl ausgeliehener Büchersensor.bibliothek_uberfallige_bucher- Anzahl überfälliger Büchersensor.bibliothek_verlangerbare_bucher- Anzahl verlängerbarer Büchersensor.bibliothek_nachste_ruckgabe- Tage bis zur nächsten Rückgabesensor.bibliothek_vormerkungen_gesamt- Gesamtzahl der Vormerkungen
Diese Sensoren ermöglichen das Discovery Dashboard mit stabilen UI-Referenzen.
📚 Böhl: 3 Medien bald fällig
• Das kleine Gespenst
Fällig: So., 13. Jul. (2 Tage)
Konto: Kinderkonto
✅ Kann jetzt verlängert werden
[📚 Alle 1 verlängern] [📗 Kinderkonto (1)] [📖 Details]
Ein Tap → Verlängerung → Erfolgsmeldung!
- "Alle X verlängern" - Nur wenn Medien verlängerbar sind
- "[Konto] (X)" - Pro-Konto-Verlängerung bei mehreren Konten
- "Details anzeigen" - Öffnet Dashboard in HA
- "Versuche Verlängerung" - Bei überfälligen Medien
service: bibkat.renew_all
data:
account_id: "boehl_689" # Optional - für spezifisches Kontoservice: bibkat.test_notification
data:
library_url: "https://www.bibkat.de/boehl/" # Optionalautomation:
- alias: "BibKat - Auto-Verlängerung wenn möglich"
trigger:
- platform: state
entity_id: sensor.bibkat_boehl_alle_ausgeliehene_medien
condition:
- condition: template
value_template: >
{{ state_attr('sensor.bibkat_boehl_alle_ausgeliehene_medien', 'borrowed_media')
| selectattr('is_renewable_now', 'eq', true)
| list | length > 0 }}
action:
- service: bibkat.renew_all
- service: notify.mobile_app_phone
data:
title: "📚 Auto-Verlängerung"
message: "Verlängere verlängerbare Medien..."automation:
- alias: "BibKat - Erweiterte Fälligkeitswarnung"
trigger:
- platform: time
at: "09:00:00"
condition:
- condition: template
value_template: >
{{ state_attr('sensor.bibkat_boehl_alle_ausgeliehene_medien', 'borrowed_media')
| selectattr('days_remaining', 'le', 3)
| selectattr('days_remaining', 'gt', 0)
| list | length > 0 }}
action:
- service: notify.mobile_app_phone
data:
title: "📚 Medien bald fällig!"
message: >
{% set items = state_attr('sensor.bibkat_boehl_alle_ausgeliehene_medien', 'borrowed_media')
| selectattr('days_remaining', 'le', 3) | list %}
{{ items | length }} Medien in 3 Tagen fällig!
{% for item in items[:3] %}
• {{ item.title }} ({{ item.days_remaining }}d)
{%- endfor %}
data:
actions:
- action: "renew_due_soon"
title: "📗 Jetzt verlängern"Weitere Beispiele im examples/automations.yaml!
Die Integration unterstützt:
- 🇩🇪 Deutsch (Standard)
- 🇬🇧 Englisch
Benachrichtigungen und Sensor-Attribute passen sich automatisch an die HA-Spracheinstellung an.
Ab v0.3.1 werden Sensor-Attribute automatisch übersetzt:
- Deutsche HA-Installation → Deutsche Attribute (
ausgeliehene_medien,titel, etc.) - Englische HA-Installation → Englische Attribute (
borrowed_media,title, etc.)
Siehe ATTRIBUTE_TRANSLATION.md für Details.
type: vertical-stack
cards:
- type: entities
title: Bibliothek Böhl
entities:
- entity: sensor.bibkat_boehl_alle_ausgeliehene_medien
name: Gesamt ausgeliehen
- entity: sensor.bibkat_boehl_hauptkonto_ausgeliehene_medien
name: Hauptkonto
- entity: sensor.bibkat_boehl_kinderkonto_ausgeliehene_medien
name: Kinderkonto
- entity: sensor.bibkat_boehl_hauptkonto_kontostand
name: Gebühren
- type: markdown
content: >
{% set media = state_attr('sensor.bibkat_boehl_alle_ausgeliehene_medien', 'borrowed_media') %}
{% if media %}
**Nächste Rückgaben:**
{% for item in media[:5] %}
- {{ item.title }} - {{ item.days_remaining }} Tage ({{ item.account_alias }})
{% endfor %}
{% endif %}- Update-Intervall: 6 Stunden (Hauptdaten), 24 Stunden (Verlängerungsdetails)
- Architektur: Multi-Account mit Account Manager
- Persistenz: Konten werden gespeichert
- Rate Limiting: 0.5-1.5s zwischen API-Calls (human-like)
- Authentifizierung: Session-basiert mit CSRF-Token
- Kalender: Nur kombinierter Kalender (konfigurierbar)
- Prüfe ob Mobile App Benachrichtigungen unterstützt
- iOS: "Mitteilungen" in App-Einstellungen prüfen
- Android: Notification Channels aktivieren
- Medien sind möglicherweise noch nicht verlängerbar
- Prüfe
renewal_dateAttribut am Sensor - Manche Medien haben Verlängerungssperren
- Verlängerungsdatum wird automatisch beim Button-Press aktualisiert
- Test-Benachrichtigung senden:
service: bibkat.test_notification - Benachrichtigungsdienst in Optionen prüfen
- HA Mobile App Verbindung prüfen
- Vormerkungen werden aus der Familienseite gelesen
- Prüfe ob Vormerkungen auf der Webseite angezeigt werden
- Debug-Skript:
python debug_reservations.py <username> <password>
- Ab v0.6.0 wird nur noch ein kombinierter Kalender erstellt
- Alte Kalender-Entities manuell löschen falls vorhanden
- 📚 NEU: Vormerkungen/Reservierungen mit eigenen Sensoren
- 🔄 Auto-Update Verlängerungsdatum bei Button-Press
- 📅 Kalender-Optimierung (keine Duplikate mehr)
- 🏷️ Externe Familienmitglieder Support
- 🔧 Verbesserte Fehlerbehandlung
- 🌍 Vollständige Übersetzungen (DE/EN)
- 📚 NEU: Jedes Buch als eigene Entity (
button.bibkat_boehl_buchname_12345) - 🔘 Ein-Klick-Verlängerung durch Button-Press
- 🎯 Native Dashboards ohne Custom Cards
- 📊 Template Slot System für stabile Dashboard-IDs
- 🔄 Dynamische Gruppen via Automation
- 📱 Perfekte Mobile App Integration
- 🌍 Automatische Übersetzung der Sensor-Attribute basierend auf HA-Sprache
- 🇩🇪 Deutsche Attribute für deutsche HA-Installationen
- 📚 Vollständige Dokumentation der Attributnamen
- ✨ Multi-Account Support pro Bibliothek
- 🔔 Actionable Notifications mit Smart Buttons
- 💰 Kontostand-Tracking (Gebühren, Kartenablauf)
- 📅 Erweiterte Datumsfunktionen (ISO-Format, is_renewable_now)
- 🌍 Multi-Language Support (DE/EN)
- ⚙️ Options Flow für Benachrichtigungseinstellungen
- 🎯 Notification Action Handler
- 📱 Volle Mobile App Integration
- 🏛️ Multi-Bibliothek Support
- 📅 Echte Datumsberechnung statt Platzhalter
- 🔄 Verlängerungsdatum-Anzeige
- 🏷️ Generischer Name "bibkat"
- 🚀 Initiale Version für KÖB Böhl
- 📚 Basis-Funktionen: Login, Anzeige, Verlängerung
Entwickelt für alle BibKat-Bibliotheken.
BibKat System von IBTC.
Dieses Projekt steht unter der MIT-Lizenz.