Fix: Convert boolean relay values to integer for MySQL database

- Fixed relay status saving issue where all relays showed 0 in database
- Added explicit boolean to integer conversion (true->1, false->0)
- Applied to relay1, relay2, relay3, relay4 columns
- MySQL BOOLEAN columns are stored as TINYINT(1) requiring numeric values
This commit is contained in:
flems 2026-06-25 09:38:26 +07:00
parent bee56e2cd0
commit ef9a79df9e
1 changed files with 10 additions and 4 deletions

View File

@ -147,6 +147,12 @@ async function insertSensorData(data) {
mysqlTimestamp = date.toISOString().slice(0, 19).replace('T', ' ');
}
// Convert boolean to integer (1 or 0) for MySQL
const relay1 = data.relay1 ? 1 : 0;
const relay2 = data.relay2 ? 1 : 0;
const relay3 = data.relay3 ? 1 : 0;
const relay4 = data.relay4 ? 1 : 0;
const [result] = await pool.query(
`INSERT INTO sensor_data (suhu, berat, target, relay1, relay2, relay3, relay4, status, timestamp)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
@ -154,10 +160,10 @@ async function insertSensorData(data) {
data.suhu || 0,
data.berat || 0,
data.target || 0,
data.relay1 || false,
data.relay2 || false,
data.relay3 || false,
data.relay4 || false,
relay1,
relay2,
relay3,
relay4,
data.status || 'DISCONNECTED',
mysqlTimestamp
]