Skip to content
This repository was archived by the owner on Apr 28, 2020. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 31 additions & 26 deletions web_gui/api.php
Original file line number Diff line number Diff line change
@@ -1,33 +1,38 @@
<?php
include "index.php";
?>

<?php
require "engine.php";
require "config.php";

if($_SERVER["REQUEST_METHOD"] == "POST"){
$aRequest = json_decode(file_get_contents('php://input'), true);
$json_ret = set_array_info("/aircon/set_control_info",$ip,$aRequest);
//request failed
if($json_ret===FALSE){
http_response_code(503); //service Unavailable
exit;
}
print($json_ret);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$aRequest = json_decode(file_get_contents('php://input'), true);
$json_ret = set_array_info("/aircon/set_control_info", $ip, $aRequest);
//request failed
if ($json_ret === FALSE) {
http_response_code(503); //service Unavailable
exit;
}
print($json_ret);

} else if ($_SERVER["REQUEST_METHOD"] == "GET") {
//control if uri is sended
if ((!isset($_GET["uri"])) || (
$_GET["uri"] != "/aircon/get_sensor_info" &&
$_GET["uri"] != "/aircon/get_control_info"
)
) {
http_response_code(405); //method not allowed
exit;
}

}else if($_SERVER["REQUEST_METHOD"] == "GET"){
//control if uri is sended
if( (! isset($_GET["uri"])) || (
$_GET["uri"] != "/aircon/get_sensor_info" &&
$_GET["uri"] != "/aircon/get_control_info"
)){
http_response_code(405); //method not allowed
exit;
}

$json_info=get_json_info($_GET["uri"],$ip);
//request failed
if($json_info===FALSE){
http_response_code(503); //service Unavailable
exit;
}
print($json_info);
$json_info = get_json_info($_GET["uri"], $ip);
//request failed
if ($json_info === FALSE) {
http_response_code(503); //service Unavailable
exit;
}
print($json_info);
}
?>
8 changes: 5 additions & 3 deletions web_gui/config.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?php
//ip of the airconditioner

$ip="192.168.1.11";
//ip of the airconditioner
$ip = "192.168.X.X";

//Password to protect the graphical interface (optional), indicate sha256(password)
$uipassword = "";

?>
73 changes: 38 additions & 35 deletions web_gui/engine.php
Original file line number Diff line number Diff line change
@@ -1,47 +1,50 @@
<?php

//retrive infos encoded in php array
function get_array_info($uri,$aircon_ip){

$url= "http://$aircon_ip$uri";
$data = @file_get_contents($url);
if($data === FALSE){
return FALSE;
}else{
$array=explode(",",$data);
$control_info= array();
foreach($array as $value){
$pair= explode("=",$value);
$control_info[$pair[0]]=$pair[1];
}
}
return $control_info;
function get_array_info($uri, $aircon_ip)
{

$url = "http://$aircon_ip$uri";
$data = @file_get_contents($url);
if ($data === FALSE) {
return FALSE;
} else {
$array = explode(",", $data);
$control_info = array();
foreach ($array as $value) {
$pair = explode("=", $value);
$control_info[$pair[0]] = $pair[1];
}
}
return $control_info;
}

//retrive infos encoded in JSON format
function get_json_info($uri,$aircon_ip){
$array_info=get_array_info($uri,$aircon_ip);
if($array_info === FALSE)
return FALSE;
return json_encode($array_info);
function get_json_info($uri, $aircon_ip)
{
$array_info = get_array_info($uri, $aircon_ip);
if ($array_info === FALSE)
return FALSE;
return json_encode($array_info);
}


function set_array_info($uri,$aircon_ip,$parameters){
$url= "http://$aircon_ip$uri";
$context= stream_context_create(NULL,$parameters);
$data= file_get_contents ( $url . '?' . http_build_query($parameters));
if($data === FALSE){
return FALSE;
}else{
$array=explode(",",$data);
$control_info= array();
foreach($array as $value){
$pair= explode("=",$value);
$control_info[$pair[0]]=$pair[1];
}
return json_encode($control_info);
}
function set_array_info($uri, $aircon_ip, $parameters)
{
$url = "http://$aircon_ip$uri";
$context = stream_context_create(NULL, $parameters);
$data = file_get_contents($url . '?' . http_build_query($parameters));
if ($data === FALSE) {
return FALSE;
} else {
$array = explode(",", $data);
$control_info = array();
foreach ($array as $value) {
$pair = explode("=", $value);
$control_info[$pair[0]] = $pair[1];
}
return json_encode($control_info);
}
}

?>
91 changes: 91 additions & 0 deletions web_gui/index.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<?php
session_start();
include "config.php";

// If we are receiving a password via POST method
if (!empty($_POST["password"])) {

if ($uipassword == hash("sha256", $_POST["password"])) {

$_SESSION["password"] = $_POST["password"];
header("location: ui.php");
exit;
}

}

if (!isset($_SESSION['password'])) {
// If password value is empty
if ($uipassword == "") {
$_SESSION["password"] = "NULL";
header("location: ui.php");
exit;
}

if (basename($_SERVER['PHP_SELF']) != "index.php") {
header("location: index.php");
exit;
} else {
echo '
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Daikin Login</title>

<!-- Common plugins -->
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet">

</head>
<body>

<div class="misc-wrapper">
<div class="misc-content">
<div class="container">
<div class="row">
<div class="col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4">
<div class="misc-box">
<p class="text-center text-uppercase pad-v">Login to continue.</p>
<form role="form" action="index.php" method="post">

<div class="form-group">
<label class="text-muted" for="password">Password</label>
<div class="group-icon">
<input id="password" name="password" type="password" placeholder="Password"
class="form-control" required="">
<span class="icon-lock text-muted icon-input"></span>
</div>
</div>
<div class="clearfix">
<div class="pull-right">
<button type="submit" class="btn btn-block btn-primary"> Login </button>
</div>
</div>
<hr>
</form>
</div>
<div class="text-center misc-footer">
<span>&copy; Copyright 2017</span>
</div>
</div>
</div>
</div>
</div>
</div>

<!--Common plugins-->
<script src="bootstrap/js/bootstrap.min.js"></script>

</body>
</html>
';

}
}

?>

18 changes: 11 additions & 7 deletions web_gui/ui.html → web_gui/ui.php
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<?php
include "index.php";
?>

<!DOCTYPE html>
<html lang="en">
<head>
Expand Down Expand Up @@ -56,11 +60,11 @@
<!-- Mode -->
<h4>Mode</h4>
<div class="btn-group">
<a class="btn btn-default mode-btn" id="mode_cooling" onclick='mode_onclick("3");'><i class="fa fa-asterisk fa-2x"></i></a>
<a class="btn btn-default mode-btn" id="mode_dehum" onclick='mode_onclick("2");'><i class="fa fa-tint fa-2x"></i></a>
<a class="btn btn-default mode-btn" id="mode_heating" onclick='mode_onclick("4");'><i class="fa fa-sun-o fa-2x"></i></a>
<a class="btn btn-default mode-btn" id="mode_fan" onclick='mode_onclick("6");'><i class="fa fa-retweet fa-2x"></i></a>
<a class="btn btn-default mode-btn" id="mode_auto" onclick='mode_onclick("1");'><i class="fa fa-font fa-2x"></i></a>
<a class="btn btn-default mode-btn" id="mode_cooling" title="Cooling" onclick='mode_onclick("3");'><i class="fa fa-asterisk fa-2x"></i></a>
<a class="btn btn-default mode-btn" id="mode_dehum" title="Dehumidifier" onclick='mode_onclick("2");'><i class="fa fa-tint fa-2x"></i></a>
<a class="btn btn-default mode-btn" id="mode_heating" title="Heating" onclick='mode_onclick("4");'><i class="fa fa-sun-o fa-2x"></i></a>
<a class="btn btn-default mode-btn" id="mode_fan" title="Fan" onclick='mode_onclick("6");'><i class="fa fa-retweet fa-2x"></i></a>
<a class="btn btn-default mode-btn" id="mode_auto" title="Auto" onclick='mode_onclick("1");'><i class="fa fa-font fa-2x"></i></a>
</div>

</div>
Expand All @@ -69,8 +73,8 @@ <h4>Mode</h4>
<!-- Fan -->
<h4>Fan</h4>
<div class="btn-group">
<a class="btn btn-default fan-btn" id="fan_auto" onclick='fan_onclick("A");'><i class="fa fa-font fa-2x"></i></a>
<a class="btn btn-default fan-btn" id="fan_eco" onclick='fan_onclick("B");'><i class="fa fa-leaf fa-2x"></i></a>
<a class="btn btn-default fan-btn" id="fan_auto" title="Auto" onclick='fan_onclick("A");'><i class="fa fa-font fa-2x"></i></a>
<a class="btn btn-default fan-btn" id="fan_eco" title="Eco" onclick='fan_onclick("B");'><i class="fa fa-leaf fa-2x"></i></a>
<a class="btn btn-default" onclick='fan_onclick("3");'><img src="media/level_1_off.svg" height="29px" id="fan_lvl_1"></a>
<a class="btn btn-default" onclick='fan_onclick("4");'><img src="media/level_2_off.svg" height="29px" id="fan_lvl_2"></a>
<a class="btn btn-default" onclick='fan_onclick("5");'><img src="media/level_3_off.svg" height="29px" id="fan_lvl_3"></a>
Expand Down