mirror of
https://github.com/Lomanic/presence-button
synced 2024-11-22 05:17:30 +00:00
Notify if the hackerspace is open or not to presence-button.glitch.me using HTTP polling
This commit is contained in:
parent
fa476a75d5
commit
450fdfcddf
26
main.ino
26
main.ino
@ -205,7 +205,6 @@ void handleRoot() {
|
|||||||
String("<!DOCTYPE HTML><html>") +
|
String("<!DOCTYPE HTML><html>") +
|
||||||
"<head><meta charset=utf-8><title>presence</title></head><body>" +
|
"<head><meta charset=utf-8><title>presence</title></head><body>" +
|
||||||
"<a href='/admin'>Admin</a><br>" +
|
"<a href='/admin'>Admin</a><br>" +
|
||||||
"<a href='/fuzisopen'>fuzisopen API</a><br><br>" +
|
|
||||||
"Rotating light: " + String(digitalRead(RELAY_PIN) == HIGH) + "<br>" +
|
"Rotating light: " + String(digitalRead(RELAY_PIN) == HIGH) + "<br>" +
|
||||||
"Fuz is open: " + String(fuzIsOpen) + "<br>" +
|
"Fuz is open: " + String(fuzIsOpen) + "<br>" +
|
||||||
"</body></html>";
|
"</body></html>";
|
||||||
@ -228,6 +227,13 @@ void handleAdmin() {
|
|||||||
fuzIsOpen = true;
|
fuzIsOpen = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (httpServer.argName(i) == "resetesp") {
|
||||||
|
httpServer.sendHeader("Location", httpServer.uri(), true);
|
||||||
|
httpServer.send(302, "text/plain", "");
|
||||||
|
delay(500);
|
||||||
|
ESP.reset();
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (httpServer.method() == HTTP_POST) {
|
if (httpServer.method() == HTTP_POST) {
|
||||||
@ -267,7 +273,7 @@ void handleAdmin() {
|
|||||||
configFile.close();
|
configFile.close();
|
||||||
}
|
}
|
||||||
if (httpServer.args() > 0 || httpServer.method() == HTTP_POST) { // trim GET parameters and prevent resubmiting same form on refresh
|
if (httpServer.args() > 0 || httpServer.method() == HTTP_POST) { // trim GET parameters and prevent resubmiting same form on refresh
|
||||||
httpServer.sendHeader("Location", String("/admin"), true);
|
httpServer.sendHeader("Location", httpServer.uri(), true);
|
||||||
return httpServer.send(302, "text/plain", "");
|
return httpServer.send(302, "text/plain", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -275,7 +281,8 @@ void handleAdmin() {
|
|||||||
String("<!DOCTYPE HTML><html>") +
|
String("<!DOCTYPE HTML><html>") +
|
||||||
"<head><meta charset=utf-8><title>presence admin</title></head><body>" +
|
"<head><meta charset=utf-8><title>presence admin</title></head><body>" +
|
||||||
(digitalRead(RELAY_PIN) == HIGH ? "<a href='?disablerotatinglight'>Disable rotating light</a>" : "<a href='?enablerotatinglight'>Enable rotating light</a>") + "<br>" +
|
(digitalRead(RELAY_PIN) == HIGH ? "<a href='?disablerotatinglight'>Disable rotating light</a>" : "<a href='?enablerotatinglight'>Enable rotating light</a>") + "<br>" +
|
||||||
(fuzIsOpen ? "" : "<a href='?setfuzisopen'>Set Fuz as open</a>") + "<br><br>" +
|
(fuzIsOpen ? "" : "<a href='?setfuzisopen'>Set Fuz as open</a>") + "<br>" +
|
||||||
|
"<a href='?resetesp'>Reboot ESP</a>" + "<br><br>" +
|
||||||
"<form method='post'>" +
|
"<form method='post'>" +
|
||||||
"<div><label for='matrixUsername'>matrixUsername </label><input name='matrixUsername' id='matrixUsername' value='" + matrixUsername + "'></div>" +
|
"<div><label for='matrixUsername'>matrixUsername </label><input name='matrixUsername' id='matrixUsername' value='" + matrixUsername + "'></div>" +
|
||||||
"<div><label for='matrixPassword'>matrixPassword </label><input name='matrixPassword' id='matrixPassword' value='" + matrixPassword + "'></div>" +
|
"<div><label for='matrixPassword'>matrixPassword </label><input name='matrixPassword' id='matrixPassword' value='" + matrixPassword + "'></div>" +
|
||||||
@ -285,9 +292,6 @@ void handleAdmin() {
|
|||||||
"</body></html>";
|
"</body></html>";
|
||||||
httpServer.send(200, "text/html", html);
|
httpServer.send(200, "text/html", html);
|
||||||
}
|
}
|
||||||
void handleFuzIsOpen() {
|
|
||||||
httpServer.send(200, "text/plain", String(fuzIsOpen));
|
|
||||||
}
|
|
||||||
void handleNotFound() {
|
void handleNotFound() {
|
||||||
httpServer.send(404, "text/plain", httpServer.uri() + " not found");
|
httpServer.send(404, "text/plain", httpServer.uri() + " not found");
|
||||||
}
|
}
|
||||||
@ -316,6 +320,14 @@ void morseSOSLED() { // ... ___ ...
|
|||||||
delay(500);
|
delay(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void notifyFuzIsOpen() {
|
||||||
|
HTTPClient http;
|
||||||
|
http.begin("http://presence-button.glitch.me/status?fuzisopen=" + String(fuzIsOpen));
|
||||||
|
http.setAuthorization(matrixUsername.c_str(), matrixPassword.c_str());
|
||||||
|
http.GET();
|
||||||
|
Serial.println("GET status body: " + http.getString());
|
||||||
|
}
|
||||||
|
|
||||||
bool loggedInMatrix = false;
|
bool loggedInMatrix = false;
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
@ -475,7 +487,6 @@ void setup() {
|
|||||||
|
|
||||||
httpServer.on("/", handleRoot);
|
httpServer.on("/", handleRoot);
|
||||||
httpServer.on("/admin", handleAdmin);
|
httpServer.on("/admin", handleAdmin);
|
||||||
httpServer.on("/fuzisopen", handleFuzIsOpen);
|
|
||||||
httpServer.onNotFound(handleNotFound);
|
httpServer.onNotFound(handleNotFound);
|
||||||
httpServer.begin();
|
httpServer.begin();
|
||||||
Serial.println("HTTP server started");
|
Serial.println("HTTP server started");
|
||||||
@ -525,6 +536,7 @@ void loop() {
|
|||||||
digitalWrite(RELAY_PIN, HIGH);
|
digitalWrite(RELAY_PIN, HIGH);
|
||||||
mentionedOnMatrix = false;
|
mentionedOnMatrix = false;
|
||||||
}
|
}
|
||||||
|
notifyFuzIsOpen();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool relayState = digitalRead(RELAY_PIN);
|
bool relayState = digitalRead(RELAY_PIN);
|
||||||
|
Loading…
Reference in New Issue
Block a user