enabled IP Change and updated the Readme

This commit is contained in:
lost-hope 2023-02-19 09:08:40 +01:00
parent 0ab35a3ca3
commit 2b87817ba2
2 changed files with 38 additions and 14 deletions

View File

@ -1,5 +1,7 @@
# Klipper Percentage Usermod # Klipper Percentage Usermod
This usermod polls the Klipper API every 10s for the progressvalue. This usermod polls the Klipper API every 10s for the progressvalue.
The leds are then filled with a solid color according to that progress percentage.
the solid color is the secondary color of the segment.
A corresponding curl command would be: A corresponding curl command would be:
``` ```
@ -12,9 +14,22 @@ You can also use the WLBD bot in the Discord by simply extending an exsisting bu
``` ```
[env:esp32klipper] [env:esp32klipper]
extends = env:esp32dev extends = env:esp32dev
build_flags = -D USERMOD_KLIPPER_PERCENTAGE build_flags = ${common.build_flags_esp32} -D USERMOD_KLIPPER_PERCENTAGE
``` ```
## Settings
### Enabled:
Checkbox to enable or disable the overlay
### Klipper IP:
IP adress of your Klipper instance you want to poll. ESP has to be restarted after change
### Direction :
0 = normal
1 = reversed
----- -----
Author: Author:

View File

@ -22,7 +22,7 @@ private:
// is this the most compact way to do http get and put it in arduinojson object??? // is this the most compact way to do http get and put it in arduinojson object???
// would like async response ... ??? // would like async response ... ???
client.setTimeout(10000); client.setTimeout(10000);
if (!client.connect("192.168.25.209", 80)) if (!client.connect(ip.c_str(), 80))
{ {
strcat(errorMessage, PSTR("Connection failed")); strcat(errorMessage, PSTR("Connection failed"));
} }
@ -30,7 +30,7 @@ private:
{ {
// Send HTTP request // Send HTTP request
client.println(F("GET /printer/objects/query?virtual_sdcard=progress HTTP/1.0")); client.println(F("GET /printer/objects/query?virtual_sdcard=progress HTTP/1.0"));
client.println(F("Host: 192.168.25.209")); client.println("Host: " + ip);
client.println(F("Connection: close")); client.println(F("Connection: close"));
if (client.println() == 0) if (client.println() == 0)
{ {
@ -86,12 +86,17 @@ public:
strcat(errorMessage, error.c_str()); strcat(errorMessage, error.c_str());
} }
printPercent = (int)(klipperDoc["result"]["status"]["virtual_sdcard"]["progress"].as<float>() * 100); printPercent = (int)(klipperDoc["result"]["status"]["virtual_sdcard"]["progress"].as<float>() * 100);
//DEBUG_PRINTLN(errorMessage);
DEBUG_PRINT("Percent: " ); DEBUG_PRINT("Percent: ");
DEBUG_PRINTLN((int)(klipperDoc["result"]["status"]["virtual_sdcard"]["progress"].as<float>() * 100)); DEBUG_PRINTLN((int)(klipperDoc["result"]["status"]["virtual_sdcard"]["progress"].as<float>() * 100));
DEBUG_PRINT("LEDs: " ); DEBUG_PRINT("LEDs: ");
DEBUG_PRINTLN(strip.getLengthTotal() * printPercent / 100); DEBUG_PRINTLN(strip.getLengthTotal() * printPercent / 100);
} }
else
{
DEBUG_PRINTLN(errorMessage);
DEBUG_PRINTLN(ip);
}
lastTime = millis(); lastTime = millis();
} }
} }
@ -103,7 +108,6 @@ public:
top["Enabled"] = enabled; top["Enabled"] = enabled;
top["Klipper IP"] = ip; top["Klipper IP"] = ip;
top["Direction"] = direction; top["Direction"] = direction;
} }
bool readFromConfig(JsonObject &root) bool readFromConfig(JsonObject &root)
@ -125,6 +129,7 @@ public:
* Creating an "u" object allows you to add custom key/value pairs to the Info section of the WLED web UI. * Creating an "u" object allows you to add custom key/value pairs to the Info section of the WLED web UI.
* Below it is shown how this could be used for e.g. a light sensor * Below it is shown how this could be used for e.g. a light sensor
*/ */
/* TODO: NOT WORKING YET
void addToJsonInfo(JsonObject &root) void addToJsonInfo(JsonObject &root)
{ {
JsonObject user = root["u"]; JsonObject user = root["u"];
@ -144,6 +149,7 @@ public:
infoArr.add(uiDomString); infoArr.add(uiDomString);
} }
void addToJsonState(JsonObject &root) void addToJsonState(JsonObject &root)
{ {
JsonObject usermod = root[FPSTR(_name)]; JsonObject usermod = root[FPSTR(_name)];
@ -153,15 +159,18 @@ public:
} }
usermod["on"] = enabled; usermod["on"] = enabled;
} }
void readFromJsonState(JsonObject& root) void readFromJsonState(JsonObject &root)
{
JsonObject usermod = root[FPSTR(_name)];
if (!usermod.isNull())
{ {
JsonObject usermod = root[FPSTR(_name)]; if (usermod[FPSTR(_enabled)].is<bool>())
if (!usermod.isNull()) { {
if (usermod[FPSTR(_enabled)].is<bool>()) { enabled = usermod[FPSTR(_enabled)].as<bool>();
enabled = usermod[FPSTR(_enabled)].as<bool>();
}
} }
} }
}
*/
/* /*
* handleOverlayDraw() is called just before every show() (LED strip update frame) after effects have set the colors. * handleOverlayDraw() is called just before every show() (LED strip update frame) after effects have set the colors.
@ -198,5 +207,5 @@ public:
return USERMOD_ID_KLIPPER; return USERMOD_ID_KLIPPER;
} }
}; };
const char klipper_percentage::_name[] PROGMEM = "Klipper Percentage"; const char klipper_percentage::_name[] PROGMEM = "Klipper_Percentage";
const char klipper_percentage::_enabled[] PROGMEM = "enabled"; const char klipper_percentage::_enabled[] PROGMEM = "enabled";