<?php

if ($device['os'] == 'pcoweb') {
    echo ' pCOWeb ';

    $temperatures = array(
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::roomTemp.0',
            'descr'     => 'Room Temperature',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.1.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::outdoorTemp.0',
            'descr'     => 'Ambient Temperature',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.2.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::deliveryTemp.0',
            'descr'     => 'Delivery Air Temperature',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.3.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::cwTemp.0',
            'descr'     => 'Chilled Water Temperature',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.4.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::hwTemp.0',
            'descr'     => 'Hot Water Temperature',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.5.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::cwoTemp.0',
            'descr'     => 'Chilled Water Outlet Temperature',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.7.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::suctTemp1.0',
            'descr'     => 'Circuit 1 Suction Temperature',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.10.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::suctTemp2.0',
            'descr'     => 'Circuit 2 Suction Temperature',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.11.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::evapTemp1.0',
            'descr'     => 'Circuit 1 Evap. Temperature',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.12.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::evapTemp2.0',
            'descr'     => 'Circuit 2 Evap. Temperature',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.13.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::ssh1.0',
            'descr'     => 'Circuit 1 Superheat',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.14.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::ssh2.0',
            'descr'     => 'Circuit 2 Superheat',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.15.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::coolSetP.0',
            'descr'     => 'Cooling Set Point',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.20.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::coolDiff.0',
            'descr'     => 'Cooling Prop. Band',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.21.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::cool2SetP.0',
            'descr'     => 'Cooling 2nd Set Point',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.22.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::heatSetP.0',
            'descr'     => 'Heating Set Point',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.23.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::heatDiff.0',
            'descr'     => 'Heating Prop. Band',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.25.0',
            'precision' => '10',
        ),
        array(
            'mib'       => 'CAREL-ug40cdz-MIB::heat2SetP.0',
            'descr'     => 'Heating 2nd Set Point',
            'oid'       => '.1.3.6.1.4.1.9839.2.1.2.24.0',
            'precision' => '10',
        ),
    );

    foreach ($temperatures as $temperature) {
        $current = (snmp_get($device, $temperature['mib'], '-OqvU') / $temperature['precision']);

        $high_limit = null;
        $low_limit  = null;

        if (is_numeric($current) && $current != 0) {
            $index = implode('.', array_slice(explode('.', $temperature['oid']), -5));
            discover_sensor($valid['sensor'], 'temperature', $device, $temperature['oid'], $index, 'pcoweb', $temperature['descr'], $temperature['precision'], '1', $low_limit, null, null, $high_limit, $current);
        }
    }

    /*
        FIXME

        thrsHT.0 = INTEGER: 30 degrees C x10
        thrsLT.0 = INTEGER: 10 degrees C x10
        smCoolSetp.0 = INTEGER: 280 degrees C
        smHeatSetp.0 = INTEGER: 160 degrees C
        cwDehumSetp.0 = INTEGER: 70 degrees C
        cwHtThrsh.0 = INTEGER: 150 degrees C
        cwModeSetp.0 = INTEGER: 70 degrees C
        radcoolSpES.0 = INTEGER: 80 degrees C
        radcoolSpDX.0 = INTEGER: 280 degrees C
        delTempLimit.0 = INTEGER: 14 degrees C x10
        dtAutChgMLT.0 = INTEGER: 20 degrees C
    */
}
