Some Big Changes
Co-Authored-By: Xinatorus <patrik@steelants.cz>
This commit is contained in:
parent
5e2af0fdbc
commit
e74d2095c6
@ -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);
|
||||
}
|
||||
|
||||
|
@ -34,14 +34,13 @@
|
||||
<?php
|
||||
if (isset($_POST['LogFile'])) {
|
||||
$file_lines = file('./app/logs/' . $_POST['LogFile']);
|
||||
echo '<pre>';
|
||||
echo '<pre style="overflow: auto;">';
|
||||
foreach ($file_lines as $line) {
|
||||
echo $line;
|
||||
}
|
||||
echo '</pre>';
|
||||
}
|
||||
?>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -10,7 +10,7 @@ if ($SUBDEVICE['type'] == 'on/off') {
|
||||
<div class="square">
|
||||
<div class="square-content <?php echo (($SUBDEVICE['comError'] == 1 || $DEVICE['approved'] == 0) ? "is-inactive" : "") ;?>" id="device-<?php echo $DEVICEID ?>" data-sub-device-id="<?php echo $SUBDEVICEID;?>">
|
||||
<div class="content">
|
||||
<div class="row">
|
||||
<div class="row no-gutters">
|
||||
<div class="col">
|
||||
<h5 unselectable="on" class="fa">&#x<?php echo $DEVICE['icon'] ?></h5>
|
||||
</div>
|
||||
@ -19,7 +19,7 @@ if ($SUBDEVICE['type'] == 'on/off') {
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col" unselectable="on" >
|
||||
<div class="col button-text" unselectable="on" >
|
||||
<?php echo $DEVICE['name']; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -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'];
|
||||
|
@ -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),
|
||||
],
|
||||
];
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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"
|
||||
}
|
||||
],
|
||||
|
Loading…
Reference in New Issue
Block a user