From b1459fcbd05a012f474c7464f42a72e82de0f51d Mon Sep 17 00:00:00 2001 From: GeorgeWebberley Date: Tue, 27 Jan 2026 20:38:29 +0100 Subject: [PATCH] Fixed js script --- fetcher/index.js | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/fetcher/index.js b/fetcher/index.js index 7740e89..4a3b1fe 100644 --- a/fetcher/index.js +++ b/fetcher/index.js @@ -11,13 +11,8 @@ const writeApi = client.getWriteApi(org, bucket); async function fetchSurfData() { try { - // Change these coordinates to your local beach! - // These are for Bondi Beach, Sydney as an example. - const lat = -33.89; - const lon = 151.27; - console.log("🌊 Fetching latest swell data..."); - const response = await axios.get(`https://marine-api.open-meteo.com/v1/marine?latitude=${lat}&longitude=${lon}¤t=swell_wave_height,swell_wave_period`); + const response = await axios.get(`https://marine-api.open-meteo.com/v1/marine?latitude=-33.89&longitude=151.27¤t=swell_wave_height,swell_wave_period`); const swellHeight = response.data.current.swell_wave_height; const swellPeriod = response.data.current.swell_wave_period; @@ -27,16 +22,26 @@ async function fetchSurfData() { .floatField('swell_height', swellHeight) .floatField('swell_period', swellPeriod); - writeApi.writePoint(point); - // Important: Flush the buffer to ensure data is sent - await writeApi.flush(); + console.log(`📡 Sending to InfluxDB: ${swellHeight}m...`); - console.log(`✅ Sent: ${swellHeight}m at ${swellPeriod}s`); + // Write and explicitly flush + writeApi.writePoint(point); + await writeApi.flush(); + + console.log(`✅ Success! Data persisted.`); } catch (error) { - console.error("❌ Fetch error:", error.message); + // If it's a connection error, let's be descriptive + if (error.code === 'ECONNREFUSED') { + console.error("❌ Database is not ready yet. Retrying in the next cycle..."); + } else { + console.error("❌ Fetch error:", error.message); + } } } -// Fetch every hour -setInterval(fetchSurfData, 1000 * 60 * 60); -fetchSurfData(); \ No newline at end of file +// 10 second delay for the very first run to let InfluxDB boot up +console.log("⏳ Fetcher started. Waiting 10s for DB initialization..."); +setTimeout(fetchSurfData, 10000); + +// Then run every hour +setInterval(fetchSurfData, 1000 * 60 * 60); \ No newline at end of file