46 lines
1.7 KiB
VB.net
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
|