From d19b4cd310f2f0ca324f8e0b0e6d1b91a0d1e043 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amar=20Piv=C4=8Di=C4=87?=
<62640406+AmarPivcic@users.noreply.github.com>
Date: Fri, 17 Nov 2023 12:24:35 +0100
Subject: [PATCH] Initial upload of files
---
index.html | 29 +++++++++
index.js | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++
style.css | 4 ++
3 files changed, 201 insertions(+)
create mode 100644 index.html
create mode 100644 index.js
create mode 100644 style.css
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..7bff0e0
--- /dev/null
+++ b/index.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ Smart Heating
+
+
+
+
+
+
+
+
+
+
+
+
Auto Mode:
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..42a5ef5
--- /dev/null
+++ b/index.js
@@ -0,0 +1,168 @@
+import { initializeApp } from "https://www.gstatic.com/firebasejs/10.5.2/firebase-app.js";
+
+const firebaseConfig = {
+ apiKey: "AIzaSyBN53IxSp887GFfnfqTtjnVV6i01cT0spo",
+ authDomain: "smart-heating-11b6f.firebaseapp.com",
+ databaseURL: "https://smart-heating-11b6f-default-rtdb.europe-west1.firebasedatabase.app",
+ projectId: "smart-heating-11b6f",
+ storageBucket: "smart-heating-11b6f.appspot.com",
+ messagingSenderId: "998820917243",
+ appId: "1:998820917243:web:d823e09c995cdece85a55e"
+};
+
+const app = initializeApp(firebaseConfig);
+
+import {
+ getDatabase,
+ ref,
+ child,
+ update,
+ set,
+ get,
+ } from "https://www.gstatic.com/firebasejs/10.5.2/firebase-database.js";
+
+ const db = getDatabase();
+
+ var temperature = document.getElementById("temperature");
+ var humidity = document.getElementById("humidity");
+ var setting = document.getElementById("setting");
+ var dec = document.getElementById("dec");
+ var inc = document.getElementById("inc");
+ var modeBtn = document.getElementById("modeToggle");
+ var modeTxt = document.getElementById("modeText");
+ var wantedTemp = document.getElementById("wantedTemp");
+ var decTemp = document.getElementById("decTemp");
+ var incTemp = document.getElementById("incTemp");
+
+ inc.addEventListener("click", increase);
+ dec.addEventListener("click", decrease);
+ incTemp.addEventListener("click", increaseTemp);
+ decTemp.addEventListener("click", decreaseTemp);
+ modeBtn.addEventListener("click", changeMode);
+ wantedTemp.addEventListener("change", newTemp);
+
+ function newSetting() {
+ update(ref(db, "values/"), {
+ setting: parseInt(setting.value),
+ })
+ .catch((error) => {
+ alert("error" + error);
+ });
+ }
+
+ function changeMode() {
+ if(modeTxt.innerHTML=="ON")
+ {
+ update(ref(db, "values/"), {
+ auto: parseInt(0),
+ })
+ .catch((error) => {
+ alert("error" + error);
+ });
+ }
+
+ else
+ {
+ update(ref(db, "values/"), {
+ auto: parseInt(1),
+ })
+ .catch((error) => {
+ alert("error" + error);
+ });
+ }
+ }
+
+ function newTemp(){
+ update(ref(db, "values/"), {
+ wantedtemp: parseInt(wantedTemp.value),
+ })
+ .catch((error) => {
+ alert("error" + error);
+ });
+ }
+
+ function checkMode()
+ {
+ if(modeTxt.innerHTML=="ON")
+ {
+ inc.disabled=true;
+ dec.disabled=true;
+ incTemp.disabled=false;
+ decTemp.disabled=false;
+ }
+
+ else{
+ inc.disabled=false;
+ dec.disabled=false;
+ incTemp.disabled=true;
+ decTemp.disabled=true;
+ }
+ }
+
+
+ function Load() {
+ const dbRef = ref(db);
+
+ get(child(dbRef, "values/")).then((snapshot)=>{
+ if(snapshot.exists()) {
+ temperature.innerHTML = "Temperature: " + snapshot.val().temp +" °C";
+ humidity.innerHTML = "Humidity: " + snapshot.val().hum +"%";
+ setting.value = snapshot.val().setting;
+ wantedTemp.value = snapshot.val().wantedtemp;
+ if(snapshot.val().auto == 1)
+ {
+ modeTxt.innerHTML = "ON";
+ }
+ else
+ {
+ modeTxt.innerHTML = "OFF";
+ }
+ }
+ else {
+ console.log("No data available");
+ }
+ }).catch((error) => {
+ console.error(error);
+ });
+ checkMode();
+ }
+
+ function decrease()
+ {
+ if(setting.value>0)
+ {
+ setting.value--;
+ }
+ newSetting();
+ }
+
+ function increase()
+ {
+ if(setting.value<6)
+ {
+ setting.value++;
+ }
+ newSetting();
+ }
+
+ function decreaseTemp()
+ {
+ if(wantedTemp.value>18)
+ {
+ wantedTemp.value--;
+ }
+ newTemp();
+ }
+
+ function increaseTemp()
+ {
+ if(wantedTemp.value<32)
+ {
+ wantedTemp.value++;
+ }
+ newTemp();
+ }
+
+ Load();
+ window.setInterval(Load, 500);
+
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..b527a41
--- /dev/null
+++ b/style.css
@@ -0,0 +1,4 @@
+*{
+ padding: 0;
+ margin: 0;
+}
\ No newline at end of file