diff --git a/usermods/PWM_fan/usermod_PWM_fan.h b/usermods/PWM_fan/usermod_PWM_fan.h index 9be45075..d8aa7a1a 100644 --- a/usermods/PWM_fan/usermod_PWM_fan.h +++ b/usermods/PWM_fan/usermod_PWM_fan.h @@ -1,7 +1,7 @@ #pragma once -#ifndef USERMOD_DALLASTEMPERATURE -#error The "PWM fan" usermod requires "Dallas Temeprature" usermod to function properly. +#if !defined(USERMOD_DALLASTEMPERATURE) && !defined(USERMOD_SHT) +#error The "PWM fan" usermod requires "Dallas Temeprature" or "SHT" usermod to function properly. #endif #include "wled.h" @@ -42,6 +42,8 @@ class PWMFanUsermod : public Usermod { #ifdef USERMOD_DALLASTEMPERATURE UsermodTemperature* tempUM; + #elif defined(USERMOD_SHT) + ShtUsermod* tempUM; #endif // configurable parameters @@ -145,7 +147,7 @@ class PWMFanUsermod : public Usermod { } float getActualTemperature(void) { - #ifdef USERMOD_DALLASTEMPERATURE + #if defined(USERMOD_DALLASTEMPERATURE) || defined(USERMOD_SHT) if (tempUM != nullptr) return tempUM->getTemperatureC(); #endif @@ -189,6 +191,8 @@ class PWMFanUsermod : public Usermod { #ifdef USERMOD_DALLASTEMPERATURE // This Usermod requires Temperature usermod tempUM = (UsermodTemperature*) usermods.lookup(USERMOD_ID_TEMPERATURE); + #elif defined(USERMOD_SHT) + tempUM = (ShtUsermod*) usermods.lookup(USERMOD_ID_SHT); #endif initTacho(); initPWMfan(); diff --git a/usermods/sht/usermod_sht.h b/usermods/sht/usermod_sht.h index 4637d7a3..1123a10a 100644 --- a/usermods/sht/usermod_sht.h +++ b/usermods/sht/usermod_sht.h @@ -62,9 +62,9 @@ class ShtUsermod : public Usermod bool isEnabled() { return enabled; } float getTemperature(); - float getTemperatureC() { return shtCurrentTempC; } - float getTemperatureF() { return (shtCurrentTempC * 1.8f) + 32.0f; } - float getHumidity() { return shtCurrentHumidity; } + float getTemperatureC() { return roundf(shtCurrentTempC * 10.0f) / 10.0f; } + float getTemperatureF() { return (getTemperatureC() * 1.8f) + 32.0f; } + float getHumidity() { return roundf(shtCurrentHumidity * 10.0f) / 10.0f; } const char* getUnitString(); uint16_t getId() { return USERMOD_ID_SHT; } diff --git a/usermods/usermod_v2_word_clock/usermod_v2_word_clock.h b/usermods/usermod_v2_word_clock/usermod_v2_word_clock.h index 1068cd96..c825a7af 100644 --- a/usermods/usermod_v2_word_clock/usermod_v2_word_clock.h +++ b/usermods/usermod_v2_word_clock/usermod_v2_word_clock.h @@ -25,6 +25,7 @@ class WordClockUsermod : public Usermod bool displayItIs = false; int ledOffset = 100; bool meander = false; + bool nord = false; // defines for mask sizes #define maskSizeLeds 114 @@ -37,7 +38,7 @@ class WordClockUsermod : public Usermod // "minute" masks // Normal wiring - const int maskMinutes[12][maskSizeMinutes] = + const int maskMinutes[14][maskSizeMinutes] = { {107, 108, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // :00 { 7, 8, 9, 10, 40, 41, 42, 43, -1, -1, -1, -1}, // :05 fünf nach @@ -50,11 +51,13 @@ class WordClockUsermod : public Usermod { 15, 16, 17, 18, 19, 20, 21, 33, 34, 35, -1, -1}, // :40 zwanzig vor { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1}, // :45 dreiviertel { 11, 12, 13, 14, 33, 34, 35, -1, -1, -1, -1, -1}, // :50 zehn vor - { 7, 8, 9, 10, 33, 34, 35, -1, -1, -1, -1, -1} // :55 fünf vor + { 7, 8, 9, 10, 33, 34, 35, -1, -1, -1, -1, -1}, // :55 fünf vor + { 26, 27, 28, 29, 30, 31, 32, 40, 41, 42, 43, -1}, // :15 alternative viertel nach + { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1} // :45 alternative viertel vor }; // Meander wiring - const int maskMinutesMea[12][maskSizeMinutesMea] = + const int maskMinutesMea[14][maskSizeMinutesMea] = { { 99, 100, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // :00 { 7, 8, 9, 10, 33, 34, 35, 36, -1, -1, -1, -1}, // :05 fünf nach @@ -67,9 +70,12 @@ class WordClockUsermod : public Usermod { 11, 12, 13, 14, 15, 16, 17, 41, 42, 43, -1, -1}, // :40 zwanzig vor { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1}, // :45 dreiviertel { 18, 19, 20, 21, 41, 42, 43, -1, -1, -1, -1, -1}, // :50 zehn vor - { 7, 8, 9, 10, 41, 42, 43, -1, -1, -1, -1, -1} // :55 fünf vor + { 7, 8, 9, 10, 41, 42, 43, -1, -1, -1, -1, -1}, // :55 fünf vor + { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, -1}, // :15 alternative viertel nach + { 26, 27, 28, 29, 30, 31, 32, 41, 42, 43, -1, -1} // :45 alternative viertel vor }; + // hour masks // Normal wiring const int maskHours[13][maskSizeHours] = @@ -242,9 +248,15 @@ class WordClockUsermod : public Usermod setHours(hours, false); break; case 3: - // viertel - setMinutes(3); - setHours(hours + 1, false); + if (nord) { + // viertel nach + setMinutes(12); + setHours(hours, false); + } else { + // viertel + setMinutes(3); + setHours(hours + 1, false); + }; break; case 4: // 20 nach @@ -272,8 +284,13 @@ class WordClockUsermod : public Usermod setHours(hours + 1, false); break; case 9: - // viertel vor - setMinutes(9); + // viertel vor bzw dreiviertel + if (nord) { + setMinutes(9); + } + else { + setMinutes(12); + } setHours(hours + 1, false); break; case 10: @@ -410,6 +427,7 @@ class WordClockUsermod : public Usermod top["displayItIs"] = displayItIs; top["ledOffset"] = ledOffset; top["Meander wiring?"] = meander; + top["Norddeutsch"] = nord; } /* @@ -440,6 +458,7 @@ class WordClockUsermod : public Usermod configComplete &= getJsonValue(top["displayItIs"], displayItIs); configComplete &= getJsonValue(top["ledOffset"], ledOffset); configComplete &= getJsonValue(top["Meander wiring?"], meander); + configComplete &= getJsonValue(top["Norddeutsch"], nord); return configComplete; } diff --git a/wled00/net_debug.cpp b/wled00/net_debug.cpp index 6bcbe1e2..4d9552a8 100644 --- a/wled00/net_debug.cpp +++ b/wled00/net_debug.cpp @@ -3,7 +3,7 @@ #ifdef WLED_DEBUG_HOST size_t NetworkDebugPrinter::write(uint8_t c) { - if (!WLED_CONNECTED) return 0; + if (!WLED_CONNECTED || !netDebugEnabled) return 0; if (!debugPrintHostIP && !debugPrintHostIP.fromString(netDebugPrintHost)) { #ifdef ESP8266 @@ -24,7 +24,7 @@ size_t NetworkDebugPrinter::write(uint8_t c) { } size_t NetworkDebugPrinter::write(const uint8_t *buf, size_t size) { - if (!WLED_CONNECTED || buf == nullptr) return 0; + if (!WLED_CONNECTED || buf == nullptr || !netDebugEnabled) return 0; if (!debugPrintHostIP && !debugPrintHostIP.fromString(netDebugPrintHost)) { #ifdef ESP8266 diff --git a/wled00/usermods_list.cpp b/wled00/usermods_list.cpp index a8a6130d..81dabe4f 100644 --- a/wled00/usermods_list.cpp +++ b/wled00/usermods_list.cpp @@ -19,11 +19,16 @@ #include "../usermods/Temperature/usermod_temperature.h" #endif +#ifdef USERMOD_SHT +#include "../usermods/sht/usermod_sht.h" +#endif + #ifdef USERMOD_SN_PHOTORESISTOR #include "../usermods/SN_Photoresistor/usermod_sn_photoresistor.h" #endif #ifdef USERMOD_PWM_FAN + // requires DALLASTEMPERATURE or SHT included before it #include "../usermods/PWM_fan/usermod_PWM_fan.h" #endif @@ -180,9 +185,6 @@ #include "../usermods/pwm_outputs/usermod_pwm_outputs.h" #endif -#ifdef USERMOD_SHT -#include "../usermods/sht/usermod_sht.h" -#endif //WLEDMM Custom Effects #ifdef USERMOD_CUSTOMEFFECTS diff --git a/wled00/wled.h b/wled00/wled.h index 4d43502a..1767bef1 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -732,11 +732,10 @@ WLED_GLOBAL volatile uint8_t jsonBufferLock _INIT(0); #define DEBUGOUT NetDebug WLED_GLOBAL bool netDebugEnabled _INIT(true); WLED_GLOBAL char netDebugPrintHost[33] _INIT(WLED_DEBUG_HOST); - #if defined(WLED_DEBUG_NET_PORT) - WLED_GLOBAL int netDebugPrintPort _INIT(WLED_DEBUG_PORT); - #else - WLED_GLOBAL int netDebugPrintPort _INIT(7868); + #ifndef WLED_DEBUG_PORT + #define WLED_DEBUG_PORT 7868 #endif + WLED_GLOBAL int netDebugPrintPort _INIT(WLED_DEBUG_PORT); #else #define DEBUGOUT Serial #endif