# prtg-landroid # # Monitor a given landroid and send results to PRTG # Samples are for my own landroid nearby paderborn, germany # # 20180404 frank@carius.de initial Version # 20180405 frank@carius.de Better UNIT-declaration and adding Messagenum param ( $url ="http://192.168.180.1/jsondata.cgi", $Username = "admin", $password = "0000", $csvfile = "C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML\prtg-landroid.csv" ) write-host "prtg-landroid: Start" write-host " URL $($url)" write-host " Try do download status" try { $secpasswd = ConvertTo-SecureString $password -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential($Username, $secpasswd) $data = Invoke-RestMethod $url -credential $cred } catch{ write-host "prtg-landroid: Unable to get $($url) with $($_.Exception.Message)" Write-Host "" Write-Host " 2" Write-Host " Unabled to get $($url) Error $($_.Exception.Message)" Write-Host "" exit 2 } write-host " Data" if ($csvfile -ne "") { $data | export-csv $csvfile -append } write-host " Convert State $($data.state)" [int]$statenum=99 switch ($data.state) { "Idle" {$statenum=9} "grass cutting" {$statenum=8} "lift recovery" {$statenum=7} "trapped recovery" {$statenum=6} "searching home" {$statenum=5} "start sequence" {$statenum=4} "searching wire" {$statenum=3} "following wire" {$statenum=2} "leaving house" {$statenum=1} "Home" {$statenum=0} else {$statenum=99} } write-host " StateNum = $($statenum)" write-host " Convert Message $($data.message)" [int]$messagenum=0 switch ($data.message) { "idle" {$messagenum=0} "charging" {$messagenum=1} "raining" {$messagenum=2} "outside wire" {$messagenum=3} "trapped" {$messagenum=4} "wire missing" {$messagenum=5} "close door to cut grass" {$messagenum=6} else {$messagenum=99} } write-host " messagenum = $($messagenum)" write-host " Convert batteryChargerState $($data.batteryChargerState)" switch ($data.batteryChargerState) { "idle" {$batteryChargerStatenum=0} "charging" {$batteryChargerStatenum=1 } else {$batteryChargerStatenum=99} } write-host " batteryChargerStatenum = $($batteryChargerStatenum)" write-host " Check" if ($data.state) { write-host "prtg-landroid: Sending Data to PRTG" Write-Host "" Write-Host " " Write-Host " statnum" Write-Host " $($statenum)" Write-Host " Custom" Write-Host " 0" Write-Host " " Write-Host " " Write-Host " Anteil langsame Fahrt" Write-Host " $($data.perc_rallenta_max)" Write-Host " Percent" Write-Host " 1" Write-Host " " Write-Host " " Write-Host " Anteil Bremsen" Write-Host " $($data.tempo_frenatura)" Write-Host " Percent" Write-Host " 1" Write-Host " " Write-Host " " Write-Host " Anzahl Batterienachladungen" Write-Host " $($data.num_ricariche_batt)" Write-Host " Count" Write-Host " 0" Write-Host " " Write-Host " " Write-Host " Ladezustand" Write-Host " $($data.perc_batt)" Write-Host " Percent" Write-Host " 0" Write-Host " " Write-Host " " Write-Host " batteryChargerStateNum" Write-Host " $($batteryChargerStateNum)" Write-Host " Custom" Write-Host " 0" Write-Host " " Write-Host " " Write-Host " MessageNum" Write-Host " $($messagenum)" Write-Host " Custom" Write-Host " 0" Write-Host " " Write-Host " OK State: $($data.state) - batteryChargerState:$($data.batteryChargerState) - Message: $($data.message)" Write-Host "" exit 0 } else { write-host "prtg-landroid: No valid data found" Write-Host "" Write-Host " 4" Write-Host " No valid data found" Write-Host "" exit 4 }