mirror of
https://github.com/zzzzDev4/IAS-Better-Tea.git
synced 2025-04-21 07:31:20 +02:00
Adjusted to updated backend
This commit is contained in:
parent
11287e21e6
commit
30294c3371
3 changed files with 86 additions and 25 deletions
|
@ -126,19 +126,72 @@ JSONVar TeaNetworking::httpsPOSTRequest(String serverName, String data)
|
||||||
return JSON.parse(payload);
|
return JSON.parse(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
String TeaNetworking::bundleNewTeaInfo(String rfidCode, int steepigSeconds) {
|
JSONVar TeaNetworking::httpsPUTRequest(String serverName, String data)
|
||||||
|
{
|
||||||
|
WiFiClientSecure client;
|
||||||
|
String payload = "{}";
|
||||||
|
|
||||||
|
// wait for WiFi connection
|
||||||
|
if ((WiFi.status() == WL_CONNECTED))
|
||||||
|
{
|
||||||
|
// Create a list of certificates with the server certificate
|
||||||
|
X509List cert(IRG_Root_X1);
|
||||||
|
client.setTrustAnchors(&cert);
|
||||||
|
HTTPClient http;
|
||||||
|
Serial.print("[HTTPS] begin...\n");
|
||||||
|
// http.setFollowRedirects(HTTPC_FORCE_FOLLOW_REDIRECTS);
|
||||||
|
if (http.begin(client, serverName))
|
||||||
|
{ // HTTPS
|
||||||
|
// Send HTTPS PUT request
|
||||||
|
http.addHeader("Content-Type", "application/json");
|
||||||
|
int httpCode = http.PUT(data);
|
||||||
|
// httpCode will be negative on error
|
||||||
|
if (httpCode > 0)
|
||||||
|
{
|
||||||
|
// HTTP header has been send and Server response header has been handled
|
||||||
|
Serial.printf("[HTTPS] PUT... code: %d\n", httpCode);
|
||||||
|
payload = http.getString();
|
||||||
|
Serial.println(payload);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Serial.printf("[HTTPS] PUT... failed, error: %s\n", http.errorToString(httpCode).c_str());
|
||||||
|
}
|
||||||
|
http.end();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Serial.printf("[HTTPS] Unable to connect\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return JSON.parse(payload);
|
||||||
|
}
|
||||||
|
|
||||||
|
String TeaNetworking::bundleNewTeaInfo(String rfidCode, int steepigSeconds)
|
||||||
|
{
|
||||||
JSONVar bundle;
|
JSONVar bundle;
|
||||||
bundle["rfid_code"] = rfidCode;
|
bundle["rfid_code"] = rfidCode;
|
||||||
bundle["steeping_seconds"] = steepigSeconds;
|
bundle["steeping_seconds"] = steepigSeconds;
|
||||||
return JSONVar::stringify(bundle);
|
return JSONVar::stringify(bundle);
|
||||||
}
|
}
|
||||||
|
|
||||||
String TeaNetworking::bundleSteepingTimeChange(int steepigSeconds) {
|
String TeaNetworking::bundleSteepingTimeLogEntry(int steepigSeconds)
|
||||||
|
{
|
||||||
JSONVar bundle;
|
JSONVar bundle;
|
||||||
bundle["new_steeping_seconds"] = steepigSeconds;
|
bundle["new_steeping_seconds"] = steepigSeconds;
|
||||||
return JSONVar::stringify(bundle);
|
return JSONVar::stringify(bundle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String TeaNetworking::bundleTeaMetaChange(String teaName, String teaNotes, int waterTemp, int steepingSeconds)
|
||||||
|
{
|
||||||
|
JSONVar bundle;
|
||||||
|
bundle["tea_name"] = teaName;
|
||||||
|
bundle["tea_notes"] = teaNotes;
|
||||||
|
bundle["water_temp"] = waterTemp;
|
||||||
|
bundle["steeping_seconds"] = steepingSeconds;
|
||||||
|
return JSONVar::stringify(bundle);
|
||||||
|
}
|
||||||
|
|
||||||
String TeaNetworking::createTeaData(
|
String TeaNetworking::createTeaData(
|
||||||
String teaName,
|
String teaName,
|
||||||
String rfidCode,
|
String rfidCode,
|
||||||
|
|
|
@ -12,6 +12,7 @@ public:
|
||||||
void init(const char *ssid, const char *password);
|
void init(const char *ssid, const char *password);
|
||||||
JSONVar httpsGETRequest(String serverName);
|
JSONVar httpsGETRequest(String serverName);
|
||||||
JSONVar httpsPOSTRequest(String serverName, String data);
|
JSONVar httpsPOSTRequest(String serverName, String data);
|
||||||
|
JSONVar httpsPUTRequest(String serverName, String data);
|
||||||
bool wifiConnected() { return WiFi.status() == WL_CONNECTED; }
|
bool wifiConnected() { return WiFi.status() == WL_CONNECTED; }
|
||||||
String createTeaData(
|
String createTeaData(
|
||||||
String teaname,
|
String teaname,
|
||||||
|
@ -20,5 +21,6 @@ public:
|
||||||
int steepingseconds);
|
int steepingseconds);
|
||||||
String createTeaData(TeaData tea);
|
String createTeaData(TeaData tea);
|
||||||
String bundleNewTeaInfo(String rfidCode, int steepigSeconds);
|
String bundleNewTeaInfo(String rfidCode, int steepigSeconds);
|
||||||
String bundleSteepingTimeChange(int steepigSeconds);
|
String bundleTeaMetaChange(String teaName, String teaNotes, int waterTemp, int steepingSeconds);
|
||||||
|
String bundleSteepingTimeLogEntry(int steepigSeconds);
|
||||||
};
|
};
|
50
src/main.cpp
50
src/main.cpp
|
@ -281,11 +281,12 @@ void loop()
|
||||||
if (millis() >= timeoutTime)
|
if (millis() >= timeoutTime)
|
||||||
{
|
{
|
||||||
// we still want to save the last configuration (treated as perfect, no steeping time change)
|
// we still want to save the last configuration (treated as perfect, no steeping time change)
|
||||||
String payload = teaNet.bundleSteepingTimeChange(currentTea.m_steepingSeconds);
|
String steeepingTimePayload = teaNet.bundleSteepingTimeLogEntry(currentTea.m_steepingSeconds);
|
||||||
Serial.println(payload);
|
String teaMetaPayload = teaNet.bundleTeaMetaChange(currentTea.m_teaName, currentTea.m_teaNotes, currentTea.m_waterTemp, currentTea.m_steepingSeconds);
|
||||||
|
Serial.println(steeepingTimePayload);
|
||||||
smartDisplay.playTeaAnimationPartOne(32, "", "Loading...", "", "");
|
smartDisplay.playTeaAnimationPartOne(32, "", "Loading...", "", "");
|
||||||
JSONVar res = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time-log/" + currentTea.m_id, payload);
|
JSONVar res = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time-log/" + currentTea.m_id, steeepingTimePayload);
|
||||||
JSONVar res2 = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time/" + currentTea.m_id, payload);
|
JSONVar res2 = teaNet.httpsPUTRequest(shuttleServer + "/types-of-tea/" + currentTea.m_id, teaMetaPayload);
|
||||||
// catch possible failure
|
// catch possible failure
|
||||||
if (res == JSON.parse("{}"))
|
if (res == JSON.parse("{}"))
|
||||||
{
|
{
|
||||||
|
@ -309,12 +310,15 @@ void loop()
|
||||||
String uid = smartRFID.readTag(50); // just enough time to detect tag
|
String uid = smartRFID.readTag(50); // just enough time to detect tag
|
||||||
if (uid != "no_tag_detected" && uid != "")
|
if (uid != "no_tag_detected" && uid != "")
|
||||||
{
|
{
|
||||||
|
|
||||||
// we still want to save the last configuration (treated as perfect, no steeping time change)
|
// we still want to save the last configuration (treated as perfect, no steeping time change)
|
||||||
String payload = teaNet.bundleSteepingTimeChange(currentTea.m_steepingSeconds);
|
String steeepingTimePayload = teaNet.bundleSteepingTimeLogEntry(currentTea.m_steepingSeconds);
|
||||||
Serial.println(payload);
|
String teaMetaPayload = teaNet.bundleTeaMetaChange(currentTea.m_teaName, currentTea.m_teaNotes, currentTea.m_waterTemp, currentTea.m_steepingSeconds);
|
||||||
|
Serial.println(steeepingTimePayload);
|
||||||
smartDisplay.playTeaAnimationPartOne(32, "", "Loading...", "", "");
|
smartDisplay.playTeaAnimationPartOne(32, "", "Loading...", "", "");
|
||||||
JSONVar res = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time-log/" + currentTea.m_id, payload);
|
JSONVar res = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time-log/" + currentTea.m_id, steeepingTimePayload);
|
||||||
JSONVar res2 = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time/" + currentTea.m_id, payload);
|
JSONVar res2 = teaNet.httpsPUTRequest(shuttleServer + "/types-of-tea/" + currentTea.m_id, teaMetaPayload);
|
||||||
|
|
||||||
// catch possible failure
|
// catch possible failure
|
||||||
if (res == JSON.parse("{}"))
|
if (res == JSON.parse("{}"))
|
||||||
{
|
{
|
||||||
|
@ -338,12 +342,14 @@ void loop()
|
||||||
|
|
||||||
if (isTouchBtnPressed())
|
if (isTouchBtnPressed())
|
||||||
{
|
{
|
||||||
|
|
||||||
// keep steeping time for next brew
|
// keep steeping time for next brew
|
||||||
String payload = teaNet.bundleSteepingTimeChange(currentTea.m_steepingSeconds);
|
String steeepingTimePayload = teaNet.bundleSteepingTimeLogEntry(currentTea.m_steepingSeconds);
|
||||||
Serial.println(payload);
|
String teaMetaPayload = teaNet.bundleTeaMetaChange(currentTea.m_teaName, currentTea.m_teaNotes, currentTea.m_waterTemp, currentTea.m_steepingSeconds);
|
||||||
|
Serial.println(steeepingTimePayload);
|
||||||
smartDisplay.playTeaAnimationPartOne(32, "Accepted!", "(perfect)", "", "saving...");
|
smartDisplay.playTeaAnimationPartOne(32, "Accepted!", "(perfect)", "", "saving...");
|
||||||
JSONVar res = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time-log/" + currentTea.m_id, payload);
|
JSONVar res = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time-log/" + currentTea.m_id, steeepingTimePayload);
|
||||||
JSONVar res2 = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time/" + currentTea.m_id, payload);
|
JSONVar res2 = teaNet.httpsPUTRequest(shuttleServer + "/types-of-tea/" + currentTea.m_id, teaMetaPayload);
|
||||||
// catch possible failure
|
// catch possible failure
|
||||||
if (res == JSON.parse("{}"))
|
if (res == JSON.parse("{}"))
|
||||||
{
|
{
|
||||||
|
@ -365,16 +371,16 @@ void loop()
|
||||||
{
|
{
|
||||||
// decrease steeping time for next brew // TODO: this should be smarter
|
// decrease steeping time for next brew // TODO: this should be smarter
|
||||||
|
|
||||||
String payload = teaNet.bundleSteepingTimeChange(currentTea.m_steepingSeconds);
|
String steeepingTimePayload = teaNet.bundleSteepingTimeLogEntry(currentTea.m_steepingSeconds);
|
||||||
Serial.println(payload);
|
Serial.println(steeepingTimePayload);
|
||||||
smartDisplay.playTeaAnimationPartOne(32, "Accepted!", "(shorter)", "", "saving...");
|
smartDisplay.playTeaAnimationPartOne(32, "Accepted!", "(shorter)", "", "saving...");
|
||||||
// log old steeping time
|
// log old steeping time
|
||||||
JSONVar res = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time-log/" + currentTea.m_id, payload);
|
JSONVar res = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time-log/" + currentTea.m_id, steeepingTimePayload);
|
||||||
|
|
||||||
// now update steeping time for next use
|
// now update steeping time for next use
|
||||||
currentTea.m_steepingSeconds -= 10;
|
currentTea.m_steepingSeconds -= 10;
|
||||||
String payload2 = teaNet.bundleSteepingTimeChange(currentTea.m_steepingSeconds);
|
String teaMetaPayload = teaNet.bundleTeaMetaChange(currentTea.m_teaName, currentTea.m_teaNotes, currentTea.m_waterTemp, currentTea.m_steepingSeconds);
|
||||||
JSONVar res2 = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time/" + currentTea.m_id, payload2);
|
JSONVar res2 = teaNet.httpsPUTRequest(shuttleServer + "/types-of-tea/" + currentTea.m_id, teaMetaPayload);
|
||||||
|
|
||||||
// catch possible failure
|
// catch possible failure
|
||||||
if (res == JSON.parse("{}"))
|
if (res == JSON.parse("{}"))
|
||||||
|
@ -397,15 +403,15 @@ void loop()
|
||||||
{
|
{
|
||||||
// increase steeping time for next brew // TODO: this should be smarter
|
// increase steeping time for next brew // TODO: this should be smarter
|
||||||
|
|
||||||
String payload = teaNet.bundleSteepingTimeChange(currentTea.m_steepingSeconds);
|
String steeepingTimePayload = teaNet.bundleSteepingTimeLogEntry(currentTea.m_steepingSeconds);
|
||||||
Serial.println(payload);
|
Serial.println(steeepingTimePayload);
|
||||||
smartDisplay.playTeaAnimationPartOne(32, "Accepted!", "(longer)", "", "saving...");
|
smartDisplay.playTeaAnimationPartOne(32, "Accepted!", "(longer)", "", "saving...");
|
||||||
JSONVar res = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time-log/" + currentTea.m_id, payload);
|
JSONVar res = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time-log/" + currentTea.m_id, steeepingTimePayload);
|
||||||
|
|
||||||
// now update steeping time for next use
|
// now update steeping time for next use
|
||||||
currentTea.m_steepingSeconds += 10;
|
currentTea.m_steepingSeconds += 10;
|
||||||
String payload2 = teaNet.bundleSteepingTimeChange(currentTea.m_steepingSeconds);
|
String teaMetaPayload = teaNet.bundleTeaMetaChange(currentTea.m_teaName, currentTea.m_teaNotes, currentTea.m_waterTemp, currentTea.m_steepingSeconds);
|
||||||
JSONVar res2 = teaNet.httpsPOSTRequest(shuttleServer + "/tea-steeping-time/" + currentTea.m_id, payload2);
|
JSONVar res2 = teaNet.httpsPUTRequest(shuttleServer + "/types-of-tea/" + currentTea.m_id, teaMetaPayload);
|
||||||
|
|
||||||
// catch possible failure
|
// catch possible failure
|
||||||
if (res == JSON.parse("{}"))
|
if (res == JSON.parse("{}"))
|
||||||
|
|
Loading…
Add table
Reference in a new issue