diff --git a/main/accessors/settingsaccessors.h b/main/accessors/settingsaccessors.h index 76c4733..02bc2b8 100644 --- a/main/accessors/settingsaccessors.h +++ b/main/accessors/settingsaccessors.h @@ -194,6 +194,7 @@ struct LedstripBrightnessAccessor : public NewSettingsAccessor { Config struct LedstripEnableBlinkAnimationAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.ledstrip.enableAnimBlink; } }; struct LedstripOtaAnimationAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.ledstrip.otaMode; } }; struct LedstripEnableVisualizeBlinkAnimationAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.ledstrip.enableVisualizeBlink; } }; +struct LedstripAutomaticLightAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.ledstrip.automaticLight; } }; // Battery struct BatterySeriesCellsAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.battery.cellsSeries; } }; diff --git a/main/displays/menus/ledstripmenu.cpp b/main/displays/menus/ledstripmenu.cpp index d08f7a8..c89b214 100644 --- a/main/displays/menus/ledstripmenu.cpp +++ b/main/displays/menus/ledstripmenu.cpp @@ -42,6 +42,7 @@ constexpr char TEXT_LEDSTRIP_STVO[] = "Enable StVO"; constexpr char TEXT_STVO_FRONTOFFSET[] = "StVO Front Offset"; constexpr char TEXT_STVO_FRONTLENGTH[] = "StVO Front Length"; constexpr char TEXT_STVO_ENABLEFRONTLIGHT[] = "StVO Front Enable"; +constexpr char TEXT_AUTOMATIC_LIGHTS[] = "Automatic Lights"; constexpr char TEXT_ANIMATION_MULTIPLIER[] = "Animation Multiplier"; constexpr char TEXT_LEDSTRIP_BRIGHTNESS[] = "Ledstrip Brightness"; constexpr char TEXT_LEDSTRIP_ALLCUSTOMOFF[] = "All custom off"; @@ -150,6 +151,7 @@ LedstripMenu::LedstripMenu() if (!simplified) { constructMenuItem, BobbyCheckbox, EnableLedstripStVOAccessor>>(); } constructMenuItem, BobbyCheckbox, EnableLedstripStVOFrontlight>>(); + constructMenuItem, BobbyCheckbox, LedstripAutomaticLightAccessor>>(); constructMenuItem, BobbyCheckbox, EnableLedAnimationAccessor>>(); constructMenuItem>(&configs.ledstrip.animationType); diff --git a/main/displays/menus/timesettingsmenu.cpp b/main/displays/menus/timesettingsmenu.cpp index a94a26f..507a644 100644 --- a/main/displays/menus/timesettingsmenu.cpp +++ b/main/displays/menus/timesettingsmenu.cpp @@ -13,6 +13,7 @@ #include "actions/dummyaction.h" #include "icons/back.h" #include "espstrutils.h" +#include // local includes #include "displays/bobbychangevaluedisplay.h" @@ -53,6 +54,26 @@ public: } }; +class SuntimeText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + SunSet sunSet; + sunSet.setPosition(47.076668, 15.421371, 2); // Vienna + sunSet.setTZOffset(2); + const auto today = toDateTime(espchrono::utc_clock::now()); + sunSet.setCurrentDate(static_cast(today.date.year()), static_cast(today.date.month()), static_cast(today.date.day())); + const auto sunrise = static_cast(sunSet.calcSunrise()); + const auto sunset = static_cast(sunSet.calcSunset()); + const int sunriseHour = sunrise / 60; + const int sunriseMinute = sunrise % 60; + const int sunsetHour = sunset / 60; + const int sunsetMinute = sunset % 60; + return fmt::format("sunrise: {}:{:02d} sunset: {}:{:02d}", sunriseHour, sunriseMinute, sunsetHour, sunsetMinute); + } +}; + using TimezoneOffsetChangeDisplay = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -108,6 +129,7 @@ TimeSettingsMenu::TimeSettingsMenu() using namespace espgui; constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); if (configs.feature.ntp.isEnabled.value) diff --git a/main/ledstrip.cpp b/main/ledstrip.cpp index 0556275..52a050e 100644 --- a/main/ledstrip.cpp +++ b/main/ledstrip.cpp @@ -362,8 +362,8 @@ void showCustomColor() if (!configs.ledstrip.automaticLight.value) return false; SunSet sunSet; - sunSet.setPosition(47.076668, 15.421371, 1); // Vienna - sunSet.setTZOffset(1); + sunSet.setPosition(47.076668, 15.421371, 0); // Vienna + sunSet.setTZOffset(0); const auto today = toDateTime(espchrono::utc_clock::now()); sunSet.setCurrentDate(static_cast(today.date.year()), static_cast(today.date.month()), static_cast(today.date.day())); const auto sunrise = static_cast(sunSet.calcSunrise()) / 60;