mirror of
https://github.com/alexhopeoconnor/arduino-home-assistant.git
synced 2026-10-04 02:48:13 +10:00
Add support for std::function on the ESP devices
This commit is contained in:
@@ -5,7 +5,12 @@
|
||||
|
||||
#ifndef EX_ARDUINOHA_BUTTON
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HABUTTON_CALLBACK(name) std::function<void(HAButton* sender)> name
|
||||
#else
|
||||
#define HABUTTON_CALLBACK(name) void (*name)(HAButton* sender)
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* HAButton represents a button that's displayed in the Home Assistant panel and
|
||||
|
||||
@@ -5,7 +5,11 @@
|
||||
|
||||
#ifndef EX_ARDUINOHA_COVER
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HACOVER_CALLBACK(name) std::function<void(CoverCommand cmd, HACover* sender)> name
|
||||
#else
|
||||
#define HACOVER_CALLBACK(name) void (*name)(CoverCommand cmd, HACover* sender)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* HACover allows to control a cover (such as blinds, a roller shutter or a garage door).
|
||||
|
||||
@@ -6,8 +6,17 @@
|
||||
|
||||
#ifndef EX_ARDUINOHA_FAN
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HAFAN_STATE_CALLBACK(name) std::function<void(bool state, HAFan* sender)> name
|
||||
#else
|
||||
#define HAFAN_STATE_CALLBACK(name) void (*name)(bool state, HAFan* sender)
|
||||
#endif
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HAFAN_SPEED_CALLBACK(name) std::function<void(uint16_t speed, HAFan* sender)> name
|
||||
#else
|
||||
#define HAFAN_SPEED_CALLBACK(name) void (*name)(uint16_t speed, HAFan* sender)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* HAFan allows adding a controllable fan in the Home Assistant panel.
|
||||
|
||||
@@ -26,11 +26,35 @@
|
||||
inline void setCurrentTargetTemperature(const type temperature) \
|
||||
{ setCurrentTargetTemperature(HANumeric(temperature, _precision)); }
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HAHVAC_CALLBACK_BOOL(name) std::function<void(bool state, HAHVAC* sender)> name
|
||||
#else
|
||||
#define HAHVAC_CALLBACK_BOOL(name) void (*name)(bool state, HAHVAC* sender)
|
||||
#endif
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HAHVAC_CALLBACK_TARGET_TEMP(name) std::function<void(HANumeric temperature, HAHVAC* sender)> name
|
||||
#else
|
||||
#define HAHVAC_CALLBACK_TARGET_TEMP(name) void (*name)(HANumeric temperature, HAHVAC* sender)
|
||||
#endif
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HAHVAC_CALLBACK_FAN_MODE(name) std::function<void(FanMode mode, HAHVAC* sender)> name
|
||||
#else
|
||||
#define HAHVAC_CALLBACK_FAN_MODE(name) void (*name)(FanMode mode, HAHVAC* sender)
|
||||
#endif
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HAHVAC_CALLBACK_SWING_MODE(name) std::function<void(SwingMode mode, HAHVAC* sender)> name
|
||||
#else
|
||||
#define HAHVAC_CALLBACK_SWING_MODE(name) void (*name)(SwingMode mode, HAHVAC* sender)
|
||||
#endif
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HAHVAC_CALLBACK_MODE(name) std::function<void(Mode mode, HAHVAC* sender)> name
|
||||
#else
|
||||
#define HAHVAC_CALLBACK_MODE(name) void (*name)(Mode mode, HAHVAC* sender)
|
||||
#endif
|
||||
|
||||
class HASerializerArray;
|
||||
|
||||
|
||||
@@ -6,10 +6,29 @@
|
||||
|
||||
#ifndef EX_ARDUINOHA_LIGHT
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HALIGHT_STATE_CALLBACK(name) std::function<void(bool state, HALight* sender)> name
|
||||
#else
|
||||
#define HALIGHT_STATE_CALLBACK(name) void (*name)(bool state, HALight* sender)
|
||||
#endif
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HALIGHT_BRIGHTNESS_CALLBACK(name) std::function<void(uint8_t brightness, HALight* sender)> name
|
||||
#else
|
||||
#define HALIGHT_BRIGHTNESS_CALLBACK(name) void (*name)(uint8_t brightness, HALight* sender)
|
||||
#endif
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HALIGHT_COLOR_TEMP_CALLBACK(name) std::function<void(uint16_t temperature, HALight* sender)> name
|
||||
#else
|
||||
#define HALIGHT_COLOR_TEMP_CALLBACK(name) void (*name)(uint16_t temperature, HALight* sender)
|
||||
#endif
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HALIGHT_RGB_COLOR_CALLBACK(name) std::function<void(HALight::RGBColor color, HALight* sender)> name
|
||||
#else
|
||||
#define HALIGHT_RGB_COLOR_CALLBACK(name) void (*name)(HALight::RGBColor color, HALight* sender)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* HALight allows adding a controllable light in the Home Assistant panel.
|
||||
|
||||
@@ -5,7 +5,11 @@
|
||||
|
||||
#ifndef EX_ARDUINOHA_LOCK
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HALOCK_CALLBACK(name) std::function<void(LockCommand command, HALock* sender)> name
|
||||
#else
|
||||
#define HALOCK_CALLBACK(name) void (*name)(LockCommand command, HALock* sender)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* HALock allows to implement a custom lock (for example: door lock)
|
||||
|
||||
@@ -16,7 +16,11 @@
|
||||
inline void setCurrentState(const type state) \
|
||||
{ setCurrentState(HANumeric(state, _precision)); }
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HANUMBER_CALLBACK(name) std::function<void(HANumeric number, HANumber* sender)> name
|
||||
#else
|
||||
#define HANUMBER_CALLBACK(name) void (*name)(HANumeric number, HANumber* sender)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* HANumber adds a slider or a box in the Home Assistant panel
|
||||
|
||||
@@ -5,7 +5,11 @@
|
||||
|
||||
#ifndef EX_ARDUINOHA_SCENE
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HASCENE_CALLBACK(name) std::function<void(HAScene* sender)> name
|
||||
#else
|
||||
#define HASCENE_CALLBACK(name) void (*name)(HAScene* sender)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* HAScene adds a new scene to the Home Assistant that triggers your callback once activated.
|
||||
|
||||
@@ -7,7 +7,11 @@
|
||||
|
||||
class HASerializerArray;
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HASELECT_CALLBACK(name) std::function<void(int8_t index, HASelect* sender)> name
|
||||
#else
|
||||
#define HASELECT_CALLBACK(name) void (*name)(int8_t index, HASelect* sender)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* HASelect adds a dropdown with options in the Home Assistant panel.
|
||||
|
||||
@@ -5,7 +5,13 @@
|
||||
|
||||
#ifndef EX_ARDUINOHA_SWITCH
|
||||
|
||||
|
||||
#if defined(ESP32) || defined(ESP8266)
|
||||
#define HASWITCH_CALLBACK(name) std::function<void(bool state, HASwitch* sender)> name
|
||||
#else
|
||||
#define HASWITCH_CALLBACK(name) void (*name)(bool state, HASwitch* sender)
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* HASwitch allows to display on/off switch in the HA panel and receive commands on your device.
|
||||
|
||||
Reference in New Issue
Block a user