|
本帖最后由 huyifanstar 于 2025-7-9 21:01 编辑
开关的时间、功率什么的存到mysql数据库里,grafana去查这个数据库
大致建表SQL:
CREATE TABLE `air_conditioner_log` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`room` VARCHAR(10) NOT NULL,
`switch_status` ENUM('on', 'off') NOT NULL,
`power` FLOAT DEFAULT NULL,
`timestamp` DATETIME NOT NULL
);
nodered配合插入
示例:
var mqttValue = msg.payload; // MQTT 发来的状态,比如 "on" 或 "off"
var currentPower = msg.power || 1000; // 如果你能从 msg 里拿到功率,就用,否则默认 1000W
var sqlQuery = "INSERT INTO `air_conditioner_log` (`room`, `switch_status`, `power`, `timestamp`) " +
"VALUES ('cw', '" + mqttValue + "', " + currentPower + ", NOW())";
msg.topic = sqlQuery;
return msg;
如果用到了mqtt:
var data = msg.payload;
var switchStatus = data.switch_status;
var power = data.power;
var sqlQuery = "INSERT INTO `air_conditioner_log` (`room`, `switch_status`, `power`, `timestamp`) " +
"VALUES ('cw', '" + switchStatus + "', " + power + ", NOW())";
msg.topic = sqlQuery;
return msg;
|
|