En af de funktioner der oftest benyttes i INEXTIA API er opdateringen af tællerværdier. Det skyldes at eksempelvis et SCADA system allerede kender værdierne og derfor kan man med fordel udnytte det i vedligeholdsplanlægningen.
Man bruger altså API’et til automatiske tælleraflæsninger i INEXTIA.
Eksemplet herunder tager udgangspunkt i, at der ikke allerede er hentet en token, så derfor skal det gøres først.
Efter token er hentet indsættes en ny tælleraflæsning på en specifik tæller.
Kodeeksemplet herunder er fra PowerShell:
$postParamsAuth = @{"login"="<user>"; "password"="<password>"} | ConvertTo-Json;
$token = Invoke-WebRequest -Uri https://<sitename>.inextia.dk/api/Auth -ContentType "application/json" -Method POST -Body $postParamsAuth | ConvertFrom-Json;
$headers = @{
"Authorization" = "Bearer " + $token.accessToken;
"Content-Type" = "application/json; charset=utf-8";
}
$postParamsCounter = @{"value"=<value>; "valuedate"="<date>"} | ConvertTo-Json;
Invoke-WebRequest -Uri https://<sitename>.inextia.dk/api/counters/<no>/readings -Method POST -Body $postParamsCounter -Headers $headers;
<user> og <password> erstattes med interface brugerens login oplysninger.
<sitename> erstattes med det reelle INEXTIA site.
<value> erstattes med den værdi tælleren skal have.
<valuedate> erstattes med dags dato. Formatet er ”åååå-mm-dd”.
<no> erstattes med nummeret (ID) på den tæller der skal opdateres.
Der er forskellige forudsætninger for at ovenstående eksempel virker.
Brugeren skal først og fremmest have rettighed til at opdatere tælleren. Derudover skal tælleren eksistere. Dato for ny aflæsning skal være senere end sidste aflæsning. Værdien skal være større end sidste aflæsning.
Blev aflæsningen indsat korrekt så får man StatusCode 200 tilbage.
Blev den ikke det, så viser fejlbeskrivelsen hvad der er galt.
Kodeeksemplet herunder fanger fejlen, hvis der er en, og udskriver den:
$postParamsCounter = @{"value"=<value>; "valuedate"="<date>"} | ConvertTo-Json;
try{
Invoke-WebRequest -Uri https://<sitename>.inextia.dk/api/counters/<no>/readings -Method POST -Body $postParamsCounter -Headers $headers;
}
Catch{
$streamReader = [System.IO.StreamReader]::new($_.Exception.Response.GetResponseStream())
$errorJson = $streamReader.ReadToEnd()
$streamReader.Close()
Write-Output $errorJson
}
For at se de tælleraflæsninger der allerede er indsat, hentes de på følgende måde:
$readings = Invoke-WebRequest -Uri https://<sitename>.inextia.dk/api/counters/<no>/readings -Method GET -Headers $headers;
Write-Output $readings.Content | ConvertFrom-Json
Kommentarer
0 kommentarer
Artiklen er lukket for kommentarer.