commit d19b6f333cd9c94d604f2123877464d598d11142
parent 299073600d97efe8107da1ad1375084bf5586141
Author: Dominik Schmidt <das1993@hotmail.com>
Date: Wed, 6 Jun 2018 16:32:25 +0000
Implement time since display
Diffstat:
2 files changed, 52 insertions(+), 8 deletions(-)
diff --git a/src/laundrysorcery.c b/src/laundrysorcery.c
@@ -53,6 +53,7 @@ void turn_on(void){
void turn_off(void){
FILE *f=fopen(on_file, "w");
+ fprintf(f,"-1\n");
fclose(f);
}
@@ -141,7 +142,7 @@ int main(int argc, char **argv)
return 0;
}
on_file=argv[1];
-
+
wiringPiISR(1, INT_EDGE_BOTH, &edge);
digitalWrite (0, LOW);
delay(5);
@@ -150,9 +151,8 @@ int main(int argc, char **argv)
const char* arr[]={buffer};
while(1) {
delay(1000);
- snprintf(buffer,sizeof(buffer),"%lu:%f:%f:%f:%f:%f",(unsigned long)time(NULL),running_mean,g_off.mean,g_off.variance,g_on.mean,g_on.variance);
+ snprintf(buffer,sizeof(buffer),"%lu:%e:%e:%e:%e:%e",(unsigned long)time(NULL),running_mean,g_off.mean,g_off.variance,g_on.mean,g_on.variance);
rrd_update_r("database.rrd", NULL, 1, arr);
-
}
return 0;
}
diff --git a/www/index.sh b/www/index.sh
@@ -1,8 +1,19 @@
#!/bin/bash
+declare TIME
+declare DTIME
+declare ON
+
+ON=false
OTIME=`<on_time`
-TIME=`date +%s`
-DTIME=$(( TIME-OTIME ))
+if [[ $OTIME -lt 0 ]]
+then
+ ON=true
+ TIME=`date +%s`
+ DTIME=$(( TIME-OTIME ))
+else
+ DTIME="-1"
+fi
cat <<-EOF
Content-Type: text/html
@@ -13,19 +24,52 @@ Content-Type: text/html
<title>LaundrySorcery</title>
<meta charset="UTF-8"/>
<style type="text/CSS">
- delta_t=${DTIME};
- setInterval(function(){ delta_t++; }, 1000);
+
</style>
</head>
<body>
<H1>Laundry Status</H1>
-
+ <div id="statusLine">The laundry machine is <span id="delta_t"></span></div>
<H1>Light Sensor Data</H1>
<div><img src="light_5min.sh" /></div>
<div><img src="light_1h.sh" /></div>
<div><img src="light_1d.sh" /></div>
<script type="text/JavaScript">
<!--
+ delta_t=${DTIME};
+ function updateDisplay(){
+ var dt=document.getElementById("delta_t");
+ if(delta_t < 0){
+ dt.textContent="off";
+ }
+ else{
+ dt.textContent="on since "+timeSince(delta_t);
+ }
+ }
+ setInterval(function(){ if(delta_t>=0){delta_t++}; updateDisplay();}, 1000);
+ function timeSince(delta_t) {
+ var interval = Math.floor(delta_t / 31536000);
+ if (interval > 1) {
+ return interval + " years";
+ }
+ interval = Math.floor(seconds / 2592000);
+ if (interval > 1) {
+ return interval + " months";
+ }
+ interval = Math.floor(seconds / 86400);
+ if (interval > 1) {
+ return interval + " days";
+ }
+ interval = Math.floor(seconds / 3600);
+ if (interval > 1) {
+ return interval + " hours";
+ }
+ interval = Math.floor(seconds / 60);
+ if (interval > 1) {
+ return interval + " minutes";
+ }
+ return Math.floor(seconds) + " seconds";
+ }
-->
</script>
</body>