Correction README.md
Ajout modification du fichier Project.gfx
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user