MQTT-BenQ: Added dedicated power state topic
This commit is contained in:
parent
60fd193b35
commit
657a13a12a
1 changed files with 24 additions and 1 deletions
|
@ -44,7 +44,7 @@
|
||||||
|
|
||||||
// Timestamp for last publish
|
// Timestamp for last publish
|
||||||
long lastMsg = 0;
|
long lastMsg = 0;
|
||||||
long publishInterval = 10000;
|
long publishInterval = 5000;
|
||||||
|
|
||||||
// Global mqtt client object
|
// Global mqtt client object
|
||||||
WiFiClient espClient;
|
WiFiClient espClient;
|
||||||
|
@ -182,6 +182,28 @@ void updateLamptime() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void updatePowerState() {
|
||||||
|
// Clean input buffer
|
||||||
|
clearSerialInput();
|
||||||
|
|
||||||
|
// Write request to serial
|
||||||
|
Serial.print("\r*pow=?#\r");
|
||||||
|
delay(250);
|
||||||
|
|
||||||
|
// Extract lamp time from response
|
||||||
|
String message = Serial.readString();
|
||||||
|
int startIndex = message.lastIndexOf('=');
|
||||||
|
int endIndex = message.lastIndexOf('#');
|
||||||
|
if (startIndex != -1 && endIndex != -1) {
|
||||||
|
String state = message.substring(startIndex + 1, endIndex);
|
||||||
|
if (state.equalsIgnoreCase("off")) {
|
||||||
|
client.publish(mqtt_topic_powerState, "0");
|
||||||
|
} else if (state.equalsIgnoreCase("on")) {
|
||||||
|
client.publish(mqtt_topic_powerState, "1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
// Check OTA update
|
// Check OTA update
|
||||||
ArduinoOTA.handle();
|
ArduinoOTA.handle();
|
||||||
|
@ -199,5 +221,6 @@ void loop() {
|
||||||
if (now - lastMsg > publishInterval) {
|
if (now - lastMsg > publishInterval) {
|
||||||
lastMsg = now;
|
lastMsg = now;
|
||||||
updateLamptime();
|
updateLamptime();
|
||||||
|
updatePowerState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue