<# .SYNOPSIS Spielt Code-Updates (pyscript + Frontend) in eine laufende Home-Assistant- Installation ein, ohne Neustart und ohne Cache-Probleme im Browser. .BESCHREIBUNG Kopiert nur Code, nie Daten: - pyscript/* -> /pyscript/ (pyscript lädt das automatisch neu, siehe Kopfkommentar dort - an einer Testinstanz bestätigt: eine geänderte Datei war innerhalb von Millisekunden aktiv, ganz ohne Neustart) - www/*.js, www/*.css, www/bilder/* -> /www/ - www/audi-dashboard-version.json wird IMMER neu geschrieben, mit der aktuellen Uhrzeit als Versionsnummer - der Lade-Stub (audi-dashboard-panel.js) liest diese Datei bei jedem Seitenaufruf ohne Cache und lädt den eigentlichen Code darüber immer frisch nach (siehe Kopfkommentar in www/audi-dashboard-panel.js). Absichtlich NICHT kopiert: data/ - das würde ein bereits laufendes Fahrzeugprofil, die Fahrten- und Tankvorgänge-Archive überschreiben. Die data/-Dateien sind nur die Erstbefüllung für die einmalige Installation (siehe INSTALL.md Schritt 2). .PARAMETER Ziel Pfad zum config-Verzeichnis von Home Assistant, z. B. ein per Samba eingebundenes Laufwerk (\\\config) oder ein lokal gemounteter Pfad. .BEISPIEL .\update.ps1 -Ziel "\\homeassistant.local\config" #> param( [Parameter(Mandatory = $true)] [string]$Ziel ) $ErrorActionPreference = "Stop" $hier = $PSScriptRoot if (-not (Test-Path $Ziel)) { throw "Ziel nicht erreichbar: $Ziel — Samba-Share verbunden? Pfad korrekt?" } Write-Host "Kopiere pyscript/ ..." -ForegroundColor Cyan robocopy "$hier\pyscript" "$Ziel\pyscript" /MIR /NFL /NDL /NJH /NJS | Out-Null Write-Host "Kopiere www/ (ohne bilder/, die separat behandelt werden) ..." -ForegroundColor Cyan New-Item -ItemType Directory -Force -Path "$Ziel\www" | Out-Null Copy-Item "$hier\www\audi-dashboard-app.js" "$Ziel\www\audi-dashboard-app.js" -Force Copy-Item "$hier\www\audi-dashboard-panel.js" "$Ziel\www\audi-dashboard-panel.js" -Force Copy-Item "$hier\www\audi-dashboard.css" "$Ziel\www\audi-dashboard.css" -Force if (Test-Path "$hier\www\bilder") { Write-Host "Kopiere www/bilder/ ..." -ForegroundColor Cyan New-Item -ItemType Directory -Force -Path "$Ziel\www\bilder" | Out-Null Copy-Item "$hier\www\bilder\*" "$Ziel\www\bilder\" -Force -Recurse } $version = [DateTimeOffset]::UtcNow.ToUnixTimeSeconds() "{ ""version"": $version }" | Out-File -FilePath "$Ziel\www\audi-dashboard-version.json" -Encoding utf8 -NoNewline Write-Host "" Write-Host "Fertig. Version $version." -ForegroundColor Green Write-Host "pyscript-Änderungen sind bereits aktiv (Auto-Reload, kein Neustart nötig)." Write-Host "Frontend-Änderungen: im Browser einmal ganz normal neu laden (F5) reicht -" Write-Host "kein Hard-Refresh, kein HA-Neustart."