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', ' '); 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( const [result] = await pool.query(
`INSERT INTO sensor_data (suhu, berat, target, relay1, relay2, relay3, relay4, status, timestamp) `INSERT INTO sensor_data (suhu, berat, target, relay1, relay2, relay3, relay4, status, timestamp)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
@ -154,10 +160,10 @@ async function insertSensorData(data) {
data.suhu || 0, data.suhu || 0,
data.berat || 0, data.berat || 0,
data.target || 0, data.target || 0,
data.relay1 || false, relay1,
data.relay2 || false, relay2,
data.relay3 || false, relay3,
data.relay4 || false, relay4,
data.status || 'DISCONNECTED', data.status || 'DISCONNECTED',
mysqlTimestamp mysqlTimestamp
] ]