This commit is contained in:
sebseb7
2025-12-21 05:17:45 +01:00
parent 077e033d2e
commit 0ff69b70e4

View File

@@ -535,6 +535,7 @@ function evaluateAlarms(readings, outputChanges = []) {
} }
// 2. Sensor Triggers (Existing Logic) // 2. Sensor Triggers (Existing Logic)
let sensorDetails = []; // Track sensor values for logging
if (!triggered && trigger.sensors && trigger.sensors.length > 0) { if (!triggered && trigger.sensors && trigger.sensors.length > 0) {
const results = trigger.sensors.map(cond => { const results = trigger.sensors.map(cond => {
const sensorId = cond.sensor; const sensorId = cond.sensor;
@@ -546,7 +547,10 @@ function evaluateAlarms(readings, outputChanges = []) {
const type = parts.length === 2 ? parts[1] : parts[2]; const type = parts.length === 2 ? parts[1] : parts[2];
const reading = readings.find(r => r.devName === devName); const reading = readings.find(r => r.devName === devName);
if (!reading) return false; if (!reading) {
sensorDetails.push({ sensor: sensorId, value: 'NO_READING', operator, threshold });
return false;
}
let value = null; let value = null;
if (type === 'temp') value = reading.temp_c; if (type === 'temp') value = reading.temp_c;
@@ -557,6 +561,9 @@ function evaluateAlarms(readings, outputChanges = []) {
if (p) value = p.speak; if (p) value = p.speak;
} }
// Track the sensor value for logging
sensorDetails.push({ sensor: sensorId, value: value, operator, threshold });
if (value === null || value === undefined) return false; if (value === null || value === undefined) return false;
switch (operator) { switch (operator) {
@@ -577,10 +584,17 @@ function evaluateAlarms(readings, outputChanges = []) {
} }
if (triggered) { if (triggered) {
console.log(`ALARM TRIGGERED: ${alarm.name}`); // Build detailed sensor info string
const sensorInfo = sensorDetails.map(s =>
`${s.sensor}: ${s.value === null ? 'NULL' : s.value === 'NO_READING' ? 'NO_READING' : s.value} (${s.operator} ${s.threshold})`
).join(', ');
console.log(`ALARM TRIGGERED: ${alarm.name} | Sensors: ${sensorInfo}`);
alarmStates.set(alarm.id, Date.now()); alarmStates.set(alarm.id, Date.now());
const action = JSON.parse(alarm.action_data); const action = JSON.parse(alarm.action_data);
const msg = `🚨 ALARM: ${alarm.name}\n\n${action.message || 'No message'}`; const msg = `🚨 ALARM: ${alarm.name}\n\n${action.message || 'No message'}\n\n📊 Sensor Values:\n${sensorDetails.map(s =>
`${s.sensor}: ${s.value === null ? 'NULL' : s.value === 'NO_READING' ? 'NO_READING' : s.value} (threshold: ${s.operator} ${s.threshold})`
).join('\n')}`;
sendTelegramNotification(msg); sendTelegramNotification(msg);
} }
} catch (err) { } catch (err) {