Robert Marshall 9 rokov pred
rodič
commit
e4631d3898

+ 3 - 1
Controller/Temperature.php

@@ -3,10 +3,12 @@
 class Temperature extends Controller {
 
 	private function GetCurrentTemperatureData() {
+		$temps=HomeAutomationService::GetBothTemperatures();
 		$vars=array();
 		$vars['currentTarget']=HomeAutomationService::GetTargetTemperature();
 		$vars['currentMode']=HomeAutomationService::GetCurrentMode();
-		$vars['currentTemperature']=HomeAutomationService::GetTemperature();
+		$vars['currentTemperature']=$temps->inside;
+		$vars['currentOutsideTemperature']=$temps->outside;
 		return $vars;
 	}
 

+ 2 - 0
DB Scripts/12/alter_temperature_logs.sql.sql

@@ -0,0 +1,2 @@
+ALTER TABLE `temperature_log` CHANGE `reading` `inside` FLOAT NOT NULL ;
+ALTER TABLE `temperature_log` ADD `outside` FLOAT NOT NULL AFTER `inside` ;

+ 2 - 2
Model/DBObject.php

@@ -83,9 +83,9 @@ class DBObject implements ISavableObject {
 
 		if (!isset(self::$_classFields[$class])) {
 			self::$_classFields[$class]=$PDO->query("DESCRIBE `{$this->_table}`")->fetchAll(PDO::FETCH_COLUMN);
-			foreach (self::$_classFields[$class] as $field)
-				$this->_fields[self::DBFieldToVariable($field)]=null;
 		}
+		foreach (self::$_classFields[$class] as $field)
+			$this->_fields[self::DBFieldToVariable($field)]=null;
 		if (count($this->_keys)>0){
 			$statementKey=$class.'_construct_'.$this->_table;
 			if (!isset(self::$PREPARED_STATEMENTS[$statementKey])) {

+ 13 - 3
Model/HomeAutomationService.php

@@ -12,10 +12,18 @@ class HomeAutomationService {
 		return self::DoRequest("gettemperature");
 	}
 
+	public static function GetOutsideTemperature() {
+		return self::DoRequest("getoutsidetemperature");
+	}
+
 	public static function GetTargetTemperature() {
 		return self::DoRequest("gettargettemperature");
 	}
 
+	public static function GetBothTemperatures() {
+		return self::DoRequest("GetbothTemperatures");
+	}
+
 	public static function GetCurrentMode() {
 		return self::DoRequest("getcurrentmode");
 	}
@@ -25,11 +33,13 @@ class HomeAutomationService {
 	}
 
 	public static function TakeReading() {
-		$result=self::GetTemperature();
+		$result=self::GetBothTemperatures();
+		var_dump($result);
 		$reading=new TemperatureReading();
-		$reading->Reading=$result;
+		$reading->Inside=self::GetTemperature();
+		$reading->Outside=self::GetOutsideTemperature();
 		$reading->Save();
+
 		return $reading;
 	}
-
 }

+ 2 - 1
Model/TemperatureReading.php

@@ -9,7 +9,8 @@ class TemperatureReading extends DBObject implements JsonSerializable {
 	public function jsonSerialize() {
 		$obj=new stdClass();
 		$obj->Timestamp=strtotime($this->Timestamp);
-		$obj->Reading=$this->Reading;
+		$obj->Inside=$this->Inside;
+		$obj->Outside=$this->Outside;
 		return $obj;
 	}
 

+ 3 - 0
View/Temperature/index.view

@@ -15,6 +15,9 @@ $this->RegisterCSSFile("temperature.css");
 			<div class="circle shadow"></div>
 		</div>
 	</div>
+	<div ng-init="temperatureData.currentOutsideTemperature=<?=$currentOutsideTemperature?>">
+		Outside: {{temperatureData.currentOutsideTemperature}}
+	</div>
 	<div id="linechart">loading...</div>
 </div>
 }@

+ 13 - 11
scripts/controllers/temperature.js

@@ -16,15 +16,16 @@ app.controller('temperature', function($scope, temperatureService, $interval) {
 		},
 		height: 400,
 		backgroundColor: 'transparent',
-		legend: {position: 'none'},
-		curveType: 'function',
+		legend:{
+			position: 'top',
+			alignment: 'start'
+		},
+		series: {
+			0:{axis:'Inside'},
+			1:{axis:'Outside'}
+		},
 		vAxis: {
-			title: "Temperature",
-			viewWindowMode: 'explicit',
-			viewWindow: {
-				max: 25,
-				min: 10
-			}
+			title: "Temperature"
 		}
 	};
 
@@ -36,9 +37,10 @@ app.controller('temperature', function($scope, temperatureService, $interval) {
 	function drawChart(data) {
 		var chartData = new google.visualization.DataTable();
 		chartData.addColumn('date', 'Timestamp');
-		chartData.addColumn('number', 'Reading');
+		chartData.addColumn('number', 'Inside');
+		chartData.addColumn('number', 'Outside');
 		angular.forEach(data, function(datum) {
-			chartData.addRow([new Date(datum.Timestamp * 1000), parseFloat(datum.Reading)]);
+			chartData.addRow([new Date(datum.Timestamp * 1000), parseFloat(datum.Inside), parseFloat(datum.Outside)]);
 		});
 		chart.draw(chartData, chartOptions);
 	}
@@ -58,7 +60,7 @@ app.controller('temperature', function($scope, temperatureService, $interval) {
 		});
 	}
 
-	$interval(updateCurrentTemperature, 2000);
+	$interval(updateCurrentTemperature, 5000);
 
 	$scope.getGraphPercentage = function() {
 		var graphTarget = ($scope.temperatureData.currentTarget * 1.2) - graphAdjustment;