Compare commits
2 Commits
d0940d7bc1
...
259700a1b5
Author | SHA1 | Date | |
---|---|---|---|
259700a1b5 | |||
2ef1e9320a |
@ -1,25 +1,40 @@
|
||||
export class State {
|
||||
constructor() {
|
||||
this.publisher = 'front';
|
||||
return this;
|
||||
};
|
||||
this.igniter = {
|
||||
on: false,
|
||||
topic: 'hestia/status/igniter',
|
||||
publisher: 'front',
|
||||
power: (communicator) => {
|
||||
// This *should* toggle the state, asks if state is true, if it is set it false, otherwise set it true
|
||||
this.igniter.on ? this.igniter.on = false : this.igniter.on = true;
|
||||
communicator.send('hestia/status/igniter', JSON.stringify(this));
|
||||
}
|
||||
};
|
||||
|
||||
init(config) {
|
||||
config.mqtt.subscriptions.forEach(sub => {
|
||||
this[sub.name] = {
|
||||
on: false,
|
||||
topic: sub.topic,
|
||||
publisher: 'front',
|
||||
power: (communicator) => {
|
||||
// This *should* toggle the state, asks if state is true, if it is set it false, otherwise set it true
|
||||
this[sub.name].on ? this[sub.name].on = false : this[sub.name].on = true;
|
||||
communicator.send(sub.topic, JSON.stringify(this));
|
||||
}
|
||||
};
|
||||
console.log(`${sub.name} initialized.`)
|
||||
});
|
||||
this.exhaust = {
|
||||
on: false,
|
||||
topic: 'hestia/status/exhaust',
|
||||
publisher: 'front',
|
||||
power: (communicator) => {
|
||||
// This *should* toggle the state, asks if state is true, if it is set it false, otherwise set it true
|
||||
this.exhaust.on ? this.exhaust.on = false : this.exhaust.on = true;
|
||||
communicator.send('hestia/status/exhaust', JSON.stringify(this));
|
||||
}
|
||||
};
|
||||
|
||||
this.auger = {
|
||||
on: false,
|
||||
feedRate: 500,
|
||||
topic: 'hestia/status/auger',
|
||||
publisher: 'front',
|
||||
power: (communicator) => {
|
||||
// This *should* toggle the state, asks if state is true, if it is set it false, otherwise set it true
|
||||
this.auger.on ? this.auger.on = false : this.auger.on = true;
|
||||
communicator.send('hestia/status/auger', JSON.stringify(this));
|
||||
}
|
||||
};
|
||||
console.log(`State initialized.`)
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
export class Communicator {
|
||||
@ -40,11 +55,10 @@ export class Communicator {
|
||||
client.on('connect', () => {
|
||||
console.log('Connected to MQTT broker');
|
||||
// Subscribe to status topics
|
||||
config.mqtt.subscriptions.forEach(sub => {
|
||||
client.subscribe(sub.topic, (err) => {
|
||||
state.forEach(element => {
|
||||
client.subscribe(element.topic, (err) => {
|
||||
if (!err) {
|
||||
console.log(`Subscribed to ${sub.topic}`);
|
||||
state[sub.name].topic = sub.topic;
|
||||
console.log(`Subscribed to ${element.topic}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -5,21 +5,7 @@ const config = {
|
||||
"mqtt": {
|
||||
"address": "wss://mqtt.3411.one",
|
||||
"username": "hestia",
|
||||
"password": "hestia",
|
||||
"subscriptions": [
|
||||
{
|
||||
"name": "igniter",
|
||||
"topic": "hestia/status/igniter"
|
||||
},
|
||||
{
|
||||
"name": "exhaust",
|
||||
"topic": "hestia/status/exhaust"
|
||||
},
|
||||
{
|
||||
"name": "auger",
|
||||
"topic": "hestia/status/auger"
|
||||
}
|
||||
]
|
||||
"password": "hestia"
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -76,10 +76,9 @@
|
||||
<img src="./assets/dancing_jesus.gif" class="img-fluid mx-auto rounded-lg shadow-lg" alt="Dancing Jesus">
|
||||
</div>
|
||||
|
||||
<div class="controls-container bg-gray-800 p-6 rounded-lg shadow-lg hidden" id="quitContainer">
|
||||
<form action="/" method="POST">
|
||||
<input class="btn bg-red-600 hover:bg-red-700 text-white py-2 px-4 rounded w-full" type="submit" id="quit" value="Quit!!" name="quit">
|
||||
</form>
|
||||
<div class="controls-container bg-gray-800 p-6 rounded-lg shadow-lg" id="quitContainer">
|
||||
<input class="btn bg-green-200 hover:bg-green-400 text-black font-bold py-2 px-4 rounded w-full" type="submit" id="reload" value="Refresh State" name="refresh">
|
||||
<input class="btn bg-red-600 hover:bg-red-700 text-white py-2 font-bold rounded w-full mt-4" type="submit" id="quit" value="Quit!!" name="quit">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
Loading…
Reference in New Issue
Block a user