if ($tim > $secs_start && $tim > $secs_today) { if ($time_last_run > $secs_today) { // We have already started at least one loop before $log->lwrite("Timer " . $timers[$i]['name'] . " planned at: " . date('l jS \\of F Y h:i:s A', $secs_today) . " started already before " . date('l jS \\of F Y h:i:s A', $time_last_run) . "\n", 3); } else { if ($timers[$i]['skip'] == "1") { $log->lwrite("main:: Timer Cancel Once execution was active", 1); $timers[$i]['skip'] = "0"; store_timer($timers[$i]); } else { // make the command and queue it (in step 1) $log->lwrite("STARTING TIMER " . $timers[$i]['name'] . ", scene: " . $timers[$i]['scene'] . " at " . date('Y-m-d', $tim), 1); $log->lwrite("STARTING TIMER last_run: " . date('l jS \\of F Y h:i:s A', $time_last_run) . ", tim: " . date('l jS \\of F Y h:i:s A', $tim), 2); $log->lwrite("STARTING TIMER secs_start: " . date('l jS \\of F Y h:i:s A', $secs_start) . ", tim: " . date('l jS \\of F Y h:i:s A', $tim), 2); $log->lwrite("STARTING TIMER secs_today: " . date('l jS \\of F Y h:i:s A', $secs_today) . ", tim: " . date('l jS \\of F Y h:i:s A', $tim), 2); $scene = load_scene($timers[$i]['scene']); if ($scene == -1) { // Command not found in database $log->lwrite("main:: Cannot find scene: " . $timers[$i]['scene'] . " in the database", 1); break; } $scene_name = $scene['name']; $scene_seq = $scene['seq']; if ($scene_seq == "") { $log->lwrite("-- Scene: " . $scene['name'] . " found, but sequence empty (must save first)", 1); //break; } $log->lwrite("-- Scene found, reading sequence: " . $scene_seq); $splits = explode(',', $scene_seq); for ($j = 0; $j < count($splits); $j += 2) { $log->lwrite("cmd : " . $j . "=>" . $splits[$j], 2);
function dbase_parse($cmd, $message) { global $pisql, $dbhost, $dbuser, $dbpass, $dbname; global $log; // Used by daemon global $apperr, $appmsg; // For ajax usage if (!$pisql || !$pisql->ping()) { $log->lwrite("dbase_parse:: Ping failed, making new pisql connection to server", 1); $pisql = new mysqli($dbhost, $dbuser, $dbpass, $dbname); } // If there is an error if ($pisql->connect_errno) { $log->lwrite("dbase_parse:: Failed to connect to MySQL: (" . $pisql->connect_errno . ") " . $pisql->connect_error, 1); return -1; } // For logging only if (is_array($message)) { $str = ""; foreach ($message as $key => $val) { $str .= " {" . $key . ":" . $val . "},"; } $log->lwrite("dbase_parse:: " . $cmd . ": " . $str, 1); } else { $log->lwrite("dbase_parse:: message: " . $cmd . ": " . $message, 1); } // // Depending on $cmd execute database function switch ($cmd) { // Database case "load_database": $ret = load_database(); break; // Device // Device case "load_devices": $ret = load_devices(); break; case "add_device": $ret = add_device($message); break; case "delete_device": $ret = delete_device($message); break; case "store_device": $ret = store_device($message); break; // Room // Room case "add_room": $ret = add_room($message); break; case "delete_room": $ret = delete_room($message); break; // Scene // Scene case "read_scene": $ret = load_scene($message); break; case "load_scenes": $ret = load_scenes(); break; case "add_scene": $ret = add_scene($message); break; case "delete_scene": $ret = delete_scene($message); break; case "upd_scene": $ret = upd_scene($message); break; case "store_scene": $ret = store_scene($message); break; // Timer // Timer case "add_timer": $ret = add_timer($message); break; case "delete_timer": $ret = delete_timer($message); break; case "store_timer": $ret = store_timer($message); break; // Handset // Handset case "add_handset": $ret = add_handset($message); break; case "delete_handset": $ret = delete_handset($message); break; case "store_handset": $ret = store_handset($message); break; // Weather // Weather case "add_weather": $ret = add_weather($message); break; case "delete_weather": $ret = delete_weather($message); break; // Setting // Setting case "store_setting": $ret = store_setting($message); break; default: } if ($ret >= 0) { // Prepare structure to send back to the calling ajax client (in stdout) $send = array('tcnt' => $ret, 'appmsg' => $appmsg, 'status' => 'OK', 'apperr' => $apperr); $output = json_encode($send); } else { // Functions need to fill apperr themselves! $send = array('tcnt' => $ret, 'appmsg' => $appmsg, 'status' => 'ERR', 'apperr' => $apperr); $output = json_encode($send); } return $output; }