code spell checking - part3 (usermods)

if you can spell Fahrenheit, you can't spell Celsius. And vice versa :-)
This commit is contained in:
Frank
2023-12-14 03:52:06 +01:00
parent d00b32e6de
commit 9024872f63
41 changed files with 98 additions and 98 deletions

View File

@@ -317,7 +317,7 @@ class Animated_Staircase : public Usermod {
seg.setOption(SEG_OPTION_ON, true); seg.setOption(SEG_OPTION_ON, true);
} }
strip.trigger(); // force strip update strip.trigger(); // force strip update
stateChanged = true; // inform external dvices/UI of change stateChanged = true; // inform external devices/UI of change
colorUpdated(CALL_MODE_DIRECT_CHANGE); colorUpdated(CALL_MODE_DIRECT_CHANGE);
DEBUG_PRINTLN(F("Animated Staircase disabled.")); DEBUG_PRINTLN(F("Animated Staircase disabled."));
} }
@@ -501,7 +501,7 @@ class Animated_Staircase : public Usermod {
bottomEchoPin = top[FPSTR(_bottomEcho_pin)] | bottomEchoPin; bottomEchoPin = top[FPSTR(_bottomEcho_pin)] | bottomEchoPin;
topMaxDist = top[FPSTR(_topEchoCm)] | topMaxDist; topMaxDist = top[FPSTR(_topEchoCm)] | topMaxDist;
topMaxDist = min(150,max(30,(int)topMaxDist)); // max distnace ~1.5m (a lag of 9ms may be expected) topMaxDist = min(150,max(30,(int)topMaxDist)); // max distance ~1.5m (a lag of 9ms may be expected)
bottomMaxDist = top[FPSTR(_bottomEchoCm)] | bottomMaxDist; bottomMaxDist = top[FPSTR(_bottomEchoCm)] | bottomMaxDist;
bottomMaxDist = min(150,max(30,(int)bottomMaxDist)); // max distance ~1.5m (a lag of 9ms may be expected) bottomMaxDist = min(150,max(30,(int)bottomMaxDist)); // max distance ~1.5m (a lag of 9ms may be expected)

View File

@@ -38,7 +38,7 @@ Maximum distance for ultrasonic sensor can be configured as the time needed for
You _may_ need to use 10k pull-down resistors on the selected PIR pins, depending on the sensor. You _may_ need to use 10k pull-down resistors on the selected PIR pins, depending on the sensor.
## WLED configuration ## WLED configuration
1. In the WLED UI, confgure a segment for each step. The lowest step of the stairs is the 1. In the WLED UI, configure a segment for each step. The lowest step of the stairs is the
lowest segment id. lowest segment id.
2. Save your segments into a preset. 2. Save your segments into a preset.
3. Ideally, add the preset in the config > LED setup menu to the "apply 3. Ideally, add the preset in the config > LED setup menu to the "apply
@@ -91,7 +91,7 @@ To enable the usermod again, use `"enabled":true`.
Alternatively you can use _Usermod_ Settings page where you can change other parameters as well. Alternatively you can use _Usermod_ Settings page where you can change other parameters as well.
### Changing animation parameters and detection range of the ultrasonic HC-SR04 sensor ### Changing animation parameters and detection range of the ultrasonic HC-SR04 sensor
Using _Usermod_ Settings page you can define different usermod parameters, includng sensor pins, delay between segment activation etc. Using _Usermod_ Settings page you can define different usermod parameters, including sensor pins, delay between segment activation etc.
When an ultrasonic sensor is enabled you can enter maximum detection distance in centimeters separately for top and bottom sensors. When an ultrasonic sensor is enabled you can enter maximum detection distance in centimeters separately for top and bottom sensors.

View File

@@ -9,7 +9,7 @@ The luminance is displayed in both the Info section of the web UI, as well as pu
- This must be added under `lib_deps` in your `platformio.ini` (or `platformio_override.ini`). - This must be added under `lib_deps` in your `platformio.ini` (or `platformio_override.ini`).
- Data is published over MQTT - make sure you've enabled the MQTT sync interface. - Data is published over MQTT - make sure you've enabled the MQTT sync interface.
## Compiliation ## Compilation
To enable, compile with `USERMOD_BH1750` defined (e.g. in `platformio_override.ini`) To enable, compile with `USERMOD_BH1750` defined (e.g. in `platformio_override.ini`)
```ini ```ini

View File

@@ -28,7 +28,7 @@
#define USERMOD_BH1750_FIRST_MEASUREMENT_AT 10000 #define USERMOD_BH1750_FIRST_MEASUREMENT_AT 10000
#endif #endif
// only report if differance grater than offset value // only report if difference grater than offset value
#ifndef USERMOD_BH1750_OFFSET_VALUE #ifndef USERMOD_BH1750_OFFSET_VALUE
#define USERMOD_BH1750_OFFSET_VALUE 2 // WLEDMM this makes more sense #define USERMOD_BH1750_OFFSET_VALUE 2 // WLEDMM this makes more sense
#endif #endif

View File

@@ -32,7 +32,7 @@ private:
// set the default pins based on the architecture, these get overridden by Usermod menu settings // set the default pins based on the architecture, these get overridden by Usermod menu settings
#ifdef ESP8266 #ifdef ESP8266
//uint8_t RST_PIN = 16; // Uncoment for Heltec WiFi-Kit-8 //uint8_t RST_PIN = 16; // Un-comment for Heltec WiFi-Kit-8
#endif #endif
int8_t ioPin[2] = {i2c_scl, i2c_sda}; // I2C pins: SCL, SDA...defaults to Arch hardware pins but overridden at setup() int8_t ioPin[2] = {i2c_scl, i2c_sda}; // I2C pins: SCL, SDA...defaults to Arch hardware pins but overridden at setup()
bool initDone = false; bool initDone = false;
@@ -80,7 +80,7 @@ private:
static const char _name[]; static const char _name[];
static const char _enabled[]; static const char _enabled[];
// Read the BME280/BMP280 Sensor (which one runs depends on whether Celsius or Farenheit being set in Usermod Menu) // Read the BME280/BMP280 Sensor (which one runs depends on whether Celsius or Fahrenheit being set in Usermod Menu)
void UpdateBME280Data(int SensorType) void UpdateBME280Data(int SensorType)
{ {
float _temperature, _humidity, _pressure; float _temperature, _humidity, _pressure;

View File

@@ -19,7 +19,7 @@ If you have an ESP32 board, connect the positive side of the battery to ADC1 (GP
- 💯 Displays current battery voltage - 💯 Displays current battery voltage
- 🚥 Displays battery level - 🚥 Displays battery level
- 🚫 Auto-off with configurable Threshold - 🚫 Auto-off with configurable Threshold
- 🚨 Low power indicator with many configuration posibilities - 🚨 Low power indicator with many configuration possibilities
## 🎈 Installation ## 🎈 Installation
@@ -41,7 +41,7 @@ define `USERMOD_BATTERY` in `wled00/my_config.h`
| `USERMOD_BATTERY_MEASUREMENT_INTERVAL` | ms | battery check interval. defaults to 30 seconds | | `USERMOD_BATTERY_MEASUREMENT_INTERVAL` | ms | battery check interval. defaults to 30 seconds |
| `USERMOD_BATTERY_MIN_VOLTAGE` | v | minimum battery voltage. default is 2.6 (18650 battery standard) | | `USERMOD_BATTERY_MIN_VOLTAGE` | v | minimum battery voltage. default is 2.6 (18650 battery standard) |
| `USERMOD_BATTERY_MAX_VOLTAGE` | v | maximum battery voltage. default is 4.2 (18650 battery standard) | | `USERMOD_BATTERY_MAX_VOLTAGE` | v | maximum battery voltage. default is 4.2 (18650 battery standard) |
| `USERMOD_BATTERY_TOTAL_CAPACITY` | mAh | the capacity of all cells in parralel sumed up | | `USERMOD_BATTERY_TOTAL_CAPACITY` | mAh | the capacity of all cells in parallel summed up |
| `USERMOD_BATTERY_CALIBRATION` | | offset / calibration number, fine tune the measured voltage by the microcontroller | | `USERMOD_BATTERY_CALIBRATION` | | offset / calibration number, fine tune the measured voltage by the microcontroller |
| Auto-Off | --- | --- | | Auto-Off | --- | --- |
| `USERMOD_BATTERY_AUTO_OFF_ENABLED` | true/false | enables auto-off | | `USERMOD_BATTERY_AUTO_OFF_ENABLED` | true/false | enables auto-off |

View File

@@ -49,7 +49,7 @@
#endif #endif
// how many seconds after boot to take first measurement, 90 seconds // how many seconds after boot to take first measurement, 90 seconds
// 90 gives enough time to OTA update firmware if this crashses // 90 gives enough time to OTA update firmware if this crashes
#ifndef USERMOD_DHT_FIRST_MEASUREMENT_AT #ifndef USERMOD_DHT_FIRST_MEASUREMENT_AT
#define USERMOD_DHT_FIRST_MEASUREMENT_AT 90000 #define USERMOD_DHT_FIRST_MEASUREMENT_AT 90000
#endif #endif

View File

@@ -58,7 +58,7 @@ class MyExampleUsermod : public Usermod {
long testLong; long testLong;
int8_t testPins[2]; int8_t testPins[2];
// any private methods should go here (non-inline methosd should be defined out of class) // any private methods should go here (non-inline method should be defined out of class)
void publishMqtt(const char* state, bool retain = false); // example for publishing MQTT message void publishMqtt(const char* state, bool retain = false); // example for publishing MQTT message

View File

@@ -15,23 +15,23 @@ OneWire oneWire(13);
DallasTemperature sensor(&oneWire); DallasTemperature sensor(&oneWire);
long temptimer = millis(); long temptimer = millis();
long lastMeasure = 0; long lastMeasure = 0;
#define Celsius // Show temperature mesaurement in Celcius otherwise is in Fahrenheit #define Celsius // Show temperature measurement in Celsius otherwise is in Fahrenheit
// If display does not work or looks corrupted check the // If display does not work or looks corrupted check the
// constructor reference: // constructor reference:
// https://github.com/olikraus/u8g2/wiki/u8x8setupcpp // https://github.com/olikraus/u8g2/wiki/u8x8setupcpp
// or check the gallery: // or check the gallery:
// https://github.com/olikraus/u8g2/wiki/gallery // https://github.com/olikraus/u8g2/wiki/gallery
// --> First choise of cheap I2C OLED 128X32 0.91" // --> First choice of cheap I2C OLED 128X32 0.91"
U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
// --> Second choise of cheap I2C OLED 128X64 0.96" or 1.3" // --> Second choice of cheap I2C OLED 128X64 0.96" or 1.3"
//U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA //U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
// gets called once at boot. Do all initialization that doesn't depend on // gets called once at boot. Do all initialization that doesn't depend on
// network here // network here
void userSetup() { void userSetup() {
sensor.begin(); //Start Dallas temperature sensor sensor.begin(); //Start Dallas temperature sensor
u8x8.begin(); u8x8.begin();
//u8x8.setFlipMode(1); //Uncoment if using WLED Wemos shield //u8x8.setFlipMode(1); //Un-comment if using WLED Wemos shield
u8x8.setPowerSave(0); u8x8.setPowerSave(0);
u8x8.setContrast(10); //Contrast setup will help to preserve OLED lifetime. In case OLED need to be brighter increase number up to 255 u8x8.setContrast(10); //Contrast setup will help to preserve OLED lifetime. In case OLED need to be brighter increase number up to 255
u8x8.setFont(u8x8_font_chroma48medium8_r); u8x8.setFont(u8x8_font_chroma48medium8_r);
@@ -71,7 +71,7 @@ void userLoop() {
if (mqtt != nullptr) if (mqtt != nullptr)
{ {
sensor.requestTemperatures(); sensor.requestTemperatures();
//Gets prefered temperature scale based on selection in definitions section //Gets preferred temperature scale based on selection in definitions section
#ifdef Celsius #ifdef Celsius
float board_temperature = sensor.getTempCByIndex(0); float board_temperature = sensor.getTempCByIndex(0);
#else #else
@@ -138,11 +138,11 @@ void userLoop() {
// First row with Wifi name // First row with Wifi name
u8x8.setCursor(1, 0); u8x8.setCursor(1, 0);
u8x8.print(knownSsid.substring(0, u8x8.getCols() > 1 ? u8x8.getCols() - 2 : 0)); u8x8.print(knownSsid.substring(0, u8x8.getCols() > 1 ? u8x8.getCols() - 2 : 0));
// Print `~` char to indicate that SSID is longer, than owr dicplay // Print `~` char to indicate that SSID is longer than our display
if (knownSsid.length() > u8x8.getCols()) if (knownSsid.length() > u8x8.getCols())
u8x8.print("~"); u8x8.print("~");
// Second row with IP or Psssword // Second row with IP or Password
u8x8.setCursor(1, 1); u8x8.setCursor(1, 1);
// Print password in AP mode and if led is OFF. // Print password in AP mode and if led is OFF.
if (apActive && bri == 0) if (apActive && bri == 0)

View File

@@ -10,7 +10,7 @@
void UpdateBME280Data(); void UpdateBME280Data();
#define Celsius // Show temperature mesaurement in Celcius otherwise is in Fahrenheit #define Celsius // Show temperature measurement in Celsius otherwise is in Fahrenheit
BME280I2C bme; // Default : forced mode, standby time = 1000 ms BME280I2C bme; // Default : forced mode, standby time = 1000 ms
// Oversampling = pressure ×1, temperature ×1, humidity ×1, filter off, // Oversampling = pressure ×1, temperature ×1, humidity ×1, filter off,
@@ -20,14 +20,14 @@ uint8_t SDA_PIN = 21;
#else //ESP8266 boards #else //ESP8266 boards
uint8_t SCL_PIN = 5; uint8_t SCL_PIN = 5;
uint8_t SDA_PIN = 4; uint8_t SDA_PIN = 4;
// uint8_t RST_PIN = 16; // Uncoment for Heltec WiFi-Kit-8 // uint8_t RST_PIN = 16; // Un-comment for Heltec WiFi-Kit-8
#endif #endif
//The SCL and SDA pins are defined here. //The SCL and SDA pins are defined here.
//ESP8266 Wemos D1 mini board use SCL=5 SDA=4 while ESP32 Wemos32 mini board use SCL=22 SDA=21 //ESP8266 Wemos D1 mini board use SCL=5 SDA=4 while ESP32 Wemos32 mini board use SCL=22 SDA=21
#define U8X8_PIN_SCL SCL_PIN #define U8X8_PIN_SCL SCL_PIN
#define U8X8_PIN_SDA SDA_PIN #define U8X8_PIN_SDA SDA_PIN
//#define U8X8_PIN_RESET RST_PIN // Uncoment for Heltec WiFi-Kit-8 //#define U8X8_PIN_RESET RST_PIN // Un-comment for Heltec WiFi-Kit-8
// If display does not work or looks corrupted check the // If display does not work or looks corrupted check the
// constructor reference: // constructor reference:
@@ -36,9 +36,9 @@ uint8_t SDA_PIN = 4;
// https://github.com/olikraus/u8g2/wiki/gallery // https://github.com/olikraus/u8g2/wiki/gallery
// --> First choise of cheap I2C OLED 128X32 0.91" // --> First choise of cheap I2C OLED 128X32 0.91"
U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
// --> Second choise of cheap I2C OLED 128X64 0.96" or 1.3" // --> Second choice of cheap I2C OLED 128X64 0.96" or 1.3"
//U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA //U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
// --> Third choise of Heltec WiFi-Kit-8 OLED 128X32 0.91" // --> Third choice of Heltec WiFi-Kit-8 OLED 128X32 0.91"
//U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_RESET, U8X8_PIN_SCL, U8X8_PIN_SDA); // Constructor for Heltec WiFi-Kit-8 //U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_RESET, U8X8_PIN_SCL, U8X8_PIN_SDA); // Constructor for Heltec WiFi-Kit-8
// gets called once at boot. Do all initialization that doesn't depend on network here // gets called once at boot. Do all initialization that doesn't depend on network here
@@ -181,11 +181,11 @@ void userLoop() {
// First row with Wifi name // First row with Wifi name
u8x8.setCursor(1, 0); u8x8.setCursor(1, 0);
u8x8.print(knownSsid.substring(0, u8x8.getCols() > 1 ? u8x8.getCols() - 2 : 0)); u8x8.print(knownSsid.substring(0, u8x8.getCols() > 1 ? u8x8.getCols() - 2 : 0));
// Print `~` char to indicate that SSID is longer, than owr dicplay // Print `~` char to indicate that SSID is longer than our display
if (knownSsid.length() > u8x8.getCols()) if (knownSsid.length() > u8x8.getCols())
u8x8.print("~"); u8x8.print("~");
// Second row with IP or Psssword // Second row with IP or Password
u8x8.setCursor(1, 1); u8x8.setCursor(1, 1);
// Print password in AP mode and if led is OFF. // Print password in AP mode and if led is OFF.
if (apActive && bri == 0) if (apActive && bri == 0)

View File

@@ -2,7 +2,7 @@
**Attention: This usermod compiles only for ESP8266** **Attention: This usermod compiles only for ESP8266**
This usermod-v2 modification performs a ping request to a local IP address every 60 seconds. This ensures WLED net services remain accessible in some problematic WLAN environments. This usermod-v2 modification performs a ping request to a local IP address every 60 seconds. This ensures WLED net services remain accessible in some problematic WiFi environments.
The modification works with static or DHCP IP address configuration. The modification works with static or DHCP IP address configuration.
@@ -24,7 +24,7 @@ The usermod supports the following state changes:
| JSON key | Value range | Description | | JSON key | Value range | Description |
|-------------|------------------|---------------------------------| |-------------|------------------|---------------------------------|
| PingDelayMs | 5000 to 18000000 | Deactivdate/activate the sensor | | PingDelayMs | 5000 to 18000000 | Deactivate/activate the sensor |
Changes also persist after a reboot. Changes also persist after a reboot.

View File

@@ -23,7 +23,7 @@ You can also use usermod's off timer instead of sensor's. In such case rotate th
## Usermod installation ## Usermod installation
**NOTE:** Usermod has been included in master branch of WLED so it can be compiled in directly just by defining `-D USERMOD_PIRSWITCH` and optionaly `-D PIR_SENSOR_PIN=16` to override default pin. You can also change the default off time by adding `-D PIR_SENSOR_OFF_SEC=30`. **NOTE:** Usermod has been included in master branch of WLED so it can be compiled in directly just by defining `-D USERMOD_PIRSWITCH` and optionally `-D PIR_SENSOR_PIN=16` to override default pin. You can also change the default off time by adding `-D PIR_SENSOR_OFF_SEC=30`.
## API to enable/disable the PIR sensor from outside. For example from another usermod: ## API to enable/disable the PIR sensor from outside. For example from another usermod:
@@ -31,7 +31,7 @@ To query or change the PIR sensor state the methods `bool PIRsensorEnabled()` an
When the PIR sensor state changes an MQTT message is broadcasted with topic `wled/deviceMAC/motion` and message `on` or `off`. When the PIR sensor state changes an MQTT message is broadcasted with topic `wled/deviceMAC/motion` and message `on` or `off`.
Usermod can also be configured to send just the MQTT message but not change WLED state using settings page as well as responding to motion only at night Usermod can also be configured to send just the MQTT message but not change WLED state using settings page as well as responding to motion only at night
(assuming NTP and lattitude/longitude are set to determine sunrise/sunset times). (assuming NTP and latitude/longitude are set to determine sunrise/sunset times).
### There are two options to get access to the usermod instance: ### There are two options to get access to the usermod instance:
@@ -85,7 +85,7 @@ Have fun - @gegu & @blazoncek
2021-11 2021-11
* Added information about dynamic configuration options * Added information about dynamic configuration options
* Added option to temporary enable/disble usermod from WLED UI (Info dialog) * Added option to temporary enable/disable usermod from WLED UI (Info dialog)
2022-11 2022-11
* Added compile time option for off timer. * Added compile time option for off timer.

View File

@@ -205,7 +205,7 @@ private:
/** /**
* Read and update PIR sensor state. * Read and update PIR sensor state.
* Initilize/reset switch off timer * Initialize/reset switch off timer
*/ */
bool updatePIRsensorState() bool updatePIRsensorState()
{ {

View File

@@ -5,7 +5,7 @@ v2 Usermod to to control PWM fan with RPM feedback and temperature control
This usermod requires the Dallas Temperature usermod to obtain temperature information. If it's not available, the fan will run at 100% speed. This usermod requires the Dallas Temperature usermod to obtain temperature information. If it's not available, the fan will run at 100% speed.
If the fan does not have _tachometer_ (RPM) output you can set the _tachometer-pin_ to -1 to disable that feature. If the fan does not have _tachometer_ (RPM) output you can set the _tachometer-pin_ to -1 to disable that feature.
You can also set the thershold temperature at which fan runs at lowest speed. If the measured temperature is 3°C greater than the threshold temperature, the fan will run at 100%. You can also set the threshold temperature at which fan runs at lowest speed. If the measured temperature is 3°C greater than the threshold temperature, the fan will run at 100%.
If the _tachometer_ is supported, the current speed (in RPM) will be displayed on the WLED Info page. If the _tachometer_ is supported, the current speed (in RPM) will be displayed on the WLED Info page.
@@ -22,7 +22,7 @@ This includes:
* PWM output pin (can be configured at compile time `-D PWM_PIN=xx`) * PWM output pin (can be configured at compile time `-D PWM_PIN=xx`)
* tachometer input pin (can be configured at compile time `-D TACHO_PIN=xx`) * tachometer input pin (can be configured at compile time `-D TACHO_PIN=xx`)
* sampling frequency in seconds * sampling frequency in seconds
* threshold temperature in degees C * threshold temperature in degrees Celsius
_NOTE:_ You may also need to tweak Dallas Temperature usermod sampling frequency to match PWM fan sampling frequency. _NOTE:_ You may also need to tweak Dallas Temperature usermod sampling frequency to match PWM fan sampling frequency.

View File

@@ -30,7 +30,7 @@
#define USERMOD_SN_PHOTORESISTOR_RESISTOR_VALUE 10000.0f #define USERMOD_SN_PHOTORESISTOR_RESISTOR_VALUE 10000.0f
#endif #endif
// only report if differance grater than offset value // only report if difference grater than offset value
#ifndef USERMOD_SN_PHOTORESISTOR_OFFSET_VALUE #ifndef USERMOD_SN_PHOTORESISTOR_OFFSET_VALUE
#define USERMOD_SN_PHOTORESISTOR_OFFSET_VALUE 5 #define USERMOD_SN_PHOTORESISTOR_OFFSET_VALUE 5
#endif #endif

View File

@@ -3,7 +3,7 @@
* This file allows you to add own functionality to WLED more easily * This file allows you to add own functionality to WLED more easily
* See: https://github.com/Aircoookie/WLED/wiki/Add-own-functionality * See: https://github.com/Aircoookie/WLED/wiki/Add-own-functionality
* EEPROM bytes 2750+ are reserved for your custom use case. (if you extend #define EEPSIZE in const.h) * EEPROM bytes 2750+ are reserved for your custom use case. (if you extend #define EEPSIZE in const.h)
* bytes 2400+ are currently ununsed, but might be used for future wled features * bytes 2400+ are currently unused, but might be used for future wled features
*/ */
/* /*
@@ -144,7 +144,7 @@ void userLoop() {
// First row with Wifi name // First row with Wifi name
tft.setCursor(1, 1); tft.setCursor(1, 1);
tft.print(knownSsid.substring(0, tftcharwidth > 1 ? tftcharwidth - 1 : 0)); tft.print(knownSsid.substring(0, tftcharwidth > 1 ? tftcharwidth - 1 : 0));
// Print `~` char to indicate that SSID is longer, than our dicplay // Print `~` char to indicate that SSID is longer than our display
if (knownSsid.length() > tftcharwidth) if (knownSsid.length() > tftcharwidth)
tft.print("~"); tft.print("~");

View File

@@ -18,7 +18,7 @@ Copy the example `platformio_override.ini` to the root directory. This file sho
* `USERMOD_DALLASTEMPERATURE` - enables this user mod wled00/usermods_list.cpp * `USERMOD_DALLASTEMPERATURE` - enables this user mod wled00/usermods_list.cpp
* `USERMOD_DALLASTEMPERATURE_MEASUREMENT_INTERVAL` - number of milliseconds between measurements, defaults to 60000 ms (60s) * `USERMOD_DALLASTEMPERATURE_MEASUREMENT_INTERVAL` - number of milliseconds between measurements, defaults to 60000 ms (60s)
All parameters can be configured at runtime via the Usermods settings page, including pin, temperature in degrees Celsius or Farenheit and measurement interval. All parameters can be configured at runtime via the Usermods settings page, including pin, temperature in degrees Celsius or Fahrenheit and measurement interval.
## Project link ## Project link

View File

@@ -34,30 +34,30 @@ uint8_t DALLAS_PIN =23;
uint8_t SCL_PIN = 5; uint8_t SCL_PIN = 5;
uint8_t SDA_PIN = 4; uint8_t SDA_PIN = 4;
uint8_t DALLAS_PIN =13; uint8_t DALLAS_PIN =13;
// uint8_t RST_PIN = 16; // Uncoment for Heltec WiFi-Kit-8 // uint8_t RST_PIN = 16; // Un-comment for Heltec WiFi-Kit-8
#endif #endif
//The SCL and SDA pins are defined here. //The SCL and SDA pins are defined here.
//ESP8266 Wemos D1 mini board use SCL=5 SDA=4 while ESP32 Wemos32 mini board use SCL=22 SDA=21 //ESP8266 Wemos D1 mini board use SCL=5 SDA=4 while ESP32 Wemos32 mini board use SCL=22 SDA=21
#define U8X8_PIN_SCL SCL_PIN #define U8X8_PIN_SCL SCL_PIN
#define U8X8_PIN_SDA SDA_PIN #define U8X8_PIN_SDA SDA_PIN
//#define U8X8_PIN_RESET RST_PIN // Uncoment for Heltec WiFi-Kit-8 //#define U8X8_PIN_RESET RST_PIN // Un-comment for Heltec WiFi-Kit-8
// Dallas sensor reading timer // Dallas sensor reading timer
long temptimer = millis(); long temptimer = millis();
long lastMeasure = 0; long lastMeasure = 0;
#define Celsius // Show temperature mesaurement in Celcius otherwise is in Fahrenheit #define Celsius // Show temperature measurement in Celsius otherwise is in Fahrenheit
// If display does not work or looks corrupted check the // If display does not work or looks corrupted check the
// constructor reference: // constructor reference:
// https://github.com/olikraus/u8g2/wiki/u8x8setupcpp // https://github.com/olikraus/u8g2/wiki/u8x8setupcpp
// or check the gallery: // or check the gallery:
// https://github.com/olikraus/u8g2/wiki/gallery // https://github.com/olikraus/u8g2/wiki/gallery
// --> First choise of cheap I2C OLED 128X32 0.91" // --> First choice of cheap I2C OLED 128X32 0.91"
U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
// --> Second choise of cheap I2C OLED 128X64 0.96" or 1.3" // --> Second choice of cheap I2C OLED 128X64 0.96" or 1.3"
//U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA //U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
// --> Third choise of Heltec WiFi-Kit-8 OLED 128X32 0.91" // --> Third choice of Heltec WiFi-Kit-8 OLED 128X32 0.91"
//U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_RESET, U8X8_PIN_SCL, U8X8_PIN_SDA); // Constructor for Heltec WiFi-Kit-8 //U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_RESET, U8X8_PIN_SCL, U8X8_PIN_SDA); // Constructor for Heltec WiFi-Kit-8
// gets called once at boot. Do all initialization that doesn't depend on network here // gets called once at boot. Do all initialization that doesn't depend on network here
void userSetup() { void userSetup() {
@@ -97,7 +97,7 @@ void userLoop() {
//----> Dallas temperature sensor MQTT publishing //----> Dallas temperature sensor MQTT publishing
temptimer = millis(); temptimer = millis();
// Timer to publishe new temperature every 60 seconds // Timer to publish new temperature every 60 seconds
if (temptimer - lastMeasure > 60000) if (temptimer - lastMeasure > 60000)
{ {
lastMeasure = temptimer; lastMeasure = temptimer;
@@ -106,7 +106,7 @@ void userLoop() {
if (mqtt != nullptr) if (mqtt != nullptr)
{ {
// Serial.println(Dallas(DALLAS_PIN,0)); // Serial.println(Dallas(DALLAS_PIN,0));
//Gets prefered temperature scale based on selection in definitions section //Gets preferred temperature scale based on selection in definitions section
#ifdef Celsius #ifdef Celsius
int16_t board_temperature = Dallas(DALLAS_PIN,0); int16_t board_temperature = Dallas(DALLAS_PIN,0);
#else #else
@@ -173,11 +173,11 @@ void userLoop() {
// First row with Wifi name // First row with Wifi name
u8x8.setCursor(1, 0); u8x8.setCursor(1, 0);
u8x8.print(knownSsid.substring(0, u8x8.getCols() > 1 ? u8x8.getCols() - 2 : 0)); u8x8.print(knownSsid.substring(0, u8x8.getCols() > 1 ? u8x8.getCols() - 2 : 0));
// Print `~` char to indicate that SSID is longer, than owr dicplay // Print `~` char to indicate that SSID is longer than our display
if (knownSsid.length() > u8x8.getCols()) if (knownSsid.length() > u8x8.getCols())
u8x8.print("~"); u8x8.print("~");
// Second row with IP or Psssword // Second row with IP or Password
u8x8.setCursor(1, 1); u8x8.setCursor(1, 1);
// Print password in AP mode and if led is OFF. // Print password in AP mode and if led is OFF.
if (apActive && bri == 0) if (apActive && bri == 0)

View File

@@ -6,7 +6,7 @@
void UpdateBME280Data(); void UpdateBME280Data();
#define Celsius // Show temperature mesaurement in Celcius otherwise is in Fahrenheit #define Celsius // Show temperature measurement in Celsius otherwise is in Fahrenheit
BME280I2C bme; // Default : forced mode, standby time = 1000 ms BME280I2C bme; // Default : forced mode, standby time = 1000 ms
// Oversampling = pressure ×1, temperature ×1, humidity ×1, filter off, // Oversampling = pressure ×1, temperature ×1, humidity ×1, filter off,
@@ -16,25 +16,25 @@ uint8_t SDA_PIN = 21;
#else //ESP8266 boards #else //ESP8266 boards
uint8_t SCL_PIN = 5; uint8_t SCL_PIN = 5;
uint8_t SDA_PIN = 4; uint8_t SDA_PIN = 4;
// uint8_t RST_PIN = 16; // Uncoment for Heltec WiFi-Kit-8 // uint8_t RST_PIN = 16; // Un-comment for Heltec WiFi-Kit-8
#endif #endif
//The SCL and SDA pins are defined here. //The SCL and SDA pins are defined here.
//ESP8266 Wemos D1 mini board use SCL=5 SDA=4 while ESP32 Wemos32 mini board use SCL=22 SDA=21 //ESP8266 Wemos D1 mini board use SCL=5 SDA=4 while ESP32 Wemos32 mini board use SCL=22 SDA=21
#define U8X8_PIN_SCL SCL_PIN #define U8X8_PIN_SCL SCL_PIN
#define U8X8_PIN_SDA SDA_PIN #define U8X8_PIN_SDA SDA_PIN
//#define U8X8_PIN_RESET RST_PIN // Uncoment for Heltec WiFi-Kit-8 //#define U8X8_PIN_RESET RST_PIN // Un-comment for Heltec WiFi-Kit-8
// If display does not work or looks corrupted check the // If display does not work or looks corrupted check the
// constructor reference: // constructor reference:
// https://github.com/olikraus/u8g2/wiki/u8x8setupcpp // https://github.com/olikraus/u8g2/wiki/u8x8setupcpp
// or check the gallery: // or check the gallery:
// https://github.com/olikraus/u8g2/wiki/gallery // https://github.com/olikraus/u8g2/wiki/gallery
// --> First choise of cheap I2C OLED 128X32 0.91" // --> First choice of cheap I2C OLED 128X32 0.91"
U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
// --> Second choise of cheap I2C OLED 128X64 0.96" or 1.3" // --> Second choice of cheap I2C OLED 128X64 0.96" or 1.3"
//U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA //U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA); // Pins are Reset, SCL, SDA
// --> Third choise of Heltec WiFi-Kit-8 OLED 128X32 0.91" // --> Third choice of Heltec WiFi-Kit-8 OLED 128X32 0.91"
//U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_RESET, U8X8_PIN_SCL, U8X8_PIN_SDA); // Constructor for Heltec WiFi-Kit-8 //U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_RESET, U8X8_PIN_SCL, U8X8_PIN_SDA); // Constructor for Heltec WiFi-Kit-8
// gets called once at boot. Do all initialization that doesn't depend on network here // gets called once at boot. Do all initialization that doesn't depend on network here
@@ -179,11 +179,11 @@ void userLoop() {
// First row with Wifi name // First row with Wifi name
u8x8.setCursor(1, 0); u8x8.setCursor(1, 0);
u8x8.print(knownSsid.substring(0, u8x8.getCols() > 1 ? u8x8.getCols() - 2 : 0)); u8x8.print(knownSsid.substring(0, u8x8.getCols() > 1 ? u8x8.getCols() - 2 : 0));
// Print `~` char to indicate that SSID is longer, than owr dicplay // Print `~` char to indicate that SSID is longer, than our display
if (knownSsid.length() > u8x8.getCols()) if (knownSsid.length() > u8x8.getCols())
u8x8.print("~"); u8x8.print("~");
// Second row with IP or Psssword // Second row with IP or Password
u8x8.setCursor(1, 1); u8x8.setCursor(1, 1);
// Print password in AP mode and if led is OFF. // Print password in AP mode and if led is OFF.
if (apActive && bri == 0) if (apActive && bri == 0)

View File

@@ -1,6 +1,6 @@
# Audioreactive usermod # Audioreactive usermod
Enabless controlling LEDs via audio input. Audio source can be a microphone or analog-in (AUX) using an appropriate adapter. Enables controlling LEDs via audio input. Audio source can be a microphone or analog-in (AUX) using an appropriate adapter.
Supported microphones range from analog (MAX4466, MAX9814, ...) to digital (INMP441, ICS-43434, ...). Supported microphones range from analog (MAX4466, MAX9814, ...) to digital (INMP441, ICS-43434, ...).
Does audio processing and provides data structure that specially written effects can use. Does audio processing and provides data structure that specially written effects can use.
@@ -19,7 +19,7 @@ This usermod is an evolution of [SR-WLED](https://github.com/atuline/WLED), and
## Supported MCUs ## Supported MCUs
This audioreactive usermod works best on "classic ESP32" (dual core), and on ESP32-S3 which also has dual core and hardware floating point support. This audioreactive usermod works best on "classic ESP32" (dual core), and on ESP32-S3 which also has dual core and hardware floating point support.
It will compile succesfully for ESP32-S2 and ESP32-C3, however might not work well, as other WLED functions will become slow. Audio processing requires a lot of computing power, which can be problematic on smaller MCUs like -S2 and -C3. It will compile successfully for ESP32-S2 and ESP32-C3, however might not work well, as other WLED functions will become slow. Audio processing requires a lot of computing power, which can be problematic on smaller MCUs like -S2 and -C3.
Analog audio is only possible on "classic" ESP32, but not on other MCUs like ESP32-S3. Analog audio is only possible on "classic" ESP32, but not on other MCUs like ESP32-S3.
@@ -35,7 +35,7 @@ Customised _arduinoFFT_ library for use with this usermod can be found at https:
### using latest (develop) _arduinoFFT_ library ### using latest (develop) _arduinoFFT_ library
Alternatively, you can use the latest arduinoFFT development version. Alternatively, you can use the latest arduinoFFT development version.
ArduinoFFT `develop` library is slightly more accurate, and slighly faster than our customised library, however also needs additional 2kB RAM. ArduinoFFT `develop` library is slightly more accurate, and slightly faster than our customised library, however also needs additional 2kB RAM.
* `build_flags` = `-D USERMOD_AUDIOREACTIVE` `-D UM_AUDIOREACTIVE_USE_NEW_FFT` * `build_flags` = `-D USERMOD_AUDIOREACTIVE` `-D UM_AUDIOREACTIVE_USE_NEW_FFT`
* `lib_deps`= `https://github.com/kosme/arduinoFFT#develop @ 1.9.2` * `lib_deps`= `https://github.com/kosme/arduinoFFT#develop @ 1.9.2`
@@ -63,7 +63,7 @@ You can use the following additional flags in your `build_flags`
* `-D SR_GAIN=x` : Default "gain" setting (60) * `-D SR_GAIN=x` : Default "gain" setting (60)
* `-D I2S_USE_RIGHT_CHANNEL`: Use RIGHT instead of LEFT channel (not recommended unless you strictly need this). * `-D I2S_USE_RIGHT_CHANNEL`: Use RIGHT instead of LEFT channel (not recommended unless you strictly need this).
* `-D I2S_USE_16BIT_SAMPLES`: Use 16bit instead of 32bit for internal sample buffers. Reduces sampling quality, but frees some RAM ressources (not recommended unless you absolutely need this). * `-D I2S_USE_16BIT_SAMPLES`: Use 16bit instead of 32bit for internal sample buffers. Reduces sampling quality, but frees some RAM ressources (not recommended unless you absolutely need this).
* `-D I2S_GRAB_ADC1_COMPLETELY`: Experimental: continously sample analog ADC microphone. Only effective on ESP32. WARNING this _will_ cause conflicts(lock-up) with any analogRead() call. * `-D I2S_GRAB_ADC1_COMPLETELY`: Experimental: continuously sample analog ADC microphone. Only effective on ESP32. WARNING this _will_ cause conflicts(lock-up) with any analogRead() call.
* `-D MIC_LOGGER` : (debugging) Logs samples from the microphone to serial USB. Use with serial plotter (Arduino IDE) * `-D MIC_LOGGER` : (debugging) Logs samples from the microphone to serial USB. Use with serial plotter (Arduino IDE)
* `-D SR_DEBUG` : (debugging) Additional error diagnostics and debug info on serial USB. * `-D SR_DEBUG` : (debugging) Additional error diagnostics and debug info on serial USB.

View File

@@ -50,5 +50,5 @@ This usermod listens on `[mqttDeviceTopic]/switch/0/set` (where 0 is replaced wi
Feedback about the current state is provided at `[mqttDeviceTopic]/switch/0/state`. Feedback about the current state is provided at `[mqttDeviceTopic]/switch/0/state`.
### Home Assistant auto-discovery ### Home Assistant auto-discovery
Auto-discovery information is automatically published and you shoudn't have to do anything to register the switches in Home Assistant. Auto-discovery information is automatically published and you shouldn't have to do anything to register the switches in Home Assistant.

View File

@@ -2,7 +2,7 @@
This usermod-v2 modification allows the connection of multiple relays, each with individual delay and on/off mode. This usermod-v2 modification allows the connection of multiple relays, each with individual delay and on/off mode.
Usermod supports PCF8574 I2C port expander to reduce GPIO use. Usermod supports PCF8574 I2C port expander to reduce GPIO use.
PCF8574 supports 8 outputs and each output corresponds to a relay in WLED (relay 0 = port 0, etc). I you are using more than 8 relays with multiple PCF8574 make sure their addresses are set conscutively (e.g. 0x20 and 0x21). You can set address of first expander in settings. PCF8574 supports 8 outputs and each output corresponds to a relay in WLED (relay 0 = port 0, etc). I you are using more than 8 relays with multiple PCF8574 make sure their addresses are set in sequence (e.g. 0x20 and 0x21). You can set address of first expander in settings.
(**NOTE:** Will require Wire library and global I2C pins defined.) (**NOTE:** Will require Wire library and global I2C pins defined.)
## HTTP API ## HTTP API

View File

@@ -196,7 +196,7 @@ class MultiRelay : public Usermod {
}; };
// class implementetion // class implementation
void MultiRelay::publishMqtt(int relay) { void MultiRelay::publishMqtt(int relay) {
#ifndef WLED_DISABLE_MQTT #ifndef WLED_DISABLE_MQTT

View File

@@ -17,7 +17,7 @@ The number of individual LEDs per segment. 7 segments per digit.
#### perPeriod -- ssLEDPerPeriod #### perPeriod -- ssLEDPerPeriod
The number of individual LEDs per period. A ':' (colon) has two periods. The number of individual LEDs per period. A ':' (colon) has two periods.
#### startIdx -- ssStartLED #### startIdx -- ssStartLED
Index of the LED the display starts at. Enabless a seven segment display to be in the middle of a string. Index of the LED the display starts at. Enables a seven segment display to be in the middle of a string.
#### timeEnable -- ssTimeEnabled #### timeEnable -- ssTimeEnabled
When true, when displayMask is configured for a time output and no message is set, the time will be displayed. When true, when displayMask is configured for a time output and no message is set, the time will be displayed.
#### scrollSpd -- ssScrollSpeed #### scrollSpd -- ssScrollSpeed

View File

@@ -409,7 +409,7 @@ public:
if (mqttGroupTopic[0] != 0) if (mqttGroupTopic[0] != 0)
{ {
//subcribe for sevenseg messages on the group topic //subscribe for sevenseg messages on the group topic
sprintf_P(subBuffer, PSTR("%s/%S/+/set"), mqttGroupTopic, _str_sevenSeg); sprintf_P(subBuffer, PSTR("%s/%S/+/set"), mqttGroupTopic, _str_sevenSeg);
mqtt->subscribe(subBuffer, 2); mqtt->subscribe(subBuffer, 2);
} }
@@ -417,7 +417,7 @@ public:
bool onMqttMessage(char *topic, char *payload) bool onMqttMessage(char *topic, char *payload)
{ {
//If topic beings iwth sevenSeg cut it off, otherwise not our message. //If topic beings with sevenSeg cut it off, otherwise not our message.
size_t topicPrefixLen = strlen_P(PSTR("/sevenSeg/")); size_t topicPrefixLen = strlen_P(PSTR("/sevenSeg/"));
if (strncmp_P(topic, PSTR("/sevenSeg/"), topicPrefixLen) == 0) if (strncmp_P(topic, PSTR("/sevenSeg/"), topicPrefixLen) == 0)
topic += topicPrefixLen; topic += topicPrefixLen;

View File

@@ -470,14 +470,14 @@ public:
if (mqttGroupTopic[0] != 0) if (mqttGroupTopic[0] != 0)
{ {
//subcribe for sevenseg messages on the group topic //subscribe for sevenseg messages on the group topic
sprintf_P(subBuffer, PSTR("%s/%S/+/set"), mqttGroupTopic, _str_name); sprintf_P(subBuffer, PSTR("%s/%S/+/set"), mqttGroupTopic, _str_name);
mqtt->subscribe(subBuffer, 2); mqtt->subscribe(subBuffer, 2);
} }
} }
bool onMqttMessage(char *topic, char *payload) { bool onMqttMessage(char *topic, char *payload) {
//If topic beings iwth sevenSeg cut it off, otherwise not our message. //If topic begins with sevenSeg cut it off, otherwise not our message.
size_t topicPrefixLen = strlen_P(PSTR("/wledSS/")); size_t topicPrefixLen = strlen_P(PSTR("/wledSS/"));
if (strncmp_P(topic, PSTR("/wledSS/"), topicPrefixLen) == 0) { if (strncmp_P(topic, PSTR("/wledSS/"), topicPrefixLen) == 0) {
topic += topicPrefixLen; topic += topicPrefixLen;

View File

@@ -331,7 +331,7 @@ void ShtUsermod::loop()
/** /**
* Whenever MQTT is connected, publish HA autodiscovery topics. * Whenever MQTT is connected, publish HA autodiscovery topics.
* *
* Is only donce once. * Is only done once.
* *
* @see Usermod::onMqttConnect() * @see Usermod::onMqttConnect()
* @see UsermodManager::onMqttConnect() * @see UsermodManager::onMqttConnect()

View File

@@ -23,7 +23,7 @@ private:
unsigned char Enc_B; unsigned char Enc_B;
unsigned char Enc_A_prev = 0; unsigned char Enc_A_prev = 0;
// private class memebers configurable by Usermod Settings (defaults set inside readFromConfig()) // private class members configurable by Usermod Settings (defaults set inside readFromConfig())
int8_t pins[3]; // pins[0] = DT from encoder, pins[1] = CLK from encoder, pins[2] = CLK from encoder (optional) int8_t pins[3]; // pins[0] = DT from encoder, pins[1] = CLK from encoder, pins[2] = CLK from encoder (optional)
int fadeAmount; // how many points to fade the Neopixel with each step int fadeAmount; // how many points to fade the Neopixel with each step
@@ -162,7 +162,7 @@ public:
* - configComplete is used to return false if any value is missing, not just if the main object is missing * - configComplete is used to return false if any value is missing, not just if the main object is missing
* - The defaults are loaded every time readFromConfig() is run, not just once after boot * - The defaults are loaded every time readFromConfig() is run, not just once after boot
* *
* This ensures that missing values are added to the config, with their default values, in the rare but plauible cases of: * This ensures that missing values are added to the config, with their default values, in the rare but plausible cases of:
* - a single value being missing at boot, e.g. if the Usermod was upgraded and a new setting was added * - a single value being missing at boot, e.g. if the Usermod was upgraded and a new setting was added
* - a single value being missing after boot (e.g. if the cfg.json was manually edited and a value was removed) * - a single value being missing after boot (e.g. if the cfg.json was manually edited and a value was removed)
* *

View File

@@ -109,7 +109,7 @@ class AutoSaveUsermod : public Usermod {
// network here // network here
void setup() { void setup() {
#ifdef USERMOD_FOUR_LINE_DISPLAY #ifdef USERMOD_FOUR_LINE_DISPLAY
// This Usermod has enhanced funcionality if // This Usermod has enhanced functionality if
// FourLineDisplayUsermod is available. // FourLineDisplayUsermod is available.
display = (FourLineDisplayUsermod*) usermods.lookup(USERMOD_ID_FOUR_LINE_DISP); display = (FourLineDisplayUsermod*) usermods.lookup(USERMOD_ID_FOUR_LINE_DISP);
#endif #endif
@@ -156,7 +156,7 @@ class AutoSaveUsermod : public Usermod {
if (autoSaveAfter && now > autoSaveAfter) { if (autoSaveAfter && now > autoSaveAfter) {
autoSaveAfter = 0; autoSaveAfter = 0;
// Time to auto save. You may have some flickry? // Time to auto save. You may have some flickery?
saveSettings(); saveSettings();
displayOverlay(); displayOverlay();
} }

View File

@@ -23,7 +23,7 @@ This file should be placed in the same directory as `platformio.ini`.
* `FLD_PIN_SCL` - The display SCL pin, defaults to 5 * `FLD_PIN_SCL` - The display SCL pin, defaults to 5
* `FLD_PIN_SDA` - The display SDA pin, defaults to 4 * `FLD_PIN_SDA` - The display SDA pin, defaults to 4
All of the parameters can be configured via the Usermods settings page, inluding GPIO pins. All of the parameters can be configured via the Usermods settings page, including GPIO pins.
### PlatformIO requirements ### PlatformIO requirements

View File

@@ -11,7 +11,7 @@
// for WLED. // for WLED.
// //
// Dependencies // Dependencies
// * This usermod REQURES the ModeSortUsermod // * This usermod REQUIRES the ModeSortUsermod
// * This Usermod works best, by far, when coupled // * This Usermod works best, by far, when coupled
// with RotaryEncoderUIUsermod. // with RotaryEncoderUIUsermod.
// //
@@ -398,7 +398,7 @@ class FourLineDisplayUsermod : public Usermod {
drawString(getCols() - 1, 0, "~"); drawString(getCols() - 1, 0, "~");
} }
// Second row with IP or Psssword // Second row with IP or Password
drawGlyph(0, lineHeight, 68, u8x8_font_open_iconic_embedded_1x1); // wifi icon drawGlyph(0, lineHeight, 68, u8x8_font_open_iconic_embedded_1x1); // wifi icon
// Print password in AP mode and if led is OFF. // Print password in AP mode and if led is OFF.
if (apActive && bri == 0) { if (apActive && bri == 0) {

View File

@@ -11,7 +11,7 @@
#include "4LD_wled_fonts.c" #include "4LD_wled_fonts.c"
#ifndef FLD_ESP32_NO_THREADS #ifndef FLD_ESP32_NO_THREADS
#define FLD_ESP32_USE_THREADS // comment out to use 0.13.x behaviour without parallel update task - slower, but more robust. May delay other tasks like LEDs or audioreactive!! #define FLD_ESP32_USE_THREADS // comment out to use 0.13.x behaviour without parallel update task - slower, but more robust. May delay other tasks like LEDs or audioreactive!!
#endif #endif
//#define OLD_4LD_FONTS // comment out if you prefer the "classic" look with blocky fonts (saves 1K flash) //#define OLD_4LD_FONTS // comment out if you prefer the "classic" look with blocky fonts (saves 1K flash)
@@ -1339,7 +1339,7 @@ void FourLineDisplayUsermod::sleepOrClock(bool sleepEnable) {
bool FourLineDisplayUsermod::handleButton(uint8_t b) { bool FourLineDisplayUsermod::handleButton(uint8_t b) {
yield(); yield();
if (!enabled if (!enabled
|| b // butto 0 only || b // button 0 only
|| buttonType[b] == BTN_TYPE_SWITCH || buttonType[b] == BTN_TYPE_SWITCH
|| buttonType[b] == BTN_TYPE_NONE || buttonType[b] == BTN_TYPE_NONE
|| buttonType[b] == BTN_TYPE_RESERVED || buttonType[b] == BTN_TYPE_RESERVED

View File

@@ -10,7 +10,7 @@ curl --location --request GET 'http://[]/printer/objects/query?virtual_sdcard=pr
## Usage ## Usage
Compile the source with the buildflag `-D USERMOD_KLIPPER_PERCENTAGE` added. Compile the source with the buildflag `-D USERMOD_KLIPPER_PERCENTAGE` added.
You can also use the WLBD bot in the Discord by simply extending an exsisting build enviroment: You can also use the WLBD bot in the Discord by simply extending an existing build environment:
``` ```
[env:esp32klipper] [env:esp32klipper]
extends = env:esp32dev extends = env:esp32dev
@@ -23,7 +23,7 @@ build_flags = ${common.build_flags_esp32} -D USERMOD_KLIPPER_PERCENTAGE
Checkbox to enable or disable the overlay Checkbox to enable or disable the overlay
### Klipper IP: ### Klipper IP:
IP adress of your Klipper instance you want to poll. ESP has to be restarted after change IP address of your Klipper instance you want to poll. ESP has to be restarted after change
### Direction : ### Direction :
0 = normal 0 = normal

View File

@@ -79,7 +79,7 @@ public:
httpGet(wifiClient, errorMessage); httpGet(wifiClient, errorMessage);
if (strcmp(errorMessage, "") == 0) if (strcmp(errorMessage, "") == 0)
{ {
PSRAMDynamicJsonDocument klipperDoc(4096); // in practive about 2673 PSRAMDynamicJsonDocument klipperDoc(4096); // in practice about 2673
DeserializationError error = deserializeJson(klipperDoc, wifiClient); DeserializationError error = deserializeJson(klipperDoc, wifiClient);
if (error) if (error)
{ {

View File

@@ -7,4 +7,4 @@ Contains a modification to use WLED in combination with the Ping Pong Ball LED C
To install this Usermod, you instruct PlatformIO to compile the Project with the USERMOD_PING_PONG_CLOCK flag. To install this Usermod, you instruct PlatformIO to compile the Project with the USERMOD_PING_PONG_CLOCK flag.
WLED then automatically provides you with various settings on the Usermod Page. WLED then automatically provides you with various settings on the Usermod Page.
Note: Depending on the size of your clock, you may have to update the led indices for the indivdual numbers and the base indices. Note: Depending on the size of your clock, you may have to update the led indices for the individual numbers and the base indices.

View File

@@ -18,15 +18,15 @@ private:
// ---- Variables for correct LED numbering below, edit only if your clock is built different ---- // ---- Variables for correct LED numbering below, edit only if your clock is built different ----
int baseH = 43; // Adress for the one place of the hours int baseH = 43; // Address for the one place of the hours
int baseHH = 7; // Adress for the tens place of the hours int baseHH = 7; // Address for the tens place of the hours
int baseM = 133; // Adress for the one place of the minutes int baseM = 133; // Address for the one place of the minutes
int baseMM = 97; // Adress for the tens place of the minutes int baseMM = 97; // Address for the tens place of the minutes
int colon1 = 79; // Adress for the first colon led int colon1 = 79; // Address for the first colon led
int colon2 = 80; // Adress for the second colon led int colon2 = 80; // Address for the second colon led
// Matrix for the illumination of the numbers // Matrix for the illumination of the numbers
// Note: These only define the increments of the base adress. e.g. to define the second Minute you have to add the baseMM to every led position // Note: These only define the increments of the base address. e.g. to define the second Minute you have to add the baseMM to every led position
const int numbers[10][10] = const int numbers[10][10] =
{ {
{ 0, 1, 4, 6, 13, 15, 18, 19, -1, -1 }, // 0: null { 0, 1, 4, 6, 13, 15, 18, 19, -1, -1 }, // 0: null

View File

@@ -20,7 +20,7 @@
// Change between modes by pressing a button. // Change between modes by pressing a button.
// //
// Dependencies // Dependencies
// * This usermod REQURES the ModeSortUsermod // * This usermod REQUIRES the ModeSortUsermod
// * This Usermod works best coupled with // * This Usermod works best coupled with
// FourLineDisplayUsermod. // FourLineDisplayUsermod.
// //

View File

@@ -4,7 +4,7 @@
// //
// Inspired by the original v2 usermods // Inspired by the original v2 usermods
// * usermod_v2_rotaty_encoder_ui // * usermod_v2_rotary_encoder_ui
// //
// v2 usermod that provides a rotary encoder-based UI. // v2 usermod that provides a rotary encoder-based UI.
// //
@@ -79,7 +79,7 @@ static int re_qstringCmp(const void *ap, const void *bp) {
// Lowercase // Lowercase
bVal -= 32; bVal -= 32;
} }
// Relly we shouldn't ever get to '\0' // Really we shouldn't ever get to '\0'
if (aVal == '"' || bVal == '"' || aVal == '\0' || bVal == '\0') { if (aVal == '"' || bVal == '"' || aVal == '\0' || bVal == '\0') {
// We're done. one is a substring of the other // We're done. one is a substring of the other
// or something happenend and the quote didn't stop us. // or something happenend and the quote didn't stop us.
@@ -542,7 +542,7 @@ void RotaryEncoderUIUsermod::loop()
bool changedState = false; bool changedState = false;
char lineBuffer[64] = { '\0' }; char lineBuffer[64] = { '\0' };
do { do {
// finde new state // find new state
switch (newState) { switch (newState) {
case 0: strcpy_P(lineBuffer, PSTR("Brightness")); changedState = true; break; case 0: strcpy_P(lineBuffer, PSTR("Brightness")); changedState = true; break;
case 1: if (!extractModeSlider(effectCurrent, 0, lineBuffer, 63)) newState++; else changedState = true; break; // speed case 1: if (!extractModeSlider(effectCurrent, 0, lineBuffer, 63)) newState++; else changedState = true; break; // speed

View File

@@ -8,7 +8,7 @@ active: enable/disable usermod
diplayItIs: enable/disable display of "Es ist" on the clock diplayItIs: enable/disable display of "Es ist" on the clock
ledOffset: number of LEDs before the wordclock LEDs ledOffset: number of LEDs before the wordclock LEDs
### Update for alternatative wiring pattern ### Update for alternative wiring pattern
Based on this fantastic work I added an alternative wiring pattern. Based on this fantastic work I added an alternative wiring pattern.
The original used a long wire to connect DO to DI, from one line to the next line. The original used a long wire to connect DO to DI, from one line to the next line.

View File

@@ -7,8 +7,8 @@
* See: https://github.com/Aircoookie/WLED/wiki/Add-own-functionality * See: https://github.com/Aircoookie/WLED/wiki/Add-own-functionality
* *
* This usermod can be used to drive a wordclock with a 11x10 pixel matrix with WLED. There are also 4 additional dots for the minutes. * This usermod can be used to drive a wordclock with a 11x10 pixel matrix with WLED. There are also 4 additional dots for the minutes.
* The visualisation is desribed in 4 mask with LED numbers (single dots for minutes, minutes, hours and "clock/Uhr"). * The visualisation is described in 4 mask with LED numbers (single dots for minutes, minutes, hours and "clock/Uhr").
* There are 2 parameters to chnage the behaviour: * There are 2 parameters to change the behaviour:
* *
* active: enable/disable usermod * active: enable/disable usermod
* diplayItIs: enable/disable display of "Es ist" on the clock. * diplayItIs: enable/disable display of "Es ist" on the clock.

View File

@@ -1,6 +1,6 @@
# Controlling Wiz lights # Controlling Wiz lights
Enabless controlling [WiZ](https://www.wizconnected.com/en/consumer/) lights that are part of the same network as the WLED controller. Enables controlling [WiZ](https://www.wizconnected.com/en/consumer/) lights that are part of the same network as the WLED controller.
The mod takes the colors from the first few pixels and sends them to the lights. The mod takes the colors from the first few pixels and sends them to the lights.
@@ -8,7 +8,7 @@ The mod takes the colors from the first few pixels and sends them to the lights.
- Interval (ms) - Interval (ms)
- How frequently to update the WiZ lights, in milliseconds. - How frequently to update the WiZ lights, in milliseconds.
- Setting it too low may causse the ESP to become unresponsive. - Setting it too low may cause the ESP to become unresponsive.
- Send Delay (ms) - Send Delay (ms)
- An optional millisecond delay after updating each WiZ light. - An optional millisecond delay after updating each WiZ light.
- Can help smooth out effects when using a large number of WiZ lights - Can help smooth out effects when using a large number of WiZ lights