Files
hassos_config/esphome/include/epaper75.h

145 lines
5.7 KiB
C++
Executable File

#include <string>
#include <iostream>
// #define ICON_stop "\U000F04DB"
// #define ICON_play "\U000F040A"
// #define ICON_pause "\U000F03E4"
// std::string playbackStatusToIcon(bool playing, bool paused) {
// if (playing) return ICON_play;
// else if (paused) return ICON_pause;
// else return ICON_stop;
// }
// #define ICON_moon_first_quarter "\U000F0F61"
// #define ICON_moon_full "\U000F0F62"
// #define ICON_moon_last_quarter "\U000F0F63"
// #define ICON_moon_new "\U000F0F64"
// #define ICON_moon_waning_crescent "\U000F0F65"
// #define ICON_moon_waning_gibbous "\U000F0F66"
// #define ICON_moon_waxing_crescent "\U000F0F67"
// #define ICON_moon_waxing_gibbous "\U000F0F68"
// std::string moonToIcon(std::string moonPhase)
// {
// if (moonPhase == "new_moon") return ICON_moon_new;
// if (moonPhase == "waxing_crescent") return ICON_moon_waxing_crescent;
// if (moonPhase == "first_quarter") return ICON_moon_first_quarter;
// if (moonPhase == "waxing_gibbous") return ICON_moon_waxing_gibbous;
// if (moonPhase == "full_moon") return ICON_moon_full;
// if (moonPhase == "waning_gibbous") return ICON_moon_waning_gibbous;
// if (moonPhase == "last_quarter") return ICON_moon_last_quarter;
// if (moonPhase == "waning_crescent") return ICON_moon_waning_crescent;
// return "";
// }
// Map weather states to MDI characters.
std::map<std::string, std::string> weather_icon_map
{
{"cloudy", "\U000F0590"},
{"cloudy-alert", "\U000F0F2F"},
{"cloudy-arrow-right", "\U000F0E6E"},
{"fog", "\U000F0591"},
{"hail", "\U000F0592"},
{"hazy", "\U000F0F30"},
{"hurricane", "\U000F0898"},
{"lightning", "\U000F0593"},
{"lightning-rainy", "\U000F067E"},
{"night", "\U000F0594"},
{"night-partly-cloudy", "\U000F0F31"},
{"partlycloudy", "\U000F0595"},
{"partly-lightning", "\U000F0F32"},
{"partly-rainy", "\U000F0597"}, //compacting U000F0F33
{"partly-snowy", "\U000F0598"}, //compacting U000F0F34
{"partly-snowy-rainy", "\U000F0F35"},
{"pouring", "\U000F0596"},
{"rainy", "\U000F0597"},
{"snowy", "\U000F0598"},
{"snowy-heavy", "\U000F0598"}, //compacting U000F0F36
{"snowy-rainy", "\U000F067F"},
{"sunny", "\U000F0599"},
{"sunny-alert", "\U000F0F37"},
{"sunny-off", "\U000F14E4"},
{"sunset", "\U000F059A"},
{"sunset-down", "\U000F059B"},
{"sunset-up", "\U000F059C"},
{"tornado", "\U000F059D"}, //compacting U000F0F38
{"windy", "\U000F059D"},
{"windy-variant", "\U000F059D"}, //compacting U000F059E
{"car", "\U000f010b"},
{"trash", "\U000F0819"},
};
// std::map<std::string, std::string> moon_icon_map
// {
// { "mdi:moon-waxing-crescent", "\U000f0f67" },
// { "mdi:moon-first-quarter", "\U000F0F61" },
// { "mdi:moon-waxing-gibbous", "\U000F0F68" },
// { "mdi:moon-full", "\U000F0F62" },
// { "mdi:moon-waning-gibbous", "\U000F0F66" },
// { "mdi:moon-last-quarter", "\U000F0F63" },
// { "mdi:moon-waning-crescent", "\U000F0F65" },
// };
#define ICON_w_clear_night "\U000F0594"
#define ICON_w_cloudy "\U000F0590"
#define ICON_w_fog "\U000F0591"
#define ICON_w_hail "\U000F0592"
#define ICON_w_lightning "\U000F0593"
#define ICON_w_lightning_rainy "\U000F067E"
#define ICON_w_night_partly_cloudy "\U000F0F31"
#define ICON_w_partly_cloudy "\U000F0595"
#define ICON_w_pouring "\U000F0596"
#define ICON_w_rainy "\U000F0597"
#define ICON_w_snowy "\U000F0F36"
#define ICON_w_snowy_rainy "\U000F067F"
#define ICON_w_sunny "\U000F0599"
#define ICON_w_windy "\U000F059D"
#define ICON_w_windy_variant "\U000F059E"
#define ICON_w_exceptional "\U000F0F38"
std::string conditionToIcon(std::string condition, bool daytime)
{
if (condition == "clear") return ICON_w_clear_night;
if (condition == "clear-night") return ICON_w_clear_night;
if (condition == "cloudy") return ICON_w_cloudy;
if (condition == "dust") return ICON_w_fog;
if (condition == "dusty") return ICON_w_fog;
if (condition == "fog") return ICON_w_fog;
if (condition == "frost") return ICON_w_snowy;
if (condition == "hail") return ICON_w_hail;
if (condition == "haze") return ICON_w_fog;
if (condition == "hazy") return ICON_w_fog;
if (condition == "heavy_shower") return ICON_w_rainy;
if (condition == "heavy_showers") return ICON_w_rainy;
if (condition == "light_rain") return ICON_w_rainy;
if (condition == "light_showers") return ICON_w_rainy;
if (condition == "light_shower") return ICON_w_rainy;
if (condition == "lightning") return ICON_w_lightning;
if (condition == "lightning-rainy") return ICON_w_lightning_rainy;
if (condition == "mostly_sunny") return ICON_w_sunny;
if (condition == "night") return ICON_w_clear_night;
if (condition == "partlycloudy" && !daytime) return ICON_w_night_partly_cloudy;
if (condition == "partlycloudy" && daytime) return ICON_w_partly_cloudy;
if (condition == "partly_cloudy" && !daytime) return ICON_w_night_partly_cloudy;
if (condition == "partly_cloudy" && daytime) return ICON_w_partly_cloudy;
if (condition == "pouring") return ICON_w_pouring;
if (condition == "rain") return ICON_w_rainy;
if (condition == "rainy") return ICON_w_rainy;
if (condition == "shower") return ICON_w_rainy;
if (condition == "showers") return ICON_w_rainy;
if (condition == "snow") return ICON_w_snowy;
if (condition == "snowy") return ICON_w_snowy;
if (condition == "snowy-rainy") return ICON_w_snowy_rainy;
if (condition == "storm") return ICON_w_lightning_rainy;
if (condition == "storms") return ICON_w_lightning_rainy;
if (condition == "sunny") return ICON_w_sunny;
if (condition == "wind") return ICON_w_windy;
if (condition == "windy") return ICON_w_windy;
if (condition == "windy-variant") return ICON_w_windy_variant;
if (condition == "exceptional") return ICON_w_exceptional;
return "";
}