Set up manifest and basic mqtt connection to adafruit io

This commit is contained in:
Dennis Schoepf 2020-11-23 12:49:29 +01:00
parent f3f8012ce3
commit 4f38af0a13
7 changed files with 7381 additions and 1 deletions

36
src/background/api.js Normal file
View file

@ -0,0 +1,36 @@
import mqtt from "mqtt";
const mqttHeartbeatTopic = "dennissc/feeds/heartbeat/json";
const mqttTiltTopic = "dennissc/feeds/tilt-sensor/json";
const mqttEdnpoint = process.env.AIO_ENDPOINT;
const mqttOptions = {
port: Number(process.env.AIO_PORT),
username: process.env.AIO_USERNAME,
password: process.env.AIO_KEY,
};
const client = mqtt.connect("mqtt://io.adafruit.com", mqttOptions);
export function subscribeToAllSensors({ onHeartbeat, onTilt }) {
client.on("connect", () => {
client.subscribe(mqttHeartbeatTopic);
client.subscribe(mqttTiltTopic);
});
client.on("error", (error) => {
console.log("MQTT Client Errored");
console.log(error);
});
client.on("message", (topic, message) => {
if (topic === mqttHeartbeatTopic) {
const parsedMessage = JSON.parse(message.toString());
onHeartbeat(parsedMessage);
}
if (topic === mqttTiltTopic) {
const parsedMessage = JSON.parse(message.toString());
onTilt(parsedMessage);
}
});
}

11
src/background/index.js Normal file
View file

@ -0,0 +1,11 @@
import { subscribeToAllSensors } from "./api";
import dotenv from "dotenv";
dotenv.config();
chrome.runtime.onInstalled.addListener(() => {
subscribeToAllSensors({
onHeartbeat: (heartbeatData) => console.log(heartbeatData),
onTilt: (tiltData) => console.log(tiltData),
});
});

View file

1
src/frontend/index.js Normal file
View file

@ -0,0 +1 @@
console.log("Frontend registered");