| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import Meteostanica from "../utils/meteostanica";
- import { watch } from "node:fs";
- import reloadEnv from "../utils/reloadEnv";
- let socket
- setInterval(() => {
- if (!socket) return;
- const data = Meteostanica.getData()[0]
- socket.send(JSON.stringify(data))
- console.log(`indoor: ${data.indoorTemp / 100}°C, outdoor: ${data.outdoorConnected} - ${data.outdoorTemp / 100}°C`)
- }, process.env.DATA_POST_INTERVAL * 1000)
- setInterval(() => {
- if (!socket) return;
- socket.send(process.env.BACKEND_KEEPALIVE_STRING)
- }, 10000)
- // Function to read and parse the .env file
- async function reloadData() {
- try {
- await reloadEnv()
- if (process.env.POST_DATA_ENABLED !== "false") {
- socket = new WebSocket(`${process.env.BACKEND_URL}/ws/sendData/${process.env.BACKEND_WEBSOCKET_KEY}`)
- socket.addEventListener("message", (e) => {
- console.log(e.data)
- })
- } else {
- socket = null
- }
- } catch (error) {
- console.error("Failed to reload .env:", error);
- }
- }
- // 1. Initial load
- await reloadData();
- // 2. Watch the .env file for changes
- watch(`.env`, async (event, filename) => {
- if (event === "change") {
- await reloadData();
- }
- });
|