From 9c565d90fa482318a09b23f63f77eec0ae537303 Mon Sep 17 00:00:00 2001 From: GamerClassN7 Date: Mon, 5 Apr 2021 20:02:11 +0200 Subject: [PATCH] Minor Bug Fixes --- .htaccess | 4 ++-- app/api/RoomsApi.php | 29 +++++++++++++++--------- app/api/WidgetApi.php | 3 ++- app/models/managers/SubDeviceManager.php | 2 +- 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/.htaccess b/.htaccess index d4152d0..00d715f 100644 --- a/.htaccess +++ b/.htaccess @@ -17,7 +17,7 @@ RewriteCond %{REQUEST_FILENAME} \. RewriteRule (.*) ./public/$1 [L] # serve all other request as query parameters -# RewriteRule (.*) ./public/index.php?url=$1 [L,QSA] -RewriteRule ^(.*?\.php)/([^/]*)/([^/]*)(/.+)? ./public/index.php?url=$1&$2&$3 [NC,N,QSA] +RewriteRule (.*) ./public/index.php?url=$1 [L,QSA] +#RewriteRule ^(.*?\.php)/([^/]*)/([^/]*)(/.+)? ./public/index.php?url=$1&$2&$3 [NC,N,QSA] AddType application/x-httpd-php .php .phtml diff --git a/app/api/RoomsApi.php b/app/api/RoomsApi.php index 035b172..929b9a6 100644 --- a/app/api/RoomsApi.php +++ b/app/api/RoomsApi.php @@ -2,18 +2,18 @@ class RoomsApi extends ApiController { - + public function default() { //$this->requireAuth(); $response = []; $roomIds = []; $roomsData = RoomManager::getRoomsDefault(); - + foreach ($roomsData as $roomKey => $room) { $roomIds[] = $room['room_id']; } - + //Translation Of Numeric Walues $subDevicesData = SubDeviceManager::getSubdevicesByRoomIds($roomIds); foreach ($subDevicesData as $subDeviceKey => $subDevice) { @@ -25,14 +25,21 @@ class RoomsApi extends ApiController } else if (strpos(SubDeviceManager::getSubDeviceMaster($subDevicesData[$subDeviceKey][$key]['subdevice_id'])['type'], '-') !== false) { $type = SubDeviceManager::getSubDeviceMaster($subDevicesData[$subDeviceKey][$key]['subdevice_id'])['type']; } - + //Connection Error Creation $connectionError = true; - $LastRecordTime = new DateTime($subDevicesData[$subDeviceKey][$key]['time']); + $LastRecordTime = new DateTime($subDevicesData[$subDeviceKey][$key]['heartbeat']); $interval = $LastRecordTime->diff(new DateTime()); - $lastSeen = ($interval->format('%h') * 60 + $interval->format('%i')); - - if ($subDevicesData[$subDeviceKey][$key]['sleep_time'] == NULL || $subDevicesData[$subDeviceKey][$key]['sleep_time'] == 0 || $lastSeen < $subDevicesData[$subDeviceKey][$key]['sleep_time']) { + + + $lastSeen = $interval->days * 24 * 60; + $lastSeen += $interval->h * 60; + $lastSeen += $interval->i; + + + //$lastSeen = ($interval->format('%h') * 60 + $interval->format('%i')); + + if ($lastSeen < ($subDevicesData[$subDeviceKey][$key]['sleep_time'] == 0 ? 15 : $subDevicesData[$subDeviceKey][$key]['sleep_time'])) { $connectionError = false; } $subDevicesData[$subDeviceKey][$key]['connection_error'] = $connectionError; @@ -50,7 +57,7 @@ class RoomsApi extends ApiController } } } - + foreach ($roomsData as $roomKey => $roomData) { if ($roomData['device_count'] == 0) continue; $subDevicesSorted = isset($subDevicesData[$roomData['room_id']]) ? Utilities::sortArrayByKey($subDevicesData[$roomData['room_id']], 'connection_error', 'asc') : []; @@ -64,11 +71,11 @@ class RoomsApi extends ApiController $this->response($response); } - + public function update($roomId) { //$this->requireAuth(); - + $subDevicesData = SubDeviceManager::getSubdevicesByRoomIds([$roomId]); $this->response($subDevicesData); } diff --git a/app/api/WidgetApi.php b/app/api/WidgetApi.php index 46152fe..5a27969 100644 --- a/app/api/WidgetApi.php +++ b/app/api/WidgetApi.php @@ -149,7 +149,8 @@ class WidgetApi extends ApiController } } - $subDeviceData = SubDeviceManager::edit($subDeviceId, $obj); + echo $subDeviceId; + echo SubDeviceManager::edit($subDeviceId, $obj); $response = [ "value" => "OK" diff --git a/app/models/managers/SubDeviceManager.php b/app/models/managers/SubDeviceManager.php index d67b8ef..1b5b8c7 100644 --- a/app/models/managers/SubDeviceManager.php +++ b/app/models/managers/SubDeviceManager.php @@ -92,7 +92,7 @@ class SubDeviceManager //TODO: @Patrik Check line 89 $rows = Db::loadAll(" - SELECT d.room_id, d.sleep_time, sd.subdevice_id, sd.device_id, COALESCE(sd.icon, d.icon) AS icon, COALESCE(sd.name, d.name) AS name, sd.type, sd.unit, r.value, r.time FROM subdevices sd + SELECT d.room_id, d.sleep_time, d.heartbeat, sd.subdevice_id, sd.device_id, COALESCE(sd.icon, d.icon) AS icon, COALESCE(sd.name, d.name) AS name, sd.type, sd.unit, r.value, r.time 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) . "?)