# prtg-freifunk # # Monitor a given freifunk node and send results to PRTG # Samples are for my own freifunk node nearby paderborn, germany # param ( $meshdataurl ="https://map.hochstift.freifunk.net/data/pb-west/meshviewer.json", $nodeid = "704f5727b9f6" ) write-host "prtg-freifunk: Start" write-host " URL $($meshdataurl)" write-host " NodeID $($nodeid)" write-host " Try do download and convert json-file" try { [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 $jsondata = invoke-webrequest $meshdataurl -usebasicparsing } catch{ write-host "prtg-freifunk: Unable to get $($meshdataurl) with $($_.Exception.Message)" Write-Host "" Write-Host " 2" Write-Host " Unabled to get $($meshdataurl) Error $($_.Exception.Message)" Write-Host "" exit 2 } write-host " Try to convert JSON" try { $psdata= $jsondata | ConvertFrom-Json } catch { write-host "prtg-freifunk: Unable to convert JSON Error $($_.Exception.Message)" Write-Host "" Write-Host " 3" Write-Host " Unabled to convert JSON Error $($_.Exception.Message)" Write-Host "" exit 3 } write-host " Filter for my node" $mynode = $psdata.nodes| ?{$_.node_id -eq $nodeid} if ($mynode) { write-host "prtg-freifunk: Sending Data to PRTG" Write-Host "" Write-Host " " Write-Host " is_online" Write-Host " $(if ($mynode.is_online) {"1"} else {"0"})" Write-Host " Number" Write-Host " 0" Write-Host " " Write-Host " " Write-Host " loadavg" Write-Host " $($mynode.loadavg)" Write-Host " CPU Load" Write-Host " 1" Write-Host " " Write-Host " " Write-Host " memory_usage" Write-Host " $($mynode.memory_usage)" Write-Host " CPU Load" Write-Host " 1" Write-Host " " Write-Host " " Write-Host " Clients" Write-Host " $($mynode.clients)" Write-Host " Number" Write-Host " 0" Write-Host " " Write-Host " " Write-Host " clients_wifi24" Write-Host " $($mynode.clients_wifi24)" Write-Host " Number" Write-Host " 0" Write-Host " " Write-Host " " Write-Host " clients_wifi5" Write-Host " $($mynode.clients_wifi5)" Write-Host " Number" Write-Host " 0" Write-Host " " Write-Host " " Write-Host " clients_other" Write-Host " $($mynode.clients_other)" Write-Host " Number" Write-Host " 0" Write-Host " " Write-Host " 0" Write-Host " OK" Write-Host "" exit 0 } else { write-host "prtg-freifunk: Unable to find my node $($nodeid)" Write-Host "" Write-Host " 4" Write-Host " Unabled to find my node" Write-Host "" exit 4 }