// ----------------------------------------------------------------------------- // Lights // ----------------------------------------------------------------------------- #pragma once namespace Light { constexpr const long VALUE_MIN = LIGHT_MIN_VALUE; constexpr const long VALUE_MAX = LIGHT_MAX_VALUE; constexpr const long BRIGHTNESS_MIN = LIGHT_MIN_BRIGHTNESS; constexpr const long BRIGHTNESS_MAX = LIGHT_MAX_BRIGHTNESS; // Default to the Philips Hue value that HA also use. // https://developers.meethue.com/documentation/core-concepts constexpr const long MIREDS_COLDWHITE = LIGHT_COLDWHITE_MIRED; constexpr const long MIREDS_WARMWHITE = LIGHT_WARMWHITE_MIRED; constexpr const long KELVIN_WARMWHITE = LIGHT_WARMWHITE_KELVIN; constexpr const long KELVIN_COLDWHITE = LIGHT_COLDWHITE_KELVIN; constexpr const long PWM_MIN = LIGHT_MIN_PWM; constexpr const long PWM_MAX = LIGHT_MAX_PWM; constexpr const long PWM_LIMIT = LIGHT_LIMIT_PWM; enum Communications : unsigned char { COMMS_NONE = 0, COMMS_NORMAL = 1 << 0, COMMS_GROUP = 1 << 1 }; } size_t lightChannels(); void lightState(unsigned char i, bool state); bool lightState(unsigned char i); void lightState(bool state); bool lightState(); void lightBrightness(long brightness); long lightBrightness(); long lightChannel(unsigned char id); void lightChannel(unsigned char id, long value); void lightBrightnessStep(long steps, long multiplier = LIGHT_STEP); void lightChannelStep(unsigned char id, long steps, long multiplier = LIGHT_STEP);