diff --git a/app/api/RoomsApi.php b/app/api/RoomsApi.php
deleted file mode 100644
index de417a1..0000000
--- a/app/api/RoomsApi.php
+++ /dev/null
@@ -1,39 +0,0 @@
-requireAuth();
- $rooms = [];
- $roomsData = RoomManager::getAllRooms();
- foreach ($roomsData as $roomKey => $roomData) {
-
- $widgets = [];
- $devicesData = DeviceManager::getAllDevicesInRoom($roomData['room_id']);
- foreach ($devicesData as $deviceKey => $deviceData) {
-
- $subDevicesData = SubDeviceManager::getAllSubDevices($deviceData['device_id']);
- foreach ($subDevicesData as $subDeviceKey => $subDeviceData) {
-
- $lastRecord = RecordManager::getLastRecord($subDeviceData['subdevice_id']);
- $widgets[] = [
- 'subdevice_id' => $subDeviceData['subdevice_id'],
- 'device_id' => $deviceData['device_id'],
- 'name' => $deviceData['name'],
- 'type' => $subDeviceData['type'],
- 'icon' => $deviceData['icon'],
- 'value' => $lastRecord['value'],
- 'unit' => $subDeviceData['unit'],
- ];
- }
- }
-
- $rooms[] = [
- 'room_id' => $roomData['room_id'],
- 'name' => $roomData['name'],
- 'widgets' => $widgets,
- ];
- }
- $this->response($rooms);
- }
-}
diff --git a/www/app/Bootstrap.php b/www/app/Bootstrap.php
deleted file mode 100644
index 3c41b3d..0000000
--- a/www/app/Bootstrap.php
+++ /dev/null
@@ -1,93 +0,0 @@
-';
- //var_dump($directorys);
- //echo '';
-
- $files = new RecursiveIteratorIterator($directorys, RecursiveIteratorIterator::LEAVES_ONLY);
-
- $filename = $className . static::$extension;
-
- foreach ($files as $key => $file) {
- if (strtolower($file->getFilename()) === strtolower($filename) && $file->isReadable()) {
- include_once $file->getPathname();
- return;
- }
- }
- }
-
- static function setRoot($rootPath){
- static::$root = $rootPath;
- }
-}
-
-spl_autoload_register("Autoloader::ClassLoader");
-Autoloader::setRoot('/var/www/dev.steelants.cz/vasek/home-update/');
-
-class ErrorHandler {
- static function exception($exception){
- error_log($exception);
- http_response_code($exception->getCode());
- $message = [
- 'code' => $exception->getCode(),
- 'message' => $exception->getMessage(),
- ];
- echo json_encode($message);
-
- $apiLogManager = new LogManager('../logs/'. date("Y-m-d").'.log');
- $apiLogManager->write("[APACHE] ERROR\n" . json_encode($message, JSON_PRETTY_PRINT), LogRecordType::INFO);
- }
-}
-set_exception_handler("ErrorHandler::exception");
-
-$json = file_get_contents('php://input');
-$obj = json_decode($json, true);
-
-$apiLogManager = new LogManager('../logs/api/HA/'. date("Y-m-d").'.log');
-
-$apiLogManager->write("[API] request body\n" . json_encode($obj, JSON_PRETTY_PRINT), LogRecordType::INFO);
-$apiLogManager->write("[API] POST body\n" . json_encode($_POST, JSON_PRETTY_PRINT), LogRecordType::INFO);
-$apiLogManager->write("[API] GET body\n" . json_encode($_GET, JSON_PRETTY_PRINT), LogRecordType::INFO);
-
-//Debug
-error_reporting(E_ALL);
-ini_set( 'display_errors','1');
-
-//setup
-ini_set ('session.cookie_httponly', '1');
-ini_set('session.cookie_domain', $_SERVER['HTTP_HOST']);
-ini_set('session.cookie_path', str_replace("login", "", str_replace('https://' . $_SERVER['HTTP_HOST'], "", $_SERVER['REQUEST_URI'])));
-ini_set('session.cookie_secure', '1');
-session_start ();
-mb_internal_encoding ("UTF-8");
-
-// import configs
-require_once '../config/config.php';
-
-// Logs
-$logManager = new LogManager();
-
-// Language
-if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
- $langTag = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
- $langMng = new LanguageManager($langTag);
- $langMng->load();
-}
-
-//D B Conector
-Db::connect (DBHOST, DBUSER, DBPASS, DBNAME);
-
-// TODO: Přesunout do Login Pohledu
-$userManager = new UserManager();
-
-// import routes
-require_once '../app/Routes.php';
diff --git a/www/app/Routes.php b/www/app/Routes.php
deleted file mode 100644
index f973faa..0000000
--- a/www/app/Routes.php
+++ /dev/null
@@ -1,31 +0,0 @@
-setDefault(function(){
- echo $_GET['url'].': 404';
-});
-
-//Pages
-$router->any('/', 'Log');
-$router->any('/login', 'Login');
-$router->any('/logout', 'Logout');
-$router->any('/automation', 'Automation');
-$router->any('/setting', 'Setting');
-$router->any('/ajax', 'Ajax');
-
-$router->post('/api/login', 'AuthApi@login');
-$router->post('/api/logout', 'AuthApi@logout');
-
-$router->get('/api/devices', 'DevicesApi@default');
-$router->get('/api/rooms', 'RoomsApi@default');
-
-$router->get('/api/HA/auth', 'GoogleHomeApi@autorize');
-$router->any('/api/HA', 'GoogleHomeApi@response');
-
-// examples
-$router->any('/api/example', 'ExampleApi@example');
-$router->any('/example', 'ExampleController@index');
-$router->any('/example/subpage', 'ExampleController@subpage');
-
-$router->run($_SERVER['REQUEST_METHOD'], '/'.(isset($_GET['url']) ? $_GET['url'] : ''));
diff --git a/www/app/api/AuthApi.php b/www/app/api/AuthApi.php
deleted file mode 100644
index a9d6101..0000000
--- a/www/app/api/AuthApi.php
+++ /dev/null
@@ -1,25 +0,0 @@
-getToken($this->input->username,$this->input->password);
- if (!$token) {
- throw new Exception("Auth failed", 401);
- }
- $this->response(['token' => $token]);
- }
-
- public function logout(){
- $authenticationBearrer = $_SERVER['HTTP_AUTHORIZATION'];
- if (!(new AuthManager)->deleteToken($authenticationBearrer)) {
- throw new Exception("logout Failed", 401);
- }
- }
-
- public function registration(){
-
- }
-
- public function restartPassword(){
-
- }
-}
diff --git a/www/app/api/DevicesApi.php b/www/app/api/DevicesApi.php
deleted file mode 100644
index daa8ece..0000000
--- a/www/app/api/DevicesApi.php
+++ /dev/null
@@ -1,17 +0,0 @@
-requireAuth();
- $response = [];
-
- // TODO: process the request
-
- $this->response($response);
- }
-
- public function getDevicesByRoom($roomId){
-
- }
-}
diff --git a/www/app/api/ExampleApi.php b/www/app/api/ExampleApi.php
deleted file mode 100644
index 0fe5727..0000000
--- a/www/app/api/ExampleApi.php
+++ /dev/null
@@ -1,24 +0,0 @@
-requireAuth();
- // if user is logged in, next lines will be processed
- // otherwise script get terminated with 401 UNAUTHORIZED
-
-
- // input data are stored in $this->input
- // in this example we just copy input to response
- $response = $this->input;
-
-
- // this method returns response as json
- $this->response($response);
- // you can specify returned http code by second optional parameter
- // default value is 200
- // $this->response($response, $httpCode);
- }
-
-}
diff --git a/www/app/api/GoogleHomeApi.php b/www/app/api/GoogleHomeApi.php
deleted file mode 100644
index 40f67cd..0000000
--- a/www/app/api/GoogleHomeApi.php
+++ /dev/null
@@ -1,46 +0,0 @@
-write("[Google Home] action.devices.SYNC", LogRecordType::INFO);
- break;
-
- case 'action.devices.QUERY':
- GoogleHome::query($obj['requestId'], $obj['inputs'][0]['payload']);
- //$apiLogManager->write("[Google Home] action.devices.QUERY", LogRecordType::INFO);
- break;
-
- case 'action.devices.EXECUTE':
- GoogleHome::execute($obj['requestId'], $obj['inputs'][0]['payload']);
- $apiLogManager->write("[Google Home] action.devices.EXECUTE", LogRecordType::INFO);
- break;
- }
- }
-
- static function autorize(){
- $json = file_get_contents('php://input');
- $obj = json_decode($json, true);
-
- $apiLogManager = new LogManager('../logs/api/HA/'. date("Y-m-d").'.log');
- $apiLogManager->write("[API] request body\n" . json_encode($obj, JSON_PRETTY_PRINT), LogRecordType::INFO);
- $apiLogManager->write("[API] GET body\n" . json_encode($_GET, JSON_PRETTY_PRINT), LogRecordType::INFO);
-
- $get = [
- "access_token"=>"2222255888",
- "token_type"=>"Bearer",
- "state"=>$_GET["state"],
- ];
-
- echo $_GET["redirect_uri"] . '#' . http_build_query($get) ;
- echo 'FINISH';
- }
-}
diff --git a/www/app/api/RoomsApi.php b/www/app/api/RoomsApi.php
index 340f09d..de417a1 100644
--- a/www/app/api/RoomsApi.php
+++ b/www/app/api/RoomsApi.php
@@ -4,23 +4,36 @@ class RoomsApi extends ApiController{
public function default(){
//$this->requireAuth();
- $response = [];
- $roomIds = [];
- $roomsData = RoomManager::getRoomsDefault();
-
- foreach ($roomsData as $roomKey => $room) {
- $roomIds[] = $room['room_id'];
- }
-
- $subDevicesData = SubDeviceManager::getSubdevicesByRoomIds($roomIds);
-
+ $rooms = [];
+ $roomsData = RoomManager::getAllRooms();
foreach ($roomsData as $roomKey => $roomData) {
- $response[] = [
+
+ $widgets = [];
+ $devicesData = DeviceManager::getAllDevicesInRoom($roomData['room_id']);
+ foreach ($devicesData as $deviceKey => $deviceData) {
+
+ $subDevicesData = SubDeviceManager::getAllSubDevices($deviceData['device_id']);
+ foreach ($subDevicesData as $subDeviceKey => $subDeviceData) {
+
+ $lastRecord = RecordManager::getLastRecord($subDeviceData['subdevice_id']);
+ $widgets[] = [
+ 'subdevice_id' => $subDeviceData['subdevice_id'],
+ 'device_id' => $deviceData['device_id'],
+ 'name' => $deviceData['name'],
+ 'type' => $subDeviceData['type'],
+ 'icon' => $deviceData['icon'],
+ 'value' => $lastRecord['value'],
+ 'unit' => $subDeviceData['unit'],
+ ];
+ }
+ }
+
+ $rooms[] = [
'room_id' => $roomData['room_id'],
'name' => $roomData['name'],
- 'widgets' => isset($subDevicesData[$roomData['room_id']]) ? $subDevicesData[$roomData['room_id']] : [],
+ 'widgets' => $widgets,
];
}
- $this->response($response);
+ $this->response($rooms);
}
}
diff --git a/www/app/controllers/ExampleController.php b/www/app/controllers/ExampleController.php
deleted file mode 100644
index 45a6d8c..0000000
--- a/www/app/controllers/ExampleController.php
+++ /dev/null
@@ -1,14 +0,0 @@
-view->title = 'Example title';
- $this->view->render('example.phtml');
- }
-
- public function subpage(){
- echo 'subpage';
- }
-
-}
diff --git a/www/app/controllers/automationController.php b/www/app/controllers/automationController.php
deleted file mode 100644
index f7ae6fd..0000000
--- a/www/app/controllers/automationController.php
+++ /dev/null
@@ -1,77 +0,0 @@
- $_POST['atSelector'],
- "value" => $value,
- ], JSON_PRETTY_PRINT);
- $onDays = $_POST['atDays'];
-
- //Debug
- // if (DEBUGMOD == 1) {
- // echo '
';
- // echo $permissionsInJson;
- // echo $deviceId;
- // var_dump(json_decode ($permissionsInJson));
- // echo '
';
- // echo 'CONTINUE';
- // die();
- // }
-
- AutomationManager::create($_POST['name'], $onDays, $doCode, $ifCode);
-
- header('Location: ' . BASEURL . strtolower(basename(__FILE__, '.php')));
- die();
- } else if (isset($_POST['modalFinal']) && $_POST['action'] == "edit") {
- $doCode = json_encode($_POST['device'], JSON_PRETTY_PRINT);
-
- if (isset ($_POST['atDeviceValue'])) {
- $subDeviceId = $_POST['atDeviceValue'];
- $subDeviceValue = $_POST['atDeviceValueInt'];
- $subDevice = SubDeviceManager::getSubDevice($subDeviceId);
- $subDeviceMaster = SubDeviceManager::getSubDeviceMaster($subDeviceId,$subDevice['type']);
-
- $device = [
- 'deviceID' => $subDeviceMaster['device_id'],
- 'type'=> $subDevice['type'],
- 'value'=> $subDeviceValue,
- ];
- }
-
-
- $value = $_POST['atSelector'];
- if (isset($_POST['atTime'])){
- $value = $_POST['atTime'];
- } else if (isset($_POST['atDeviceValue'])) {
- $value = $device;
- } else if ($_POST['atSelector'] == 'inHome' || $_POST['atSelector'] == 'outHome') {
- //TODO: opravit edit aby vkládal id původního uživatele
- $value = UserManager::getUserData('user_id');
- }
-
- $value = (isset($_POST['atTime']) ? $_POST['atTime'] : (isset($_POST['atDeviceValue']) ? $device : $_POST['atSelector']));
- $ifCode = json_encode([
- "type" => $_POST['atSelector'],
- "value" => $value,
- ], JSON_PRETTY_PRINT);
- $onDays = ($_POST['day'] != '' ? json_encode($_POST['day']) : '');
-
- AutomationManager::create($_POST['name'], $onDays, $doCode, $ifCode, (isset ($_POST['automation_id']) ? $_POST['automation_id'] : ""));
-
- header('Location: ' . BASEURL . strtolower(basename(__FILE__, '.php')));
- die();
- }
-}
-?>
diff --git a/www/app/controllers/loginController.php b/www/app/controllers/loginController.php
deleted file mode 100644
index de4fed6..0000000
--- a/www/app/controllers/loginController.php
+++ /dev/null
@@ -1,51 +0,0 @@
-haveOtaEnabled($userName);
- if ($ota == "") {
- $landingPage = $userManager->login($userName, $userPassword, $rememberMe);
- header('Location: ' . BASEURL . $landingPage);
- die();
- }
-
- $_SESSION['USERNAME'] = $userName;
- $_SESSION['PASSWORD'] = $userPassword;
- $_SESSION['REMEMBER'] = $rememberMe;
- $_SESSION['OTA'] = $ota;
-} else if (
- isset($_POST['otaCode']) &&
- $_POST['otaCode'] != ''
-) {
-
- $otaCode = $_POST['otaCode'];
- $otaSecret = $_POST['otaSecret'];
-
- $ga = new PHPGangsta_GoogleAuthenticator();
- $ota = $_SESSION['OTA'];
- $userName = $_SESSION['USERNAME'];
- $userPassword = $_SESSION['PASSWORD'];
- $rememberMe = $_SESSION['REMEMBER'];
- unset($_SESSION['OTA']);
- $checkResult = $ga->verifyCode($otaSecret, $otaCode, 2); // 2 = 2*30sec clock tolerance
- if ($checkResult) {
- $landingPage = $userManager->login($userName, $userPassword, $rememberMe);
- header('Location: ' . BASEURL . '/');
- echo 'OK';
- } else {
- echo 'FAILED';
- }
- //TODO: upravi a ověřit jeslti ja zabezpečené
- //TODO:
- die();
-}
diff --git a/www/app/controllers/settingController.php b/www/app/controllers/settingController.php
deleted file mode 100644
index f31a8de..0000000
--- a/www/app/controllers/settingController.php
+++ /dev/null
@@ -1,29 +0,0 @@
-verifyCode($otaSecret, $otaCode, 2); // 2 = 2*30sec clock tolerance
- if ($checkResult) {
- UserManager::setOta($otaCode, $otaSecret);
- }
- header('Location: ' . BASEURL . 'setting');
- die();
- }
-}
diff --git a/www/app/models/ChartJS.php b/www/app/models/ChartJS.php
deleted file mode 100644
index 5b0b8bc..0000000
--- a/www/app/models/ChartJS.php
+++ /dev/null
@@ -1,194 +0,0 @@
- 'rgba(220,220,220,0.2)', 'stroke' => 'rgba(220,220,220,1)', 'point' => 'rgba(220,220,220,1)', 'pointStroke' => '#fff');
- /**
- * Add label(s)
- * @param array $labels
- * @param bool $reset
- */
- public function addLabels(array $labels, $reset = false)
- {
- if ($reset) {
- $this->_labels = array();
- }
- $this->_labels = $this->_labels + $labels;
- }
- /**
- * Add dataset
- * @param $dataset
- * @param $reset
- */
- public function addDataset($dataset, $reset)
- {
- if ($reset) {
- $this->_datasets = array();
- }
- $this->_datasets += $dataset;
- }
- public function __construct($id = null, $width = '', $height = '', $otherAttributes = array())
- {
- if (!$id) {
- $id = uniqid('chartjs_', true);
- }
- $this->_id = $id;
- $this->_width = $width;
- $this->_height = $height;
- // Always save otherAttributes as array
- if ($otherAttributes && !is_array($otherAttributes)) {
- $otherAttributes = array($otherAttributes);
- }
- $this->_attributes = $otherAttributes;
- }
- /**
- * This method allows to echo ChartJS object and directly renders canvas (instead of using ChartJS->render())
- */
- public function __toString()
- {
- return $this->renderCanvas();
- }
- public function renderCanvas()
- {
- $data = $this->_renderData();
- $options = $this->_renderOptions();
- $height = $this->_renderHeight();
- $width = $this->_renderWidth();
- $attributes = $this->_renderAttributes();
- $canvas = '';
- return $canvas;
- }
- /**
- * Prepare canvas' attributes
- * @return string
- */
- protected function _renderAttributes()
- {
- $attributes = '';
- foreach ($this->_attributes as $attribute => $value) {
- $attributes .= ' ' . $attribute . '="' . $value . '"';
- }
- return $attributes;
- }
- /**
- * Prepare width attribute for canvas
- * @return string
- */
- protected function _renderWidth()
- {
- $width = '';
- if ($this->_width) {
- $width = ' width="' . $this->_width . '"';
- }
- return $width;
- }
- /**
- * Prepare height attribute for canvas
- * @return string
- */
- protected function _renderHeight()
- {
- $height = '';
- if ($this->_height) {
- $height = ' height="' . $this->_height . '"';
- }
- return $height;
- }
- /**
- * Render custom options for the chart
- * @return string
- */
- protected function _renderOptions()
- {
- if (empty($this->_options)) {
- return '';
- }
- return ' data-options=\'' . json_encode($this->_options) . '\'';
- }
- /**
- * Prepare data (labels and dataset) for the chart
- * @return string
- */
- protected function _renderData()
- {
- $array_data = array('labels' => array(), 'datasets' => array());
- $i = 0;
- foreach ($this->_datasets as $line) {
- $this->_completeColors($line['options'], $i);
- $array_data['datasets'][] = $line['options'] + array('data' => $line['data']);
- $i++;
- }
- $array_data['labels'] = $this->_labels;
- return ' data-data=\'' . json_encode($array_data) . '\'';
- }
- /**
- * Set default colors
- * @param array $defaultColors
- */
- public static function setDefaultColors(array $defaultColors)
- {
- self::$_defaultColors = $defaultColors;
- }
- /**
- * @param array $color
- */
- public static function addDefaultColor(array $color)
- {
- if (!empty($color['fill']) && !empty($color['stroke']) && !empty($color['point']) && !empty($color['pointStroke'])) {
- self::$_defaultColors[] = $color;
- } else {
- trigger_error('Color is missing to add this theme (need fill, stroke, point and pointStroke) : color not added', E_USER_WARNING);
- }
- }
- protected function _completeColors(&$options, &$i)
- {
- if (empty(static::$_defaultColors[$i])) {
- $i = 0;
- }
- $colors = static::$_defaultColors[$i];
- foreach (static::$_colorsRequired as $name) {
- if (empty($options[$name])) {
- $shortName = str_replace('Color', '', $name);
- if (empty($colors[$shortName])) {
- $shortName = static::$_colorsReplacement[$shortName];
- }
- $options[$name] = $colors[$shortName];
- }
- }
- }
-}
diff --git a/www/app/models/ChartJS_Line.php b/www/app/models/ChartJS_Line.php
deleted file mode 100644
index 3fa3f5a..0000000
--- a/www/app/models/ChartJS_Line.php
+++ /dev/null
@@ -1,21 +0,0 @@
- 'point', 'pointHighlightStroke' => 'pointStroke');
- /**
- * Add a set of data
- * @param array $data
- * @param array $options
- * @param null $name Name cas be use to change data / options later
- */
- public function addLine($data = array(), $options = array(), $name = null)
- {
- if (!$name) {
- $name = count($this->_datasets) + 1;
- }
- $this->_datasets[$name]['data'] = $data;
- $this->_datasets[$name]['options'] = $options;
- }
-}
diff --git a/www/app/models/GoogleHome.php b/www/app/models/GoogleHome.php
deleted file mode 100644
index 1f17d6c..0000000
--- a/www/app/models/GoogleHome.php
+++ /dev/null
@@ -1,268 +0,0 @@
- $roomData) {
- $devicesData = DeviceManager::getAllDevicesInRoom($roomData['room_id']);
- foreach ($devicesData as $deviceKey => $deviceData) {
- $subDevicesData = SubDeviceManager::getAllSubDevices($deviceData['device_id']);
- foreach ($subDevicesData as $subDeviceKey => $subDeviceData) {
- if ($subDeviceData['type'] != "on/off" && $subDeviceData['type'] != "temp_cont") continue;
-
- //Google Compatibile Action Type
- $actionType = GoogleHomeDeviceTypes::getAction($subDeviceData['type']);
-
- if (
- strpos($deviceData['name'], 'Světlo') !== false ||
- strpos($deviceData['name'], 'světlo') !== false
- ) {
- $actionType = 'action.devices.types.LIGHT';
- }
-
- $tempDevice = [
- 'id' => (string) $subDeviceData['subdevice_id'],
- 'type' => $actionType,
- 'name' => [
- 'name' => $deviceData['name'],
- ],
- 'willReportState' => false,
- 'roomHint' => $roomData['name']
- ];
-
- //traids & Attributes
- $devices[] = GoogleHomeDeviceTypes::getSyncObj($tempDevice, $actionType);
- }
- }
- }
-
- $response = [
- 'requestId' => $requestId,
- 'payload' => [
- 'agentUserId'=>'651351531531',
- 'devices' => $devices,
- ],
- ];
- $apiLogManager = new LogManager('../logs/api/HA/'. date("Y-m-d").'.log');
- $apiLogManager->write("[API][$requestId] request response\n" . json_encode($response, JSON_PRETTY_PRINT), LogRecordType::INFO);
- echo json_encode($response);
- }
-
- static function query($requestId, $payload){
- $devices = [];
- foreach ($payload['devices'] as $deviceId) {
- $subDeviceData = SubDeviceManager::getSubDevice($deviceId['id']);
- if ($subDeviceData['type'] != "on/off" && $subDeviceData['type'] != "temp_cont") continue;
-
- $state = false;
- if (RecordManager::getLastRecord($deviceId['id'])['value'] == 1){
- $state = true;
- }
-
- $online = false;
- $status = 'OFFLINE';
-
- if (RecordManager::getLastRecord($deviceId['id'])['execuded'] == 1){
- $online = true;
- $status = 'SUCCESS';
- } else {
- $executed = 0;
- $waiting = 0;
- foreach (RecordManager::getLastRecord($deviceId['id'], 6) as $key => $value) {
- if ($value['execuded'] == 1){
- $executed++;
- } else {
- $waiting++;
- }
- }
- if ($waiting < $executed){
- $status = "PENDING";
- $online = true;
- }
- }
-
- $tempDevice = [
- $deviceId['id'] => [
- 'online' => $online,
- 'status'=> $status,
- ]
- ];
-
- if ($subDeviceData['type'] == "temp_cont"){
- $tempDevice[$deviceId['id']]['thermostatMode'] = 'off';
- if (RecordManager::getLastRecord($deviceId['id'])['value'] != 0) {
- $tempDevice[$deviceId['id']]['thermostatMode'] = 'heat';
- $tempDevice[$deviceId['id']]['thermostatTemperatureAmbient'] = RecordManager::getLastRecord($deviceId['id'])['value'];
- $tempDevice[$deviceId['id']]['thermostatTemperatureSetpoint'] = RecordManager::getLastRecord($deviceId['id'])['value'];
- }
- } else {
- $tempDevice[$deviceId['id']]['on'] = $state;
- }
- $devices = $tempDevice;
- if (count($devices)> 1){
- $devices[] = $tempDevice;
- }
- }
-
- $response = [
- 'requestId' => $requestId,
- 'payload' => [
- 'devices' => $devices,
- ],
- ];
-
- $apiLogManager = new LogManager('../logs/api/HA/'. date("Y-m-d").'.log');
- $apiLogManager->write("[API][$requestId] request response\n" . json_encode($response, JSON_PRETTY_PRINT), LogRecordType::INFO);
- echo json_encode($response);
- }
-
- static function execute($requestId, $payload){
- $commands = [];
-
- foreach ($payload['commands'] as $key => $command) {
- foreach ($command['devices'] as $key => $device) {
- $executionCommand = $command['execution'][0];
- if (isset($command['execution'][$key])) {
- $executionCommand = $command['execution'][$key];
- }
-
- $subDeviceId = $device['id'];
-
- switch ($executionCommand['command']) {
- case 'action.devices.commands.OnOff':
- $commands[] = self::executeSwitch($subDeviceId, $executionCommand);
- break;
-
- case 'action.devices.commands.ThermostatTemperatureSetpoint':
- $commands[] = self::executeTermostatValue($subDeviceId, $executionCommand);
- break;
-
- case 'action.devices.commands.ThermostatSetMode':
- $commands[] = self::executeTermostatMode($subDeviceId, $executionCommand);
- break;
- }
- }
- }
-
- $response = [
- 'requestId' => $requestId,
- 'payload' => [
- 'commands' => $commands,
- ],
- ];
- $apiLogManager = new LogManager('../logs/api/HA/'. date("Y-m-d").'.log');
- $apiLogManager->write("[API][EXECUTE][$requestId]\n" . json_encode($response, JSON_PRETTY_PRINT), LogRecordType::INFO);
-
- echo json_encode($response);
- }
-
- static function executeSwitch($subDeviceId, $executionCommand){
- $value = 0;
- $status = 'SUCCESS';
- if ($executionCommand['params']['on']) $value = 1;
-
- RecordManager::createWithSubId($subDeviceId, $value);
-
- $executed = 0;
- $waiting = 0;
- foreach (RecordManager::getLastRecord($subDeviceId, 4) as $key => $value) {
- if ($value['execuded'] == 1){
- $executed++;
- } else {
- $waiting++;
- }
- }
- if ($waiting < $executed){
- $status = "PENDING";
- } else {
- $status = "OFFLINE";
- }
-
- $commandTemp = [
- 'ids' => [$subDeviceId],
- 'status' => $status,
- 'states' => [
- 'on' => $executionCommand['params']['on'],
- ],
- ];
- return $commandTemp;
- }
-
- static function executeTermostatValue($subDeviceId, $executionCommand){
- $value = 0;
- $status = 'SUCCESS';
-
- if (isset($executionCommand['params']['thermostatTemperatureSetpoint'])) {
- $value = $executionCommand['params']['thermostatTemperatureSetpoint'];
- }
-
- RecordManager::createWithSubId($subDeviceId, $value);
-
- $executed = 0;
- $waiting = 0;
- foreach (RecordManager::getLastRecord($subDeviceId, 4) as $key => $lastValue) {
- if ($lastValue['execuded'] == 1){
- $executed++;
- } else {
- $waiting++;
- }
- }
- if ($waiting < $executed){
- $status = "PENDING";
- } else {
- $status = "OFFLINE";
- }
-
- $commandTemp = [
- 'ids' => [$subDeviceId],
- 'status' => $status,
- 'states' => [
- 'thermostatMode' => 'heat',
- 'thermostatTemperatureSetpoint' => $value,
- 'thermostatTemperatureAmbient' => $value,
- //ambient z dalšího zenzoru v roomu
- ],
- ];
-
- if ($timeout >= 5){
- $commandTemp['status'] = "OFFLINE";
- }
- return $commandTemp;
- }
-
- static function executeTermostatMode($subDeviceId, $executionCommand){
- $mode = "off";
- $value = 0;
- $status = "SUCCESS";
-
- if (isset($executionCommand['params']['thermostatMode']) && $executionCommand['params']['thermostatMode'] != 'off') {
- $mode = $executionCommand['params']['thermostatMode'];
- $value = RecordManager::getLastRecordNotNull($subDeviceId)['value'];
- }
-
- RecordManager::createWithSubId($subDeviceId, $value);
-
- $executed = 0;
- $waiting = 0;
- foreach (RecordManager::getLastRecord($deviceId['id'], 4) as $key => $value) {
- if ($value['execuded'] == 1){
- $executed++;
- } else {
- $waiting++;
- }
- }
- if ($waiting < $executed){
- $status = "PENDING";
- }
-
- $commandTemp = [
- 'ids' => [$subDeviceId],
- 'status' => $status,
- 'states' => [
- 'thermostatMode' => $mode
- ],
- ];
-
- return $commandTemp;
- }
-}
diff --git a/www/app/models/managers/AuthManager.php b/www/app/models/managers/AuthManager.php
deleted file mode 100644
index 88c96a6..0000000
--- a/www/app/models/managers/AuthManager.php
+++ /dev/null
@@ -1,45 +0,0 @@
-loginNew($username, $password);
-
- if ($userLogedIn != false){
- // Create token header as a JSON string
- $header = json_encode(['typ' => 'JWT', 'alg' => 'HS256']);
- // Create token payload as a JSON string
- $payload = json_encode(['user_id' => $userLogedIn]);
- // Encode Header to Base64Url String
- $base64UrlHeader = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($header));
- // Encode Payload to Base64Url String
- $base64UrlPayload = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($payload));
- // Create Signature Hash
- $signature = hash_hmac('sha256', $base64UrlHeader . "." . $base64UrlPayload, 'abC123!', true);
- // Encode Signature to Base64Url String
- $base64UrlSignature = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($signature));
- // Create JWT
- $jwt = $base64UrlHeader . "." . $base64UrlPayload . "." . $base64UrlSignature;
-
- return $jwt;
- }
- }
- return false;
- }
-
- public function deleteToken($token){
- Db::command ('DELETE FROM tokens WHERE token=?', array ($token));
- return true;
- }
-
- public function validateToken($token){
- $tokens = Db::loadAll('SELECT * FROM tokens WHERE token = ? AND expire >= CURRENT_TIMESTAMP AND blocked = 0;', array($token));
- if (count($tokens) == 1) {
- return true;
- } else if (count($tokens) == 0) {
- return false;
- };
- return false;
- }
-}
diff --git a/www/app/models/managers/AutomationManager.php b/www/app/models/managers/AutomationManager.php
deleted file mode 100644
index aacf6f7..0000000
--- a/www/app/models/managers/AutomationManager.php
+++ /dev/null
@@ -1,175 +0,0 @@
- $name,
- 'owner_id' => $userId,
- 'on_days' => $onDays,
- 'if_something' => $ifCode,
- 'do_something' => $doCode,
- );
- try {
- if ($automationId == "") {
- Db::add ('automation', $scene);
- } else {
- Db::edit ('automation', $scene, 'WHERE automation_id = ?', array ($automationId));
- }
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function getAll(){
- return Db::loadAll ("SELECT * FROM automation");
-
- }
-
- public static function executeAll(){
- global $logManager;
-
- $automations = Db::loadAll ("SELECT * FROM automation");
- $dayNameNow = strtolower (date('D', time()));
-
- foreach ($automations as $automation) {
- $onValue = json_decode($automation['if_something'], true);
- $sceneDoJson = $automation['do_something'];
- $actionDays = json_decode($automation['on_days'], true);
- $value = time();
- $run = false;
- $restart = false;
-
- if ($automation['active'] == 1 && $automation['locked'] != 1){
- Db::edit('automation', array('locked' => 1), 'WHERE automation_id = ?', array($automation['automation_id']));
- if (in_array($dayNameNow, $actionDays)){
- if (in_array($onValue['type'], ['sunSet', 'sunRise', 'time','now'])) {
- if ($onValue['type'] == 'sunSet') {
- $value = date_sunset($value, SUNFUNCS_RET_TIMESTAMP, 50.0755381 , 14.4378005, 90);
- } else if ($onValue['type'] == 'sunRise') {
- $value = date_sunrise($value, SUNFUNCS_RET_TIMESTAMP, 50.0755381 , 14.4378005, 90);
- } else if ($onValue['type'] == 'time') {
- $onValue = explode(':',$onValue['value']);
- $today = date_create('now');
- $onValue = $today->setTime($onValue[0], $onValue[1]);
- $value = $today->getTimestamp();
- }
-
- if (time() > $value && $automation['executed'] == 0){
- $run = true;
- } else if (time() < $value && $automation['executed'] == 1) { //recovery realowing of automation
- $restart = true;
- }
-
- } else if ($onValue['type'] == 'outHome') {
- //TODO: Add Ovner to automation
- $userHomeStatus = UserManager::getUserData('at_home', $onValue['value']);
- if ($userHomeStatus == 'false' && $automation['executed'] == 0) {
- $run = true;
- } else if ($userHomeStatus == 'true' && $automation['executed'] == 1) {
- $restart = true;
- }
- } else if ($onValue['type'] == 'inHome') {
- //TODO: Add Ovner to automation
- $userHomeStatus = UserManager::getUserData('at_home', $onValue['value']);
- if ($userHomeStatus == 'true' && $automation['executed'] == 0) {
- $run = true;
- } else if ($userHomeStatus == 'false' && $automation['executed'] == 1) {
- $restart = true;
- }
- } else if ($onValue['type'] == 'noOneHome') {
- $users = UserManager::getUsers();
- $membersHome = 0;
- foreach ($users as $key => $user) {
- if ($user['at_home'] == 'true'){
- $membersHome++;
- }
- }
- if ($membersHome == 0 && $automation['executed'] == 0) {
- $run = true;
- } else if ($membersHome > 0 && $automation['executed'] == 1){
- $restart = true;
- }
- } else if ($onValue['type'] == 'someOneHome') {
- $users = UserManager::getUsers();
- $membersHome = 0;
- foreach ($users as $key => $user) {
- if ($user['at_home'] == 'true'){
- $membersHome++;
- }
- }
- if ($membersHome == 0 && $automation['executed'] == 1) {
- $restart = true;
- } else if ($membersHome > 0 && $automation['executed'] == 0){
- $run = true;
- }
- } else if ($onValue['type'] == 'atDeviceValue') {
-
- $subDeviceId = SubDeviceManager::getSubDeviceByMaster($onValue['value']['deviceID'], $onValue['value']['type'])["subdevice_id"];
- $lastValue = RecordManager::getLastRecord($subDeviceId);
-
- if ($lastValue['value'] == $onValue['value']['value'] && $automation['executed'] == 0) {
- $run = true;
-
- } else if ($lastValue['value'] != $onValue['value']['value'] && $automation['executed'] == 1){
- $restart = true;
-
- }
- }
-
- //finalization
- if ($run) {
- $body = '';
-
- $sceneDoArray = json_decode($sceneDoJson);
- foreach ($sceneDoArray as $deviceId => $deviceState) {
- RecordManager::create($deviceId, 'on/off', $deviceState);
- }
-
- $subscribers = NotificationManager::getSubscription();
- $i = 0;
-
- $notificationMng = new NotificationManager;
- $notificationData = [
- 'title' => 'Automatization',
- 'body' => 'Automatization '.$automation['name']." was just executed",
- 'icon' => BASEDIR . '/app/templates/images/icon-192x192.png',
- ];
-
- if ($notificationData != []) {
- $subscribers = $notificationMng::getSubscription();
- foreach ($subscribers as $key => $subscriber) {
- $logManager->write("[NOTIFICATION/AUTOOMATION] SENDING TO" . $subscriber['id'] . " ");
- $notificationMng::sendSimpleNotification(SERVERKEY, $subscriber['token'], $notificationData);
- }
- }
-
- $logManager->write("[AUTOMATIONS] automation id ". $automation['automation_id'] . " was executed");
- Db::edit('automation', array('executed' => 1, 'execution_time' => date("Y-m-d H:i:s")), 'WHERE automation_id = ?', array($automation['automation_id']));
- } else if ($restart) {
- $logManager->write("[AUTOMATIONS] automation id ". $automation['automation_id'] . " was restarted");
- Db::edit('automation', array('executed' => 0), 'WHERE automation_id = ?', array($automation['automation_id']));
- }
- Db::edit('automation', array('locked' => 0), 'WHERE automation_id = ?', array($automation['automation_id']));
- }
- }
- }
- }
-}
diff --git a/www/app/models/managers/ChartManager.php b/www/app/models/managers/ChartManager.php
deleted file mode 100644
index d26757c..0000000
--- a/www/app/models/managers/ChartManager.php
+++ /dev/null
@@ -1,129 +0,0 @@
-Aktuální Hodnota: '.$data[0]['value'];
- echo "";
- echo '';
- echo '
';
- for ($valuesRow = 0; $valuesRow < count($data); $valuesRow++) {
- $row = $data[$valuesRow];
-
- echo '
';
- }
- echo '
';
- echo '
';
- echo '';
- echo 'Poslední Update: ';
-
- echo '
- ';
- }
-
- function generateChartData(int $subDeviceId, string $periode, string $groupBy) {
- $chartData = [];
-
- $subDevice = SubDeviceManager::getSubDevice($subDeviceId);
- $records = RecordManager::getAllRecordForGraph($subDeviceId, $periode, $groupBy);
-
- $array = array_column($records, 'value');
- $arrayTime = array_column($records, 'time');
- $output = [];
-
- foreach ($array as $key => $value) {
- $output[$key]['y'] = $value;
- if ($subDevice['type'] == 'light'){
- if ($value > 810){
- $output[$key]['y'] = 1;
- } else {
- $output[$key]['y'] = 0;
- }
- }
-
- $timeStamp = new DateTime($arrayTime[$key]);
- $output[$key]['t'] = $timeStamp->format("Y-m-d") . 'T' . $timeStamp->format("H:i:s") . 'Z';
- }
-
- $data = json_encode($output);
- $data = $output;
- $arrayTimeStamps = array_column($records, 'time');
- foreach ($arrayTimeStamps as $key => $value) {
- $arrayTimeStamps[$key] = (new DateTime($value))->format(TIMEFORMAT);
- }
-
- $chartData['graphRange'] = RANGES[$subDevice['type']];
- $chartData['graphType'] = RANGES[$subDevice['type']]['graph'];
- $chartData['graphData'] = $data;
-
- return $chartData;
- }
-}
-?>
diff --git a/www/app/models/managers/DashboardManager.php b/www/app/models/managers/DashboardManager.php
deleted file mode 100644
index b241a35..0000000
--- a/www/app/models/managers/DashboardManager.php
+++ /dev/null
@@ -1,41 +0,0 @@
- UserManager::getUserData('user_id'),
- 'subdevice_id' => $subDeviceId,
- );
- try {
- Db::add ('dashboard', $dashboardItem);
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
- }
-
- static function Remove ($subDeviceId){
- $userId = UserManager::getUserData('user_id');
- Db::command ('DELETE FROM dashboard WHERE subdevice_id=? AND user_id = ?', array ($subDeviceId, $userId));
- }
-}
diff --git a/www/app/models/managers/DeviceManager.php b/www/app/models/managers/DeviceManager.php
deleted file mode 100644
index 53255f8..0000000
--- a/www/app/models/managers/DeviceManager.php
+++ /dev/null
@@ -1,96 +0,0 @@
- $name,
- 'token' => $token,
- 'room_id' => $defaultRoom,
- );
- try {
- Db::add ('devices', $device);
- return Db::loadOne("SELECT device_id FROM devices WHERE token = ?", array($token))['device_id'];
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function edit ($deviceId, $values = []) {
- try {
- Db::edit ('devices', $values, 'WHERE device_id = ?', array($deviceId));
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function editByToken ($token, $values = []) {
- try {
- Db::edit ('devices', $values, 'WHERE token = ?', array($token));
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- /**
- * [assignRoom Přiřazení zařízení do třídy]
- * @param [type] $roomId [číslo místnosti do kter se má zařízení přiřadit]
- * @param [type] $deviceId [Číslo zařízení které chcete přiřadit do místnosti]
- */
- public static function assignRoom ($roomId, $deviceId) {
- $device = array (
- 'room_id' => $roomId,
- );
- try {
- Db::edit ('devices', $device, 'WHERE device_id = ?', array($deviceId));
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- /**
- * [delete Smazání zařízení]
- * @param [type] $deviceId [Id zařízení ke smazání]
- */
- public static function delete ($deviceId) {
- Db::command ('DELETE FROM devices WHERE device_id=?', array ($deviceId));
- }
-
- public static function registeret ($deviceToken) {
- return (count(Db::loadAll ("SELECT * FROM devices WHERE token=?", array($deviceToken))) == 1 ? true : false);
- }
-
- public static function approved ($deviceToken) {
- return (count(Db::loadAll ("SELECT * FROM devices WHERE token=? AND approved = ?", array($deviceToken, 1))) == 1 ? true : false);
- }
-}
-?>
diff --git a/www/app/models/managers/FallbackManager.php b/www/app/models/managers/FallbackManager.php
deleted file mode 100644
index cb3fb79..0000000
--- a/www/app/models/managers/FallbackManager.php
+++ /dev/null
@@ -1,44 +0,0 @@
-deviceDefinitions = $deviceDefinition;
- }
-
- function check(){
- //TODO: FIX IT
- $allDevicesData = DeviceManager::getAllDevices();
- foreach ($allDevicesData as $deviceKey => $deviceValue) {
- $allSubDevicesData = SubDeviceManager::getAllSubDevices($deviceValue['device_id']);
- foreach ($allSubDevicesData as $subDeviceKey => $subDeviceValue) {
- if (!isset($this->deviceDefinitions[$subDeviceValue['type']]["fallBack"])) {
- continue;
- }
-
- if (!isset($this->deviceDefinitions[$subDeviceValue['type']]["fallBackTime"])) {
- continue;
- }
-
- $lastRecord = RecordManager::getLastRecord($subDeviceValue['subdevice_id']);
- if ($lastRecord["value"] == $this->deviceDefinitions[$subDeviceValue['type']]["fallBack"]) {
- continue;
- }
-
- $minutes = (time() - strtotime($lastRecord['time'])) / 60;
-
- if ( $minutes > $this->deviceDefinitions[$subDeviceValue['type']]["fallBackTime"]){
- RecordManager::create($deviceValue['device_id'], $subDeviceValue['type'], $this->deviceDefinitions[$subDeviceValue['type']]["fallBack"]);
- }
- }
- }
- }
-}
diff --git a/www/app/models/managers/LanguageManager.php b/www/app/models/managers/LanguageManager.php
deleted file mode 100644
index 507bd88..0000000
--- a/www/app/models/managers/LanguageManager.php
+++ /dev/null
@@ -1,60 +0,0 @@
-lngCode = $lngCode;
- $this->debug = $debug;
- }
-
- function load()
- {
- $file = '../lang/en.php';
- if (!file_exists($file)){
- echo 'ERROR: en.php not found';
- die();
- //TODO add lng EXEPTIONS
- }
- $arrayFirst = include($file);
- $file = '../lang/' . $this->lngCode . '.php';
- $arraySecond = [];
- if (file_exists($file)){
- $arraySecond = include($file);
- }
- $this->lngDatabase = array_merge($arrayFirst, $arraySecond);
- return true;
- }
-
- function get(string $stringKey)
- {
- if ($this->debug) {
- return $stringKey;
- }
- if (isset($this->lngDatabase[$stringKey])) {
- return $this->lngDatabase[$stringKey];
- }
- return $stringKey;
- }
-
- function echo(string $stringKey)
- {
- if ($this->debug) {
- echo $stringKey;
- return;
- }
- if (isset($this->lngDatabase[$stringKey])) {
- echo $this->lngDatabase[$stringKey];
- return;
- }
- echo $stringKey;
- return;
- }
-}
diff --git a/www/app/models/managers/LogManager.php b/www/app/models/managers/LogManager.php
deleted file mode 100644
index dde1c14..0000000
--- a/www/app/models/managers/LogManager.php
+++ /dev/null
@@ -1,57 +0,0 @@
- $file) {
- if (in_array($file,array(".","..", ".gitkeep", $todayFileName)))
- {
- continue;
- }
- if (filemtime($file) > $seconds) {
- unlink('../logs/'.$file);
- }
- }
- }
-}
-
-class LogManager
-{
-
- private $logFile;
- function __construct($fileName = "")
- {
- if ($fileName == ""){
- $fileName = '../logs/'. date("Y-m-d").'.log';
- }
- if(!is_dir("../logs/"))
- {
- mkdir("../logs/");
- }
- $this->logFile = fopen($fileName, "a") or die("Unable to open file!");
- }
-
- function write($value, $type = LogRecordType::ERROR){
- $record = "[".date("H:m:s")."][".$type."]" . $value . "\n";
- fwrite($this->logFile, $record);
- }
-
- function __destruct(){
- if (isset($this->logFile)) {
- fclose($this->logFile);
- }
- }
-}
diff --git a/www/app/models/managers/NetworkManager.php b/www/app/models/managers/NetworkManager.php
deleted file mode 100644
index 247e0df..0000000
--- a/www/app/models/managers/NetworkManager.php
+++ /dev/null
@@ -1,18 +0,0 @@
- $userID,
- 'token' => $token,
- );
- Db::add ('notifications', $notification);
- }
- }
-
- function getSubscription () {
- return Db::loadAll ("SELECT * FROM notifications");
- }
-
- function sendSimpleNotification(string $serverKey, string $to, array $data, bool $timeStamp = false){
- $dataTemplate = [
- 'title' => '',
- 'body' => '',
- 'icon' => '',
- ];
-
- if (array_diff_key ($dataTemplate , $data)){
- return;
- }
-
- if ($timeStamp) {
- $data['title'] = $data['title'] . date();
- }
-
- $notification = new Notification($serverKey);
- $notification->to($to);
- $notification->notification($data['title'], $data['body'], $data['icon'], '');
- $answer = $notification->send();
- $notification = null;
-
- return $answer;
- }
-}
-
-class Notification
-{
- public $server_key = '';
- public $jsonPayload = [
- "to" => '',
- "data" => [
- "notification" => [
- "body" => '',
- "title" => '',
- "icon" => '',
- "click_action" => '',
- ]
- ]
- ];
-
- function __construct($serverKey = '')
- {
- $this->server_key = $serverKey;
- }
-
- function to($to = ''){
- $this->jsonPayload["to"] = $to;
- }
-
- function notification($title = '', $body = '', $icon = '', $action = '', bool $timeStamp = false)
- {
- if ($timeStamp) {
- $data['title'] = $data['title'] . date();
- }
-
- $this->jsonPayload["data"]["notification"]["title"] = $title;
- $this->jsonPayload["data"]["notification"]["body"] = $body;
- $this->jsonPayload["data"]["notification"]["icon"] = $icon;
- $this->jsonPayload["data"]["notification"]["click_action"] = $action;
- }
-
- function send(){
- $data = json_encode($this->jsonPayload);
- $url = 'https://fcm.googleapis.com/fcm/send';
- $headers = array(
- 'Content-Type:application/json',
- 'Authorization:key='.$this->server_key,
- );
-
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
- $result = curl_exec($ch);
- if ($result === FALSE) {
- die('Oops! FCM Send Error: ' . curl_error($ch));
- }
- curl_close($ch);
- return $result;
- }
-}
diff --git a/www/app/models/managers/RecordManager.php b/www/app/models/managers/RecordManager.php
deleted file mode 100644
index 143b6a2..0000000
--- a/www/app/models/managers/RecordManager.php
+++ /dev/null
@@ -1,106 +0,0 @@
- 1,
- ];
- Db::edit ('records', $record, 'WHERE subdevice_id = ?', array ($subDeviceId));
- $record = array (
- 'subdevice_id' => $subDeviceId,
- 'value' => $value,
- );
- return Db::add ('records', $record);
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function create ($deviceId, $type, $value) {
- $subDeviceId = Db::loadOne('SELECT * FROM subdevices WHERE device_id = ? AND type = ?;', array($deviceId, $type))['subdevice_id'];
- if ($subDeviceId == '') {
- return false;
- };
- try {
- $record = [
- 'execuded' => 1,
- ];
- Db::edit ('records', $record, 'WHERE subdevice_id = ?', array ($subDeviceId));
- $record = array (
- 'subdevice_id' => $subDeviceId,
- 'value' => $value,
- );
- return Db::add ('records', $record);
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
-
- public static function setExecuted($recordId) {
- try {
- Db::edit ('records', ['execuded' => 1], 'WHERE record_id = ?', array($recordId));
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function getRecordById($recordId) {
- return Db::loadOne('SELECT * FROM records WHERE record_id = ?;', array($recordId));
- }
-
- public static function getLastInsertedRecordId() {
- return Db::insertId();
- }
-
- public static function getLastRecord($subDeviceId, $num = 1) {
- if ($num == 1)
- return Db::loadOne('SELECT * FROM records WHERE subdevice_id = ? AND value != ? ORDER BY time DESC;', array($subDeviceId, 999));
- return Db::loadAll('SELECT * FROM records WHERE subdevice_id = ? AND value != ? ORDER BY time DESC LIMIT ?;', array($subDeviceId, 999, $num));
- }
-
- public static function getLastRecordNotNull($subDeviceId) {
- return Db::loadOne('SELECT * FROM records WHERE subdevice_id = ? AND value != ? ORDER BY time DESC;', array($subDeviceId, 0));
- }
-
- public static function getAllRecord($subDeviceId, $timeFrom, $timeTo) {
- return Db::loadAll('SELECT * FROM records WHERE subdevice_id = ? AND time >= ? AND time <= ? AND value != ? ORDER BY time;', array($subDeviceId, $timeFrom, $timeTo, 999));
- }
-
- public static function getAllRecordForGraph($subDeviceId, $period = "day", $groupBy = "hour") {
- $periodLocal = '- 1 ' . strtoupper($period);
- $dateTime = new DateTime();
- $dateTime = $dateTime->modify($periodLocal);
- $dateTime = $dateTime->format('Y-m-d');
- $groupBy = strtoupper($groupBy).'(time)';
- $sql = 'SELECT value, time FROM records
- WHERE
- subdevice_id = ?
- AND
- value != 999
- AND
- time > ?
- GROUP BY '.$groupBy.'
- ORDER BY time ASC';
- //TODO: Prasárna Opravit
- return Db::loadAll($sql, array($subDeviceId, $dateTime));
- }
-
- public static function clean ($day) {
- if (isset($day)) {
- Db::command ('DELETE FROM records WHERE `time` < ADDDATE(NOW(), INTERVAL -? DAY);', array($day));
- }
- }
-
-
- //TODO: zkontrolovat jestli neco nezbilo po smazaní
- public static function cleanSubdeviceRecords ($subDeviceId) {
- Db::command ('DELETE FROM records WHERE subdevice_id = ?);', array($subDeviceId));
- }
-}
-?>
diff --git a/www/app/models/managers/RoomManager.php b/www/app/models/managers/RoomManager.php
deleted file mode 100644
index 795ee79..0000000
--- a/www/app/models/managers/RoomManager.php
+++ /dev/null
@@ -1,36 +0,0 @@
- $name,
- );
- try {
- Db::add ('rooms', $room);
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function delete ($roomId) {
- Db::command ('DELETE FROM rooms WHERE room_id=?', array ($roomId));
- }
-}
-?>
diff --git a/www/app/models/managers/SceneManager.php b/www/app/models/managers/SceneManager.php
deleted file mode 100644
index 2cd7fb8..0000000
--- a/www/app/models/managers/SceneManager.php
+++ /dev/null
@@ -1,41 +0,0 @@
- $icon,
- 'name' => $name,
- 'do_something' => $doCode,
- );
- try {
- Db::add ('scenes', $scene);
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function getAllScenes () {
- return Db::loadAll ("SELECT * FROM scenes");
- }
-
- public static function getScene ($sceneId) {
- return Db::loadOne("SELECT * FROM scenes WHERE scene_id = ?", array($sceneId));
- }
-
- public static function execScene ($sceneId) {
- $sceneData = SceneManager::getScene($sceneId);
- $sceneDoJson = $sceneData['do_something'];
- $sceneDoArray = json_decode($sceneDoJson);
- foreach ($sceneDoArray as $deviceId => $deviceState) {
- RecordManager::create($deviceId, 'on/off', $deviceState);
- }
- return true;
- }
-
- public static function delete($sceneId){
- Db::command ('DELETE FROM scenes WHERE scene_id=?', array ($sceneId));
- }
-}
-?>
diff --git a/www/app/models/managers/SubDeviceManager.php b/www/app/models/managers/SubDeviceManager.php
deleted file mode 100644
index 712db1d..0000000
--- a/www/app/models/managers/SubDeviceManager.php
+++ /dev/null
@@ -1,97 +0,0 @@
- $type) {
- $parsedTypes[$orderNum] = $type['type'];
- }
- return $parsedTypes;
- }
-
- //check if dubdevice exist
-
- public static function create($deviceId, $type, $unit)
- {
- $record = array(
- 'device_id' => $deviceId,
- 'type' => $type,
- 'unit' => $unit,
- );
- try {
- Db::add('subdevices', $record);
- } catch (PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function remove($subDeviceId)
- {
- RecordManager::cleanSubdeviceRecords($subDeviceId);
- return Db::loadAll("DELETE FROM subdevices WHERE subdevice_id = ?", array($subDeviceId));
- }
-
- public static function getSubdevicesByRoomIds($roomIds = NULL) {
- if(empty($roomIds)) return NULL;
-
- $rows = Db::loadAll("
- SELECT d.room_id, sd.subdevice_id, sd.device_id, d.name, sd.type, sd.unit, r.value FROM subdevices sd
- JOIN devices d ON sd.device_id = d.device_id
- JOIN records r ON r.subdevice_id = sd.subdevice_id
- WHERE d.room_id IN (".str_repeat("?,", count($roomIds)-1)."?)
- AND r.record_id IN (
- SELECT MAX(record_id)
- FROM records
- GROUP BY subdevice_id
- )
- ", $roomIds);
-
- $ret = [];
- foreach($rows as $row){
- $ret[$row['room_id']][] = $row;
- }
-
- return $ret;
- }
-}
diff --git a/www/app/models/managers/UserManager.php b/www/app/models/managers/UserManager.php
deleted file mode 100644
index 05fd3ef..0000000
--- a/www/app/models/managers/UserManager.php
+++ /dev/null
@@ -1,210 +0,0 @@
-getMessage();
- die();
- }
- }
-
- public static function getUser ($userName) {
- try {
- $user = Db::loadOne ("SELECT * FROM users WHERE username = ?", [$userName]);
- return $user;
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function getUserId ($userId) {
- try {
- $user = Db::loadOne ("SELECT * FROM users WHERE user_id = ?", [$userId]);
- return $user;
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function getAvatarUrl($userId = null){
- $email = self::getUserData('email');
- if ($userId != null){
- $email = self::getUserData('email',$userId);
- }
- return 'https://secure.gravatar.com/avatar/' . md5( strtolower( trim( $email ) ) );
- }
-
- public static function login ($username, $password, $rememberMe) {
- try {
- if ($user = Db::loadOne ('SELECT * FROM users WHERE LOWER(username)=LOWER(?)', array ($username))) {
- if ($user['password'] == UserManager::getHashPassword($password)) {
- if (isset($rememberMe) && $rememberMe == 'true') {
- setcookie ("rememberMe", self::setEncryptedCookie($user['username']), time () + (30 * 24 * 60 * 60 * 1000), BASEDIR, $_SERVER['HTTP_HOST'], 1);
- }
- $_SESSION['user']['id'] = $user['user_id'];
- $page = "";
- if ($user["startPage"] == 1) {
- $page = "dashboard";
- }
- unset($_POST['login']);
- return $page;
- } else {
- throw new PDOException("Heslo není správné!");
- }
- } else {
- throw new PDOException("Uživatel s tím to jménem neexistuje!");
- }
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function loginNew ($username, $password) {
- try {
- if ($user = Db::loadOne ('SELECT * FROM users WHERE LOWER(username)=LOWER(?)', array ($username))) {
- if ($user['password'] == UserManager::getHashPassword($password)) {
- echo "user loged in";
- return $user['user_id'];
- } else {
- return false;
- }
- } else {
- return false;
- }
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function isLogin () {
- if (isset ($_SESSION['user']) && isset($_SESSION['user']['id'])) {
- return true;
- } else {
- if (isset ($_COOKIE['rememberMe'])){
- if ($user = Db::loadOne ('SELECT * FROM users WHERE LOWER(username)=LOWER(?)', array (self::getDecryptedCookie($_COOKIE['rememberMe'])))) {
- $_SESSION['user']['id'] = $user['user_id'];
- return true;
- }
- }
- }
- return false;
- }
-
- public static function logout () {
- unset($_SESSION['user']);
- session_destroy();
- if (isset($_COOKIE['rememberMe'])){
- unset($_COOKIE['rememberMe']);
- setcookie("rememberMe", 'false', time(), BASEDIR, $_SERVER['HTTP_HOST']);
- }
- }
-
- public static function setEncryptedCookie($value){
- $first_key = base64_decode(FIRSTKEY);
- $second_key = base64_decode(SECONDKEY);
-
- $method = "aes-256-cbc";
- $ivlen = openssl_cipher_iv_length($method);
- $iv = openssl_random_pseudo_bytes($ivlen);
- $newvalue_raw = openssl_encrypt($value, $method, $first_key, OPENSSL_RAW_DATA, $iv);
- $hmac = hash_hmac('sha256', $newvalue_raw, $second_key, TRUE);
- $newvalue = base64_encode ($iv.$hmac.$newvalue_raw);
- return $newvalue;
- }
-
- public static function getDecryptedCookie($value){
- $first_key = base64_decode(FIRSTKEY);
- $second_key = base64_decode(SECONDKEY);
-
- $c = base64_decode($value);
- $method = "aes-256-cbc";
- $ivlen = openssl_cipher_iv_length($method);
- $iv = substr($c, 0, $ivlen);
- $hmac = substr($c, $ivlen, 32);
- $newValue_raw = substr($c, $ivlen+32);
- $newValue = openssl_decrypt($newValue_raw, $method, $first_key, OPENSSL_RAW_DATA, $iv);
- $calcmac = hash_hmac('sha256', $newValue_raw, $second_key, TRUE);
- if (hash_equals ($hmac, $calcmac)) {
- return $newValue;
- }
- return false;
- }
-
- public static function getUserData ($type, $userId = '') {
- if ($userId == '') {
- $userId = $_SESSION['user']['id'];
- }
- $user = Db::loadOne ('SELECT ' . $type . ' FROM users WHERE user_id=?', array ($userId));
- return $user[$type];
- }
-
- public static function setUserData ($type, $value) {
- if (isset ($_SESSION['user']['id'])) {
- Db::command ('UPDATE users SET ' . $type . '=? WHERE user_id=?', array ($value, $_SESSION['user']['id']));
- }
- }
-
- public static function getHashPassword ($password) {
- $salt = "s0mRIdlKvI";
- $hashPassword = hash('sha512', ($password . $salt));
- return $hashPassword;
- }
-
- public static function atHome($userId, $atHome){
- try {
- Db::edit ('users', ['at_home' => $atHome], 'WHERE user_id = ?', array($userId));
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function changePassword($oldPassword, $newPassword, $newPassword2){
- if ($newPassword == $newPassword2) {
- //Password Criteria
- $oldPasswordSaved = self::getUserData('password');
- if (self::getHashPassword($oldPassword) == $oldPasswordSaved) {
- self::setUserData('password', self::getHashPassword($newPassword));
- } else {
- throw new Exception ("old password did not match");
- }
- } else {
- throw new Exception ("new password arent same");
- }
- }
-
- public static function createUser($userName, $password){
- $userId = Db::loadOne('SELECT * FROM users WHERE username = ?;', array($userName))['user_id'];
- if ($userId != null) {
- return false;
- };
- try {
- $user = [
- 'username' => $userName,
- 'password' => self::getHashPassword($password),
- ];
- return Db::add ('users', $user);
- } catch(PDOException $error) {
- echo $error->getMessage();
- die();
- }
- }
-
- public static function haveOtaEnabled($userName){
- $ota = self::getUser($userName)['ota'];
-
- if ($ota != ''){
- return ($ota != '' ? $ota : false);
- } else {
- return false;
- }
- }
-}
-?>
diff --git a/www/app/models/managers/Utilities.php b/www/app/models/managers/Utilities.php
deleted file mode 100644
index 32b66af..0000000
--- a/www/app/models/managers/Utilities.php
+++ /dev/null
@@ -1,144 +0,0 @@
- 'a',
- '/[ÁÀÂÃÄ]/u' => 'A',
- '/[ÍÌÎÏ]/u' => 'I',
- '/[íìîï]/u' => 'i',
- '/[ěéèêë]/u' => 'e',
- '/[ĚÉÈÊË]/u' => 'E',
- '/[óòôõºö]/u' => 'o',
- '/[ÓÒÔÕÖ]/u' => 'O',
- '/[úùûü]/u' => 'u',
- '/[ÚÙÛÜ]/u' => 'U',
- '/Š/' => 'S',
- '/š/' => 's',
- '/Č/' => 'C',
- '/č/' => 'c',
- '/ř/' => 'r',
- '/Ř/' => 'R',
- '/Ý/' => 'Y',
- '/ý/' => 'y',
- '/ç/' => 'c',
- '/Ç/' => 'C',
- '/ñ/' => 'n',
- '/Ñ/' => 'N',
- '/–/' => '-', // UTF-8 hyphen to "normal" hyphen
- '/[’‘‹›‚]/u' => ' ', // Literally a single quote
- '/[“”«»„]/u' => ' ', // Double quote
- '/ /' => ' ', // nonbreaking space (equiv. to 0x160)
- );
- return preg_replace(array_keys($utf8), array_values($utf8), $text);
- }
-
- static function stringInsert($str,$insertstr,$pos)
- {
- $str = substr($str, 0, $pos) . $insertstr . substr($str, $pos);
- return $str;
- }
-
- /**
- * [generateGraphJson description]
- * @param string $type [line/bar]
- * @param array $data [description]
- * @param array $options [description]
- * @return [type] [description]
- */
-
- static function generateGraphJson(string $type = 'line', array $data = [], array $options = []){
- $array = [
- 'type' => $type,
- 'data' => [
- 'datasets' => [
- [
- 'data' => $data,
- 'borderColor' => "#d4def7",
- 'backgroundColor' => "#d4def7"
- ]
- ]
- ],
- 'options' => [
- 'scales' => [
- 'xAxes' => [
- [
- 'type' => 'time',
- 'distribution' => 'linear',
- ]
- ],
- 'yAxes' => [
- [
- 'ticks' => [
- 'min' => $options['min'],
- 'max' => $options['max'],
- 'steps' => $options['scale']
- ]
- ]
- ]
- ],
- 'legend' => [
- 'display' => false
- ],
- 'tooltips' => [
- 'enabled' => true
- ],
- 'hover' => [
- 'mode' => true
- ]
- ]
- ];
- return json_encode($array, JSON_PRETTY_PRINT);
- }
-
- static function ago( $datetime )
- {
- $interval = date_create('now')->diff( $datetime );
- $suffix = ( $interval->invert ? ' ago' : '' );
- if ( $v = $interval->y >= 1 ) return self::pluralize( $interval->m, 'month' ) . $suffix;
- if ( $v = $interval->d >= 1 ) return self::pluralize( $interval->d, 'day' ) . $suffix;
- if ( $v = $interval->h >= 1 ) return self::pluralize( $interval->h, 'hour' ) . $suffix;
- if ( $v = $interval->i >= 1 ) return self::pluralize( $interval->i, 'minute' ) . $suffix;
- return self::pluralize( $interval->s, 'second' ) . $suffix;
- }
-
- static function pluralize( $count, $text )
- {
- return $count . ( ( $count == 1 ) ? ( " $text" ) : ( " ${text}s" ) );
- }
-
- static function checkOperator($value1, $operator, $value2) {
- switch ($operator) {
- case '<': // Less than
- return $value1 < $value2;
- case '<=': // Less than or equal to
- return $value1 <= $value2;
- case '>': // Greater than
- return $value1 > $value2;
- case '>=': // Greater than or equal to
- return $value1 >= $value2;
- case '==': // Equal
- return ($value1 == $value2);
- case '===': // Identical
- return $value1 === $value2;
- case '!==': // Not Identical
- return $value1 !== $value2;
- case '!=': // Not equal
- case '<>': // Not equal
- return $value1 != $value2;
- case '||': // Or
- case 'or': // Or
- return $value1 || $value2;
- case '&&': // And
- case 'and': // And
- return $value1 && $value2;
- case 'xor': // Or
- return $value1 xor $value2;
- default:
- return FALSE;
- } // end switch
- }
-}
diff --git a/www/app/models/types/GoogleHomeDeviceTypes.php b/www/app/models/types/GoogleHomeDeviceTypes.php
deleted file mode 100644
index 6f142b7..0000000
--- a/www/app/models/types/GoogleHomeDeviceTypes.php
+++ /dev/null
@@ -1,107 +0,0 @@
- 'action.devices.types.OUTLET',
- 'temp_cont' => 'action.devices.types.THERMOSTAT',
- ];
-
- static function getAction($deviceType){
- return self::$actionWordBook[$deviceType];
- }
-
- static function getSyncObj($deviceBaseObj, $deviceType){
- switch ($deviceType) {
- case 'action.devices.types.LIGHT':
- case 'action.devices.types.OUTLET':
- $deviceBaseObj['traits'] = [
- 'action.devices.traits.OnOff'
- ];
- break;
- case 'action.devices.types.THERMOSTAT':
- $deviceBaseObj['traits'] = [
- 'action.devices.traits.TemperatureSetting',
- ];
- $deviceBaseObj['attributes'] = [
- "availableThermostatModes" => "off,heat",
- "thermostatTemperatureUnit" => "C",
- ];
- break;
- }
- return $deviceBaseObj;
- }
-
- static function getQueryJson($deviceType, $type){
- return self::$wordBook[$type];
- }
-}
diff --git a/www/app/models/types/WidgetTypes.php b/www/app/models/types/WidgetTypes.php
deleted file mode 100644
index 7e0dd7d..0000000
--- a/www/app/models/types/WidgetTypes.php
+++ /dev/null
@@ -1,45 +0,0 @@
- [
- 'name' => 'value',
- 'active' => false
- ],
- self::ICON => [
- 'name' => 'icon',
- 'active' => false
- ],
- self::BUTTON => [
- 'name' => 'button',
- 'active' => true
- ],
- self::SWITH => [
- 'name' => 'switch',
- 'active' => true
- ],
- self::RANGE => [
- 'name' => 'range',
- 'active' => true
- ],
- self::CUSTOM => [
- 'name' => 'custom',
- 'active' => true
- ],
- ];
-
- public static function getName($type){
- return self::$types[$type];
- }
-
- public static function isActive($type){
- return isset(self::$types[$type]) && self::$types[$type]['active'];
- }
-}
diff --git a/www/app/views/Ajax.php b/www/app/views/Ajax.php
deleted file mode 100644
index 96554a3..0000000
--- a/www/app/views/Ajax.php
+++ /dev/null
@@ -1,223 +0,0 @@
-isLogin()){
- header('Location: ' . BASEURL);
- }
-
- $is_ajax = 'XMLHttpRequest' == ( $_SERVER['HTTP_X_REQUESTED_WITH'] ?? '' );
- if (!$is_ajax){
- header('Location: ' . BASEURL);
- }
-
- if (
- isset($_POST['automation_id']) &&
- $_POST['automation_id'] != '' &&
- isset($_POST['action']) &&
- $_POST['action'] != ''
- ) {
- $automationId = $_POST['automation_id'];
- //Automation Editation of Automations from Buttons/Details
- switch ($_POST['action']) {
- case 'delete':
- AutomationManager::remove($automationId);
- die();
- break;
-
- case 'deactive':
- AutomationManager::deactive($automationId);
- die();
- break;
-
- case 'restart':
- AutomationManager::restart($automationId);
- die();
- break;
-
- default:
- echo 'no action detected';
- break;
- }
- } else if (
- isset($_POST['subDevice_id']) &&
- $_POST['subDevice_id'] != '' &&
- isset($_POST['action']) &&
- $_POST['action'] != ''
- ) {
- $subDeviceId = $_POST['subDevice_id'];
- switch ($_POST['action']) {
- case 'chart':
- $period = $_POST['period'];
- $groupBy = $_POST['group'];
- header('Content-Type: application/json');
- $graphData = ChartManager::generateChartData($subDeviceId, $period, $groupBy);
- echo Utilities::generateGraphJson($graphData['graphType'], $graphData['graphData'], $graphData['graphRange']);
- die();
- break;
-
- //Change On/Off Device State of Device Button
- case 'change':
- $subDeviceData = SubDeviceManager::getSubDevice($subDeviceId);
- $deviceId = SubDeviceManager::getSubDeviceMaster($subDeviceId)['device_id'];
- if ($subDeviceData['type'] == 'on/off'){
- $lastValue = RecordManager::getLastRecord($subDeviceData['subdevice_id'])['value'];
- RecordManager::create($deviceId, 'on/off', !$lastValue);
- echo (!$lastValue ? 'ON' : 'OFF');
- }
- die();
- break;
-
- //Waitin for execution of Changet walue for Device Button
- case 'executed':
- echo RecordManager::getLastRecord($subDeviceId)['execuded'];
- die();
- break;
-
- case 'set':
- $value = $_POST['value'];
- $subDevice = SubDeviceManager::getSubDevice($subDeviceId);
- RecordManager::create($subDevice['device_id'], $subDevice['type'], $value);
- echo 'test id' . $subDevice['device_id'] .$subDevice['type'] . $value ;
- die();
- break;
-
- default:
- echo 'no action detected';
- break;
- }
- } else if (
- isset($_POST['scene_id']) &&
- $_POST['scene_id'] != '' &&
- isset($_POST['action']) &&
- $_POST['action'] != ''
- ) {
- $sceneId = $_POST['scene_id'];
- switch ($_POST['action']) {
- case 'delete':
- SceneManager::delete($sceneId);
- die();
- break;
-
- case 'execute':
- echo SceneManager::execScene($sceneId);
- die();
- break;
-
- default:
- echo 'no action detected';
- break;
- }
- } else if (
- isset($_POST['notification']) &&
- $_POST['notification'] != '' &&
- isset($_POST['action']) &&
- $_POST['action'] != ''
- ) {
- switch ($_POST['action']) {
- //add suscription to database
- case 'subscribe':
- $subscriptionToken = $_POST['token'];
- NotificationManager::addSubscriber($_SESSION['user']['id'], $subscriptionToken);
- die();
- break;
-
- case 'sendTest':
- $notificationData = [
- 'title' => 'Alert',
- 'body' => 'test notification',
- 'icon' => BASEDIR . '/app/templates/images/icon-192x192.png',
- ];
- $notificationMng = new NotificationManager;
- $subscribers = $notificationMng::getSubscription();
- foreach ($subscribers as $key => $subscriber) {
- echo $subscriber['user_id'];
- if ($subscriber['user_id'] != $_SESSION['user']['id']) continue;
- echo $notificationMng::sendSimpleNotification(SERVERKEY, $subscriber['token'], $notificationData);
- }
- die();
- break;
-
- default:
- echo 'no action detected';
- break;
- }
- } else if (
- isset($_POST['action']) &&
- $_POST['action'] != ''
- ) {
- $updateData = [];
- $allDevicesData = DeviceManager::getAllDevices();
- foreach ($allDevicesData as $deviceKey => $deviceValue) {
- $allSubDevices = SubDeviceManager::getAllSubDevices($deviceValue['device_id']);
- foreach ($allSubDevices as $key => $subDevicesData) {
-
- $lastRecord = RecordManager::getLastRecord($subDevicesData['subdevice_id']);
- $parsedValue = $lastRecord['value'] . $subDevicesData['unit'];
-
- //TODO: udělat parser a ten použít jak v houmu tak zde
- switch ($subDevicesData['type']) {
- case 'on/off':
- $replacementTrue = 'On';
- $replacementFalse = 'Off';
- $operator = '==';
- $breakValue = 1;
- break;
-
- case 'door':
- $replacementTrue = 'Closed';
- $replacementFalse = 'Open';
- $operator = '==';
- $breakValue = 1;
- break;
-
- case 'light':
- $replacementTrue = 'Light';
- $replacementFalse = 'Dark';
- $operator = '==';
- $breakValue = 1;
- if ($lastRecord['value'] != 1 && $lastRecord['value'] != 0) { //Digital Light Senzor
- $operator = '<';
- $breakValue = 810;
- }
- break;
-
- case 'water':
- $replacementTrue = 'Wet';
- $replacementFalse = 'Dry';
- $operator = '==';
- $breakValue = 1;
- break;
-
- default:
- $replacementTrue = '';
- $replacementFalse = '';
- break;
- }
-
- if ($replacementTrue != '' && $replacementFalse != '') {
- //parsing last values
- $parsedValue = $replacementFalse;
-
- if (Utilities::checkOperator($lastRecord['value'], $operator, $breakValue)) {
- $parsedValue = $replacementTrue;
- }
- }
-
- $updateData[$subDevicesData['subdevice_id']] = [
- 'time' => $lastRecord['time'],
- 'value' => $parsedValue,
- ];
- }
- }
-
- //TODO: PRO JS VRACET DATA
- echo json_encode($updateData, JSON_PRETTY_PRINT);
- }
- }
-}
diff --git a/www/app/views/Automation.php b/www/app/views/Automation.php
deleted file mode 100644
index 8bd7263..0000000
--- a/www/app/views/Automation.php
+++ /dev/null
@@ -1,66 +0,0 @@
-isLogin()){
- header('Location: ' . BASEURL . 'login');
- }
-
- $automations = [];
- $automationsData = AutomationManager::getAll();
- foreach ($automationsData as $automationKey => $automationData) {
- $doSomething = [];
- foreach (json_decode($automationData['do_something']) as $deviceId => $subDeviceState) {
- $subDeviceMasterDeviceData = DeviceManager::getDeviceById($deviceId);
- $doSomething[$deviceId] = [
- 'name' => $subDeviceMasterDeviceData['name'],
- 'state' => $subDeviceState,
- ];
- }
- //TODO: Transaltion add
- $executionTime = 'never';
- if ($automationData['execution_time'] != '0000-00-00 00:00:00') {
- $executionTime = date(DATEFORMAT,strtotime($automationData['execution_time']));
- }
- $automations[$automationData['automation_id']] = [
- 'name' => $automationData['name'],
- 'owner_name' => $userManager->getUserId($automationData['owner_id'])['username'],
- 'onDays' => json_decode($automationData['on_days']),
- 'ifSomething' => $automationData['if_something'],
- 'doSomething' => $doSomething,
- 'active' => $automationData['active'],
- 'execution_time' => $executionTime,
- ];
- }
-
- $approvedSubDevices = [];
- $allDevicesData = DeviceManager::getAllDevices();
- foreach ($allDevicesData as $deviceKey => $deviceValue) {
- if (!$deviceValue['approved']) continue;
- $allSubDevicesData = SubDeviceManager::getAllSubDevices($deviceValue['device_id']);
- foreach ($allSubDevicesData as $subDeviceKey => $subDeviceValue) {
- $approvedSubDevices[$subDeviceValue['subdevice_id']] = [
- 'name' => $allDevicesData[$deviceKey]['name'],
- 'type' => $subDeviceValue['type'],
- 'masterDevice' => $subDeviceValue['device_id'],
- ];
- }
- }
-
- $template = new Template('automation');
- $template->prepare('baseDir', BASEDIR);
- $template->prepare('debugMod', DEBUGMOD);
- $template->prepare('title', 'Automation');
- $template->prepare('langMng', $langMng);
- $template->prepare('userManager', $userManager);
-
- $template->prepare('automations', $automations);
- $template->prepare('subDevices', $approvedSubDevices);
-
- $template->render();
- }
-}
diff --git a/www/app/views/Log.php b/www/app/views/Log.php
deleted file mode 100644
index 81fedd6..0000000
--- a/www/app/views/Log.php
+++ /dev/null
@@ -1,63 +0,0 @@
-isLogin()){
- header('Location: ' . BASEURL . 'login');
- }
-
- $template = new Template('log');
- $template->prepare('title', 'Log');
-
- $result = array();
- $cdir = scandir('../logs/');
- foreach ($cdir as $key => $value)
- {
- if (!in_array($value,array(".","..", ".gitkeep")))
- {
- $result[$value] = $value;
- }
- }
-
- $template->prepare('baseDir', BASEDIR);
- $template->prepare('debugMod', DEBUGMOD);
- $template->prepare('logToLiveTime', LOGTIMOUT);
- $template->prepare('title', 'Logy');
- $template->prepare('logsFiles', $result);
- $template->prepare('langMng', $langMng);
- $template->prepare('CPU', sys_getloadavg()[0]);
- $template->prepare('UPTIME', shell_exec('uptime -p'));
- $template->prepare('ramFree', $this->getSystemMemInfo()["MemFree"]);
- $template->prepare('ramTotal', $this->getSystemMemInfo()["MemTotal"]);
- $template->prepare('diskTotal', disk_total_space("/"));
- $template->prepare('serverTime', date('m. d. Y H:i:s - e'));
-
-
-
-
-
-
-
- $template->render();
-
- }
-}
diff --git a/www/app/views/Login.php b/www/app/views/Login.php
deleted file mode 100644
index d905d03..0000000
--- a/www/app/views/Login.php
+++ /dev/null
@@ -1,22 +0,0 @@
-isLogin()){
- header('Location: ' . BASEURL);
- }
-
- $template = new Template('login');
- $template->prepare('baseDir', BASEDIR);
- $template->prepare('title', 'Home');
- $template->prepare('lang', $lang);
-
-
-
- $template->render();
- }
-}
diff --git a/www/app/views/Logout.php b/www/app/views/Logout.php
deleted file mode 100644
index e0cf627..0000000
--- a/www/app/views/Logout.php
+++ /dev/null
@@ -1,11 +0,0 @@
-logout();
- header('Location: ' . BASEURL . 'login');
- die();
- }
-}
diff --git a/www/app/views/Setting.php b/www/app/views/Setting.php
deleted file mode 100644
index d89c28d..0000000
--- a/www/app/views/Setting.php
+++ /dev/null
@@ -1,62 +0,0 @@
-isLogin()){
- header('Location: ' . BASEURL . 'login');
- }
-
- $automations = [];
- $automationsData = AutomationManager::getAll();
- foreach ($automationsData as $automationKey => $automationData) {
- $automations[$automationData['automation_id']] = [
- 'name' => '',
- 'onDays' => $automationData['on_days'],
- 'ifSomething' => $automationData['if_something'],
- 'doSomething' => $automationData['do_something'],
- ];
- }
-
- $template = new Template('setting');
- $template->prepare('baseDir', BASEDIR);
- $template->prepare('debugMod', DEBUGMOD);
- $template->prepare('title', 'Automation');
- $template->prepare('langMng', $langMng);
- $template->prepare('automations', $automations);
-
- $users = $userManager->getUsers();
- foreach ($users as $key => $value) {
- $users[$key]['gavatar_url'] = $userManager->getAvatarUrl($value['user_id']);
- }
- $template->prepare('users', $users);
-
- $template->prepare('userName', $userManager->getUserData('username'));
- $template->prepare('userEmail', $userManager->getUserData('email'));
- $template->prepare('userAvatarUrl', $userManager->getAvatarUrl());
-
- if ($userManager->getUserData('ota') == ''){
- $ga = new PHPGangsta_GoogleAuthenticator();
- $otaSecret = $ga->createSecret();
- $qrCodeUrl = $ga->getQRCodeGoogleUrl('Smart Home', $otaSecret);
- $oneCode = $ga->getCode($otaSecret);
- $template->prepare('qrUrl', $qrCodeUrl);
- $template->prepare('otaSecret', $otaSecret);
- $template->prepare('otaCode', $oneCode);
-
- // echo "Secret is: ".$secret."\n\n";
- // echo "Google Charts URL for the QR-Code: ".$qrCodeUrl."\n\n";
- // echo "Checking Code '$oneCode' and Secret '$otaSecret':\n";
- }
-
- $rooms = RoomManager::getAllRooms();
- $template->prepare('rooms', $rooms);
-
-
- $template->render();
- }
-}
diff --git a/www/app/views/layouts/default.phtml b/www/app/views/layouts/default.phtml
deleted file mode 100644
index 6479b79..0000000
--- a/www/app/views/layouts/default.phtml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
- title ?>
-
-
-
-
-
- content(); ?>
-
-
-
-
diff --git a/www/app/views/templates/automation.phtml b/www/app/views/templates/automation.phtml
deleted file mode 100644
index 84cd043..0000000
--- a/www/app/views/templates/automation.phtml
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
- prepare('baseDir', $BASEDIR);
- $partial->render();
- ?>
-
-
-
-
-
-
- prepare('item','automation');
- $partial->prepare('langMng',$LANGMNG);
- $partial->prepare('debugMod',$DEBUGMOD);
- $partial->render();
- ?>
-
-
-
echo('t_createAutomation'); ?>
-
- $automationData) {
- //BUTTON
- $partial = new Partial('automationButton');
- $partial->prepare('langMng',$LANGMNG);
- $partial->prepare('automationId',$automationId);
- $partial->prepare('automationData',$automationData);
- $partial->render();
-
- //EDIT
- $partial = new Partial('automationEdit');
- $partial->prepare('langMng',$LANGMNG);
- $partial->prepare('userManager',$USERMANAGER);
- $partial->prepare('automationId',$automationId);
- $partial->prepare('automation',$automationData);
- $partial->prepare('subDevices',$SUBDEVICES);
- $partial->render();
- } ?>
-
-
-
- prepare('langMng',$LANGMNG);
- $partial->prepare('userManager',$USERMANAGER);
- $partial->prepare('subDevices',$SUBDEVICES);
- $partial->render();
- } else {
- $partial = new Partial('automationCreate');
- $partial->prepare('langMng',$LANGMNG);
-
- $partial->prepare('subDevices',$SUBDEVICES);
- $partial->render();
- }?>
-
- render();
- ?>
-
-
diff --git a/www/app/views/templates/example.phtml b/www/app/views/templates/example.phtml
deleted file mode 100644
index b5d2471..0000000
--- a/www/app/views/templates/example.phtml
+++ /dev/null
@@ -1 +0,0 @@
-Example template
diff --git a/www/app/views/templates/log.phtml b/www/app/views/templates/log.phtml
deleted file mode 100644
index 08bb04f..0000000
--- a/www/app/views/templates/log.phtml
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
- prepare('baseDir', $BASEDIR);
- $partial->render();
- ?>
-
-
-
-
-
-
- prepare('item', 'log');
- $partial->prepare('langMng',$LANGMNG);
- $partial->prepare('debugMod',$DEBUGMOD);
- $partial->render();
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ';
- foreach ($file_lines as $line) {
- echo $line;
- }
- echo '';
- }
- ?>
-
-
-
- render();
- //TODO js do main.js
- ?>
-
-
diff --git a/www/app/views/templates/login.phtml b/www/app/views/templates/login.phtml
deleted file mode 100644
index ae0636b..0000000
--- a/www/app/views/templates/login.phtml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
- render();
- ?>
-
-
-
- prepare('ota',$ota);
- $partial->render();
- } else {
- $partial = new Partial('loginForm');
- $partial->render();
- }
- ?>
-
- render();
- ?>
-
-
diff --git a/www/app/views/templates/part/automationButton.phtml b/www/app/views/templates/part/automationButton.phtml
deleted file mode 100644
index 002aaab..0000000
--- a/www/app/views/templates/part/automationButton.phtml
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-
-
- type) {
- case 'sunSet':
- echo'';
- break;
-
- case 'sunRise':
- echo' ';
- break;
-
- case 'inHome':
- echo'';
- break;
-
- case 'outHome':
- echo'';
- break;
-
- case 'outDevice':
- echo'';
- break;
-
- default:
- echo'';
- break;
- }
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/www/app/views/templates/part/automationCreate.phtml b/www/app/views/templates/part/automationCreate.phtml
deleted file mode 100644
index 44a731a..0000000
--- a/www/app/views/templates/part/automationCreate.phtml
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
echo('t_createAutomation')?>
-
-
-
diff --git a/www/app/views/templates/part/automationCreateFinal.phtml b/www/app/views/templates/part/automationCreateFinal.phtml
deleted file mode 100644
index 0eb48c3..0000000
--- a/www/app/views/templates/part/automationCreateFinal.phtml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
echo('t_createAutomation'); ?>
-
-
-
diff --git a/www/app/views/templates/part/automationEdit.phtml b/www/app/views/templates/part/automationEdit.phtml
deleted file mode 100644
index 6411388..0000000
--- a/www/app/views/templates/part/automationEdit.phtml
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
echo('t_createAutomation');?>
-
-
-
-
diff --git a/www/app/views/templates/part/footer.phtml b/www/app/views/templates/part/footer.phtml
deleted file mode 100644
index 0fcb4bf..0000000
--- a/www/app/views/templates/part/footer.phtml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/www/app/views/templates/part/head.phtml b/www/app/views/templates/part/head.phtml
deleted file mode 100644
index 1555607..0000000
--- a/www/app/views/templates/part/head.phtml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/www/app/views/templates/part/loginForm.phtml b/www/app/views/templates/part/loginForm.phtml
deleted file mode 100644
index c06b535..0000000
--- a/www/app/views/templates/part/loginForm.phtml
+++ /dev/null
@@ -1,20 +0,0 @@
-
diff --git a/www/app/views/templates/part/loginOta.phtml b/www/app/views/templates/part/loginOta.phtml
deleted file mode 100644
index 3e8d294..0000000
--- a/www/app/views/templates/part/loginOta.phtml
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/www/app/views/templates/part/menu.phtml b/www/app/views/templates/part/menu.phtml
deleted file mode 100644
index 79c3fa4..0000000
--- a/www/app/views/templates/part/menu.phtml
+++ /dev/null
@@ -1,35 +0,0 @@
-
- [
- 'slug' => 'setting',
- 'lngKey' => 'settings',
- 'path' => 'setting',
- ],
- 'fa-calendar-o' => [
- 'slug' => 'automation',
- 'lngKey' => 'automatization',
- 'path' => 'automation',
- ],
- 'fa-bug' =>[
- 'slug' => 'log',
- 'lngKey' => 'log',
- 'path' => '',
- ],
- ];
- foreach ( $menuItems as $key => $value) {
- if ($DEBUGMOD == 0 && $value['path'] == 'log') {
- continue;
- }
- ?>
-
-
-
-
diff --git a/www/app/views/templates/part/test.phtml b/www/app/views/templates/part/test.phtml
deleted file mode 100644
index 002c703..0000000
--- a/www/app/views/templates/part/test.phtml
+++ /dev/null
@@ -1,3 +0,0 @@
-
- TEST - TEST
-
\ No newline at end of file
diff --git a/www/app/views/templates/setting.phtml b/www/app/views/templates/setting.phtml
deleted file mode 100644
index 18ac4f2..0000000
--- a/www/app/views/templates/setting.phtml
+++ /dev/null
@@ -1,203 +0,0 @@
-
-
-
- prepare('baseDir', $BASEDIR);
- $partial->render();
- ?>
-
-
-
-
-
-
- prepare('item', 'setting');
- $partial->prepare('langMng',$LANGMNG);
- $partial->prepare('debugMod',$DEBUGMOD);
- $partial->render();
- ?>
-
-
-
-
-
- echo('t_pageAfterLogIn') ?>
-
-
-
-
-
echo('t_profile') ?>
-
-
echo('l_userAvatar') ?>:
-
-
* providet by Gavatar
-
-
-
echo('l_userName') ?>:
-
-
-
-
echo('l_userEmail') ?>:
-
-
-
-
-
-
echo('t_notification') ?>
-
-
echo('l_notificationStatus') ?>
-
-
-
-
echo('t_experimental') ?>
-
-
-
-
echo('t_changePassword') ?>
-
-
-
-
echo('t_ota') ?>
-
-
-
-
-
-
-
-
-
-
echo('t_listUsers') ?>
-
-
-
- echo('t_avatar');?> |
- echo('t_userName');?> |
- echo('t_ota');?> |
- echo('t_action');?> |
-
-
-
- $user) { ?>
-
- |
- |
- ' : ''); ?> |
- |
-
-
-
-
-
-
-
echo('t_createuser') ?>
-
-
-
-
-
-
echo('t_listRooms') ?>
-
-
-
- echo('t_roomName');?> |
- echo('t_action');?> |
-
-
-
- $room) { ?>
-
- |
-
-
-
- |
-
-
-
-
-
-
-
-
-
echo('t_createRoom') ?>
-
-
-
-
-
-
-
-
- render();
- ?>
-
-
-
-
diff --git a/config/config_sample.php b/www/config/config_sample.php
similarity index 100%
rename from config/config_sample.php
rename to www/config/config_sample.php