Correction README.md

Ajout modification du fichier Project.gfx
This commit is contained in:
2026-03-05 10:36:52 +01:00
parent 83df3cc4ef
commit bd4fde8190
5 changed files with 204 additions and 19 deletions

View File

@@ -244,6 +244,7 @@ elseif ($Action -eq "Write") {
# Associer par index sequentiel : device[0] -> DeviceId_1, device[1] -> DeviceId_2, etc.
$xmlFiles = @()
$deviceIdMap = @{} # Paires ancien -> nouveau pour mise a jour GFx
for ($i = 0; $i -lt $existingDevices.Count; $i++) {
$seqIndex = $i + 1
$deviceIdCol = "DeviceId_$seqIndex"
@@ -281,6 +282,11 @@ elseif ($Action -eq "Write") {
Content = $result.ModifiedXml
}
# Collecter la paire ancien -> nouveau pour le GFx
if ($result.OldDeviceId -ne $newDeviceId) {
$deviceIdMap[$result.OldDeviceId] = $newDeviceId
}
Update-Stats -Counter DevicesProcessed
Write-Log -Message "[$hostname] Device $($device.Name) : $($result.OldDeviceId) -> $newDeviceId" -Level INFO
}
@@ -290,7 +296,7 @@ elseif ($Action -eq "Write") {
continue
}
# Creer le ZIP et l'envoyer
# Creer le ZIP enocean et l'envoyer
$zipBytes = New-EnoceanZip -XmlFiles $xmlFiles
$zipFilename = Get-ZipFilename -ZipBytes $zipBytes
@@ -304,7 +310,42 @@ elseif ($Action -eq "Write") {
-Username $creds.Username `
-Password $creds.Password
Write-Log -Message "[$hostname] Configuration envoyee avec succes" -Level SUCCESS
Write-Log -Message "[$hostname] Configuration enocean envoyee avec succes" -Level SUCCESS
# Mise a jour du Project.gfx (fichier source du programme)
if ($deviceIdMap.Count -gt 0) {
Write-Log -Message "[$hostname] Mise a jour du Project.gfx..." -Level INFO
$gfxBytes = Invoke-EnoceanGet `
-BaseUrl $baseUrl `
-ApiBasePath $apiBasePath `
-ResourcePath "files/common/localDevice/project/Project.gfx?encode=bin" `
-Username $creds.Username `
-Password $creds.Password `
-RawBytes
$mainXml = Read-GfxMainXml -GfxBytes $gfxBytes
$gfxResult = Update-GfxDeviceIds -MainXmlContent $mainXml -DeviceIdMap $deviceIdMap
if ($gfxResult.ReplaceCount -gt 0) {
$newGfxBytes = Update-GfxZip -GfxBytes $gfxBytes -ModifiedMainXml $gfxResult.ModifiedXml
Send-MultipartFile `
-BaseUrl $baseUrl `
-ApiBasePath $apiBasePath `
-ResourcePath "files/common/localDevice/project" `
-FileBytes $newGfxBytes `
-Filename "Project.gfx" `
-Username $creds.Username `
-Password $creds.Password
Write-Log -Message "[$hostname] Project.gfx mis a jour ($($gfxResult.ReplaceCount) DeviceId modifie(s))" -Level SUCCESS
}
else {
Write-Log -Message "[$hostname] Project.gfx : aucun DeviceId trouve a modifier" -Level WARN
}
}
}
catch {
Write-Log -Message "[$hostname] ERREUR : $($_.Exception.Message)" -Level ERROR