From bc2cb9e25a242a00058a722d22ddcff428f3217e Mon Sep 17 00:00:00 2001 From: Eduardo Date: Mon, 4 Mar 2024 02:35:06 +0000 Subject: [PATCH] =?UTF-8?q?Traducci=C3=B3n=20al=20Espa=C3=B1ol=20-=20Spani?= =?UTF-8?q?sh=20translation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- printermonitor/OctoPrintClient.cpp | 828 +++++++++--------- printermonitor/OctoPrintClient.h | 0 printermonitor/OpenWeatherMapClient.cpp | 18 +- printermonitor/OpenWeatherMapClient.h | 0 printermonitor/RepetierClient.cpp | 734 ++++++++-------- printermonitor/RepetierClient.h | 0 printermonitor/Settings.h | 228 ++--- printermonitor/TimeClient.cpp | 0 printermonitor/TimeClient.h | 0 printermonitor/WeatherStationFonts.h | 0 printermonitor/libs/ArduinoJson/ArduinoJson.h | 0 printermonitor/libs/ArduinoJson/CHANGELOG.md | 0 .../libs/ArduinoJson/CMakeLists.txt | 0 .../libs/ArduinoJson/CONTRIBUTING.md | 0 printermonitor/libs/ArduinoJson/LICENSE.md | 0 printermonitor/libs/ArduinoJson/README.md | 0 printermonitor/libs/ArduinoJson/SUPPORT.md | 0 printermonitor/libs/ArduinoJson/appveyor.yml | 0 printermonitor/libs/ArduinoJson/banner.svg | 0 printermonitor/libs/ArduinoJson/keywords.txt | 0 .../libs/ArduinoJson/src/ArduinoJson.h | 0 .../libs/ArduinoJson/src/ArduinoJson.hpp | 0 .../src/ArduinoJson/Configuration.hpp | 0 .../src/ArduinoJson/Data/Encoding.hpp | 0 .../ArduinoJson/Data/JsonBufferAllocated.hpp | 0 .../src/ArduinoJson/Data/JsonFloat.hpp | 0 .../src/ArduinoJson/Data/JsonInteger.hpp | 0 .../src/ArduinoJson/Data/JsonVariantAs.hpp | 0 .../ArduinoJson/Data/JsonVariantContent.hpp | 0 .../ArduinoJson/Data/JsonVariantDefault.hpp | 0 .../src/ArduinoJson/Data/JsonVariantType.hpp | 0 .../ArduinoJson/src/ArduinoJson/Data/List.hpp | 0 .../ArduinoJson/Data/ListConstIterator.hpp | 0 .../src/ArduinoJson/Data/ListIterator.hpp | 0 .../src/ArduinoJson/Data/ListNode.hpp | 0 .../src/ArduinoJson/Data/NonCopyable.hpp | 0 .../src/ArduinoJson/Data/ReferenceType.hpp | 0 .../src/ArduinoJson/Data/ValueSaver.hpp | 0 .../ArduinoJson/Deserialization/Comments.hpp | 0 .../Deserialization/JsonParser.hpp | 0 .../Deserialization/JsonParserImpl.hpp | 0 .../Deserialization/StringWriter.hpp | 0 .../src/ArduinoJson/DynamicJsonBuffer.hpp | 0 .../ArduinoJson/src/ArduinoJson/JsonArray.hpp | 0 .../src/ArduinoJson/JsonArrayImpl.hpp | 0 .../src/ArduinoJson/JsonArraySubscript.hpp | 0 .../src/ArduinoJson/JsonBuffer.hpp | 0 .../src/ArduinoJson/JsonBufferBase.hpp | 0 .../src/ArduinoJson/JsonBufferImpl.hpp | 0 .../src/ArduinoJson/JsonObject.hpp | 0 .../src/ArduinoJson/JsonObjectImpl.hpp | 0 .../src/ArduinoJson/JsonObjectSubscript.hpp | 0 .../ArduinoJson/src/ArduinoJson/JsonPair.hpp | 0 .../src/ArduinoJson/JsonVariant.hpp | 0 .../src/ArduinoJson/JsonVariantBase.hpp | 0 .../src/ArduinoJson/JsonVariantCasts.hpp | 0 .../ArduinoJson/JsonVariantComparisons.hpp | 0 .../src/ArduinoJson/JsonVariantImpl.hpp | 0 .../src/ArduinoJson/JsonVariantOr.hpp | 0 .../src/ArduinoJson/JsonVariantSubscripts.hpp | 0 .../src/ArduinoJson/Polyfills/attributes.hpp | 0 .../src/ArduinoJson/Polyfills/ctype.hpp | 0 .../src/ArduinoJson/Polyfills/isFloat.hpp | 0 .../src/ArduinoJson/Polyfills/isInteger.hpp | 0 .../src/ArduinoJson/Polyfills/math.hpp | 0 .../src/ArduinoJson/Polyfills/parseFloat.hpp | 0 .../ArduinoJson/Polyfills/parseInteger.hpp | 0 .../ArduinoJson/src/ArduinoJson/RawJson.hpp | 0 .../ArduinoJson/Serialization/DummyPrint.hpp | 0 .../Serialization/DynamicStringBuilder.hpp | 0 .../ArduinoJson/Serialization/FloatParts.hpp | 0 .../Serialization/IndentedPrint.hpp | 0 .../Serialization/JsonPrintable.hpp | 0 .../Serialization/JsonSerializer.hpp | 0 .../Serialization/JsonSerializerImpl.hpp | 0 .../ArduinoJson/Serialization/JsonWriter.hpp | 0 .../ArduinoJson/Serialization/Prettyfier.hpp | 0 .../Serialization/StaticStringBuilder.hpp | 0 .../Serialization/StreamPrintAdapter.hpp | 0 .../src/ArduinoJson/StaticJsonBuffer.hpp | 0 .../StringTraits/ArduinoStream.hpp | 0 .../ArduinoJson/StringTraits/CharPointer.hpp | 0 .../ArduinoJson/StringTraits/FlashString.hpp | 0 .../ArduinoJson/StringTraits/StdStream.hpp | 0 .../ArduinoJson/StringTraits/StdString.hpp | 0 .../ArduinoJson/StringTraits/StringTraits.hpp | 0 .../src/ArduinoJson/TypeTraits/EnableIf.hpp | 0 .../ArduinoJson/TypeTraits/FloatTraits.hpp | 0 .../src/ArduinoJson/TypeTraits/IsArray.hpp | 0 .../src/ArduinoJson/TypeTraits/IsBaseOf.hpp | 0 .../src/ArduinoJson/TypeTraits/IsChar.hpp | 0 .../src/ArduinoJson/TypeTraits/IsConst.hpp | 0 .../TypeTraits/IsFloatingPoint.hpp | 0 .../src/ArduinoJson/TypeTraits/IsIntegral.hpp | 0 .../src/ArduinoJson/TypeTraits/IsSame.hpp | 0 .../TypeTraits/IsSignedIntegral.hpp | 0 .../TypeTraits/IsUnsignedIntegral.hpp | 0 .../src/ArduinoJson/TypeTraits/IsVariant.hpp | 0 .../ArduinoJson/TypeTraits/RemoveConst.hpp | 0 .../TypeTraits/RemoveReference.hpp | 0 printermonitor/printermonitor.ino | 198 ++--- 101 files changed, 1003 insertions(+), 1003 deletions(-) mode change 100644 => 100755 printermonitor/OctoPrintClient.h mode change 100644 => 100755 printermonitor/OpenWeatherMapClient.h mode change 100644 => 100755 printermonitor/RepetierClient.h mode change 100644 => 100755 printermonitor/TimeClient.cpp mode change 100644 => 100755 printermonitor/TimeClient.h mode change 100644 => 100755 printermonitor/WeatherStationFonts.h mode change 100644 => 100755 printermonitor/libs/ArduinoJson/ArduinoJson.h mode change 100644 => 100755 printermonitor/libs/ArduinoJson/CHANGELOG.md mode change 100644 => 100755 printermonitor/libs/ArduinoJson/CMakeLists.txt mode change 100644 => 100755 printermonitor/libs/ArduinoJson/CONTRIBUTING.md mode change 100644 => 100755 printermonitor/libs/ArduinoJson/LICENSE.md mode change 100644 => 100755 printermonitor/libs/ArduinoJson/README.md mode change 100644 => 100755 printermonitor/libs/ArduinoJson/SUPPORT.md mode change 100644 => 100755 printermonitor/libs/ArduinoJson/appveyor.yml mode change 100644 => 100755 printermonitor/libs/ArduinoJson/banner.svg mode change 100644 => 100755 printermonitor/libs/ArduinoJson/keywords.txt mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson.h mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Configuration.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/Encoding.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonBufferAllocated.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonFloat.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonInteger.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantAs.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantContent.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantDefault.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantType.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/List.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListConstIterator.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListIterator.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListNode.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/NonCopyable.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ReferenceType.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ValueSaver.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/Comments.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParser.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParserImpl.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/StringWriter.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/DynamicJsonBuffer.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArray.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArrayImpl.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArraySubscript.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBuffer.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferBase.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferImpl.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObject.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectImpl.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectSubscript.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonPair.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariant.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantBase.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantCasts.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantComparisons.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantImpl.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantOr.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantSubscripts.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isFloat.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isInteger.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseFloat.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseInteger.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/RawJson.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DummyPrint.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DynamicStringBuilder.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/FloatParts.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/IndentedPrint.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonPrintable.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializer.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializerImpl.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonWriter.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/Prettyfier.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StaticStringBuilder.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StreamPrintAdapter.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/StaticJsonBuffer.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/ArduinoStream.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/CharPointer.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/FlashString.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdStream.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdString.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StringTraits.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/EnableIf.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/FloatTraits.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsArray.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsBaseOf.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsChar.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsConst.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsIntegral.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSame.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsVariant.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveConst.hpp mode change 100644 => 100755 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveReference.hpp diff --git a/printermonitor/OctoPrintClient.cpp b/printermonitor/OctoPrintClient.cpp index 832835b..1068a33 100644 --- a/printermonitor/OctoPrintClient.cpp +++ b/printermonitor/OctoPrintClient.cpp @@ -1,414 +1,414 @@ -/** The MIT License (MIT) - -Copyright (c) 2018 David Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -// Additional Contributions: -/* 15 Jan 2019 : Owen Carter : Add psucontrol query via POST api call */ - -#include "OctoPrintClient.h" - -OctoPrintClient::OctoPrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { - updatePrintClient(ApiKey, server, port, user, pass, psu); -} - -void OctoPrintClient::updatePrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { - server.toCharArray(myServer, 100); - myApiKey = ApiKey; - myPort = port; - encodedAuth = ""; - if (user != "") { - String userpass = user + ":" + pass; - base64 b64; - encodedAuth = b64.encode(userpass, true); - } - pollPsu = psu; -} - -boolean OctoPrintClient::validate() { - boolean rtnValue = false; - printerData.error = ""; - if (String(myServer) == "") { - printerData.error += "Server address is required; "; - } - if (myApiKey == "") { - printerData.error += "ApiKey is required; "; - } - if (printerData.error == "") { - rtnValue = true; - } - return rtnValue; -} - -WiFiClient OctoPrintClient::getSubmitRequest(String apiGetData) { - WiFiClient printClient; - printClient.setTimeout(5000); - - Serial.println("Getting Octoprint Data via GET"); - Serial.println(apiGetData); - result = ""; - if (printClient.connect(myServer, myPort)) { //starts client connection, checks for connection - printClient.println(apiGetData); - printClient.println("Host: " + String(myServer) + ":" + String(myPort)); - printClient.println("X-Api-Key: " + myApiKey); - if (encodedAuth != "") { - printClient.print("Authorization: "); - printClient.println("Basic " + encodedAuth); - } - printClient.println("User-Agent: ArduinoWiFi/1.1"); - printClient.println("Connection: close"); - if (printClient.println() == 0) { - Serial.println("Connection to " + String(myServer) + ":" + String(myPort) + " failed."); - Serial.println(); - resetPrintData(); - printerData.error = "Connection to " + String(myServer) + ":" + String(myPort) + " failed."; - return printClient; - } - } - else { - Serial.println("Connection to OctoPrint failed: " + String(myServer) + ":" + String(myPort)); //error message if no client connect - Serial.println(); - resetPrintData(); - printerData.error = "Connection to OctoPrint failed: " + String(myServer) + ":" + String(myPort); - return printClient; - } - - // Check HTTP status - char status[32] = {0}; - printClient.readBytesUntil('\r', status, sizeof(status)); - if (strcmp(status, "HTTP/1.1 200 OK") != 0 && strcmp(status, "HTTP/1.1 409 CONFLICT") != 0) { - Serial.print(F("Unexpected response: ")); - Serial.println(status); - printerData.state = ""; - printerData.error = "Response: " + String(status); - return printClient; - } - - // Skip HTTP headers - char endOfHeaders[] = "\r\n\r\n"; - if (!printClient.find(endOfHeaders)) { - Serial.println(F("Invalid response")); - printerData.error = "Invalid response from " + String(myServer) + ":" + String(myPort); - printerData.state = ""; - } - - return printClient; -} - -WiFiClient OctoPrintClient::getPostRequest(String apiPostData, String apiPostBody) { - WiFiClient printClient; - printClient.setTimeout(5000); - - Serial.println("Getting Octoprint Data via POST"); - Serial.println(apiPostData + " | " + apiPostBody); - result = ""; - if (printClient.connect(myServer, myPort)) { //starts client connection, checks for connection - printClient.println(apiPostData); - printClient.println("Host: " + String(myServer) + ":" + String(myPort)); - printClient.println("Connection: close"); - printClient.println("X-Api-Key: " + myApiKey); - if (encodedAuth != "") { - printClient.print("Authorization: "); - printClient.println("Basic " + encodedAuth); - } - printClient.println("User-Agent: ArduinoWiFi/1.1"); - printClient.println("Content-Type: application/json"); - printClient.print("Content-Length: "); - printClient.println(apiPostBody.length()); - printClient.println(); - printClient.println(apiPostBody); - if (printClient.println() == 0) { - Serial.println("Connection to " + String(myServer) + ":" + String(myPort) + " failed."); - Serial.println(); - resetPrintData(); - printerData.error = "Connection to " + String(myServer) + ":" + String(myPort) + " failed."; - return printClient; - } - } - else { - Serial.println("Connection to OctoPrint failed: " + String(myServer) + ":" + String(myPort)); //error message if no client connect - Serial.println(); - resetPrintData(); - printerData.error = "Connection to OctoPrint failed: " + String(myServer) + ":" + String(myPort); - return printClient; - } - - // Check HTTP status - char status[32] = {0}; - printClient.readBytesUntil('\r', status, sizeof(status)); - if (strcmp(status, "HTTP/1.1 200 OK") != 0 && strcmp(status, "HTTP/1.1 409 CONFLICT") != 0) { - Serial.print(F("Unexpected response: ")); - Serial.println(status); - printerData.state = ""; - printerData.error = "Response: " + String(status); - return printClient; - } - - // Skip HTTP headers - char endOfHeaders[] = "\r\n\r\n"; - if (!printClient.find(endOfHeaders)) { - Serial.println(F("Invalid response")); - printerData.error = "Invalid response from " + String(myServer) + ":" + String(myPort); - printerData.state = ""; - } - - return printClient; -} - -void OctoPrintClient::getPrinterJobResults() { - if (!validate()) { - return; - } - //**** get the Printer Job status - String apiGetData = "GET /api/job HTTP/1.1"; - WiFiClient printClient = getSubmitRequest(apiGetData); - if (printerData.error != "") { - return; - } - const size_t bufferSize = JSON_OBJECT_SIZE(1) + JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + 2*JSON_OBJECT_SIZE(5) + JSON_OBJECT_SIZE(6) + 710; - DynamicJsonBuffer jsonBuffer(bufferSize); - - // Parse JSON object - JsonObject& root = jsonBuffer.parseObject(printClient); - if (!root.success()) { - Serial.println("OctoPrint Data Parsing failed: " + String(myServer) + ":" + String(myPort)); - printerData.error = "OctoPrint Data Parsing failed: " + String(myServer) + ":" + String(myPort); - printerData.state = ""; - return; - } - - printerData.averagePrintTime = (const char*)root["job"]["averagePrintTime"]; - printerData.estimatedPrintTime = (const char*)root["job"]["estimatedPrintTime"]; - printerData.fileName = (const char*)root["job"]["file"]["name"]; - printerData.fileSize = (const char*)root["job"]["file"]["size"]; - printerData.lastPrintTime = (const char*)root["job"]["lastPrintTime"]; - printerData.progressCompletion = (const char*)root["progress"]["completion"]; - printerData.progressFilepos = (const char*)root["progress"]["filepos"]; - printerData.progressPrintTime = (const char*)root["progress"]["printTime"]; - printerData.progressPrintTimeLeft = (const char*)root["progress"]["printTimeLeft"]; - printerData.filamentLength = (const char*)root["job"]["filament"]["tool0"]["length"]; - printerData.state = (const char*)root["state"]; - - if (isOperational()) { - Serial.println("Status: " + printerData.state); - } else { - Serial.println("Printer Not Operational"); - } - - //**** get the Printer Temps and Stat - apiGetData = "GET /api/printer?exclude=sd,history HTTP/1.1"; - printClient = getSubmitRequest(apiGetData); - if (printerData.error != "") { - return; - } - const size_t bufferSize2 = 3*JSON_OBJECT_SIZE(2) + 2*JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(9) + 300; - DynamicJsonBuffer jsonBuffer2(bufferSize2); - - // Parse JSON object - JsonObject& root2 = jsonBuffer2.parseObject(printClient); - if (!root2.success()) { - printerData.isPrinting = false; - printerData.toolTemp = ""; - printerData.toolTargetTemp = ""; - printerData.bedTemp = ""; - printerData.bedTargetTemp = (const char*)root2["temperature"]["bed"]["target"]; - return; - } - - String printing = (const char*)root2["state"]["flags"]["printing"]; - if (printing == "true") { - printerData.isPrinting = true; - } else { - printerData.isPrinting = false; - } - printerData.toolTemp = (const char*)root2["temperature"]["tool0"]["actual"]; - printerData.toolTargetTemp = (const char*)root2["temperature"]["tool0"]["target"]; - printerData.bedTemp = (const char*)root2["temperature"]["bed"]["actual"]; - printerData.bedTargetTemp = (const char*)root2["temperature"]["bed"]["target"]; - - if (isPrinting()) { - Serial.println("Status: " + printerData.state + " " + printerData.fileName + "(" + printerData.progressCompletion + "%)"); - } -} - -void OctoPrintClient::getPrinterPsuState() { - //**** get the PSU state (if enabled and printer operational) - if (pollPsu && isOperational()) { - if (!validate()) { - printerData.isPSUoff = false; // we do not know PSU state, so assume on. - return; - } - String apiPostData = "POST /api/plugin/psucontrol HTTP/1.1"; - String apiPostBody = "{\"command\":\"getPSUState\"}"; - WiFiClient printClient = getPostRequest(apiPostData,apiPostBody); - if (printerData.error != "") { - printerData.isPSUoff = false; // we do not know PSU state, so assume on. - return; - } - const size_t bufferSize3 = JSON_OBJECT_SIZE(2) + 300; - DynamicJsonBuffer jsonBuffer3(bufferSize3); - - // Parse JSON object - JsonObject& root3 = jsonBuffer3.parseObject(printClient); - if (!root3.success()) { - printerData.isPSUoff = false; // we do not know PSU state, so assume on - return; - } - - String psu = (const char*)root3["isPSUOn"]; - if (psu == "true") { - printerData.isPSUoff = false; // PSU checked and is on - } else { - printerData.isPSUoff = true; // PSU checked and is off, set flag - } - printClient.stop(); //stop client - } else { - printerData.isPSUoff = false; // we are not checking PSU state, so assume on - } -} - -// Reset all PrinterData -void OctoPrintClient::resetPrintData() { - printerData.averagePrintTime = ""; - printerData.estimatedPrintTime = ""; - printerData.fileName = ""; - printerData.fileSize = ""; - printerData.lastPrintTime = ""; - printerData.progressCompletion = ""; - printerData.progressFilepos = ""; - printerData.progressPrintTime = ""; - printerData.progressPrintTimeLeft = ""; - printerData.state = ""; - printerData.toolTemp = ""; - printerData.toolTargetTemp = ""; - printerData.filamentLength = ""; - printerData.bedTemp = ""; - printerData.bedTargetTemp = ""; - printerData.isPrinting = false; - printerData.isPSUoff = false; - printerData.error = ""; -} - -String OctoPrintClient::getAveragePrintTime(){ - return printerData.averagePrintTime; -} - -String OctoPrintClient::getEstimatedPrintTime() { - return printerData.estimatedPrintTime; -} - -String OctoPrintClient::getFileName() { - return printerData.fileName; -} - -String OctoPrintClient::getFileSize() { - return printerData.fileSize; -} - -String OctoPrintClient::getLastPrintTime(){ - return printerData.lastPrintTime; -} - -String OctoPrintClient::getProgressCompletion() { - return String(printerData.progressCompletion.toInt()); -} - -String OctoPrintClient::getProgressFilepos() { - return printerData.progressFilepos; -} - -String OctoPrintClient::getProgressPrintTime() { - return printerData.progressPrintTime; -} - -String OctoPrintClient::getProgressPrintTimeLeft() { - String rtnValue = printerData.progressPrintTimeLeft; - if (getProgressCompletion() == "100") { - rtnValue = "0"; // Print is done so this should be 0 this is a fix for OctoPrint - } - return rtnValue; -} - -String OctoPrintClient::getState() { - return printerData.state; -} - -boolean OctoPrintClient::isPrinting() { - return printerData.isPrinting; -} - -boolean OctoPrintClient::isPSUoff() { - return printerData.isPSUoff; -} - -boolean OctoPrintClient::isOperational() { - boolean operational = false; - if (printerData.state == "Operational" || isPrinting()) { - operational = true; - } - return operational; -} - -String OctoPrintClient::getTempBedActual() { - return printerData.bedTemp; -} - -String OctoPrintClient::getTempBedTarget() { - return printerData.bedTargetTemp; -} - -String OctoPrintClient::getTempToolActual() { - return printerData.toolTemp; -} - -String OctoPrintClient::getTempToolTarget() { - return printerData.toolTargetTemp; -} - -String OctoPrintClient::getFilamentLength() { - return printerData.filamentLength; -} - -String OctoPrintClient::getError() { - return printerData.error; -} - -String OctoPrintClient::getValueRounded(String value) { - float f = value.toFloat(); - int rounded = (int)(f+0.5f); - return String(rounded); -} - -String OctoPrintClient::getPrinterType() { - return printerType; -} - -int OctoPrintClient::getPrinterPort() { - return myPort; -} - -String OctoPrintClient::getPrinterName() { - return printerData.printerName; -} - -void OctoPrintClient::setPrinterName(String printer) { - printerData.printerName = printer; -} +/** The MIT License (MIT) + +Copyright (c) 2018 David Payne + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +// Additional Contributions: +/* 15 Jan 2019 : Owen Carter : Add psucontrol query via POST api call */ + +#include "OctoPrintClient.h" + +OctoPrintClient::OctoPrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { + updatePrintClient(ApiKey, server, port, user, pass, psu); +} + +void OctoPrintClient::updatePrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { + server.toCharArray(myServer, 100); + myApiKey = ApiKey; + myPort = port; + encodedAuth = ""; + if (user != "") { + String userpass = user + ":" + pass; + base64 b64; + encodedAuth = b64.encode(userpass, true); + } + pollPsu = psu; +} + +boolean OctoPrintClient::validate() { + boolean rtnValue = false; + printerData.error = ""; + if (String(myServer) == "") { + printerData.error += "La dirección del servidor es obligatoria; "; + } + if (myApiKey == "") { + printerData.error += "La ApiKey es obligatoria; "; + } + if (printerData.error == "") { + rtnValue = true; + } + return rtnValue; +} + +WiFiClient OctoPrintClient::getSubmitRequest(String apiGetData) { + WiFiClient printClient; + printClient.setTimeout(5000); + + Serial.println("Obteniendo datos de Octoprint via GET"); + Serial.println(apiGetData); + result = ""; + if (printClient.connect(myServer, myPort)) { //starts client connection, checks for connection + printClient.println(apiGetData); + printClient.println("Host: " + String(myServer) + ":" + String(myPort)); + printClient.println("X-Api-Key: " + myApiKey); + if (encodedAuth != "") { + printClient.print("Authorization: "); + printClient.println("Basic " + encodedAuth); + } + printClient.println("User-Agent: ArduinoWiFi/1.1"); + printClient.println("Connection: close"); + if (printClient.println() == 0) { + Serial.println("Conexión a " + String(myServer) + ":" + String(myPort) + " fallida."); + Serial.println(); + resetPrintData(); + printerData.error = "Conexión a " + String(myServer) + ":" + String(myPort) + " fallida."; + return printClient; + } + } + else { + Serial.println("Conexión a OctoPrint fallida: " + String(myServer) + ":" + String(myPort)); //error message if no client connect + Serial.println(); + resetPrintData(); + printerData.error = "Conexión a OctoPrint fallida: " + String(myServer) + ":" + String(myPort); + return printClient; + } + + // Check HTTP status + char status[32] = {0}; + printClient.readBytesUntil('\r', status, sizeof(status)); + if (strcmp(status, "HTTP/1.1 200 OK") != 0 && strcmp(status, "HTTP/1.1 409 CONFLICT") != 0) { + Serial.print(F("Respuesta inesperada: ")); + Serial.println(status); + printerData.state = ""; + printerData.error = "Respuesta: " + String(status); + return printClient; + } + + // Skip HTTP headers + char endOfHeaders[] = "\r\n\r\n"; + if (!printClient.find(endOfHeaders)) { + Serial.println(F("Respuesta no válida")); + printerData.error = "Respuesta no válida de " + String(myServer) + ":" + String(myPort); + printerData.state = ""; + } + + return printClient; +} + +WiFiClient OctoPrintClient::getPostRequest(String apiPostData, String apiPostBody) { + WiFiClient printClient; + printClient.setTimeout(5000); + + Serial.println("Obteniendo datos de Octoprint via POST"); + Serial.println(apiPostData + " | " + apiPostBody); + result = ""; + if (printClient.connect(myServer, myPort)) { //starts client connection, checks for connection + printClient.println(apiPostData); + printClient.println("Host: " + String(myServer) + ":" + String(myPort)); + printClient.println("Conexión: close"); + printClient.println("X-Api-Key: " + myApiKey); + if (encodedAuth != "") { + printClient.print("Authorization: "); + printClient.println("Basic " + encodedAuth); + } + printClient.println("User-Agent: ArduinoWiFi/1.1"); + printClient.println("Content-Type: application/json"); + printClient.print("Content-Length: "); + printClient.println(apiPostBody.length()); + printClient.println(); + printClient.println(apiPostBody); + if (printClient.println() == 0) { + Serial.println("Conexión a " + String(myServer) + ":" + String(myPort) + " fallida."); + Serial.println(); + resetPrintData(); + printerData.error = "Conexión a " + String(myServer) + ":" + String(myPort) + " fallida."; + return printClient; + } + } + else { + Serial.println("Conexión a OctoPrint fallida: " + String(myServer) + ":" + String(myPort)); //error message if no client connect + Serial.println(); + resetPrintData(); + printerData.error = "Conexión a OctoPrint fallida: " + String(myServer) + ":" + String(myPort); + return printClient; + } + + // Check HTTP status + char status[32] = {0}; + printClient.readBytesUntil('\r', status, sizeof(status)); + if (strcmp(status, "HTTP/1.1 200 OK") != 0 && strcmp(status, "HTTP/1.1 409 CONFLICT") != 0) { + Serial.print(F("Respuesta inesperada: ")); + Serial.println(status); + printerData.state = ""; + printerData.error = "Respuesta: " + String(status); + return printClient; + } + + // Skip HTTP headers + char endOfHeaders[] = "\r\n\r\n"; + if (!printClient.find(endOfHeaders)) { + Serial.println(F("Respuesta no válida")); + printerData.error = "Respuesta no válida de " + String(myServer) + ":" + String(myPort); + printerData.state = ""; + } + + return printClient; +} + +void OctoPrintClient::getPrinterJobResults() { + if (!validate()) { + return; + } + //**** get the Printer Job status + String apiGetData = "GET /api/job HTTP/1.1"; + WiFiClient printClient = getSubmitRequest(apiGetData); + if (printerData.error != "") { + return; + } + const size_t bufferSize = JSON_OBJECT_SIZE(1) + JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + 2*JSON_OBJECT_SIZE(5) + JSON_OBJECT_SIZE(6) + 710; + DynamicJsonBuffer jsonBuffer(bufferSize); + + // Parse JSON object + JsonObject& root = jsonBuffer.parseObject(printClient); + if (!root.success()) { + Serial.println("Fallo al parsear los datos de OctoPrint: " + String(myServer) + ":" + String(myPort)); + printerData.error = "Fallo al parsear los datos de OctoPrint: " + String(myServer) + ":" + String(myPort); + printerData.state = ""; + return; + } + + printerData.averagePrintTime = (const char*)root["job"]["averagePrintTime"]; + printerData.estimatedPrintTime = (const char*)root["job"]["estimatedPrintTime"]; + printerData.fileName = (const char*)root["job"]["file"]["name"]; + printerData.fileSize = (const char*)root["job"]["file"]["size"]; + printerData.lastPrintTime = (const char*)root["job"]["lastPrintTime"]; + printerData.progressCompletion = (const char*)root["progress"]["completion"]; + printerData.progressFilepos = (const char*)root["progress"]["filepos"]; + printerData.progressPrintTime = (const char*)root["progress"]["printTime"]; + printerData.progressPrintTimeLeft = (const char*)root["progress"]["printTimeLeft"]; + printerData.filamentLength = (const char*)root["job"]["filament"]["tool0"]["length"]; + printerData.state = (const char*)root["state"]; + + if (isOperational()) { + Serial.println("Estado: " + printerData.state); + } else { + Serial.println("Impresora no disponible"); + } + + //**** get the Printer Temps and Stat + apiGetData = "GET /api/printer?exclude=sd,history HTTP/1.1"; + printClient = getSubmitRequest(apiGetData); + if (printerData.error != "") { + return; + } + const size_t bufferSize2 = 3*JSON_OBJECT_SIZE(2) + 2*JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(9) + 300; + DynamicJsonBuffer jsonBuffer2(bufferSize2); + + // Parse JSON object + JsonObject& root2 = jsonBuffer2.parseObject(printClient); + if (!root2.success()) { + printerData.isPrinting = false; + printerData.toolTemp = ""; + printerData.toolTargetTemp = ""; + printerData.bedTemp = ""; + printerData.bedTargetTemp = (const char*)root2["temperature"]["bed"]["target"]; + return; + } + + String printing = (const char*)root2["state"]["flags"]["printing"]; + if (printing == "true") { + printerData.isPrinting = true; + } else { + printerData.isPrinting = false; + } + printerData.toolTemp = (const char*)root2["temperature"]["tool0"]["actual"]; + printerData.toolTargetTemp = (const char*)root2["temperature"]["tool0"]["target"]; + printerData.bedTemp = (const char*)root2["temperature"]["bed"]["actual"]; + printerData.bedTargetTemp = (const char*)root2["temperature"]["bed"]["target"]; + + if (isPrinting()) { + Serial.println("Estado: " + printerData.state + " " + printerData.fileName + "(" + printerData.progressCompletion + "%)"); + } +} + +void OctoPrintClient::getPrinterPsuState() { + //**** get the PSU state (if enabled and printer operational) + if (pollPsu && isOperational()) { + if (!validate()) { + printerData.isPSUoff = false; // we do not know PSU state, so assume on. + return; + } + String apiPostData = "POST /api/plugin/psucontrol HTTP/1.1"; + String apiPostBody = "{\"command\":\"getPSUState\"}"; + WiFiClient printClient = getPostRequest(apiPostData,apiPostBody); + if (printerData.error != "") { + printerData.isPSUoff = false; // we do not know PSU state, so assume on. + return; + } + const size_t bufferSize3 = JSON_OBJECT_SIZE(2) + 300; + DynamicJsonBuffer jsonBuffer3(bufferSize3); + + // Parse JSON object + JsonObject& root3 = jsonBuffer3.parseObject(printClient); + if (!root3.success()) { + printerData.isPSUoff = false; // we do not know PSU state, so assume on + return; + } + + String psu = (const char*)root3["isPSUOn"]; + if (psu == "true") { + printerData.isPSUoff = false; // PSU checked and is on + } else { + printerData.isPSUoff = true; // PSU checked and is off, set flag + } + printClient.stop(); //stop client + } else { + printerData.isPSUoff = false; // we are not checking PSU state, so assume on + } +} + +// Reset all PrinterData +void OctoPrintClient::resetPrintData() { + printerData.averagePrintTime = ""; + printerData.estimatedPrintTime = ""; + printerData.fileName = ""; + printerData.fileSize = ""; + printerData.lastPrintTime = ""; + printerData.progressCompletion = ""; + printerData.progressFilepos = ""; + printerData.progressPrintTime = ""; + printerData.progressPrintTimeLeft = ""; + printerData.state = ""; + printerData.toolTemp = ""; + printerData.toolTargetTemp = ""; + printerData.filamentLength = ""; + printerData.bedTemp = ""; + printerData.bedTargetTemp = ""; + printerData.isPrinting = false; + printerData.isPSUoff = false; + printerData.error = ""; +} + +String OctoPrintClient::getAveragePrintTime(){ + return printerData.averagePrintTime; +} + +String OctoPrintClient::getEstimatedPrintTime() { + return printerData.estimatedPrintTime; +} + +String OctoPrintClient::getFileName() { + return printerData.fileName; +} + +String OctoPrintClient::getFileSize() { + return printerData.fileSize; +} + +String OctoPrintClient::getLastPrintTime(){ + return printerData.lastPrintTime; +} + +String OctoPrintClient::getProgressCompletion() { + return String(printerData.progressCompletion.toInt()); +} + +String OctoPrintClient::getProgressFilepos() { + return printerData.progressFilepos; +} + +String OctoPrintClient::getProgressPrintTime() { + return printerData.progressPrintTime; +} + +String OctoPrintClient::getProgressPrintTimeLeft() { + String rtnValue = printerData.progressPrintTimeLeft; + if (getProgressCompletion() == "100") { + rtnValue = "0"; // Print is done so this should be 0 this is a fix for OctoPrint + } + return rtnValue; +} + +String OctoPrintClient::getState() { + return printerData.state; +} + +boolean OctoPrintClient::isPrinting() { + return printerData.isPrinting; +} + +boolean OctoPrintClient::isPSUoff() { + return printerData.isPSUoff; +} + +boolean OctoPrintClient::isOperational() { + boolean operational = false; + if (printerData.state == "Operational" || isPrinting()) { + operational = true; + } + return operational; +} + +String OctoPrintClient::getTempBedActual() { + return printerData.bedTemp; +} + +String OctoPrintClient::getTempBedTarget() { + return printerData.bedTargetTemp; +} + +String OctoPrintClient::getTempToolActual() { + return printerData.toolTemp; +} + +String OctoPrintClient::getTempToolTarget() { + return printerData.toolTargetTemp; +} + +String OctoPrintClient::getFilamentLength() { + return printerData.filamentLength; +} + +String OctoPrintClient::getError() { + return printerData.error; +} + +String OctoPrintClient::getValueRounded(String value) { + float f = value.toFloat(); + int rounded = (int)(f+0.5f); + return String(rounded); +} + +String OctoPrintClient::getPrinterType() { + return printerType; +} + +int OctoPrintClient::getPrinterPort() { + return myPort; +} + +String OctoPrintClient::getPrinterName() { + return printerData.printerName; +} + +void OctoPrintClient::setPrinterName(String printer) { + printerData.printerName = printer; +} diff --git a/printermonitor/OctoPrintClient.h b/printermonitor/OctoPrintClient.h old mode 100644 new mode 100755 diff --git a/printermonitor/OpenWeatherMapClient.cpp b/printermonitor/OpenWeatherMapClient.cpp index e3c7874..f7c66cd 100644 --- a/printermonitor/OpenWeatherMapClient.cpp +++ b/printermonitor/OpenWeatherMapClient.cpp @@ -37,7 +37,7 @@ void OpenWeatherMapClient::updateWeatherApiKey(String ApiKey) { void OpenWeatherMapClient::updateLanguage(String language) { lang = language; if (lang == "") { - lang = "en"; + lang = "es"; } } @@ -45,7 +45,7 @@ void OpenWeatherMapClient::updateWeather() { WiFiClient weatherClient; String apiGetData = "GET /data/2.5/group?id=" + myCityIDs + "&units=" + units + "&cnt=1&APPID=" + myApiKey + "&lang=" + lang + " HTTP/1.1"; - Serial.println("Getting Weather Data"); + Serial.println("Obteniendo datos de clima"); Serial.println(apiGetData); result = ""; if (weatherClient.connect(servername, 80)) { //starts client connection, checks for connection @@ -56,14 +56,14 @@ void OpenWeatherMapClient::updateWeather() { weatherClient.println(); } else { - Serial.println("connection for weather data failed"); //error message if no client connect + Serial.println("conexión fallida al obtener datos del clima"); //error message if no client connect Serial.println(); return; } while(weatherClient.connected() && !weatherClient.available()) delay(1); //waits for data - Serial.println("Waiting for data"); + Serial.println("Esperando por datos"); // Check HTTP status char status[32] = {0}; @@ -78,7 +78,7 @@ void OpenWeatherMapClient::updateWeather() { // Skip HTTP headers char endOfHeaders[] = "\r\n\r\n"; if (!weatherClient.find(endOfHeaders)) { - Serial.println(F("Invalid response")); + Serial.println(F("Respuesta no válida")); return; } @@ -90,15 +90,15 @@ void OpenWeatherMapClient::updateWeather() { // Parse JSON object JsonObject& root = jsonBuffer.parseObject(weatherClient); if (!root.success()) { - Serial.println(F("Weather Data Parsing failed!")); - weathers[0].error = "Weather Data Parsing failed!"; + Serial.println(F("Fallo al parsear los datos del clima!")); + weathers[0].error = "Fallo al parsear los datos del clima!"; return; } weatherClient.stop(); //stop client if (root.measureLength() <= 150) { - Serial.println("Error Does not look like we got the data. Size: " + String(root.measureLength())); + Serial.println("Error No parece que hayamos obtenido los datos. Tamaño: " + String(root.measureLength())); weathers[0].cached = true; weathers[0].error = (const char*)root["message"]; Serial.println("Error: " + weathers[0].error); @@ -308,4 +308,4 @@ String OpenWeatherMapClient::getWeatherIcon(int index) default:break; } return W; -} +} diff --git a/printermonitor/OpenWeatherMapClient.h b/printermonitor/OpenWeatherMapClient.h old mode 100644 new mode 100755 diff --git a/printermonitor/RepetierClient.cpp b/printermonitor/RepetierClient.cpp index e547916..3363aa2 100644 --- a/printermonitor/RepetierClient.cpp +++ b/printermonitor/RepetierClient.cpp @@ -1,367 +1,367 @@ -/** The MIT License (MIT) - -Copyright (c) 2018 David Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -// Additional Contributions: -/* 15 Jan 2019 : Owen Carter : Add psucontrol query via POST api call */ -/* 07 April 2019 : Jon Smith : Redesigned this class for Repetier Server */ - -#include "RepetierClient.h" - -RepetierClient::RepetierClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { - updatePrintClient(ApiKey, server, port, user, pass, psu); -} - -void RepetierClient::updatePrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { - server.toCharArray(myServer, 100); - myApiKey = ApiKey; - myPort = port; - encodedAuth = ""; - if (user != "") { - String userpass = user + ":" + pass; - base64 b64; - encodedAuth = b64.encode(userpass, true); - } - pollPsu = psu; -} - -boolean RepetierClient::validate() { - boolean rtnValue = false; - printerData.error = ""; - if (String(myServer) == "") { - printerData.error += "Server address is required; "; - } - if (myApiKey == "") { - printerData.error += "ApiKey is required; "; - } - if (printerData.error == "") { - rtnValue = true; - } - return rtnValue; -} - -WiFiClient RepetierClient::getSubmitRequest(String apiGetData) { - WiFiClient printClient; - printClient.setTimeout(5000); - - Serial.println("Getting Repetier Data via GET"); - Serial.println(apiGetData); - result = ""; - if (printClient.connect(myServer, myPort)) { //starts client connection, checks for connection - printClient.println(apiGetData); - printClient.println("Host: " + String(myServer) + ":" + String(myPort)); - printClient.println("X-Api-Key: " + myApiKey); - if (encodedAuth != "") { - printClient.print("Authorization: "); - printClient.println("Basic " + encodedAuth); - } - printClient.println("User-Agent: ArduinoWiFi/1.1"); - printClient.println("Connection: close"); - if (printClient.println() == 0) { - Serial.println("Connection to " + String(myServer) + ":" + String(myPort) + " failed."); - Serial.println(); - resetPrintData(); - printerData.error = "Connection to " + String(myServer) + ":" + String(myPort) + " failed."; - return printClient; - } - } - else { - Serial.println("Connection to Repetier failed: " + String(myServer) + ":" + String(myPort)); //error message if no client connect - Serial.println(); - resetPrintData(); - printerData.error = "Connection to Repetier failed: " + String(myServer) + ":" + String(myPort); - return printClient; - } -/* - // Check HTTP status - char status[32] = {0}; - printClient.readBytesUntil('\r', status, sizeof(status)); - if (strcmp(status, "HTTP/1.1 200 OK") != 0) { - Serial.print(F("Unexpected response: ")); - Serial.println(status); - printerData.state = ""; - printerData.error = "Response: " + String(status); - return printClient; - } - - // Skip HTTP headers - char endOfHeaders[] = "\r\n\r\n"; - if (!printClient.find(endOfHeaders)) { - Serial.println(F("Invalid response")); - printerData.error = "Invalid response from " + String(myServer) + ":" + String(myPort); - printerData.state = ""; - } -*/ - return printClient; -} - - -void RepetierClient::getPrinterJobResults() { - if (!validate()) { - return; - } - //**** get the Printer Job status - String apiGetData = "GET /printer/api/?a=listPrinter&apikey=" + myApiKey; - WiFiClient printClient = getSubmitRequest(apiGetData); - if (printerData.error != "") { - return; - } - const size_t bufferSize = JSON_OBJECT_SIZE(1) + JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + 2*JSON_OBJECT_SIZE(5) + JSON_OBJECT_SIZE(6) + 710; - DynamicJsonBuffer jsonBuffer(bufferSize); - - // Parse JSON object - JsonArray& root = jsonBuffer.parseArray(printClient); - - if (!root.success()) { - printerData.error = "Repetier Data Parsing failed: " + String(myServer) + ":" + String(myPort); - Serial.println(printerData.error); - printerData.state = ""; - return; - } - - int inx = 0; - int count = root.size(); - Serial.println("Size of root: " + String(count)); - for (int i = 0; i < count; i++) { - Serial.println("Printer: " + String((const char*)root[i]["slug"])); - if (String((const char*)root[i]["slug"]) == printerData.printerName) { - inx = i; - break; - } - } - - JsonObject& pr = root[inx]; - - //printerData.averagePrintTime = (const char*)pr[""]; - printerData.estimatedPrintTime = (const char*)pr["printTime"]; - printerData.fileName = (const char*) pr["job"]; - printerData.fileSize = (const char*) pr["totalLines"]; - //printerData.filamentLength = (const char*) pr[""]; - printerData.state = (const char*) pr["online"]; - //printerData.lastPrintTime = (const char*) pr[""]; - printerData.progressCompletion = (const char*) pr["done"]; - printerData.progressFilepos = (const char*) pr["linesSend"]; - printerData.progressPrintTime = (const char*) pr["printedTimeComp"]; - -//Figure out Time Left - long timeTot=0; - long timeElap=0; - long timeLeft=0; - if (printerData.estimatedPrintTime != "" ) { - timeTot = atol(pr["printTime"]); - } - if (printerData.progressPrintTime != "") { - timeElap= atol(pr["printedTimeComp"]); - } - timeLeft = timeTot-timeElap; - printerData.progressPrintTimeLeft = String(timeLeft); - - if (printerData.fileName != "none") { - printerData.isPrinting = true; - } else { - printerData.isPrinting = false; - } - - if (printerData.isPrinting) { - Serial.println("Printing: " + printerData.fileName); - } - - if (isOperational()) { - Serial.println("Status: " + printerData.state); - } else { - Serial.println("Printer Not Operational"); - } - - //**** get the Printer Temps and Stat - apiGetData = "GET /printer/api/?a=stateList&apikey=" + myApiKey; - printClient = getSubmitRequest(apiGetData); - if (printerData.error != "") { - return; - } - const size_t bufferSize2 = 3*JSON_OBJECT_SIZE(2) + 2*JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(9) + 300; - DynamicJsonBuffer jsonBuffer2(bufferSize2); - - //Parse JSON object - JsonObject& root2 = jsonBuffer2.parseObject(printClient); - - //Select printer - JsonObject& pr2 = root2[printerData.printerName]; - - if (!root2.success()) { - printerData.isPrinting = false; - printerData.toolTemp = ""; - printerData.toolTargetTemp = ""; - printerData.bedTemp = ""; - printerData.bedTargetTemp = ""; - return; - } - - printerData.toolTemp = (const char*) pr2["extruder"][0]["tempRead"]; - printerData.toolTargetTemp = (const char*) pr2["extruder"][0]["tempSet"]; - printerData.bedTemp = (const char*) pr2["heatedBeds"][0]["tempRead"]; - printerData.bedTargetTemp = (const char*) pr2["heatedBeds"][0]["tempSet"]; - - if (printerData.isPrinting) { - Serial.println("Status: " + printerData.state + " " + printerData.fileName + "(" + printerData.progressCompletion + "%)"); - } -} - -void RepetierClient::getPrinterPsuState() { - //**** get the PSU state (if enabled and printer operational) - //Not implemented in Repetier Server AFAIK -} - -// Reset all PrinterData -void RepetierClient::resetPrintData() { - printerData.averagePrintTime = ""; - printerData.estimatedPrintTime = ""; - printerData.fileName = ""; - printerData.fileSize = ""; - printerData.lastPrintTime = ""; - printerData.progressCompletion = ""; - printerData.progressFilepos = ""; - printerData.progressPrintTime = ""; - printerData.progressPrintTimeLeft = ""; - printerData.state = ""; - printerData.toolTemp = ""; - printerData.toolTargetTemp = ""; - printerData.filamentLength = ""; - printerData.bedTemp = ""; - printerData.bedTargetTemp = ""; - printerData.isPrinting = false; - printerData.isPSUoff = false; - printerData.error = ""; -} - -String RepetierClient::getAveragePrintTime(){ - return printerData.averagePrintTime; -} - -String RepetierClient::getEstimatedPrintTime() { - return printerData.estimatedPrintTime; -} - -String RepetierClient::getFileName() { - return printerData.fileName; -} - -String RepetierClient::getFileSize() { - return printerData.fileSize; -} - -String RepetierClient::getLastPrintTime(){ - return printerData.lastPrintTime; -} - -String RepetierClient::getProgressCompletion() { - return String(printerData.progressCompletion.toInt()); -} - -String RepetierClient::getProgressFilepos() { - return printerData.progressFilepos; -} - -String RepetierClient::getProgressPrintTime() { - return printerData.progressPrintTime; -} - -String RepetierClient::getProgressPrintTimeLeft() { - String rtnValue = printerData.progressPrintTimeLeft; - if (getProgressCompletion() == "100") { - rtnValue = "0"; // Print is done so this should be 0 this is a fix for OctoPrint - } - return rtnValue; -} - -String RepetierClient::getState() { - String rtnValue = "Offline"; - if (printerData.state == "1") { - rtnValue = "Operational"; - } - return rtnValue; -} - -boolean RepetierClient::isPrinting() { - return printerData.isPrinting; -} - -boolean RepetierClient::isPSUoff() { - return printerData.isPSUoff; -} - -boolean RepetierClient::isOperational() { - boolean operational = false; - if (printerData.state == "1" || isPrinting()) { - operational = true; - } - return operational; -} - -String RepetierClient::getTempBedActual() { - String temp = printerData.bedTemp; - temp.remove(temp.indexOf(".") + 3); - return temp; -} - -String RepetierClient::getTempBedTarget() { - return printerData.bedTargetTemp; -} - -String RepetierClient::getTempToolActual() { - String temp = printerData.toolTemp; - temp.remove(temp.indexOf(".") + 3); - return temp; -} - -String RepetierClient::getTempToolTarget() { - return printerData.toolTargetTemp; -} - -String RepetierClient::getFilamentLength() { - return printerData.filamentLength; -} - -String RepetierClient::getError() { - return printerData.error; -} - -String RepetierClient::getValueRounded(String value) { - float f = value.toFloat(); - int rounded = (int)(f+0.5f); - return String(rounded); -} - -String RepetierClient::getPrinterType() { - return printerType; -} - -int RepetierClient::getPrinterPort() { - return myPort; -} - -String RepetierClient::getPrinterName() { - return printerData.printerName; -} - -void RepetierClient::setPrinterName(String printer) { - printerData.printerName = printer; -} +/** The MIT License (MIT) + +Copyright (c) 2018 David Payne + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +// Additional Contributions: +/* 15 Jan 2019 : Owen Carter : Add psucontrol query via POST api call */ +/* 07 April 2019 : Jon Smith : Redesigned this class for Repetier Server */ + +#include "RepetierClient.h" + +RepetierClient::RepetierClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { + updatePrintClient(ApiKey, server, port, user, pass, psu); +} + +void RepetierClient::updatePrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { + server.toCharArray(myServer, 100); + myApiKey = ApiKey; + myPort = port; + encodedAuth = ""; + if (user != "") { + String userpass = user + ":" + pass; + base64 b64; + encodedAuth = b64.encode(userpass, true); + } + pollPsu = psu; +} + +boolean RepetierClient::validate() { + boolean rtnValue = false; + printerData.error = ""; + if (String(myServer) == "") { + printerData.error += "La dirección del servidor es obligatoria; "; + } + if (myApiKey == "") { + printerData.error += "La ApiKey es obligatoria; "; + } + if (printerData.error == "") { + rtnValue = true; + } + return rtnValue; +} + +WiFiClient RepetierClient::getSubmitRequest(String apiGetData) { + WiFiClient printClient; + printClient.setTimeout(5000); + + Serial.println("Obteniendo datos del Repetidor via GET"); + Serial.println(apiGetData); + result = ""; + if (printClient.connect(myServer, myPort)) { //starts client connection, checks for connection + printClient.println(apiGetData); + printClient.println("Host: " + String(myServer) + ":" + String(myPort)); + printClient.println("X-Api-Key: " + myApiKey); + if (encodedAuth != "") { + printClient.print("Authorization: "); + printClient.println("Basic " + encodedAuth); + } + printClient.println("User-Agent: ArduinoWiFi/1.1"); + printClient.println("Connection: close"); + if (printClient.println() == 0) { + Serial.println("Connection to " + String(myServer) + ":" + String(myPort) + " failed."); + Serial.println(); + resetPrintData(); + printerData.error = "Connection to " + String(myServer) + ":" + String(myPort) + " failed."; + return printClient; + } + } + else { + Serial.println("Conexión a OctoPrint fallida: " + String(myServer) + ":" + String(myPort)); //error message if no client connect + Serial.println(); + resetPrintData(); + printerData.error = "Conexión a OctoPrint fallida: " + String(myServer) + ":" + String(myPort); + return printClient; + } +/* + // Check HTTP status + char status[32] = {0}; + printClient.readBytesUntil('\r', status, sizeof(status)); + if (strcmp(status, "HTTP/1.1 200 OK") != 0) { + Serial.print(F("Unexpected response: ")); + Serial.println(status); + printerData.state = ""; + printerData.error = "Response: " + String(status); + return printClient; + } + + // Skip HTTP headers + char endOfHeaders[] = "\r\n\r\n"; + if (!printClient.find(endOfHeaders)) { + Serial.println(F("Invalid response")); + printerData.error = "Invalid response from " + String(myServer) + ":" + String(myPort); + printerData.state = ""; + } +*/ + return printClient; +} + + +void RepetierClient::getPrinterJobResults() { + if (!validate()) { + return; + } + //**** get the Printer Job status + String apiGetData = "GET /printer/api/?a=listPrinter&apikey=" + myApiKey; + WiFiClient printClient = getSubmitRequest(apiGetData); + if (printerData.error != "") { + return; + } + const size_t bufferSize = JSON_OBJECT_SIZE(1) + JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + 2*JSON_OBJECT_SIZE(5) + JSON_OBJECT_SIZE(6) + 710; + DynamicJsonBuffer jsonBuffer(bufferSize); + + // Parse JSON object + JsonArray& root = jsonBuffer.parseArray(printClient); + + if (!root.success()) { + printerData.error = "Fallo al parsear los datos de OctoPrint: " + String(myServer) + ":" + String(myPort); + Serial.println(printerData.error); + printerData.state = ""; + return; + } + + int inx = 0; + int count = root.size(); + Serial.println("Size of root: " + String(count)); + for (int i = 0; i < count; i++) { + Serial.println("Printer: " + String((const char*)root[i]["slug"])); + if (String((const char*)root[i]["slug"]) == printerData.printerName) { + inx = i; + break; + } + } + + JsonObject& pr = root[inx]; + + //printerData.averagePrintTime = (const char*)pr[""]; + printerData.estimatedPrintTime = (const char*)pr["printTime"]; + printerData.fileName = (const char*) pr["job"]; + printerData.fileSize = (const char*) pr["totalLines"]; + //printerData.filamentLength = (const char*) pr[""]; + printerData.state = (const char*) pr["online"]; + //printerData.lastPrintTime = (const char*) pr[""]; + printerData.progressCompletion = (const char*) pr["done"]; + printerData.progressFilepos = (const char*) pr["linesSend"]; + printerData.progressPrintTime = (const char*) pr["printedTimeComp"]; + +//Figure out Time Left + long timeTot=0; + long timeElap=0; + long timeLeft=0; + if (printerData.estimatedPrintTime != "" ) { + timeTot = atol(pr["printTime"]); + } + if (printerData.progressPrintTime != "") { + timeElap= atol(pr["printedTimeComp"]); + } + timeLeft = timeTot-timeElap; + printerData.progressPrintTimeLeft = String(timeLeft); + + if (printerData.fileName != "none") { + printerData.isPrinting = true; + } else { + printerData.isPrinting = false; + } + + if (printerData.isPrinting) { + Serial.println("Printing: " + printerData.fileName); + } + + if (isOperational()) { + Serial.println("Estado: " + printerData.state); + } else { + Serial.println("Impresora no disponible"); + } + + //**** get the Printer Temps and Stat + apiGetData = "GET /printer/api/?a=stateList&apikey=" + myApiKey; + printClient = getSubmitRequest(apiGetData); + if (printerData.error != "") { + return; + } + const size_t bufferSize2 = 3*JSON_OBJECT_SIZE(2) + 2*JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(9) + 300; + DynamicJsonBuffer jsonBuffer2(bufferSize2); + + //Parse JSON object + JsonObject& root2 = jsonBuffer2.parseObject(printClient); + + //Select printer + JsonObject& pr2 = root2[printerData.printerName]; + + if (!root2.success()) { + printerData.isPrinting = false; + printerData.toolTemp = ""; + printerData.toolTargetTemp = ""; + printerData.bedTemp = ""; + printerData.bedTargetTemp = ""; + return; + } + + printerData.toolTemp = (const char*) pr2["extruder"][0]["tempRead"]; + printerData.toolTargetTemp = (const char*) pr2["extruder"][0]["tempSet"]; + printerData.bedTemp = (const char*) pr2["heatedBeds"][0]["tempRead"]; + printerData.bedTargetTemp = (const char*) pr2["heatedBeds"][0]["tempSet"]; + + if (printerData.isPrinting) { + Serial.println("Status: " + printerData.state + " " + printerData.fileName + "(" + printerData.progressCompletion + "%)"); + } +} + +void RepetierClient::getPrinterPsuState() { + //**** get the PSU state (if enabled and printer operational) + //Not implemented in Repetier Server AFAIK +} + +// Reset all PrinterData +void RepetierClient::resetPrintData() { + printerData.averagePrintTime = ""; + printerData.estimatedPrintTime = ""; + printerData.fileName = ""; + printerData.fileSize = ""; + printerData.lastPrintTime = ""; + printerData.progressCompletion = ""; + printerData.progressFilepos = ""; + printerData.progressPrintTime = ""; + printerData.progressPrintTimeLeft = ""; + printerData.state = ""; + printerData.toolTemp = ""; + printerData.toolTargetTemp = ""; + printerData.filamentLength = ""; + printerData.bedTemp = ""; + printerData.bedTargetTemp = ""; + printerData.isPrinting = false; + printerData.isPSUoff = false; + printerData.error = ""; +} + +String RepetierClient::getAveragePrintTime(){ + return printerData.averagePrintTime; +} + +String RepetierClient::getEstimatedPrintTime() { + return printerData.estimatedPrintTime; +} + +String RepetierClient::getFileName() { + return printerData.fileName; +} + +String RepetierClient::getFileSize() { + return printerData.fileSize; +} + +String RepetierClient::getLastPrintTime(){ + return printerData.lastPrintTime; +} + +String RepetierClient::getProgressCompletion() { + return String(printerData.progressCompletion.toInt()); +} + +String RepetierClient::getProgressFilepos() { + return printerData.progressFilepos; +} + +String RepetierClient::getProgressPrintTime() { + return printerData.progressPrintTime; +} + +String RepetierClient::getProgressPrintTimeLeft() { + String rtnValue = printerData.progressPrintTimeLeft; + if (getProgressCompletion() == "100") { + rtnValue = "0"; // Print is done so this should be 0 this is a fix for OctoPrint + } + return rtnValue; +} + +String RepetierClient::getState() { + String rtnValue = "Offline"; + if (printerData.state == "1") { + rtnValue = "Operational"; + } + return rtnValue; +} + +boolean RepetierClient::isPrinting() { + return printerData.isPrinting; +} + +boolean RepetierClient::isPSUoff() { + return printerData.isPSUoff; +} + +boolean RepetierClient::isOperational() { + boolean operational = false; + if (printerData.state == "1" || isPrinting()) { + operational = true; + } + return operational; +} + +String RepetierClient::getTempBedActual() { + String temp = printerData.bedTemp; + temp.remove(temp.indexOf(".") + 3); + return temp; +} + +String RepetierClient::getTempBedTarget() { + return printerData.bedTargetTemp; +} + +String RepetierClient::getTempToolActual() { + String temp = printerData.toolTemp; + temp.remove(temp.indexOf(".") + 3); + return temp; +} + +String RepetierClient::getTempToolTarget() { + return printerData.toolTargetTemp; +} + +String RepetierClient::getFilamentLength() { + return printerData.filamentLength; +} + +String RepetierClient::getError() { + return printerData.error; +} + +String RepetierClient::getValueRounded(String value) { + float f = value.toFloat(); + int rounded = (int)(f+0.5f); + return String(rounded); +} + +String RepetierClient::getPrinterType() { + return printerType; +} + +int RepetierClient::getPrinterPort() { + return myPort; +} + +String RepetierClient::getPrinterName() { + return printerData.printerName; +} + +void RepetierClient::setPrinterName(String printer) { + printerData.printerName = printer; +} diff --git a/printermonitor/RepetierClient.h b/printermonitor/RepetierClient.h old mode 100644 new mode 100755 diff --git a/printermonitor/Settings.h b/printermonitor/Settings.h index a149b82..0d0229a 100644 --- a/printermonitor/Settings.h +++ b/printermonitor/Settings.h @@ -1,114 +1,114 @@ -/** The MIT License (MIT) - -Copyright (c) 2018 David Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -// Additional Contributions: -/* 15 Jan 2019 : Owen Carter : Add psucontrol setting */ - -/****************************************************************************** - * Printer Monitor is designed for the Wemos D1 ESP8266 - * Wemos D1 Mini: https://amzn.to/2qLyKJd - * 0.96" OLED I2C 128x64 Display (12864) SSD1306 - * OLED Display: https://amzn.to/2JDEAUF - ******************************************************************************/ -/****************************************************************************** - * NOTE: The settings here are the default settings for the first loading. - * After loading you will manage changes to the settings via the Web Interface. - * If you want to change settings again in the settings.h, you will need to - * erase the file system on the Wemos or use the “Reset Settings” option in - * the Web Interface. - ******************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "TimeClient.h" -#include "RepetierClient.h" -#include "OctoPrintClient.h" -#include "OpenWeatherMapClient.h" -#include "WeatherStationFonts.h" -#include "FS.h" -#include "SH1106Wire.h" -#include "SSD1306Wire.h" -#include "OLEDDisplayUi.h" - -//****************************** -// Start Settings -//****************************** - -// OctoPrint / Repetier Monitoring -- Monitor your 3D OctoPrint or Repetier Server -//#define USE_REPETIER_CLIENT // Uncomment this line to use the Repetier Printer Server -- OctoPrint is used by default and is most common -String PrinterApiKey = ""; // ApiKey from your User Account on OctoPrint / Repetier -String PrinterHostName = "octopi";// Default 'octopi' -- or hostname if different (optional if your IP changes) -String PrinterServer = ""; // IP or Address of your OctoPrint / Repetier Server (DO NOT include http://) -int PrinterPort = 80; // the port you are running your OctoPrint / Repetier server on (usually 80); -String PrinterAuthUser = ""; // only used if you have haproxy or basic athentintication turned on (not default) -String PrinterAuthPass = ""; // only used with haproxy or basic auth (only needed if you must authenticate) - -// Weather Configuration -boolean DISPLAYWEATHER = true; // true = show weather when not printing / false = no weather -String WeatherApiKey = ""; // Your API Key from http://openweathermap.org/ -// Default City Location (use http://openweathermap.org/find to find city ID) -int CityIDs[] = { 5304391 }; //Only USE ONE for weather marquee -boolean IS_METRIC = false; // false = Imperial and true = Metric -// Languages: ar, bg, ca, cz, de, el, en, fa, fi, fr, gl, hr, hu, it, ja, kr, la, lt, mk, nl, pl, pt, ro, ru, se, sk, sl, es, tr, ua, vi, zh_cn, zh_tw -String WeatherLanguage = "en"; //Default (en) English - -// Webserver -const int WEBSERVER_PORT = 80; // The port you can access this device on over HTTP -const boolean WEBSERVER_ENABLED = true; // Device will provide a web interface via http://[ip]:[port]/ -boolean IS_BASIC_AUTH = true; // true = require athentication to change configuration settings / false = no auth -char* www_username = "admin"; // User account for the Web Interface -char* www_password = "password"; // Password for the Web Interface - -// Date and Time -float UtcOffset = -7; // Hour offset from GMT for your timezone -boolean IS_24HOUR = false; // 23:00 millitary 24 hour clock -int minutesBetweenDataRefresh = 15; -boolean DISPLAYCLOCK = true; // true = Show Clock when not printing / false = turn off display when not printing - -// Display Settings -const int I2C_DISPLAY_ADDRESS = 0x3c; // I2C Address of your Display (usually 0x3c or 0x3d) -const int SDA_PIN = D2; -const int SCL_PIN = D5; // original code D5 -- Monitor Easy Board use D1 -boolean INVERT_DISPLAY = false; // true = pins at top | false = pins at the bottom -//#define DISPLAY_SH1106 // Uncomment this line to use the SH1106 display -- SSD1306 is used by default and is most common - -// LED Settings -const int externalLight = LED_BUILTIN; // LED will always flash on bootup or Wifi Errors -boolean USE_FLASH = true; // true = System LED will Flash on Service Calls; false = disabled LED flashing - -// PSU Control -boolean HAS_PSU = false; // Set to true if https://github.com/kantlivelong/OctoPrint-PSUControl/ in use - -// OTA Updates -boolean ENABLE_OTA = true; // this will allow you to load firmware to the device over WiFi (see OTA for ESP8266) -String OTA_Password = ""; // Set an OTA password here -- leave blank if you don't want to be prompted for password - -//****************************** -// End Settings -//****************************** - -String themeColor = "light-green"; // this can be changed later in the web interface. +/** The MIT License (MIT) + +Copyright (c) 2018 David Payne + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +// Additional Contributions: +/* 15 Jan 2019 : Owen Carter : Add psucontrol setting */ + +/****************************************************************************** + * Printer Monitor is designed for the Wemos D1 ESP8266 + * Wemos D1 Mini: https://amzn.to/2qLyKJd + * 0.96" OLED I2C 128x64 Display (12864) SSD1306 + * OLED Display: https://amzn.to/2JDEAUF + ******************************************************************************/ +/****************************************************************************** + * NOTE: The settings here are the default settings for the first loading. + * After loading you will manage changes to the settings via the Web Interface. + * If you want to change settings again in the settings.h, you will need to + * erase the file system on the Wemos or use the “Reset Settings” option in + * the Web Interface. + ******************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include "TimeClient.h" +#include "RepetierClient.h" +#include "OctoPrintClient.h" +#include "OpenWeatherMapClient.h" +#include "WeatherStationFonts.h" +#include "FS.h" +#include "SH1106Wire.h" +#include "SSD1306Wire.h" +#include "OLEDDisplayUi.h" + +//****************************** +// Start Settings +//****************************** + +// OctoPrint / Repetier Monitoring -- Monitor your 3D OctoPrint or Repetier Server +//#define USE_REPETIER_CLIENT // Uncomment this line to use the Repetier Printer Server -- OctoPrint is used by default and is most common +String PrinterApiKey = ""; // ApiKey from your User Account on OctoPrint / Repetier +String PrinterHostName = "octopi";// Default 'octopi' -- or hostname if different (optional if your IP changes) +String PrinterServer = ""; // IP or Address of your OctoPrint / Repetier Server (DO NOT include http://) +int PrinterPort = 80; // the port you are running your OctoPrint / Repetier server on (usually 80); +String PrinterAuthUser = ""; // only used if you have haproxy or basic athentintication turned on (not default) +String PrinterAuthPass = ""; // only used with haproxy or basic auth (only needed if you must authenticate) + +// Weather Configuration +boolean DISPLAYWEATHER = true; // true = show weather when not printing / false = no weather +String WeatherApiKey = ""; // Your API Key from http://openweathermap.org/ +// Default City Location (use http://openweathermap.org/find to find city ID) +int CityIDs[] = { 2515270 }; //Only USE ONE for weather marquee +boolean IS_METRIC = true; // false = Imperial and true = Metric +// Languages: ar, bg, ca, cz, de, el, en, fa, fi, fr, gl, hr, hu, it, ja, kr, la, lt, mk, nl, pl, pt, ro, ru, se, sk, sl, es, tr, ua, vi, zh_cn, zh_tw +String WeatherLanguage = "es"; //Default (en) English + +// Webserver +const int WEBSERVER_PORT = 80; // The port you can access this device on over HTTP +const boolean WEBSERVER_ENABLED = true; // Device will provide a web interface via http://[ip]:[port]/ +boolean IS_BASIC_AUTH = true; // true = require athentication to change configuration settings / false = no auth +char www_username[] = "admin"; // User account for the Web Interface +char www_password[] = "password"; // Password for the Web Interface + +// Date and Time +float UtcOffset = 0; // Hour offset from GMT for your timezone +boolean IS_24HOUR = true; // 23:00 millitary 24 hour clock +int minutesBetweenDataRefresh = 10; +boolean DISPLAYCLOCK = true; // true = Show Clock when not printing / false = turn off display when not printing + +// Display Settings +const int I2C_DISPLAY_ADDRESS = 0x3c; // I2C Address of your Display (usually 0x3c or 0x3d) +const int SDA_PIN = D2; +const int SCL_PIN = D5; // original code D5 -- Monitor Easy Board use D1 +boolean INVERT_DISPLAY = true; // true = pins at top | false = pins at the bottom +//#define DISPLAY_SH1106 // Uncomment this line to use the SH1106 display -- SSD1306 is used by default and is most common + +// LED Settings +const int externalLight = LED_BUILTIN; // LED will always flash on bootup or Wifi Errors +boolean USE_FLASH = false; // true = System LED will Flash on Service Calls; false = disabled LED flashing + +// PSU Control +boolean HAS_PSU = false; // Set to true if https://github.com/kantlivelong/OctoPrint-PSUControl/ in use + +// OTA Updates +boolean ENABLE_OTA = true; // this will allow you to load firmware to the device over WiFi (see OTA for ESP8266) +String OTA_Password = ""; // Set an OTA password here -- leave blank if you don't want to be prompted for password + +//****************************** +// End Settings +//****************************** + +String themeColor = "light-blue"; // this can be changed later in the web interface. diff --git a/printermonitor/TimeClient.cpp b/printermonitor/TimeClient.cpp old mode 100644 new mode 100755 diff --git a/printermonitor/TimeClient.h b/printermonitor/TimeClient.h old mode 100644 new mode 100755 diff --git a/printermonitor/WeatherStationFonts.h b/printermonitor/WeatherStationFonts.h old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/ArduinoJson.h b/printermonitor/libs/ArduinoJson/ArduinoJson.h old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/CHANGELOG.md b/printermonitor/libs/ArduinoJson/CHANGELOG.md old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/CMakeLists.txt b/printermonitor/libs/ArduinoJson/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/CONTRIBUTING.md b/printermonitor/libs/ArduinoJson/CONTRIBUTING.md old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/LICENSE.md b/printermonitor/libs/ArduinoJson/LICENSE.md old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/README.md b/printermonitor/libs/ArduinoJson/README.md old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/SUPPORT.md b/printermonitor/libs/ArduinoJson/SUPPORT.md old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/appveyor.yml b/printermonitor/libs/ArduinoJson/appveyor.yml old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/banner.svg b/printermonitor/libs/ArduinoJson/banner.svg old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/keywords.txt b/printermonitor/libs/ArduinoJson/keywords.txt old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson.h b/printermonitor/libs/ArduinoJson/src/ArduinoJson.h old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Configuration.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Configuration.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/Encoding.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/Encoding.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonBufferAllocated.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonBufferAllocated.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonFloat.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonFloat.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonInteger.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonInteger.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantAs.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantAs.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantContent.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantContent.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantDefault.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantDefault.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantType.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantType.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/List.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/List.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListConstIterator.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListConstIterator.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListIterator.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListIterator.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListNode.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListNode.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/NonCopyable.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/NonCopyable.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ReferenceType.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ReferenceType.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ValueSaver.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ValueSaver.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/Comments.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/Comments.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParser.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParser.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParserImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParserImpl.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/StringWriter.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/StringWriter.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/DynamicJsonBuffer.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/DynamicJsonBuffer.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArray.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArray.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArrayImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArrayImpl.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArraySubscript.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArraySubscript.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBuffer.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBuffer.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferBase.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferBase.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferImpl.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObject.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObject.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectImpl.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectSubscript.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectSubscript.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonPair.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonPair.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariant.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariant.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantBase.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantBase.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantCasts.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantCasts.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantComparisons.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantComparisons.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantImpl.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantOr.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantOr.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantSubscripts.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantSubscripts.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isFloat.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isFloat.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isInteger.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isInteger.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseFloat.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseFloat.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseInteger.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseInteger.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/RawJson.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/RawJson.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DummyPrint.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DummyPrint.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DynamicStringBuilder.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DynamicStringBuilder.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/FloatParts.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/FloatParts.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/IndentedPrint.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/IndentedPrint.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonPrintable.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonPrintable.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializer.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializer.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializerImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializerImpl.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonWriter.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonWriter.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/Prettyfier.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/Prettyfier.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StaticStringBuilder.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StaticStringBuilder.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StreamPrintAdapter.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StreamPrintAdapter.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StaticJsonBuffer.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StaticJsonBuffer.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/ArduinoStream.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/ArduinoStream.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/CharPointer.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/CharPointer.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/FlashString.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/FlashString.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdStream.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdStream.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdString.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdString.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StringTraits.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StringTraits.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/EnableIf.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/EnableIf.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/FloatTraits.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/FloatTraits.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsArray.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsArray.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsBaseOf.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsBaseOf.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsChar.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsChar.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsConst.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsConst.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsIntegral.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsIntegral.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSame.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSame.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsVariant.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsVariant.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveConst.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveConst.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveReference.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveReference.hpp old mode 100644 new mode 100755 diff --git a/printermonitor/printermonitor.ino b/printermonitor/printermonitor.ino index 8849850..95884d7 100644 --- a/printermonitor/printermonitor.ino +++ b/printermonitor/printermonitor.ino @@ -102,39 +102,39 @@ int8_t getWifiQuality(); ESP8266WebServer server(WEBSERVER_PORT); ESP8266HTTPUpdateServer serverUpdater; -static const char WEB_ACTIONS[] PROGMEM = " Home" - " Configure" - " Weather" - " Reset Settings" - " Forget WiFi" - " Firmware Update" - " About"; +static const char WEB_ACTIONS[] PROGMEM = " Inicio" + " Configuración" + " Clima" + " Restablecer configuración" + " Olvidar WiFi" + " Actualizar Firmware" + " Sobre"; String CHANGE_FORM = ""; // moved to config to make it dynamic -static const char CLOCK_FORM[] PROGMEM = "

Display Clock when printer is off

" - "

Use 24 Hour Clock (military time)

" - "

Flip display orientation

" - "

Flash System LED on Service Calls

" - "

Use OctoPrint PSU control plugin for clock/blank

" - "

Clock Sync / Weather Refresh (minutes)

"; +static const char CLOCK_FORM[] PROGMEM = "

Mostrar reloj cuando la imrpesora esté apagada

" + "

Usar reloj 24 Horas

" + "

Voltear la orientación de la pantalla

" + "

Activar LED de WiFi

" + "

Utilizar complemento de control OctoPrint PSU para reloj/blanco

" + "

Actualizar datos del clima

"; -static const char THEME_FORM[] PROGMEM = "

Theme Color

" - "


" - "

Use Security Credentials for Configuration Changes

" - "

" - "

" - ""; +static const char THEME_FORM[] PROGMEM = "

Color de plantilla

" + "


" + "

Utilice credenciales de seguridad para cambios de configuración

" + "

" + "

" + ""; -static const char WEATHER_FORM[] PROGMEM = "

Weather Config:

" - "

Display Weather when printer is off

" - "" +static const char WEATHER_FORM[] PROGMEM = "

Configuración del clima:

" + "

Mostrar el clima cuando la impresora está apagada

" + "" "" - "

" - "

Use Metric (Celsius)

" - "

Weather Language

" - "
" + "

Usar Métrica (Celsius)

" + "

Idioma del clima

" + "" ""; static const char LANG_OPTIONS[] PROGMEM = "" @@ -270,7 +270,7 @@ void setup() { } // print the received signal strength: - Serial.print("Signal Strength (RSSI): "); + Serial.print("Intensidad de la señal (RSSI): "); Serial.print(getWifiQuality()); Serial.println("%"); @@ -286,11 +286,11 @@ void setup() { }); ArduinoOTA.onError([](ota_error_t error) { Serial.printf("Error[%u]: ", error); - if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); - else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); - else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); - else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); - else if (error == OTA_END_ERROR) Serial.println("End Failed"); + if (error == OTA_AUTH_ERROR) Serial.println("Autentificación fallida"); + else if (error == OTA_BEGIN_ERROR) Serial.println("Inicio fallido"); + else if (error == OTA_CONNECT_ERROR) Serial.println("Conexión fallida"); + else if (error == OTA_RECEIVE_ERROR) Serial.println("Recepción fallida"); + else if (error == OTA_END_ERROR) Serial.println("Finalización fallida"); }); ArduinoOTA.setHostname((const char *)hostname.c_str()); if (OTA_Password != "") { @@ -311,26 +311,26 @@ void setup() { serverUpdater.setup(&server, "/update", www_username, www_password); // Start the server server.begin(); - Serial.println("Server started"); + Serial.println("Servidor iniciado"); // Print the IP address String webAddress = "http://" + WiFi.localIP().toString() + ":" + String(WEBSERVER_PORT) + "/"; - Serial.println("Use this URL : " + webAddress); + Serial.println("Use esta URL : " + webAddress); display.clear(); display.setTextAlignment(TEXT_ALIGN_CENTER); display.setFont(ArialMT_Plain_10); - display.drawString(64, 10, "Web Interface On"); - display.drawString(64, 20, "You May Connect to IP"); + display.drawString(64, 10, "Entorno web iniciado"); + display.drawString(64, 20, "Debe conectar a la IP"); display.setFont(ArialMT_Plain_16); display.drawString(64, 30, WiFi.localIP().toString()); - display.drawString(64, 46, "Port: " + String(WEBSERVER_PORT)); + display.drawString(64, 46, "Puerto: " + String(WEBSERVER_PORT)); display.display(); } else { - Serial.println("Web Interface is Disabled"); + Serial.println("Entorno web Deshabilitado"); display.clear(); display.setTextAlignment(TEXT_ALIGN_CENTER); display.setFont(ArialMT_Plain_10); - display.drawString(64, 10, "Web Interface is Off"); - display.drawString(64, 20, "Enable in Settings.h"); + display.drawString(64, 10, "Entorno web deshabilitado"); + display.drawString(64, 20, "Activado en Settings.h"); display.display(); } flashLED(5, 100); @@ -346,10 +346,10 @@ void findMDNS() { // over tcp, and get the number of available devices int n = MDNS.queryService("http", "tcp"); if (n == 0) { - Serial.println("no services found - make sure Printer server is turned on"); + Serial.println("sin servicio - compruebe que el servidor de la impresora esté encendido"); return; } - Serial.println("*** Looking for " + PrinterHostName + " over mDNS"); + Serial.println("*** Buscando " + PrinterHostName + " en mDNS"); for (int i = 0; i < n; ++i) { // Going through every available service, // we're searching for the one whose hostname @@ -359,7 +359,7 @@ void findMDNS() { IPAddress serverIp = MDNS.IP(i); PrinterServer = serverIp.toString(); PrinterPort = MDNS.port(i); // save the port - Serial.println("*** Found Printer Server " + PrinterHostName + " http://" + PrinterServer + ":" + PrinterPort); + Serial.println("*** Servidor de impresora encontrado " + PrinterHostName + " http://" + PrinterServer + ":" + PrinterPort); writeSettings(); // update the settings } } @@ -410,15 +410,15 @@ void getUpdateTime() { Serial.println(); if (displayOn && DISPLAYWEATHER) { - Serial.println("Getting Weather Data..."); + Serial.println("Obteniendo datos del clima..."); weatherClient.updateWeather(); } - Serial.println("Updating Time..."); + Serial.println("Actualizando..."); //Update the Time timeClient.updateTime(); lastEpoch = timeClient.getCurrentEpoch(); - Serial.println("Local time: " + timeClient.getAmPmFormattedTime()); + Serial.println("Hora local: " + timeClient.getAmPmFormattedTime()); ledOnOff(false); // turn off the LED } @@ -434,7 +434,7 @@ void handleSystemReset() { if (!authentication()) { return server.requestAuthentication(); } - Serial.println("Reset System Configuration"); + Serial.println("Reiniciar configuración del sistema"); if (SPIFFS.remove(CONFIG)) { redirectHome(); ESP.restart(); @@ -568,25 +568,25 @@ void handleConfigure() { html = getHeader(); server.sendContent(html); - CHANGE_FORM = "

Station Config:

" - "

" + CHANGE_FORM = "

Configuración:

" + "

" "

"; if (printerClient.getPrinterType() == "OctoPrint") { - CHANGE_FORM += "

"; + CHANGE_FORM += "

"; } - CHANGE_FORM += "

" + CHANGE_FORM += "

" "

" - "

" + "

" "

"; if (printerClient.getPrinterType() == "Repetier") { - CHANGE_FORM += "" + CHANGE_FORM += "" "

" ""; } else { - CHANGE_FORM += "

"; + CHANGE_FORM += "

"; } - CHANGE_FORM += "

" - "

"; + CHANGE_FORM += "

" + "

"; @@ -600,12 +600,12 @@ void handleConfigure() { "t+=\"\";t+=\"\"," "e.innerHTML=t,e.style.background=\"lime\"}else e.innerHTML=\"Error invalid API Key: \"+r.error," "e.style.background=\"red\"}else e.innerHTML=\"Error: \"+o.statusText,e.style.background=\"red\"}," - "o.onerror=function(){e.innerHTML=\"Error connecting to server -- check IP and Port\",e.style.background=\"red\"},o.send(null)}"; + "o.onerror=function(){e.innerHTML=\"Error de conexión al servidor -- comprueba la IP y el puerto\",e.style.background=\"red\"},o.send(null)}"; server.sendContent(html); } else { html = ""; server.sendContent(html); } @@ -742,7 +742,7 @@ String getHeader(boolean refresh) { String getFooter() { int8_t rssi = getWifiQuality(); - Serial.print("Signal Strength (RSSI): "); + Serial.print("Intensidad de la señal (RSSI): "); Serial.print(rssi); Serial.println("%"); String html = "


"; @@ -752,7 +752,7 @@ String getFooter() { html += " Report Status: " + lastReportStatus + "
"; } html += " Version: " + String(VERSION) + "
"; - html += " Signal Strength: "; + html += " Intensidad de la señal: "; html += String(rssi) + "%"; html += ""; html += ""; @@ -780,14 +780,14 @@ void displayPrinterStatus() { if (printerClient.getPrinterType() == "Repetier") { html += "Printer Name: " + printerClient.getPrinterName() + "
"; } else { - html += "Host Name: " + PrinterHostName + "
"; + html += "Nombre de host: " + PrinterHostName + "
"; } if (printerClient.getError() != "") { - html += "Status: Offline
"; - html += "Reason: " + printerClient.getError() + "
"; + html += "Estado: Desconectado
"; + html += "Motivo: " + printerClient.getError() + "
"; } else { - html += "Status: " + printerClient.getState(); + html += "Estado: " + printerClient.getState(); if (printerClient.isPSUoff() && HAS_PSU) { html += ", PSU off"; } @@ -804,12 +804,12 @@ void displayPrinterStatus() { int filamentLength = printerClient.getFilamentLength().toInt(); if (filamentLength > 0) { float fLength = float(filamentLength) / 1000; - html += "Filament: " + String(fLength) + "m
"; + html += "Filamento: " + String(fLength) + "m
"; } - html += "Tool Temperature: " + printerClient.getTempToolActual() + "° C
"; + html += "Temperatura boquilla: " + printerClient.getTempToolActual() + "° C
"; if ( printerClient.getTempBedActual() != 0 ) { - html += "Bed Temperature: " + printerClient.getTempBedActual() + "° C
"; + html += "Temperatura cama: " + printerClient.getTempBedActual() + "° C
"; } int val = printerClient.getProgressPrintTimeLeft().toInt(); @@ -822,7 +822,7 @@ void displayPrinterStatus() { hours = numberOfHours(val); minutes = numberOfMinutes(val); seconds = numberOfSeconds(val); - html += "Printing Time: " + zeroPad(hours) + ":" + zeroPad(minutes) + ":" + zeroPad(seconds) + "
"; + html += "Tiempo imprimiendo: " + zeroPad(hours) + ":" + zeroPad(minutes) + ":" + zeroPad(seconds) + "
"; html += ""; html += "
" + printerClient.getProgressCompletion() + "%
"; } else { @@ -831,23 +831,23 @@ void displayPrinterStatus() { html += "

"; - html += "

Time: " + displayTime + "

"; + html += "

Hora: " + displayTime + "

"; server.sendContent(html); // spit out what we got html = ""; if (DISPLAYWEATHER) { if (weatherClient.getCity(0) == "") { - html += "

Please Configure Weather API

"; + html += "

Por favor Configure clima API

"; if (weatherClient.getError() != "") { - html += "

Weather Error: " + weatherClient.getError() + "

"; + html += "

Clima Error: " + weatherClient.getError() + "

"; } } else { html += "

" + weatherClient.getCity(0) + ", " + weatherClient.getCountry(0) + "

"; html += "
"; html += "" + weatherClient.getDescription(0) + "
"; - html += weatherClient.getHumidity(0) + "% Humidity
"; - html += weatherClient.getWind(0) + " " + getSpeedSymbol() + " Wind
"; + html += weatherClient.getHumidity(0) + "% Humedad
"; + html += weatherClient.getWind(0) + " " + getSpeedSymbol() + " Viento
"; html += "
"; html += "

"; html += weatherClient.getCondition(0) + " (" + weatherClient.getDescription(0) + ")
"; @@ -867,24 +867,24 @@ void displayPrinterStatus() { } void configModeCallback (WiFiManager *myWiFiManager) { - Serial.println("Entered config mode"); + Serial.println("Modo configuración"); Serial.println(WiFi.softAPIP()); display.clear(); display.setTextAlignment(TEXT_ALIGN_CENTER); display.setFont(ArialMT_Plain_10); - display.drawString(64, 0, "Wifi Manager"); - display.drawString(64, 10, "Please connect to AP"); + display.drawString(64, 0, "Configure la Wifi"); + display.drawString(64, 10, "Conecte al punto de acceso"); display.setFont(ArialMT_Plain_16); display.drawString(64, 26, myWiFiManager->getConfigPortalSSID()); display.setFont(ArialMT_Plain_10); - display.drawString(64, 46, "To setup Wifi connection"); + display.drawString(64, 46, "y configure la wifi"); display.display(); - Serial.println("Wifi Manager"); - Serial.println("Please connect to AP"); + Serial.println("Configure en Monitor"); + Serial.println("Conecte al punto de acceso"); Serial.println(myWiFiManager->getConfigPortalSSID()); - Serial.println("To setup Wifi Configuration"); + Serial.println("y configure la wifi"); flashLED(20, 50); } @@ -914,10 +914,10 @@ void drawScreen1(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int display->setTextAlignment(TEXT_ALIGN_CENTER); display->setFont(ArialMT_Plain_16); if (bed != "0") { - display->drawString(29 + x, 0 + y, "Tool"); - display->drawString(89 + x, 0 + y, "Bed"); + display->drawString(29 + x, 0 + y, "Boquilla"); + display->drawString(89 + x, 0 + y, "Cama"); } else { - display->drawString(64 + x, 0 + y, "Tool Temp"); + display->drawString(64 + x, 0 + y, "Temperatura boquilla"); } display->setTextAlignment(TEXT_ALIGN_LEFT); display->setFont(ArialMT_Plain_24); @@ -935,7 +935,7 @@ void drawScreen2(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int display->setTextAlignment(TEXT_ALIGN_CENTER); display->setFont(ArialMT_Plain_16); - display->drawString(64 + x, 0 + y, "Time Remaining"); + display->drawString(64 + x, 0 + y, "Tiempo restante"); //display->setTextAlignment(TEXT_ALIGN_LEFT); display->setFont(ArialMT_Plain_24); int val = printerClient.getProgressPrintTimeLeft().toInt(); @@ -951,7 +951,7 @@ void drawScreen3(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int display->setTextAlignment(TEXT_ALIGN_CENTER); display->setFont(ArialMT_Plain_16); - display->drawString(64 + x, 0 + y, "Printing Time"); + display->drawString(64 + x, 0 + y, "Tiempo impresión"); //display->setTextAlignment(TEXT_ALIGN_LEFT); display->setFont(ArialMT_Plain_24); int val = printerClient.getProgressPrintTime().toInt(); @@ -1068,17 +1068,17 @@ void drawClockHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state) { if (printerClient.isPSUoff()) { display->drawString(64, 47, "psu off"); } else if (printerClient.getState() == "Operational") { - display->drawString(64, 47, "online"); + display->drawString(64, 47, "Conectado"); } else { - display->drawString(64, 47, "offline"); + display->drawString(64, 47, "Desconectado"); } } else { if (printerClient.isPSUoff()) { display->drawString(0, 47, "psu off"); } else if (printerClient.getState() == "Operational") { - display->drawString(0, 47, "online"); + display->drawString(0, 47, "Conectado"); } else { - display->drawString(0, 47, "offline"); + display->drawString(0, 47, "Desconectado"); } } display->setTextAlignment(TEXT_ALIGN_LEFT); @@ -1117,9 +1117,9 @@ void writeSettings() { // Save decoded message to SPIFFS file for playback on power up. File f = SPIFFS.open(CONFIG, "w"); if (!f) { - Serial.println("File open failed!"); + Serial.println("Falló al abrir el archivo!"); } else { - Serial.println("Saving settings now..."); + Serial.println("Guardando configuración..."); f.println("UtcOffset=" + String(UtcOffset)); f.println("printerApiKey=" + PrinterApiKey); f.println("printerHostName=" + PrinterHostName); @@ -1298,11 +1298,11 @@ void checkDisplay() { display.setFont(ArialMT_Plain_16); display.setTextAlignment(TEXT_ALIGN_CENTER); display.setContrast(255); // default is 255 - display.drawString(64, 5, "Printer Offline\nSleep Mode..."); + display.drawString(64, 5, "Apagando impresora\nModo hibernación..."); display.display(); delay(5000); enableDisplay(false); - Serial.println("Printer is offline going down to sleep..."); + Serial.println("Impresora apagada..."); return; } else if (!displayOn && !DISPLAYCLOCK) { if (printerClient.isOperational()) { @@ -1313,15 +1313,15 @@ void checkDisplay() { display.setFont(ArialMT_Plain_16); display.setTextAlignment(TEXT_ALIGN_CENTER); display.setContrast(255); // default is 255 - display.drawString(64, 5, "Printer Online\nWake up..."); + display.drawString(64, 5, "Impresora encendido\nEncendiendo..."); display.display(); - Serial.println("Printer is online waking up..."); + Serial.println("Impresora encendida..."); delay(5000); return; } } else if (DISPLAYCLOCK) { if ((!printerClient.isPrinting() || printerClient.isPSUoff()) && !isClockOn) { - Serial.println("Clock Mode is turned on."); + Serial.println("Modo reloj."); if (!DISPLAYWEATHER) { ui.disableAutoTransition(); ui.setFrames(clockFrame, 1); @@ -1335,7 +1335,7 @@ void checkDisplay() { ui.setOverlays(clockOverlay, numberOfOverlays); isClockOn = true; } else if (printerClient.isPrinting() && !printerClient.isPSUoff() && isClockOn) { - Serial.println("Printer Monitor is active."); + Serial.println("Monito de impresora activado."); ui.setFrames(frames, numberOfFrames); ui.setOverlays(overlays, numberOfOverlays); ui.enableAutoTransition(); @@ -1353,10 +1353,10 @@ void enableDisplay(boolean enable) { displayOffEpoch = 0; // reset } display.displayOn(); - Serial.println("Display was turned ON: " + timeClient.getFormattedTime()); + Serial.println("Pantalla encendida: " + timeClient.getFormattedTime()); } else { display.displayOff(); - Serial.println("Display was turned OFF: " + timeClient.getFormattedTime()); + Serial.println("Pantalla apagada: " + timeClient.getFormattedTime()); displayOffEpoch = lastEpoch; } }