some fix and new firmware for shelly1

This commit is contained in:
unknown
2020-02-18 21:30:44 +01:00
parent e76b3127f3
commit 5a06a6c85a
20 changed files with 626 additions and 96 deletions

View File

@@ -145,6 +145,77 @@ class Ajax extends Template
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);
}
}
}

View File

@@ -7,11 +7,6 @@ class Home extends Template
{
global $userManager;
global $langMng;
$roomManager = new RoomManager();
$deviceManager = new DeviceManager();
$subDeviceManager = new SubDeviceManager();
$recordManager = new RecordManager();
$utilities = new Utilities();
if (!$userManager->isLogin()){
header('Location: ' . BASEDIR . 'login');
@@ -20,7 +15,7 @@ class Home extends Template
$template = new Template('home');
//users instantialize
$users = $userManager->getUsers();
$users = UserManager::getUsers();
$template->prepare('users', $users);
//Users at home Info
@@ -39,16 +34,16 @@ class Home extends Template
$roomsItems = [];
$roomsData = $roomManager->getAllRooms();
$roomsData = RoomManager::getAllRooms();
foreach ($roomsData as $roomKey => $roomsData) {
$devices = [];
$devicesData = $deviceManager->getAllDevicesInRoom($roomsData['room_id']);
$devicesData = DeviceManager::getAllDevicesInRoom($roomsData['room_id']);
foreach ($devicesData as $deviceKey => $deviceData) {
$subDevices = [];
$subDevicesData = $subDeviceManager->getAllSubDevices($deviceData['device_id']);
$subDevicesData = SubDeviceManager::getAllSubDevices($deviceData['device_id']);
foreach ($subDevicesData as $subDeviceKey => $subDeviceData) {
$events = $recordManager->getLastRecord($subDeviceData['subdevice_id'], 5);
$events = RecordManager::getLastRecord($subDeviceData['subdevice_id'], 5);
$eventsRaw = $events;
$connectionError = true;
@@ -105,7 +100,7 @@ class Home extends Template
//parsing last values
$parsedValue = $replacementFalse;
if ($utilities->checkOperator($lastValue, $operator, $breakValue)) {
if (Utilities::checkOperator($lastValue, $operator, $breakValue)) {
$parsedValue = $replacementTrue;
}
@@ -113,14 +108,14 @@ class Home extends Template
//parsing last events values
foreach ($events as $key => $value) {
$events[$key]['value'] = $replacementFalse;
if ($utilities->checkOperator($value['value'], $operator, $breakValue)) {
if (Utilities::checkOperator($value['value'], $operator, $breakValue)) {
$events[$key]['value'] = $replacementTrue;
}
}
}
$LastRecordTime = new DateTime($lastRecord['time']);
$niceTime = $utilities->ago($LastRecordTime);
$niceTime = Utilities::ago($LastRecordTime);
$interval = $LastRecordTime->diff(new DateTime());
$hours = $interval->format('%h');
@@ -180,7 +175,7 @@ class Home extends Template
];
}
$rooms = $roomManager->getAllRooms();
$rooms = RoomManager::getAllRooms();
$template->prepare('baseDir', BASEDIR);
$template->prepare('debugMod', DEBUGMOD);
$template->prepare('title', 'Home');

View File

@@ -26,6 +26,8 @@ class Log extends Template
}
$template->prepare('baseDir', BASEDIR);
$template->prepare('debugMod', DEBUGMOD);
$template->prepare('logToLiveTime', LOGTIMOUT);
$template->prepare('title', 'Logy');
$template->prepare('logsFiles', $result);
$template->prepare('langMng', $langMng);