LaundrySorcery

IP-Enabling a 2011 Washing Machine
git clone git://xatko.vsos.ethz.ch/LaundrySorcery.git
Log | Files | Refs

commit 61cb4a8053f11b44b18b28557c72ad772bdecdcd
parent 3aa4263418a87b53fed1052a8fd592e735b9dbe0
Author: Dominik Schmidt <das1993@hotmail.com>
Date:   Sat,  7 Jul 2018 16:26:24 +0000

Merge laundrysorcery.local:LaundrySorcery

Diffstat:
www/index.cgi | 26+++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/www/index.cgi b/www/index.cgi @@ -56,8 +56,10 @@ Content-Type: text/html </div> <script type="text/JavaScript"> <!-- + do_notify=false; delta_t=${RTIME}; function updateDisplay(){ + if(!document.hasFocus()) return; var g=document.getElementById("guessTime"); var g2=document.getElementById("guessProg"); var dt=document.getElementById("delta_t"); @@ -79,8 +81,21 @@ Content-Type: text/html st.setAttribute("class",classn); st.getElementsByTagName("img")[0].setAttribute("src",classn+".svg"); } + + function updateDeltaT(dt){ + if(do_notify){ + if(delta_t<0 && dt >= 0){ + new Notification("Washing machine has been turned on"); + } + else if(delta_t >= 0 && dt < 0){ + new Notification("Washing machine is now off"); + } + } + delta_t=dt; + } + setInterval(function(){ if(delta_t>=0){delta_t++}else{delta_t--}; updateDisplay();}, 1000); - setInterval(function(){ readTextFile("print_delta_t.cgi", function(rawFile){delta_t = rawFile.responseText});}, 20*1000); + setInterval(function(){ readTextFile("print_delta_t.cgi", function(rawFile){updateDeltaT(parseInt(rawFile.responseText));});}, 20*1000); readTextFile("clusters", function(rawFile){parseClusters(rawFile.responseText);}); clusters=[]; function Cluster(apriori, mean, variance){ @@ -200,6 +215,15 @@ Content-Type: text/html return str.substr(0,str.length-2); } updateDisplay(); + + if("Notification" in window){ + if(Notification.permission==="granted"){ + do_notify=true + } + else if(Notification.permission!=="denied"){ + var res=Notification.requestPermission(function(res){do_notify=(res==="granted");}); + } + } --> </script> </body>