# prtg-tfareader # # reads the given # param ( [string]$inputfile = "C:\ProgramData\KlimaLogg.dat1" ) #set-psdebug -strict $ErrorActionPreference="SilentlyContinue" $error.clear() write-host "Start PRTG Sensor" write-host "Inputfile:" $Inputfile $inifile = get-content $inputfile [string]$resultxml="" [string]$inisection="" foreach ($line in $inifile) { write-host "Processing $line" if ($line[0] -eq "[") { if ($inisection -ne "") { write-host "Closing old inisection: $inisection" $resultxml+=("`r`n") } $inisection = $line.replace("[","").replace("]","") write-host "Found new inisection: $inisection" $resultxml+=("<$inisection>`r`n") } elseif ($line -like "*=*") { $key=($line.split("=")[0]) $value=($line.split("=")[1]) write-host "Found parameterline Key: $key Value:$value" $resultxml+=("<$key>$value`r`n") } else { write-host "Skip line" } } $resultxml+=("`r`n") $resultxml+="" [xml]$inixml= $resultxml [string]$result="`r`n" $lastactualization = [long]($inixml.inifile.time.last_actualisation.replace("""","")) write-host "Timestamp lastactualization: $lastactualization" $timestampageseconds = [long](((Get-Date).touniversaltime().addseconds(-$lastactualization) - (get-date 1.1.1900)).totalseconds) write-host "Timestamp age in minutes $timestampageseconds" if ($timestampageseconds -gt 120) { $result+="1`r`n" $result+="Data to old. last Update $timestampageseconds Seconds. Check Klimalogger-Service`r`n" } else { foreach ($count in (0..8)) { write-host "Processing Channel $count" $result+=" `r`n" $result+=" Temperature("+$count+")`r`n" $result+=" "+$inixml.inifile.("temperature_channel_"+$count).deg_c.replace("""","")+"`r`n" $result+=" Temperature`r`n" $result+=" Celsius`r`n" $result+=" Absolute`r`n" $result+=" 1`r`n" $result+=" `r`n" $result+=" `r`n" $result+=" Humidy("+$count+")`r`n" $result+=" "+$inixml.inifile.("humidity_channel_"+$count).percent.replace("""","")+"`r`n" $result+=" Percent`r`n" $result+=" Absolute`r`n" $result+=" `r`n" } $result+="No errors found`r`n" } $result+="" write-host "End: ExitCode "$error.count Write-host "Sending Result to output pipeline" $result if ($error) { #write-host "Found Errors" EXIT 1 }