Пример #1
0
function msg_arr($arr)
{
    if (@$arr['msg']) {
        return emsg($arr['msg'], 'ok');
    } else {
        return emsg($arr['err'], 'alert_cross');
    }
}
Пример #2
0
$op = $raw_caseta >= 0 ? "lutron_pico_add" : "lutron_pico_del";
$caseta = abs($raw_caseta);
function emsg($msg)
{
    echo $msg;
    exit;
}
$db = "/database/apron.db";
$dbh = new SQLite3($db);
$dbh->busyTimeout(5000);
$device_result = $dbh->query("SELECT masterId FROM lutronDevice WHERE lNodeId = {$pico}");
$row = $device_result->fetchArray(SQLITE3_ASSOC) or emsg("No such device.");
$pico_master = $row["masterId"];
$device_result->finalize();
$device_result = $dbh->query("SELECT masterId FROM lutronDevice WHERE lNodeId = {$caseta}");
$row = $device_result->fetchArray(SQLITE3_ASSOC) or emsg("No such device.");
$caseta_master = $row["masterId"];
$device_result->finalize();
$dbh->close();
unset($dbh);
$cmd = "aprontest --{$op} {$caseta_master} -m {$pico_master} | sed 's/[[:space:]][[:space:]]*/ /g' | grep '^[[:space:]][[:alnum:]]*: [A-Za-z0-9\\-_]*\$' | sed 's/^ //'";
$output = `{$cmd}`;
$lines = explode(PHP_EOL, $output);
$data = array("cmd" => $cmd, "serial" => $pico, "op" => $op, "value" => $caseta);
$result = array();
foreach ($lines as $line) {
    if (!$line) {
        continue;
    }
    list($key, $value) = explode(": ", $line);
    $result[$key] = $value;
Пример #3
0
<?php

// Hardware-pairs Pico remotes to a set of Caseta dimmers.
// Useful for bypassing SmartThings' considerable latency and establishing
// instant and reliable Pico-to-Caseta communication.
// Pass comma delimited Pico serials in the pico parameter.
if (!isset($_REQUEST["pico"])) {
    emsg('No pico parameter');
}
// And a comma delimited set of Caseta serials as the caseta parameter.
if (!isset($_REQUEST["caseta"])) {
    emsg("No caseta parameter specified (even empty).");
}
header('Content-Type: application/json');
header('X-Response: DEVICE_LINKED');
$picos = $_REQUEST["pico"] ? array_map("intval", explode(",", $_REQUEST["pico"])) : array();
$new_dimmers = $_REQUEST["caseta"] ? array_map("intval", explode(",", $_REQUEST["caseta"])) : array();
function emsg($msg)
{
    echo $msg;
    exit;
}
// Get existing links.
$existing_dimmers = array();
foreach ($picos as $pico) {
    $existing_dimmers[$pico] = array();
}
$db = "/database/lutron-db.sqlite";
$dbh = new SQLite3($db);
$dbh->busyTimeout(15000);
$picos_str = implode(",", $picos);