# 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
}