feat(mock): Script fetchAnalogInputsData auf ES-Module (.mjs) umgestellt, Datum automatisch gesetzt

This commit is contained in:
ISA
2025-07-21 14:21:38 +02:00
parent 30d396896d
commit 697cae9848
31 changed files with 195526 additions and 63674 deletions

View File

@@ -0,0 +1,69 @@
// Script zum Aktualisieren der Mockdaten für analoge Eingänge von CPL-Gerät
// Benötigt: node-fetch und fs/promises
// npm install node-fetch
// In package.json: "type": "module"
import fetch from "node-fetch";
import fs from "fs/promises";
import path from "path";
import { fileURLToPath } from "url";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const CPL_HOST = "http://10.10.0.118"; // ggf. anpassen
const USERNAME = "Littwin";
const PASSWORD = "Littwin";
const DIA_TYPES = ["DIA0", "DIA1", "DIA2"];
const INPUTS = Array.from({ length: 8 }, (_, i) => 100 + i); // 100-107
function formatDate(date) {
return date.toISOString().slice(0, 10);
}
const today = new Date();
const TO_DATE = formatDate(today);
const fromDateObj = new Date(today);
fromDateObj.setDate(today.getDate() - 30);
const FROM_DATE = formatDate(fromDateObj);
function getUrl(dia, eingang) {
const [vonJahr, vonMonat, vonTag] = FROM_DATE.split("-");
const [bisJahr, bisMonat, bisTag] = TO_DATE.split("-");
// immer Typ 1 (analoger Messwert)
return `${CPL_HOST}/CPL?seite.ACP&${dia}=${vonJahr};${vonMonat};${vonTag};${bisJahr};${bisMonat};${bisTag};${eingang};1`;
}
async function fetchAndSave(dia, eingang) {
const url = getUrl(dia, eingang);
console.log("Fetch:", url);
const res = await fetch(url, {
headers: {
Authorization:
"Basic " + Buffer.from(`${USERNAME}:${PASSWORD}`).toString("base64"),
},
});
if (!res.ok)
throw new Error(`Fehler bei Eingang ${eingang} ${dia}: ${res.status}`);
const data = await res.json();
const dir = path.join(
__dirname,
"../device-cgi-simulator/chartsData/analogInputs",
String(eingang - 99)
);
await fs.mkdir(dir, { recursive: true });
await fs.writeFile(
path.join(dir, `${dia}.json`),
JSON.stringify(data, null, 2)
);
}
(async () => {
for (const eingang of INPUTS) {
for (const dia of DIA_TYPES) {
try {
await fetchAndSave(dia, eingang);
} catch (e) {
console.error(e);
}
}
}
console.log("Mockdaten aktualisiert.");
})();