Repository navigation
Releases: bauer-group/IP-HomeassistantS3CompatibleBackup
Releases · bauer-group/IP-HomeassistantS3CompatibleBackup
Release list
v0.2.3
🐛 Fixed
- Setup schlug unter Home Assistant Core 2026.8 mit
Requirements ... not foundfehl (#6, #7)- Fehlerbild beim Start:
Setup failed for custom integration 'bauergroup_s3compatiblebackup': Requirements for bauergroup_s3compatiblebackup not found: ['aiobotocore>=2.6.0,<3.0.0'] - Ursache war die Versionsobergrenze
<3.0.0inmanifest.json, nicht die Integration selbst aiobotocorehat sein Versionsschema an die Release-Kadenz vonbotocoreangeglichen: Auf2.26.0(November 2025) folgte direkt3.0.0(Dezember 2025); seitdem erscheinen keine2.x-Releases mehr, die zu aktuellenbotocore-Versionen passen- Home Assistant Core hat diesen Sprung in 2026.8.0 nachvollzogen und die selbst mitgelieferte Abhängigkeit von
aiobotocore==2.21.1(noch in 2026.7.x) aufaiobotocore==3.7.0angehoben — zusätzlich wird seitherbotocore==1.42.97inpackage_constraints.txtfest gepinnt, damit eine Requirement-Installation keine unpassendebotocore-Version nachziehen kann - Die von Home Assistant bereitgestellte
3.7.0erfüllte unsere Obergrenze<3.0.0nicht mehr, und der daraufhin ausgelöste Nachinstallations-Versuch scheiterte ambotocore-Pin — der Resolver meldete die Anforderung als unerfüllbar (die lange Fehlerausgabe im Log stammt vonuv) - Obergrenze auf
<4.0.0angehoben: Damit erfüllt die von Home Assistant bereitgestellte Version die Anforderung direkt und es wird gar kein Installationsversuch mehr ausgelöst - Betroffen waren alle Installationen ab Home Assistant Core 2026.8.0; unter 2026.7.x und älter trat der Fehler nicht auf
- Gemeldet von @Sergey842248; Analyse und Beitrag von @actuallychris
- Fehlerbild beim Start:
🔧 Technical
- Abhängigkeit:
aiobotocore>=2.6.0,<4.0.0(zuvor>=2.6.0,<3.0.0) - Die Untergrenze
>=2.6.0bleibt bestehen, sodass ältere Home-Assistant-Versionen mitaiobotocore2.x weiterhin unterstützt werden - Reine Anpassung der Versionsobergrenze — am Integrationscode war keine Änderung nötig, da die genutzte API über die Grenze 2.x → 3.x unverändert ist (
AioSession,session.create_client,__aenter__/__aexit__,StreamingBody.read()/iter_chunks()) - Die Breaking Changes der 3.x-Reihe betreffen diese Integration nicht:
3.0.0untersagt das Anlegen loserClientSession-Objekte, nachdem einAioBaseClientseinen Kontext verlassen hat — der Client wird hier explizit über__aenter__()betreten, über__aexit__()geschlossen und danach nicht weiterverwendet3.8.0ändertAioStreamingBody.__aenter__(liefertselfstatt der rohenaiohttp-ClientResponse) — der Response-Body wird hier ausschließlich überread()unditer_chunks()gelesen, nie als Kontextmanager verwendet
v0.2.2
🐛 Fixed
- formatjs-Fehler beim Setup behoben (
MISSING_VALUEfürprefix)- Die
data_descriptiondes Feldsprefixenthielt ein wörtlich gemeintes{prefix}, das vom Home-Assistant-Frontend (formatjs/ICU MessageFormat) als Platzhalter-Variable interpretiert wurde - Da kein
prefix-Platzhalter überdescription_placeholdersbereitgestellt wird, warf das RenderingMISSING_VALUE - Der Fehler führte zusätzlich dazu, dass das benachbarte Label
storage_classauf seinen Roh-Key zurückfiel, statt übersetzt zu werden - Die Beschreibung wurde ohne geschweifte Klammern umformuliert, sodass kein Platzhalter mehr interpretiert wird
- Betrifft
strings.json,translations/en.jsonundtranslations/de.json - Hinweis: Ersetzt den fehlerhaften Fix aus 0.2.1, der den ICU-Escape
'{prefix}'verwendete und an der Hassfest-Validierung scheiterte (Platzhalter in einfachen Anführungszeichen sind nicht erlaubt)
- Die
v0.2.1
🐛 Fixed
- formatjs-Fehler beim Setup behoben (
MISSING_VALUEfürprefix)- Die
data_descriptiondes Feldsprefixenthielt ein wörtlich gemeintes{prefix}, das vom Home-Assistant-Frontend (formatjs/ICU MessageFormat) als Platzhalter-Variable interpretiert wurde - Da kein
prefix-Platzhalter überdescription_placeholdersbereitgestellt wird, warf das RenderingMISSING_VALUE - Der Fehler führte zusätzlich dazu, dass das benachbarte Label
storage_classauf seinen Roh-Key zurückfiel, statt übersetzt zu werden {prefix}wird nun via ICU-Escape ('{prefix}') als Literal gerendert — angezeigter Text bleibt unverändert- Betrifft
strings.json,translations/en.jsonundtranslations/de.json
- Die
v0.2.0
✨ Added
- Konfigurierbare S3 Storage-Klasse (#4)
- Neue optionale Einstellung "Storage-Klasse" im Setup- und im Reconfigure-Flow
- Wird als
StorageClassanput_objectundcreate_multipart_uploadübergeben - Ermöglicht die Wahl der Speicherstufe (z.B.
STANDARD,STANDARD_IA,GLACIER) - Freitext statt fester Auswahlliste, da S3-kompatible Anbieter (MinIO, Wasabi, Backblaze B2) abweichende Klassennamen verwenden
- Bleibt das Feld leer, wird keine Storage-Klasse gesendet und der Anbieter-Standard greift
- Beitrag von @wardpieters
🐛 Fixed
- Fehlende Übersetzungen für Reauth- und Reconfigure-Flow ergänzt (#5)
en.jsonundde.jsonenthielten bisher nur denuser-Schritt- Die Schritte
reauth_confirmundreconfigurefielen auf diestrings.json-Quelle zurück, statt lokalisierte Labels anzuzeigen - Beide Schritte sowie die Meldung
abort.reauth_successfulsind nun vollständig in Deutsch und Englisch übersetzt
v0.1.7
v0.1.6
🐛 Fixed
- "Future attached to a different loop" Fehler behoben (#3)
async_list_backups()schlug fehl, weil der aiohttp-Response-Body-Stream an den Worker-Thread-Event-Loop gebunden war, aber im Home Assistant Event-Loop gelesen wurde- Neue Methode
get_object_body()liest den gesamten Body im Worker-Thread (für kleine Objekte wie Metadaten-JSON) - Neue Methode
get_object_stream()streamt Body-Chunks über eine thread-sichere Queue zwischen Worker- und Main-Event-Loop (für große Backup-Dateien) - Behebt auch einen latenten Fehler in
async_download_backup(), der beim Wiederherstellen von Backups aufgetreten wäre
v0.1.5
🐛 Fixed
- Blocking Call Warnungen vollständig behoben
- Neuer
S3ClientWrapperführt alle S3-Operationen in dediziertem Worker-Thread aus - Behebt alle
Detected blocking callWarnungen (listdir,open,load_verify_locations) - Vorherige Lösung (0.1.4) war unzureichend, da jede AioSession eigenen Loader-Cache hat
- Worker-Thread mit eigenem Event-Loop vermeidet Blockierung des Home Assistant Event-Loops
- Neuer
v0.1.4
🐛 Fixed
- Blocking Call Warnungen behoben
- S3-Client-Erstellung und Validierung erfolgt nun in einem Executor-Thread
- Behebt
Detected blocking call to listdirund ähnliche Warnungen in Home Assistant - Betrifft botocore's synchrone I/O-Operationen (listdir, Datei-Lese, SSL-Zertifikat-Laden)
- Verbesserte Kompatibilität mit Home Assistant's asyncio-Architektur
v0.1.3
🐛 Fixed
- Multipart-Upload für Cloudflare R2 und Garage
- Alle nicht-finalen Teile haben nun exakt die gleiche Größe (20 MiB)
- Behebt
InvalidPart: All non-trailing parts must have the same lengthFehler - Verbesserte Kompatibilität mit strengeren S3-kompatiblen Providern
v0.1.2
🐛 Fixed
- Kompatibilität mit Home Assistant 2024.12+
- Flexiblere aiobotocore-Versionsanforderung (
>=2.6.0,<3.0.0) statt fester Version - Behebt
ImportError: cannot import name 'register_feature_id'nach Home Assistant Updates - Integration nutzt nun die von Home Assistant bereitgestellte aiobotocore-Version
- Flexiblere aiobotocore-Versionsanforderung (