diff --git a/app/templates/js/script.js b/app/templates/js/script.js
index 420409a..a6f5d02 100644
--- a/app/templates/js/script.js
+++ b/app/templates/js/script.js
@@ -1,3 +1,5 @@
+var pending = false;
+
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('serviceWorker.js')
@@ -14,16 +16,16 @@ if ('serviceWorker' in navigator) {
$('select[name="atSelector"]').change(function(e) {
console.log($(this).val());
if( $(this).val() == 'time') {
-
+
$('input[name="atTime"]').prop( "disabled", false );
-
+
$('select[name="atDeviceValueInt"]').prop( "disabled", true );
$('input[name="atDeviceValue"]').prop( "disabled", true );
} else if( $(this).val() == 'atDeviceValue') {
-
+
$('select[name="atDeviceValue"]').prop( "disabled", false );
$('input[name="atDeviceValueInt"]').prop( "disabled", false );
-
+
$('input[name="atTime"]').prop( "disabled", true );
}
});
@@ -38,7 +40,7 @@ $("div.square-content").on('touchend', function (e){
$("div.square-content").on('touchstart', function (eTarget) {
navigator.vibrate([500]);
var id = '';
-
+
var windowLoc = $(location).attr('pathname');
windowLoc = windowLoc.substring(windowLoc.lastIndexOf("/"));
console.log(windowLoc);
@@ -49,9 +51,9 @@ $("div.square-content").on('touchstart', function (eTarget) {
} else if (windowLoc == "/automation") {
id = $(this).attr('id').replace('automation-', '');
}
-
+
var subId = $(this).attr('data-sub-device-id');
-
+
touch++;
if(touch == 2 && touchSubId == subId){
console.log("Detail");
@@ -59,7 +61,7 @@ $("div.square-content").on('touchstart', function (eTarget) {
$("#modal-detail-"+subId).removeClass('modal-container-hiden').show();
ajaxChart(subId);
} else if (windowLoc == "/scene") {
-
+
} else if (windowLoc == "/automation") {
}
touch = 0;
@@ -67,7 +69,7 @@ $("div.square-content").on('touchstart', function (eTarget) {
return;
}
touchSubId = subId;
-
+
pressTimer = window.setTimeout(function (e) {
console.log("Setting");
$("#modal-setting-"+id).removeClass('modal-container-hiden').show();
@@ -152,7 +154,14 @@ var windowLoc = $(location).attr('pathname');
windowLoc = windowLoc.substring(windowLoc.lastIndexOf("/"));
console.log();
if (windowLoc == "/") {
+
var selectRoomId = localStorage.getItem("selectedRoomId");
+
+ if (selectRoomId == null) {
+ selectRoomId = 'all';
+ }
+
+
console.log('Saved Selected Room ID '+ selectRoomId);
$('[name="room"]').val(selectRoomId);
$('.device-button').each(function(){
@@ -164,6 +173,8 @@ if (windowLoc == "/") {
}
}
});
+
+
}
//Room selector
@@ -187,29 +198,35 @@ windowLoc = windowLoc.substring(windowLoc.lastIndexOf("/"));
console.log();
if (windowLoc == "/") {
var autoUpdate = setInterval(function(){
- $.ajax({
- url: 'ajax',
- type: 'POST',
- dataType: 'json',
- data: {
- "action": 'getState'
- },
- success: function(data){
- console.log(data);
- for (const key in data) {
- if (data.hasOwnProperty(key)) {
- const device = data[key];
- $('[data-sub-device-id="'+key+'"]')
- .find('.device-button-value')
- .text(device['value'])
- .attr('title',device['time'])
+ if (pending == false) {
+ pending = true;
+ $.ajax({
+ url: 'ajax',
+ type: 'POST',
+ dataType: 'json',
+ data: {
+ "action": 'getState'
+ },
+ success: function(data){
+ console.log(data);
+ for (const key in data) {
+ if (data.hasOwnProperty(key)) {
+ const device = data[key];
+ $('[data-sub-device-id="'+key+'"]')
+ .find('.device-button-value')
+ .text(device['value'])
+ .attr('title',device['time'])
+ }
}
+ },
+ error: function (request, status, error) {
+ console.log("ERROR ajaxChart():", request, error);
+ },
+ complete: function (){
+ pending = false;
}
- },
- error: function (request, status, error) {
- console.log("ERROR ajaxChart():", request, error);
- }
- });
+ });
+ }
},2000);
}
diff --git a/app/templates/log.phtml b/app/templates/log.phtml
index f446e17..cf3ba59 100644
--- a/app/templates/log.phtml
+++ b/app/templates/log.phtml
@@ -34,14 +34,13 @@
';
+ echo '
';
foreach ($file_lines as $line) {
echo $line;
}
echo '
';
}
?>
-
diff --git a/app/templates/part/deviceButton.phtml b/app/templates/part/deviceButton.phtml
index 1bdf669..3864438 100644
--- a/app/templates/part/deviceButton.phtml
+++ b/app/templates/part/deviceButton.phtml
@@ -10,7 +10,7 @@ if ($SUBDEVICE['type'] == 'on/off') {
" id="device-" data-sub-device-id="">
-
+
@@ -19,7 +19,7 @@ if ($SUBDEVICE['type'] == 'on/off') {
-
diff --git a/app/views/Ajax.php b/app/views/Ajax.php
index 94caaa9..649d151 100644
--- a/app/views/Ajax.php
+++ b/app/views/Ajax.php
@@ -48,6 +48,7 @@ class Ajax extends Template
AutomationManager::deactive($automationId);
}
} else if (isset($_POST['subDevice']) && isset($_POST['action']) && $_POST['action'] == "chart") {
+ die();
//TODO lepe rozstrukturovat
$subDeviceId = $_POST['subDevice'];
$period = $_POST['period'];
diff --git a/app/views/Home.php b/app/views/Home.php
index 73f5a87..eca796b 100644
--- a/app/views/Home.php
+++ b/app/views/Home.php
@@ -43,58 +43,69 @@ class Home extends Template
foreach ($subDevicesData as $subDeviceKey => $subDeviceData) {
$events = RecordManager::getLastRecord($subDeviceData['subdevice_id'], 5);
- //TODO: skontrolovat zdali se jedná o poslední (opravdu nejaktuálnější) záznam
- $lastRecord = $events[0];
- $parsedValue = round($lastRecord['value']);
-
- /*Value Parsing*/
- if ($subDeviceData['type'] == "on/off") {
- $parsedValue = ($parsedValue == 1 ? 'ON' : 'OFF');
- }
-
- if ($subDeviceData['type'] == "door") {
- $replacementTrue = 'Closed';
- $replacementFalse = 'Opened';
- foreach ($events as $key => $value) {
- $events[$key]['value'] = ($value['value'] == 1 ? $replacementTrue : $replacementFalse);
- }
- $parsedValue = ($parsedValue == 1 ? $replacementTrue : $replacementFalse);
- }
-
- if ($subDeviceData['type'] == "light") {
- $replacementTrue = 'Light';
- $replacementFalse = 'Dark';
- foreach ($events as $key => $value) {
- if ($parsedValue != 1){
- //Analog Reading
- $events[$key]['value'] = ($value['value'] <= 810 ? $replacementTrue : $replacementFalse);
- } else {
- //Digital Reading
- $events[$key]['value'] = ($value['value'] == 0 ? $replacementTrue : $replacementFalse);
- }
- }
- if ($parsedValue != 1){
- //Analog Reading
- $parsedValue = ($parsedValue <= 810 ? $replacementTrue : $replacementFalse);
- } else {
- //Digital Reading
- $parsedValue = ($parsedValue == 0 ? $replacementTrue : $replacementFalse);
- }
- }
-
- $date2 = new DateTime($lastRecord['time']);
-
- $niceTime = $this->ago($date2);
$connectionError = false;
+ $parsedValue = "";
+ $niceTime = "";
- $startDate = date_create($lastRecord['time']);
- $interval = $startDate->diff(new DateTime());
- $hours = $interval->format('%h');
- $minutes = $interval->format('%i');
- $lastSeen = ($hours * 60 + $minutes);
- if ($lastSeen > $deviceData['sleep_time'] && $subDeviceData['type'] != "on/off") {
+ if (sizeof($events) > 1) {
+
+ //TODO: skontrolovat zdali se jedná o poslední (opravdu nejaktuálnější) záznam
+ $lastRecord = $events[0];
+
+ $parsedValue = round($lastRecord['value']);
+
+ /*Value Parsing*/
+ if ($subDeviceData['type'] == "on/off") {
+ $parsedValue = ($parsedValue == 1 ? 'ON' : 'OFF');
+ }
+
+ if ($subDeviceData['type'] == "door") {
+ $replacementTrue = 'Closed';
+ $replacementFalse = 'Opened';
+ foreach ($events as $key => $value) {
+ $events[$key]['value'] = ($value['value'] == 1 ? $replacementTrue : $replacementFalse);
+ }
+ $parsedValue = ($parsedValue == 1 ? $replacementTrue : $replacementFalse);
+ }
+
+ if ($subDeviceData['type'] == "light") {
+ $replacementTrue = 'Light';
+ $replacementFalse = 'Dark';
+ foreach ($events as $key => $value) {
+ if ($parsedValue != 1){
+ //Analog Reading
+ $events[$key]['value'] = ($value['value'] <= 810 ? $replacementTrue : $replacementFalse);
+ } else {
+ //Digital Reading
+ $events[$key]['value'] = ($value['value'] == 0 ? $replacementTrue : $replacementFalse);
+ }
+ }
+ if ($parsedValue != 1){
+ //Analog Reading
+ $parsedValue = ($parsedValue <= 810 ? $replacementTrue : $replacementFalse);
+ } else {
+ //Digital Reading
+ $parsedValue = ($parsedValue == 0 ? $replacementTrue : $replacementFalse);
+ }
+ }
+
+ $date2 = new DateTime($lastRecord['time']);
+
+ $niceTime = $this->ago($date2);
+
+
+ $startDate = date_create($lastRecord['time']);
+ $interval = $startDate->diff(new DateTime());
+ $hours = $interval->format('%h');
+ $minutes = $interval->format('%i');
+ $lastSeen = ($hours * 60 + $minutes);
+
+ if ($lastSeen > $deviceData['sleep_time'] && $subDeviceData['type'] != "on/off") {
+ $connectionError = true;
+ }
+ } else {
$connectionError = true;
}
@@ -104,9 +115,9 @@ class Home extends Template
'unit' => $subDeviceData['unit'],
'comError' => $connectionError,
'lastRecort' => [
- 'value' => $parsedValue,
- 'time' => $lastRecord['time'],
- 'niceTime' => $niceTime,
+ 'value' => (empty($parsedValue) ? 0 : $parsedValue),
+ 'time' => (empty($lastRecord['time']) ? "00:00" : $lastRecord['time']),
+ 'niceTime' => (empty($niceTime) ? "00:00" : $niceTime),
],
];
}
diff --git a/app/views/Log.php b/app/views/Log.php
index af2646e..8098223 100644
--- a/app/views/Log.php
+++ b/app/views/Log.php
@@ -19,7 +19,7 @@ class Log extends Template
$cdir = scandir('./app/logs/');
foreach ($cdir as $key => $value)
{
- if (!in_array($value,array(".","..")))
+ if (!in_array($value,array(".","..", ".gitkeep")))
{
$result[$value] = $value;
}
diff --git a/manifest.json b/manifest.json
index 7150e8b..16775df 100644
--- a/manifest.json
+++ b/manifest.json
@@ -10,11 +10,11 @@
"theme_color": "#182239",
"icons": [
{
- "src": "/vasek/home/templates/images/icon-192x192.png",
+ "src": "/vasek/home/app/templates/images/icon-192x192.png",
"sizes": "192x192"
},
{
- "src": "/vasek/home/templates/images/icon-512x512.png",
+ "src": "/vasek/home/app/templates/images/icon-512x512.png",
"sizes": "512x512"
}
],