function refreshSensorValue($con, $sensorId, $sensorWert)
{
    $SHORTCUTS_URL_COMMAND = "";
    $lastVal = getDbValue("homecontrol_sensor", "lastValue", "id=" . $sensorId);
    if ($lastVal == $sensorWert) {
        return;
    }
    // MySQL UPDATE
    $sql = "UPDATE homecontrol_sensor SET lastValue=" . $sensorWert . ", lastSignal=" . time() . " WHERE id=" . $sensorId;
    $result = $con->executeQuery($sql);
    $sql = "INSERT INTO homecontrol_sensor_log(sensor_id, value, update_time) values (" . $sensorId . "," . $sensorWert . "," . time() . ")";
    $result = $con->executeQuery($sql);
    try {
        $myfile = fopen("signalIn.log", "a+");
        fwrite($myfile, "" . date("d.M.Y H:i:s") . ": " . "Sensor " . $sensorId . "  aktualisiert von: " . $lastVal . " nach " . $sensorWert . "\n");
        fclose($myfile);
    } catch (Exception $e) {
    }
    // URL-Aufruf ermitteln
    // Wenn keine Schaltvorgaenge notwendig sind (nur Status-Update)
    // wird ein Leerstring zurueckgeliefert
    $SENSOR_URL_COMMAND = prepareSensorSwitchLink($sensorId);
    // HTML-Daten an Browser senden,
    // bevor Schaltvorgaenge ausgeloest werden.
    ob_implicit_flush();
    ob_end_flush();
    flush();
    // Wenn auszufuehrendes Kommando gefunden wurde, ausfuehren
    if (strlen($SENSOR_URL_COMMAND) > 0) {
        switchShortcut("", $SENSOR_URL_COMMAND, $con);
        try {
            $myfile = fopen("signalIn.log", "a+");
            fwrite($myfile, "SCHALTUNG -> " . $SENSOR_URL_COMMAND . "\n");
            fclose($myfile);
        } catch (Exception $e) {
        }
    }
}
예제 #2
0
    while ($row = mysql_fetch_array($result)) {
        if (isCronPaused($_SESSION['config']->DBCONNECT, $row['id'])) {
            deleteCronPause($_SESSION['config']->DBCONNECT, $row['id']);
        } else {
            $shortcutUrl = getShortcutSwitchKeyForCron($_SESSION['config']->DBCONNECT, $row['id']);
            $url = parse_url(__FILE__);
            $currPath = dirname($url['path']);
            if (substr($currPath, strlen($currPath) - 1) != "/" && strlen($currPath) > 1) {
                $currPath .= "/";
            }
            $shortcutUrls[count($shortcutUrls)] = $shortcutUrl;
        }
    }
}
// ------------------------------
foreach ($shortcutUrls as $shortcutUrl) {
    echo "Switch: " . $shortcutUrl . "\n\n";
    switchShortcut($arduinoUrl, $shortcutUrl, $_SESSION['config']->DBCONNECT);
}
// ------------------------------
function isCronPaused($con, $id)
{
    $sql = "SELECT 'X' FROM homecontrol_cron_pause WHERE cron_id = " . $id;
    $result = $con->executeQuery($sql);
    return mysql_num_rows($result) > 0;
}
function deleteCronPause($con, $id)
{
    $sql = "DELETE FROM homecontrol_cron_pause WHERE cron_id = " . $id;
    $result = $con->executeQuery($sql);
}
예제 #3
0
}
$link = mysql_connect($DBHOST, $DBUSER, $DBPASS);
if (!$link) {
    die('Verbindung schlug fehl: ' . mysql_error());
}
mysql_select_db($DBNAME, $link) or die('Could not select database.');
/**********************
 *    Script Start
 **********************/
// URL-Aufruf ermitteln
// Wenn keine Schaltvorgaenge notwendig sind (nur Status-Update)
// wird ein Leerstring zurueckgeliefert
$SENSOR_URL_COMMAND = getShortcutSwitchKeyByName($shortcutName);
// HTML Ausgabe
echo "\r\n<html>\r\n  <head>\r\n    <title>Shortcut schalten</title>\r\n  </head>\r\n  <body>\r\n    Shortcut: " . $shortcutName . "</br>\r\n    " . $SENSOR_URL_COMMAND . "</br>\r\n  </body>\r\n</html>\r\n";
mysql_close($link);
// HTML-Daten an Browser senden,
// bevor Schaltvorgaenge ausgeloest werden.
ob_implicit_flush();
ob_end_flush();
flush();
// Wenn auszufuehrendes Kommando gefunden wurde, ausfuehren
if (strlen($SENSOR_URL_COMMAND) > 0) {
    $dc = new DbConnect($DBHOST, $DBUSER, $DBPASS, $DBNAME);
    switchShortcut($arduinoUrl, $SENSOR_URL_COMMAND, $dc);
}
function exitMissingValues()
{
    echo "<html>\r\n    <head>\r\n      <title>Input: FAILED!</title>\r\n    </head>\r\n    <body>\r\n      FEHLER!</br>\r\n      shortcutName muss angegeben werden!\r\n    </body>\r\n  </html>\r\n  ";
    exit("shortcutName muss angegeben werden!");
}
예제 #4
0
if (isset($_REQUEST['run']) && strlen($_REQUEST['run']) > 0) {
    if (isValidRun($_REQUEST['run'])) {
        // NEUES ZIEL ANGEFORDERT
        $run = $RUNLINKS->getLinkByName($_REQUEST['run']);
        $_SESSION['runLink'] = $_REQUEST['run'];
        $_SESSION['tmp'] = array();
    }
} else {
    if (!isset($_SESSION[$runLinkTarget]) || strlen($_SESSION[$runLinkTarget]) == 0) {
        //KEIN ZIEL ANGEGEBEN -> KEIN ALTES ZIEL VORHANDEN    Default: start
        $run = $RUNLINKS->getLinkByName("start");
        $_SESSION['runLink'] = "start";
    }
}
//Wurde ein Link gefunden wird dieser Wert im entsprechenden Ziel aktualisiert
if (strlen($run) > 0) {
    // Ist ein alternatives Ziel gesetzt,
    // wird der neue link in die entsprechende session-variable geschrieben
    // ansonsten gilt der RUNLINK für die Hauptseite (mainpage)
    if (isset($runLinkTarget) && strlen($runLinkTarget) > 0) {
        $_SESSION[$runLinkTarget] = $run;
    } else {
        $_SESSION['mainpage'] = $run;
    }
}
include "header_index.php";
if (isset($_REQUEST['switchShortcut']) && strlen($_REQUEST['switchShortcut']) > 3) {
    switchShortcut("http://" . $_SESSION['config']->PUBLICVARS['arduino_url'], $_REQUEST['switchShortcut'], $_SESSION['config']->DBCONNECT);
}
include "layout.php";
include "foot.php";
 function switchObject($id, $onOff, $dimm = 0)
 {
     switchShortcut("http://" . $_SESSION['config']->PUBLICVARS['arduino_url'], $id . "-" . $onOff . ($dimm > 0 && $dimm < 17 ? "-" . $dimm : ""), $_SESSION['config']->DBCONNECT);
 }