diff --git a/coffee_scale/__init__.py b/coffee_scale/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/coffee_scale/admin.py b/coffee_scale/admin.py deleted file mode 100644 index 8c38f3f..0000000 --- a/coffee_scale/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/coffee_scale/migrations/__init__.py b/coffee_scale/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/coffee_scale/models.py b/coffee_scale/models.py deleted file mode 100644 index 71a8362..0000000 --- a/coffee_scale/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.db import models - -# Create your models here. diff --git a/coffee_scale/static/coffee_scale/css/coffee.css b/coffee_scale/static/coffee_scale/css/coffee.css deleted file mode 100644 index e090c2a..0000000 --- a/coffee_scale/static/coffee_scale/css/coffee.css +++ /dev/null @@ -1,124 +0,0 @@ -body { - background-color: white; - font-family: monospace; - color: black; -} -#container{ - position:relative; - width:95%; - margin-left:auto; - margin-right:auto; - height:100%; - overflow:hidden; - -} -#upper{ - background-size: contain; - background-repeat: no-repeat; - background-position: bottom center; - background-image: url("/static/coffee_scale/img/smokes.png"); - transform-origin: bottom; - animation: smokes 8s ease-in-out 0s infinite; - opacity:0; - height:40%; -} -#lower{ - position:relative; - background-size: contain; - background-repeat: no-repeat; - background-position: top center; - background-image: url("/static/coffee_scale/img/coffeecup3.png"); - height:60%; -} -#scale{ - position:absolute; - top:80%; - width:90%; - height:10%; - margin: 0% 5% 0% 5%; - background: lightgrey; - border-radius: 10px; - overflow:hidden; -} -#scale2{ - width: 0%; - transition: width 2s; - height:100%; - background: green; - border-radius: 10px; -} -.brewtime{ - text-align:right; - position:absolute; - right:0px; - z-index:5; - font-size:10vw; -} -#address{ - text-align:left; - position:absolute; - left:0px; - z-index:5; - font-size:4vw; - color: #333; -} -.layertwo{ - display: None; -} -noscript{ - color:red; -} -.text{ - color:green; - position:absolute; - top:50%; - left:50%; -} -.brewing{ - animation: brewing 5s ease-in-out 0s infinite; -} -.hurry{ - color:red !important; -} -.unknown{ - color:orange !important; - animation: unknown 5s ease-in-out 0s infinite; -} -.friday{ - animation: friday 20s ease-in-out 0s infinite; -} -.normal{ - animation: normal 1000s ease-in-out 0s infinite; -} -.coffeeready{ - animation: coffeeready 10s ease-in-out 0s; -} -@keyframes smokes { - 0% {transform: skewX(-10deg);} - 50% {transform: skewX(10deg);} - 100% {transform: skewX(-10deg);} -} -@keyframes brewing { - 0% {color:green;} - 50% {color: transparent;} - 100% {color:green;} -} -@keyframes coffeeready { - 0% {background-color:white;} - 25% {background-color:rgb(100, 255, 100);} - 50% {background-color:white;} - 75% {background-color:rgb(100, 255, 100);} - 100% {background-color:white;} -} -@keyframes unknown { - 0%,40% {transform: rotate(0deg);} - 60%,100% {transform: rotate(360deg);} -} -@keyframes friday { - 0% {transform: rotate(0deg);} - 100% {transform: rotate(360deg);} -} -@keyframes normal { - 0%,49% {transform: rotate(0deg);} - 50%,100% {transform: rotate(360deg);} -} diff --git a/coffee_scale/static/coffee_scale/img/coffeecup3.png b/coffee_scale/static/coffee_scale/img/coffeecup3.png deleted file mode 100644 index 5170d5f..0000000 Binary files a/coffee_scale/static/coffee_scale/img/coffeecup3.png and /dev/null differ diff --git a/coffee_scale/static/coffee_scale/img/smokes.png b/coffee_scale/static/coffee_scale/img/smokes.png deleted file mode 100644 index cb19720..0000000 Binary files a/coffee_scale/static/coffee_scale/img/smokes.png and /dev/null differ diff --git a/coffee_scale/static/coffee_scale/js/coffee.js b/coffee_scale/static/coffee_scale/js/coffee.js deleted file mode 100644 index 025387d..0000000 --- a/coffee_scale/static/coffee_scale/js/coffee.js +++ /dev/null @@ -1,183 +0,0 @@ -//Inner state -var lastBrew = new Date(0); -var brewing = false; -var backoff = 2000; - -//MQTT client config -var username = "coffee-user-"+ Math.random(); -// eslint-disable-next-line no-undef -var client = new Paho.MQTT.Client("sika.sahkoinsinoorikilta.fi", 9001, username); -client.onMessageArrived = function (message) { - // eslint-disable-next-line no-console - console.log("Topic: "+message.destinationName+" msg: "+message.payloadString); - var ev = new CustomEvent(message.destinationName, {'detail': message.payloadString}); - window.dispatchEvent(ev); -} - -function reconnect(responseObject){ - if (responseObject.errorCode !== 0) { - console.log("connection lost! Reason: "+responseObject.errorMessage); // eslint-disable-line no-console - setTimeout(function(){ - client.connect({onSuccess:onConnect, useSSL:true, onFailure: reconnect}); - }, backoff); - } -} - -function onConnect() { - console.log("MQTT connected"); // eslint-disable-line no-console - //set and reset reconnector - client.onConnectionLost = reconnect - // subscribe to topics - client.subscribe("sik/kiltahuone/kahvivaaka/cups"); - client.subscribe("sik/kiltahuone/kahvivaaka/brewing"); - client.subscribe("sik/kiltahuone/kahvivaaka/brewtime"); - } - -// data update and parse functions -function parseCups(ev){ - var cups = parseFloat(ev.detail).toFixed(1) - - function makeEvent(cups) { - return (String(cups) !== '-1.0') - ? new CustomEvent("cupsChanged", {'detail': cups}) - : new CustomEvent("cupsError", {'detail': 'Error: unable to fetch cups :('}); - } - - window.dispatchEvent(makeEvent(cups)); -} -function updateCups(ev){ - $("#text").text(ev.detail); -} -function showCupsError(ev) { - $('#text').text(ev.detail); - $('#text').css({ - 'font-size': '7vh', - 'left': '0', - 'top': '40%', - 'width': '100%', - 'text-align': 'center', - 'color': 'red', - }); - $('#lower').css({'background-image': 'none'}); -} -function updateScale(ev){ - $("#scale2").css({width: Math.min(ev.detail/9*100,100) + '%'}); -} - -function tick(){ - var ev = new CustomEvent("tick", {'detail': new Date()}); - window.dispatchEvent(ev); -} - -function updateTime(ev){ - var now = ev.detail; - $("#time").html(formatTime(now.getHours(),now.getMinutes(),now.getSeconds())); -} - -function coffeeLowEffect(ev){ - ev.detail <= 2 ? $("#text").addClass("hurry") : $("#text").removeClass("hurry"); -} -function coffeeReadyEffect(){ - $("body").addClass("coffeeready"); - // autoclear animation class in 10s - setTimeout(function(){$("body").removeClass("coffeeready");}, 10000); -} -function hotEffect(ev){ - var opa = Math.max(100 - ev.detail / 90000,0); - $("#upper").css({opacity: opa/100}); -} -function brewAnimStart(){ - $(".text").addClass("brewing"); - $(".layerone").hide(); - $(".layertwo").show(); -} -function brewAnimEnd(){ - $(".text").removeClass("brewing"); - $(".layertwo").hide(); - $(".layerone").show(); -} -function brewNotifier(ev){ - var new_brewing = parseInt(ev.detail); - if (new_brewing == 1 && brewing == 0){ - window.dispatchEvent(new Event("brewStart")); - } else if (new_brewing == 0 && brewing == 1){ - window.dispatchEvent(new Event("brewEnd")); - } - brewing = new_brewing; -} -function brewTimeParser(ev){ - lastBrew = new Date(parseInt(ev.detail)*1000.0); -} -function updateBrewDiff(){ - var now = new Date(); - var timeDiff = Math.max(now.getTime() - lastBrew.getTime(), 0); - var eve = new CustomEvent("dtUpdate", {'detail': timeDiff}); - window.dispatchEvent(eve); -} -function updateBrewTime(ev){ - var timeDiff = ev.detail; - var timeStr; - if (timeDiff < 3600000){ - timeStr = Math.round(timeDiff / 60000) + ' min' - } else if (timeDiff < 10000* 3600 * 1000){ // 1000h - timeStr = '~' + Math.round(timeDiff / 3600000 * 2) / 2 + ' h'; - } else { - timeStr = "???" - } - $("#brewtime").html(timeStr); -} - -// Helpers - -function nToS(num){ - return num < 10 ? "0" + num : "" + num; -} - -function formatTime(hours, minutes, seconds){ - return nToS(hours)+":"+nToS(minutes)+":"+nToS(seconds) -} - -function resize(){ - var w = $("#container").width(); - var h = $("#container").height(); - var s = w > h ? h : w; - var font = s * 0.8 * 0.38/Math.sqrt(3); - $(".text").css({ top: s*0.16-font/2 + 'px', - fontSize: font + 'px', - marginLeft: -font*3*3/10 + 'px'}); -} - -// Init everything - -$(document).ready(function(){ - client.connect({onSuccess:onConnect, useSSL:true, onFailure:reconnect}); - - //connect MQTT event listeners - window.addEventListener("sik/kiltahuone/kahvivaaka/cups", parseCups); - window.addEventListener("sik/kiltahuone/kahvivaaka/brewing", brewNotifier); - window.addEventListener("sik/kiltahuone/kahvivaaka/brewtime", brewTimeParser); - - //connect other event listeners - window.addEventListener("cupsChanged", updateCups); - window.addEventListener("cupsChanged", coffeeLowEffect); - window.addEventListener("cupsChanged", updateScale); - window.addEventListener("cupsChanged", resize); - - window.addEventListener("cupsError", showCupsError); - window.addEventListener("cupsError", coffeeLowEffect); - window.addEventListener("cupsError", updateScale); - - window.addEventListener("brewStart", brewAnimStart); - window.addEventListener("brewEnd", brewAnimEnd); - window.addEventListener("brewEnd", coffeeReadyEffect); - window.addEventListener("tick", updateTime); - window.addEventListener("tick", updateBrewDiff); - window.addEventListener("dtUpdate", updateBrewTime); - window.addEventListener("dtUpdate", hotEffect); - - //start time based events - setInterval(tick, 100); - tick(); - -}); -$(window).resize(resize); diff --git a/coffee_scale/templates/coffee.html b/coffee_scale/templates/coffee.html deleted file mode 100644 index b4800c6..0000000 --- a/coffee_scale/templates/coffee.html +++ /dev/null @@ -1,41 +0,0 @@ -{% load i18n %} -{% load static %} - - -
-