Compare commits

..

No commits in common. "2e340d0cc858ec646ab15b59dedec251492fdbc5" and "3f697e0b122134474f0692311b0b039132165caf" have entirely different histories.

3 changed files with 7 additions and 33 deletions

View file

@ -18,7 +18,7 @@
#define EEPROM_LAST_STATE_ADDRESS 4 // the first "last state" information for the first light #define EEPROM_LAST_STATE_ADDRESS 4 // the first "last state" information for the first light
#define EEPROM_TIMING_DATA_ADDRESS (EEPROM_LAST_STATE_ADDRESS + LIGHTS_COUNT) // Stored data date per light ELE_USED; HH; MM; CH1; CH2; CH3; CH4; #define EEPROM_TIMING_DATA_ADDRESS (EEPROM_LAST_STATE_ADDRESS + LIGHTS_COUNT) // Stored data date per light ELE_USED; HH; MM; CH1; CH2; CH3; CH4;
#define BRI_MOD_STEPS_PER_SEC 25 #define BRI_MOD_STEPS_PER_SEC 10
#define TIME_CHECK_INTERVAL_MS (60000UL) // 60 second interval #define TIME_CHECK_INTERVAL_MS (60000UL) // 60 second interval
#define TIME_LIGHTENGINE_INTERVAL_MS (1000UL / BRI_MOD_STEPS_PER_SEC) // BRI_MOD_STEPS_PER_SEC steps per second to in-/decrease the brightness #define TIME_LIGHTENGINE_INTERVAL_MS (1000UL / BRI_MOD_STEPS_PER_SEC) // BRI_MOD_STEPS_PER_SEC steps per second to in-/decrease the brightness
@ -26,11 +26,11 @@
#define MY_NTP_SERVER "de.pool.ntp.org" #define MY_NTP_SERVER "de.pool.ntp.org"
// 10 bit PWM // 10 bit PWM
#define PWM_FREQ (500UL) #define PWM_FREQ (50000UL)
#define PWM_OFF 0 // 0V #define PWM_OFF 0 // 0V
#define PWM_MIN 0 // 0V - minimum light amount (~1%) #define PWM_MIN 0 // 0V - minimum light amount (~1%)
#define PWM_MAX 255 // 24V - maximum light amount (100%) #define PWM_MAX 255 // 24V - maximum light amount (100%)
#define BRI_TO_PWM_FACTOR 1.0 // 24V-0V = 24V range #define BRI_TO_PWM_FACTOR 1.0 // 24V-0V = 24V range
#define PWM_TEST_INTERVA_MS 1000 #define PWM_TEST_INTERVA_MS 1000
#define TEST_PWM_CHG_CNT 1 #define TEST_PWM_CHG_CNT 5

View file

@ -162,7 +162,7 @@ void lightEngine()
if (current_bri[i] != 0) if (current_bri[i] != 0)
{ {
in_transition = true; in_transition = true;
current_bri[i] -= step_level[i] / BRI_MOD_STEPS_PER_SEC; current_bri[i] += step_level[i] / BRI_MOD_STEPS_PER_SEC;
if (current_bri[i] < 0) if (current_bri[i] < 0)
{ {
current_bri[i] = 0; current_bri[i] = 0;
@ -405,13 +405,6 @@ void init_webserver()
{ {
const char* key = state.key().c_str(); const char* key = state.key().c_str();
int light = atoi(key) - 1; int light = atoi(key) - 1;
if (light < 0)
{
light = 0;
} else if (light > (LIGHTS_COUNT-1))
{
light = (LIGHTS_COUNT-1);
}
JsonObject values = state.value(); JsonObject values = state.value();
uint8_t tmp = EEPROM.read(EEPROM_LAST_STATE_STARTUP_ADDRESS); uint8_t tmp = EEPROM.read(EEPROM_LAST_STATE_STARTUP_ADDRESS);
@ -448,10 +441,6 @@ void init_webserver()
if (values.containsKey("transitiontime")) if (values.containsKey("transitiontime"))
{ {
default_transitiontime = values["transitiontime"]; default_transitiontime = values["transitiontime"];
if (default_transitiontime < 0)
{
default_transitiontime = 0;
}
if (tc_enabled == TIMING_CONTROL_DISABLED) if (tc_enabled == TIMING_CONTROL_DISABLED)
{ {
for (uint8_t i = 0 ; i < LIGHTS_COUNT; i++) for (uint8_t i = 0 ; i < LIGHTS_COUNT; i++)
@ -472,13 +461,6 @@ void init_webserver()
server.on("/state", HTTP_GET, []() server.on("/state", HTTP_GET, []()
{ // HTTP GET request used to fetch current light state { // HTTP GET request used to fetch current light state
uint8_t light = server.arg("light").toInt() - 1; uint8_t light = server.arg("light").toInt() - 1;
if (light < 0)
{
light = 0;
} else if (light > (LIGHTS_COUNT-1))
{
light = (LIGHTS_COUNT-1);
}
DynamicJsonDocument root(512); DynamicJsonDocument root(512);
root["on"] = light_state[light]; root["on"] = light_state[light];
root["bri"] = bri[light]; root["bri"] = bri[light];
@ -554,10 +536,6 @@ void init_webserver()
if (server.hasArg("transition")) if (server.hasArg("transition"))
{ {
default_transitiontime = server.arg("transition").toFloat(); default_transitiontime = server.arg("transition").toFloat();
if (default_transitiontime < 0)
{
default_transitiontime = 0;
}
if (tc_enabled == TIMING_CONTROL_DISABLED) if (tc_enabled == TIMING_CONTROL_DISABLED)
{ {
for (uint8_t i = 0 ; i < LIGHTS_COUNT; i++) for (uint8_t i = 0 ; i < LIGHTS_COUNT; i++)
@ -632,11 +610,9 @@ void init_webserver()
} }
// scene switch handling // scene switch handling
if (server.hasArg("scene")) if (server.hasArg("scene")) {
{
scene = server.arg("scene").toInt(); scene = server.arg("scene").toInt();
if (EEPROM.read(EEPROM_SCENE_ADDRESS) != scene) if (EEPROM.read(EEPROM_SCENE_ADDRESS) != scene) {
{
EEPROM.write(EEPROM_SCENE_ADDRESS, scene); EEPROM.write(EEPROM_SCENE_ADDRESS, scene);
EEPROM.commit(); EEPROM.commit();
Serial.print("Scene set to "); Serial.print("Scene set to ");
@ -647,8 +623,7 @@ void init_webserver()
if (server.hasArg("dip")) { if (server.hasArg("dip")) {
uint8_t tmp = EEPROM.read(EEPROM_DYNAMIC_IP_ADDRESS); uint8_t tmp = EEPROM.read(EEPROM_DYNAMIC_IP_ADDRESS);
uint8_t tmp2 = (server.arg("dip") == "true" ? 1 : 0); uint8_t tmp2 = (server.arg("dip") == "true" ? 1 : 0);
if (tmp != tmp2) if (tmp != tmp2) {
{
EEPROM.write(EEPROM_DYNAMIC_IP_ADDRESS, tmp2); EEPROM.write(EEPROM_DYNAMIC_IP_ADDRESS, tmp2);
EEPROM.commit(); EEPROM.commit();
Serial.print("Set dynamic IP to "); Serial.print("Set dynamic IP to ");
@ -696,7 +671,6 @@ void init_webserver()
} else if (server.arg("on" + (String)light) == "false" && light_state[light] == true) } else if (server.arg("on" + (String)light) == "false" && light_state[light] == true)
{ {
light_state[light] = false; light_state[light] = false;
bri[light] = 0;
if (tmp == 0 && EEPROM.read(EEPROM_LAST_STATE_ADDRESS + light) == 1) if (tmp == 0 && EEPROM.read(EEPROM_LAST_STATE_ADDRESS + light) == 1)
{ {
EEPROM.write(EEPROM_LAST_STATE_ADDRESS + light, LIGHT_STATE_OFF); EEPROM.write(EEPROM_LAST_STATE_ADDRESS + light, LIGHT_STATE_OFF);