Files
Doku/Dokumentation/Classes/cPRTG.vb
2025-07-02 15:50:45 +02:00

46 lines
1.7 KiB
VB.net

Imports System.Net
Imports Newtonsoft.Json.Linq
Public Class cPRTG
Public Async Function getValuefromPRTG(sensorId As String, kanalnummer As Integer) As Task(Of String)
Dim prtgServer As String = "https://management01.verag.ost.dmn"
'Dim sensorId As String = "8223"
Dim username As String = "admin"
Dim passhash As String = "1828632597"
'Dim kanalnummer As Integer = 8
Dim url As String = $"{prtgServer}/api/table.json?content=channels&columns=objid,name,lastvalue&id={sensorId}&username={username}&passhash={passhash}"
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
ServicePointManager.ServerCertificateValidationCallback = Function(sender, cert, chain, sslPolicyErrors) True
Try
Using client As New WebClient()
client.Encoding = System.Text.Encoding.UTF8
Dim jsonText As String = Await client.DownloadStringTaskAsync(url)
Dim json As JObject = JObject.Parse(jsonText)
Dim channels = json("channels")
If TypeOf channels Is JArray AndAlso kanalnummer >= 0 AndAlso kanalnummer < channels.Count Then
Dim channel = channels(kanalnummer)
Dim name = channel("name").ToString()
Dim value = channel("lastvalue").ToString().Replace("Â", "").Trim()
Return $"{value}"
Else
Return $"Kanal {kanalnummer} ungültig oder nicht vorhanden."
End If
End Using
Catch ex As Exception
Return "Fehler: " & ex.Message
End Try
End Function
End Class