sync
This commit is contained in:
parent
d1b4597720
commit
05bd0dbc64
@ -3,7 +3,7 @@
|
||||
class RoomsApi extends ApiController{
|
||||
|
||||
public function default(){
|
||||
$this->requireAuth();
|
||||
//$this->requireAuth();
|
||||
$response = [];
|
||||
$roomIds = [];
|
||||
$roomsData = RoomManager::getRoomsDefault();
|
||||
@ -15,6 +15,7 @@ class RoomsApi extends ApiController{
|
||||
$subDevicesData = SubDeviceManager::getSubdevicesByRoomIds($roomIds);
|
||||
|
||||
foreach ($roomsData as $roomKey => $roomData) {
|
||||
if ($roomData['device_count'] <= 0) continue;
|
||||
$response[] = [
|
||||
'room_id' => $roomData['room_id'],
|
||||
'name' => $roomData['name'],
|
||||
|
67
app/api/UpdaterApi.php
Normal file
67
app/api/UpdaterApi.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
class UpdatesApi {
|
||||
private function sendFile($path) {
|
||||
header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK', true, 200);
|
||||
header('Content-Type: application/octet-stream', true);
|
||||
header('Content-Disposition: attachment; filename=' . basename($path));
|
||||
header('Content-Length: ' . filesize($path), true);
|
||||
header('x-MD5: ' . md5_file($path), true);
|
||||
readfile($path);
|
||||
}
|
||||
|
||||
public function default(){
|
||||
header('Content-type: text/plain; charset=utf8', true);
|
||||
$logManager = new LogManager('../logs/ota/'. date("Y-m-d").'.log');
|
||||
|
||||
//Filtrování IP adress
|
||||
/* if (DEBUGMOD != 1) {
|
||||
if (!in_array($_SERVER['REMOTE_ADDR'], HOMEIP)) {
|
||||
echo json_encode(array(
|
||||
'state' => 'unsuccess',
|
||||
'errorMSG' => "Using API from your IP insnt alowed!",
|
||||
));
|
||||
header($_SERVER["SERVER_PROTOCOL"]." 401 Unauthorized");
|
||||
$logManager->write("[Updater] acces denied from " . $_SERVER['REMOTE_ADDR'], LogRecordType::WARNING);
|
||||
exit();
|
||||
}
|
||||
}*/
|
||||
|
||||
$macAddress = $_SERVER['HTTP_X_ESP8266_STA_MAC'];
|
||||
$localBinary = "../updater/" . str_replace(':', '', $macAddress) . ".bin";
|
||||
|
||||
$logManager->write("[Updater] url: " . $localBinary, LogRecordType::INFO);
|
||||
$logManager->write("[Updater] version: " . $_SERVER['HTTP_X_ESP8266_SKETCH_MD5'], LogRecordType::INFO);
|
||||
if (file_exists($localBinary)) {
|
||||
$logManager->write("[Updater] version PHP: \n" . md5_file($localBinary), LogRecordType::INFO);
|
||||
if ($_SERVER['HTTP_X_ESP8266_SKETCH_MD5'] != md5_file($localBinary)) {
|
||||
$this->sendFile($localBinary);
|
||||
//get device data
|
||||
$device = DeviceManager::getDeviceByMac($macAddress);
|
||||
$deviceName = $device['name'];
|
||||
$deviceId = $device['device_id'];
|
||||
//logfile write
|
||||
$logManager->write("[Device] device_ID " . $deviceId . " was just updated to new version", LogRecordType::WARNING);
|
||||
$logManager->write("[Device] version hash: \n" . md5_file($localBinary), LogRecordType::INFO);
|
||||
//notification
|
||||
$notificationMng = new NotificationManager;
|
||||
$notificationData = [
|
||||
'title' => 'Info',
|
||||
'body' => $deviceName.' was just updated to new version',
|
||||
'icon' => BASEDIR . '/app/templates/images/icon-192x192.png',
|
||||
];
|
||||
if ($notificationData != []) {
|
||||
$subscribers = $notificationMng->getSubscription();
|
||||
foreach ($subscribers as $key => $subscriber) {
|
||||
$logManager->write("[NOTIFICATION] SENDING TO " . $subscriber['id'] . " ", LogRecordType::INFO);
|
||||
$answer = $notificationMng->sendSimpleNotification(SERVERKEY, $subscriber['token'], $notificationData);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
header($_SERVER["SERVER_PROTOCOL"].' 304 Not Modified', true, 304);
|
||||
}
|
||||
} else {
|
||||
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
|
||||
}
|
||||
die();
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
class UpdatesApi {
|
||||
<?php
|
||||
class UpdatesApi {
|
||||
private function sendFile($path) {
|
||||
header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK', true, 200);
|
||||
header('Content-Type: application/octet-stream', true);
|
||||
@ -8,11 +8,13 @@ class UpdatesApi {
|
||||
header('x-MD5: ' . md5_file($path), true);
|
||||
readfile($path);
|
||||
}
|
||||
|
||||
|
||||
public function default(){
|
||||
$logManager = new LogManager();
|
||||
header('Content-type: text/plain; charset=utf8', true);
|
||||
|
||||
header('Content-type: text/plain; charset=utf8', true);
|
||||
$logManager = new LogManager('../logs/ota/'. date("Y-m-d").'.log');
|
||||
$logManager->write("[Updater] Client Connected", LogRecordType::WARNING);
|
||||
|
||||
|
||||
//Filtrování IP adress
|
||||
if (DEBUGMOD != 1) {
|
||||
if (!in_array($_SERVER['REMOTE_ADDR'], HOMEIP)) {
|
||||
@ -21,26 +23,26 @@ class UpdatesApi {
|
||||
'errorMSG' => "Using API from your IP insnt alowed!",
|
||||
));
|
||||
header($_SERVER["SERVER_PROTOCOL"]." 401 Unauthorized");
|
||||
$logManager->write("[Updater] acces denied from " . $_SERVER['REMOTE_ADDR'], LogRecordType::WARNING);
|
||||
$logManager->write("[Updater] acces denied from " . $_SERVER['REMOTE_ADDR'], LogRecordType::INFO);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$macAddress = $_SERVER['HTTP_X_ESP8266_STA_MAC'];
|
||||
$localBinary = "../updater/" . str_replace(':', '', $macAddress) . ".bin";
|
||||
$logManager->write("[Updater] url: " . $localBinary, LogRecordType::INFO);
|
||||
$logManager->write("[Updater] version: " . $_SERVER['HTTP_X_ESP8266_SKETCH_MD5'], LogRecordType::INFO);
|
||||
$logManager->write("[Updater] version: " . $_SERVER['HTTP_X_ESP8266_SKETCH_MD5'], LogRecordType::INFO);
|
||||
if (file_exists($localBinary)) {
|
||||
$logManager->write("[Updater] version PHP: \n" . md5_file($localBinary), LogRecordType::INFO);
|
||||
$logManager->write("[Updater] version PHP: " . md5_file($localBinary), LogRecordType::INFO);
|
||||
if ($_SERVER['HTTP_X_ESP8266_SKETCH_MD5'] != md5_file($localBinary)) {
|
||||
sendFile($localBinary);
|
||||
$this->sendFile($localBinary);
|
||||
//get device data
|
||||
$device = DeviceManager::getDeviceByMac($macAddress);
|
||||
$deviceName = $device['name'];
|
||||
$deviceId = $device['device_id'];
|
||||
//logfile write
|
||||
$logManager->write("[Device] device_ID " . $deviceId . " was just updated to new version", LogRecordType::WARNING);
|
||||
$logManager->write("[Device] version hash: \n" . md5_file($localBinary), LogRecordType::INFO);
|
||||
$logManager->write("[Device] version hash: " . md5_file($localBinary), LogRecordType::INFO);
|
||||
//notification
|
||||
$notificationMng = new NotificationManager;
|
||||
$notificationData = [
|
||||
@ -63,4 +65,4 @@ class UpdatesApi {
|
||||
}
|
||||
die();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,31 +3,34 @@ class WidgetApi extends ApiController{
|
||||
|
||||
public function run($subDeviceId){
|
||||
//$this->requireAuth();
|
||||
|
||||
$response = null;
|
||||
if (RecordManager::getLastRecord($subDeviceId)['execuded'] === 0) {
|
||||
throw new Exception("Unreachable", 409);
|
||||
}
|
||||
|
||||
$subDeviceData = SubDeviceManager::getSubDevice($subDeviceId);
|
||||
if ($subDeviceData['type'] == 'on/off'){
|
||||
$lastValue = RecordManager::getLastRecord($subDeviceData['subdevice_id'])['value'];
|
||||
RecordManager::create($subDeviceData['device_id'], 'on/off', !$lastValue);
|
||||
$response = !$lastValue;
|
||||
} else {
|
||||
throw new Exception("Bad Request", 403);
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
$timeout = 20;
|
||||
while (RecordManager::getLastRecord($subDeviceId)['execuded'] == 0){
|
||||
if ($i == $timeout) {
|
||||
throw new Exception("Timeout", 444);
|
||||
}
|
||||
$i++;
|
||||
usleep(250000);
|
||||
}
|
||||
|
||||
$this->response(['value' => $response]);
|
||||
}
|
||||
|
||||
public function check($subDeviceId){
|
||||
//$this->requireAuth();
|
||||
$response = null;
|
||||
$lastRecord = RecordManager::getLastRecord($subDeviceId);
|
||||
|
||||
$response = [
|
||||
'executet' => $lastRecord['execuded'],
|
||||
'value' => $lastRecord['value'],
|
||||
];
|
||||
|
||||
$this->response($response);
|
||||
}
|
||||
|
||||
public function detail($subDeviceId){
|
||||
//$this->requireAuth();
|
||||
$response = null;
|
||||
@ -37,7 +40,7 @@ class WidgetApi extends ApiController{
|
||||
$deviceData = DeviceManager::getDeviceById($deviceId);
|
||||
$events = RecordManager::getLastRecord($subDeviceId, 5);
|
||||
|
||||
$LastRecordTime = new DateTime($$events[4]['time']);
|
||||
$LastRecordTime = new DateTime($events[4]['time']);
|
||||
$niceTime = Utilities::ago($LastRecordTime);
|
||||
|
||||
$interval = $LastRecordTime->diff(new DateTime());
|
||||
|
@ -13,7 +13,7 @@ class RoomManager{
|
||||
}
|
||||
|
||||
static function getRoomsDefault () {
|
||||
$allRoom = Db::loadAll ("SELECT room_id, name FROM rooms");
|
||||
$allRoom = Db::loadAll ("SELECT rooms.room_id, rooms.name, COUNT(devices.device_id) as device_count FROM rooms LEFT JOIN devices ON (devices.room_id=rooms.room_id) GROUP BY rooms.room_id;");
|
||||
return $allRoom;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user