providers: relays, lights and buttons refactoring (#2414)
- gpio module now tracks the known providers (right now, hardware and mcp expander)
- refactored relay struct to use 'Provider' implementing setup,notify,change,boot instead of just BasePin actions
- refactored button module to use gpio provider instead of referencing types itself
- removed dual & stm code from buttons, migrate both to relay module
- added status notify and change callbacks for relayStatus (i.e. 'notify' when relay status was called, but not changed. and 'changed' when it did)
- relays runtime configuration keys
- relay command now shows configured relays and current & target statuses
- refactor the code using relayStatus(0, blah) under LIGHT_PROVIDER check to use lightState instead
- remove rfbridge code form relay module. implement through a basic state listener in the rfbridge module, depend on RELAY_SUPPORT
- allow to bind rf codes to real relays
- drop tuya-specific lights provider, remove tuya code from relays and lights modules
- integrate tuya via relay listeners and providers, use lights custom provider
- implement channel transitions for tuya. disabled by default, and transition time and step are overridden to 2000 + 100. needs to be set to some value below the total time (i.e. `total transition time / step time == number of steps`, we need to figure out a correct time that serial comms could handle)
- lights custom provider (global, not per-pin) and state listeners
- remove lights code from relay module. implement through providers & listeners in the lights module, depend on RELAY_SUPPORT
- lights per-channel relay provider (unused atm), depend on RELAY_SUPPORT
- refactored channel transition - calculate step only once, make sure time + step values are sane, generate quick transitions with very small delay (10ms hardcoded) for transitions during OFF state i.e. we no longer waste 500ms (or whatever transition time is set to) on boot doing nothing
- transition time + step parameter for the lightUpdate
- report mask parameter for the lightUpdate
- minor fixes across the board
resolve #2222 3 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago Button pin provider & runtime settings (#2162)
* wip
* cleanup buttons-through-serial code, remove hw mention from button module
* remove wip
* implement mqtt settings
* fixup struct members, dual no longer allocates debouncer
* add missing debounceevent lib
* fix missing event_handler, update names
* fix namespace
* drop lib
* fix int<->bool comparison
* Move gpio16 handling from DigitalPin to EventHandler
* Cleanup debounceevent headers
* Don't expect system headers to be included
* re 70b54c489f - no allocation, for real
* Adjust settings names
* dont retain by default
* unused
* typo
* Fix length type (ref 6017ad9474c5ea2f77fbca5f3c19b6cef058b2e9)
* Move pin class outside of debounce lib, lowercase ns
* move event handling inside of button_t
* refactor config. ..._MODE -> _CONFIG, ..._MODE_... -> ..._ACTION_...
* fix test
* naming
* move indexed value to header
* refactor actions into direct opts
* fix webui, fix buttons not respecting old user setting
* change button config format from bitmask to a struct, adjust settings conversion
* proxy some more header defautls, fix web kv
* gpiopin
* adjust webui func to support every setting
* clarify single-return event->string
* fix dual setting
* fix dual packet condition, de-duplicate funcs
* fix bogus warning 4 years ago providers: relays, lights and buttons refactoring (#2414)
- gpio module now tracks the known providers (right now, hardware and mcp expander)
- refactored relay struct to use 'Provider' implementing setup,notify,change,boot instead of just BasePin actions
- refactored button module to use gpio provider instead of referencing types itself
- removed dual & stm code from buttons, migrate both to relay module
- added status notify and change callbacks for relayStatus (i.e. 'notify' when relay status was called, but not changed. and 'changed' when it did)
- relays runtime configuration keys
- relay command now shows configured relays and current & target statuses
- refactor the code using relayStatus(0, blah) under LIGHT_PROVIDER check to use lightState instead
- remove rfbridge code form relay module. implement through a basic state listener in the rfbridge module, depend on RELAY_SUPPORT
- allow to bind rf codes to real relays
- drop tuya-specific lights provider, remove tuya code from relays and lights modules
- integrate tuya via relay listeners and providers, use lights custom provider
- implement channel transitions for tuya. disabled by default, and transition time and step are overridden to 2000 + 100. needs to be set to some value below the total time (i.e. `total transition time / step time == number of steps`, we need to figure out a correct time that serial comms could handle)
- lights custom provider (global, not per-pin) and state listeners
- remove lights code from relay module. implement through providers & listeners in the lights module, depend on RELAY_SUPPORT
- lights per-channel relay provider (unused atm), depend on RELAY_SUPPORT
- refactored channel transition - calculate step only once, make sure time + step values are sane, generate quick transitions with very small delay (10ms hardcoded) for transitions during OFF state i.e. we no longer waste 500ms (or whatever transition time is set to) on boot doing nothing
- transition time + step parameter for the lightUpdate
- report mask parameter for the lightUpdate
- minor fixes across the board
resolve #2222 3 years ago providers: relays, lights and buttons refactoring (#2414)
- gpio module now tracks the known providers (right now, hardware and mcp expander)
- refactored relay struct to use 'Provider' implementing setup,notify,change,boot instead of just BasePin actions
- refactored button module to use gpio provider instead of referencing types itself
- removed dual & stm code from buttons, migrate both to relay module
- added status notify and change callbacks for relayStatus (i.e. 'notify' when relay status was called, but not changed. and 'changed' when it did)
- relays runtime configuration keys
- relay command now shows configured relays and current & target statuses
- refactor the code using relayStatus(0, blah) under LIGHT_PROVIDER check to use lightState instead
- remove rfbridge code form relay module. implement through a basic state listener in the rfbridge module, depend on RELAY_SUPPORT
- allow to bind rf codes to real relays
- drop tuya-specific lights provider, remove tuya code from relays and lights modules
- integrate tuya via relay listeners and providers, use lights custom provider
- implement channel transitions for tuya. disabled by default, and transition time and step are overridden to 2000 + 100. needs to be set to some value below the total time (i.e. `total transition time / step time == number of steps`, we need to figure out a correct time that serial comms could handle)
- lights custom provider (global, not per-pin) and state listeners
- remove lights code from relay module. implement through providers & listeners in the lights module, depend on RELAY_SUPPORT
- lights per-channel relay provider (unused atm), depend on RELAY_SUPPORT
- refactored channel transition - calculate step only once, make sure time + step values are sane, generate quick transitions with very small delay (10ms hardcoded) for transitions during OFF state i.e. we no longer waste 500ms (or whatever transition time is set to) on boot doing nothing
- transition time + step parameter for the lightUpdate
- report mask parameter for the lightUpdate
- minor fixes across the board
resolve #2222 3 years ago providers: relays, lights and buttons refactoring (#2414)
- gpio module now tracks the known providers (right now, hardware and mcp expander)
- refactored relay struct to use 'Provider' implementing setup,notify,change,boot instead of just BasePin actions
- refactored button module to use gpio provider instead of referencing types itself
- removed dual & stm code from buttons, migrate both to relay module
- added status notify and change callbacks for relayStatus (i.e. 'notify' when relay status was called, but not changed. and 'changed' when it did)
- relays runtime configuration keys
- relay command now shows configured relays and current & target statuses
- refactor the code using relayStatus(0, blah) under LIGHT_PROVIDER check to use lightState instead
- remove rfbridge code form relay module. implement through a basic state listener in the rfbridge module, depend on RELAY_SUPPORT
- allow to bind rf codes to real relays
- drop tuya-specific lights provider, remove tuya code from relays and lights modules
- integrate tuya via relay listeners and providers, use lights custom provider
- implement channel transitions for tuya. disabled by default, and transition time and step are overridden to 2000 + 100. needs to be set to some value below the total time (i.e. `total transition time / step time == number of steps`, we need to figure out a correct time that serial comms could handle)
- lights custom provider (global, not per-pin) and state listeners
- remove lights code from relay module. implement through providers & listeners in the lights module, depend on RELAY_SUPPORT
- lights per-channel relay provider (unused atm), depend on RELAY_SUPPORT
- refactored channel transition - calculate step only once, make sure time + step values are sane, generate quick transitions with very small delay (10ms hardcoded) for transitions during OFF state i.e. we no longer waste 500ms (or whatever transition time is set to) on boot doing nothing
- transition time + step parameter for the lightUpdate
- report mask parameter for the lightUpdate
- minor fixes across the board
resolve #2222 3 years ago providers: relays, lights and buttons refactoring (#2414)
- gpio module now tracks the known providers (right now, hardware and mcp expander)
- refactored relay struct to use 'Provider' implementing setup,notify,change,boot instead of just BasePin actions
- refactored button module to use gpio provider instead of referencing types itself
- removed dual & stm code from buttons, migrate both to relay module
- added status notify and change callbacks for relayStatus (i.e. 'notify' when relay status was called, but not changed. and 'changed' when it did)
- relays runtime configuration keys
- relay command now shows configured relays and current & target statuses
- refactor the code using relayStatus(0, blah) under LIGHT_PROVIDER check to use lightState instead
- remove rfbridge code form relay module. implement through a basic state listener in the rfbridge module, depend on RELAY_SUPPORT
- allow to bind rf codes to real relays
- drop tuya-specific lights provider, remove tuya code from relays and lights modules
- integrate tuya via relay listeners and providers, use lights custom provider
- implement channel transitions for tuya. disabled by default, and transition time and step are overridden to 2000 + 100. needs to be set to some value below the total time (i.e. `total transition time / step time == number of steps`, we need to figure out a correct time that serial comms could handle)
- lights custom provider (global, not per-pin) and state listeners
- remove lights code from relay module. implement through providers & listeners in the lights module, depend on RELAY_SUPPORT
- lights per-channel relay provider (unused atm), depend on RELAY_SUPPORT
- refactored channel transition - calculate step only once, make sure time + step values are sane, generate quick transitions with very small delay (10ms hardcoded) for transitions during OFF state i.e. we no longer waste 500ms (or whatever transition time is set to) on boot doing nothing
- transition time + step parameter for the lightUpdate
- report mask parameter for the lightUpdate
- minor fixes across the board
resolve #2222 3 years ago providers: relays, lights and buttons refactoring (#2414)
- gpio module now tracks the known providers (right now, hardware and mcp expander)
- refactored relay struct to use 'Provider' implementing setup,notify,change,boot instead of just BasePin actions
- refactored button module to use gpio provider instead of referencing types itself
- removed dual & stm code from buttons, migrate both to relay module
- added status notify and change callbacks for relayStatus (i.e. 'notify' when relay status was called, but not changed. and 'changed' when it did)
- relays runtime configuration keys
- relay command now shows configured relays and current & target statuses
- refactor the code using relayStatus(0, blah) under LIGHT_PROVIDER check to use lightState instead
- remove rfbridge code form relay module. implement through a basic state listener in the rfbridge module, depend on RELAY_SUPPORT
- allow to bind rf codes to real relays
- drop tuya-specific lights provider, remove tuya code from relays and lights modules
- integrate tuya via relay listeners and providers, use lights custom provider
- implement channel transitions for tuya. disabled by default, and transition time and step are overridden to 2000 + 100. needs to be set to some value below the total time (i.e. `total transition time / step time == number of steps`, we need to figure out a correct time that serial comms could handle)
- lights custom provider (global, not per-pin) and state listeners
- remove lights code from relay module. implement through providers & listeners in the lights module, depend on RELAY_SUPPORT
- lights per-channel relay provider (unused atm), depend on RELAY_SUPPORT
- refactored channel transition - calculate step only once, make sure time + step values are sane, generate quick transitions with very small delay (10ms hardcoded) for transitions during OFF state i.e. we no longer waste 500ms (or whatever transition time is set to) on boot doing nothing
- transition time + step parameter for the lightUpdate
- report mask parameter for the lightUpdate
- minor fixes across the board
resolve #2222 3 years ago providers: relays, lights and buttons refactoring (#2414)
- gpio module now tracks the known providers (right now, hardware and mcp expander)
- refactored relay struct to use 'Provider' implementing setup,notify,change,boot instead of just BasePin actions
- refactored button module to use gpio provider instead of referencing types itself
- removed dual & stm code from buttons, migrate both to relay module
- added status notify and change callbacks for relayStatus (i.e. 'notify' when relay status was called, but not changed. and 'changed' when it did)
- relays runtime configuration keys
- relay command now shows configured relays and current & target statuses
- refactor the code using relayStatus(0, blah) under LIGHT_PROVIDER check to use lightState instead
- remove rfbridge code form relay module. implement through a basic state listener in the rfbridge module, depend on RELAY_SUPPORT
- allow to bind rf codes to real relays
- drop tuya-specific lights provider, remove tuya code from relays and lights modules
- integrate tuya via relay listeners and providers, use lights custom provider
- implement channel transitions for tuya. disabled by default, and transition time and step are overridden to 2000 + 100. needs to be set to some value below the total time (i.e. `total transition time / step time == number of steps`, we need to figure out a correct time that serial comms could handle)
- lights custom provider (global, not per-pin) and state listeners
- remove lights code from relay module. implement through providers & listeners in the lights module, depend on RELAY_SUPPORT
- lights per-channel relay provider (unused atm), depend on RELAY_SUPPORT
- refactored channel transition - calculate step only once, make sure time + step values are sane, generate quick transitions with very small delay (10ms hardcoded) for transitions during OFF state i.e. we no longer waste 500ms (or whatever transition time is set to) on boot doing nothing
- transition time + step parameter for the lightUpdate
- report mask parameter for the lightUpdate
- minor fixes across the board
resolve #2222 3 years ago providers: relays, lights and buttons refactoring (#2414)
- gpio module now tracks the known providers (right now, hardware and mcp expander)
- refactored relay struct to use 'Provider' implementing setup,notify,change,boot instead of just BasePin actions
- refactored button module to use gpio provider instead of referencing types itself
- removed dual & stm code from buttons, migrate both to relay module
- added status notify and change callbacks for relayStatus (i.e. 'notify' when relay status was called, but not changed. and 'changed' when it did)
- relays runtime configuration keys
- relay command now shows configured relays and current & target statuses
- refactor the code using relayStatus(0, blah) under LIGHT_PROVIDER check to use lightState instead
- remove rfbridge code form relay module. implement through a basic state listener in the rfbridge module, depend on RELAY_SUPPORT
- allow to bind rf codes to real relays
- drop tuya-specific lights provider, remove tuya code from relays and lights modules
- integrate tuya via relay listeners and providers, use lights custom provider
- implement channel transitions for tuya. disabled by default, and transition time and step are overridden to 2000 + 100. needs to be set to some value below the total time (i.e. `total transition time / step time == number of steps`, we need to figure out a correct time that serial comms could handle)
- lights custom provider (global, not per-pin) and state listeners
- remove lights code from relay module. implement through providers & listeners in the lights module, depend on RELAY_SUPPORT
- lights per-channel relay provider (unused atm), depend on RELAY_SUPPORT
- refactored channel transition - calculate step only once, make sure time + step values are sane, generate quick transitions with very small delay (10ms hardcoded) for transitions during OFF state i.e. we no longer waste 500ms (or whatever transition time is set to) on boot doing nothing
- transition time + step parameter for the lightUpdate
- report mask parameter for the lightUpdate
- minor fixes across the board
resolve #2222 3 years ago providers: relays, lights and buttons refactoring (#2414)
- gpio module now tracks the known providers (right now, hardware and mcp expander)
- refactored relay struct to use 'Provider' implementing setup,notify,change,boot instead of just BasePin actions
- refactored button module to use gpio provider instead of referencing types itself
- removed dual & stm code from buttons, migrate both to relay module
- added status notify and change callbacks for relayStatus (i.e. 'notify' when relay status was called, but not changed. and 'changed' when it did)
- relays runtime configuration keys
- relay command now shows configured relays and current & target statuses
- refactor the code using relayStatus(0, blah) under LIGHT_PROVIDER check to use lightState instead
- remove rfbridge code form relay module. implement through a basic state listener in the rfbridge module, depend on RELAY_SUPPORT
- allow to bind rf codes to real relays
- drop tuya-specific lights provider, remove tuya code from relays and lights modules
- integrate tuya via relay listeners and providers, use lights custom provider
- implement channel transitions for tuya. disabled by default, and transition time and step are overridden to 2000 + 100. needs to be set to some value below the total time (i.e. `total transition time / step time == number of steps`, we need to figure out a correct time that serial comms could handle)
- lights custom provider (global, not per-pin) and state listeners
- remove lights code from relay module. implement through providers & listeners in the lights module, depend on RELAY_SUPPORT
- lights per-channel relay provider (unused atm), depend on RELAY_SUPPORT
- refactored channel transition - calculate step only once, make sure time + step values are sane, generate quick transitions with very small delay (10ms hardcoded) for transitions during OFF state i.e. we no longer waste 500ms (or whatever transition time is set to) on boot doing nothing
- transition time + step parameter for the lightUpdate
- report mask parameter for the lightUpdate
- minor fixes across the board
resolve #2222 3 years ago providers: relays, lights and buttons refactoring (#2414)
- gpio module now tracks the known providers (right now, hardware and mcp expander)
- refactored relay struct to use 'Provider' implementing setup,notify,change,boot instead of just BasePin actions
- refactored button module to use gpio provider instead of referencing types itself
- removed dual & stm code from buttons, migrate both to relay module
- added status notify and change callbacks for relayStatus (i.e. 'notify' when relay status was called, but not changed. and 'changed' when it did)
- relays runtime configuration keys
- relay command now shows configured relays and current & target statuses
- refactor the code using relayStatus(0, blah) under LIGHT_PROVIDER check to use lightState instead
- remove rfbridge code form relay module. implement through a basic state listener in the rfbridge module, depend on RELAY_SUPPORT
- allow to bind rf codes to real relays
- drop tuya-specific lights provider, remove tuya code from relays and lights modules
- integrate tuya via relay listeners and providers, use lights custom provider
- implement channel transitions for tuya. disabled by default, and transition time and step are overridden to 2000 + 100. needs to be set to some value below the total time (i.e. `total transition time / step time == number of steps`, we need to figure out a correct time that serial comms could handle)
- lights custom provider (global, not per-pin) and state listeners
- remove lights code from relay module. implement through providers & listeners in the lights module, depend on RELAY_SUPPORT
- lights per-channel relay provider (unused atm), depend on RELAY_SUPPORT
- refactored channel transition - calculate step only once, make sure time + step values are sane, generate quick transitions with very small delay (10ms hardcoded) for transitions during OFF state i.e. we no longer waste 500ms (or whatever transition time is set to) on boot doing nothing
- transition time + step parameter for the lightUpdate
- report mask parameter for the lightUpdate
- minor fixes across the board
resolve #2222 3 years ago |
|
- // -----------------------------------------------------------------------------
- // DEFAULTS PER MODULE
- // -----------------------------------------------------------------------------
-
- #pragma once
-
- // -----------------------------------------------------------------------------
- // Buttons
- // -----------------------------------------------------------------------------
-
- #ifndef BUTTON1_PIN
- #define BUTTON1_PIN GPIO_NONE
- #endif
- #ifndef BUTTON2_PIN
- #define BUTTON2_PIN GPIO_NONE
- #endif
- #ifndef BUTTON3_PIN
- #define BUTTON3_PIN GPIO_NONE
- #endif
- #ifndef BUTTON4_PIN
- #define BUTTON4_PIN GPIO_NONE
- #endif
- #ifndef BUTTON5_PIN
- #define BUTTON5_PIN GPIO_NONE
- #endif
- #ifndef BUTTON6_PIN
- #define BUTTON6_PIN GPIO_NONE
- #endif
- #ifndef BUTTON7_PIN
- #define BUTTON7_PIN GPIO_NONE
- #endif
- #ifndef BUTTON8_PIN
- #define BUTTON8_PIN GPIO_NONE
- #endif
-
- #ifndef BUTTON1_PIN_TYPE
- #define BUTTON1_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef BUTTON2_PIN_TYPE
- #define BUTTON2_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef BUTTON3_PIN_TYPE
- #define BUTTON3_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef BUTTON4_PIN_TYPE
- #define BUTTON4_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef BUTTON5_PIN_TYPE
- #define BUTTON5_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef BUTTON6_PIN_TYPE
- #define BUTTON6_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef BUTTON7_PIN_TYPE
- #define BUTTON7_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef BUTTON8_PIN_TYPE
- #define BUTTON8_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
-
- #ifndef BUTTON1_CONFIG
- #define BUTTON1_CONFIG BUTTON_PUSHBUTTON | BUTTON_SET_PULLUP | BUTTON_DEFAULT_HIGH
- #endif
- #ifndef BUTTON2_CONFIG
- #define BUTTON2_CONFIG BUTTON_PUSHBUTTON | BUTTON_SET_PULLUP | BUTTON_DEFAULT_HIGH
- #endif
- #ifndef BUTTON3_CONFIG
- #define BUTTON3_CONFIG BUTTON_PUSHBUTTON | BUTTON_SET_PULLUP | BUTTON_DEFAULT_HIGH
- #endif
- #ifndef BUTTON4_CONFIG
- #define BUTTON4_CONFIG BUTTON_PUSHBUTTON | BUTTON_SET_PULLUP | BUTTON_DEFAULT_HIGH
- #endif
- #ifndef BUTTON5_CONFIG
- #define BUTTON5_CONFIG BUTTON_PUSHBUTTON | BUTTON_SET_PULLUP | BUTTON_DEFAULT_HIGH
- #endif
- #ifndef BUTTON6_CONFIG
- #define BUTTON6_CONFIG BUTTON_PUSHBUTTON | BUTTON_SET_PULLUP | BUTTON_DEFAULT_HIGH
- #endif
- #ifndef BUTTON7_CONFIG
- #define BUTTON7_CONFIG BUTTON_PUSHBUTTON | BUTTON_SET_PULLUP | BUTTON_DEFAULT_HIGH
- #endif
- #ifndef BUTTON8_CONFIG
- #define BUTTON8_CONFIG BUTTON_PUSHBUTTON | BUTTON_SET_PULLUP | BUTTON_DEFAULT_HIGH
- #endif
-
- #ifndef BUTTON1_PRESS
- #define BUTTON1_PRESS BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON2_PRESS
- #define BUTTON2_PRESS BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON3_PRESS
- #define BUTTON3_PRESS BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON4_PRESS
- #define BUTTON4_PRESS BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON5_PRESS
- #define BUTTON5_PRESS BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON6_PRESS
- #define BUTTON6_PRESS BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON7_PRESS
- #define BUTTON7_PRESS BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON8_PRESS
- #define BUTTON8_PRESS BUTTON_ACTION_NONE
- #endif
-
- #ifndef BUTTON1_RELEASE
- #define BUTTON1_RELEASE BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON2_RELEASE
- #define BUTTON2_RELEASE BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON3_RELEASE
- #define BUTTON3_RELEASE BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON4_RELEASE
- #define BUTTON4_RELEASE BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON5_RELEASE
- #define BUTTON5_RELEASE BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON6_RELEASE
- #define BUTTON6_RELEASE BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON7_RELEASE
- #define BUTTON7_RELEASE BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON8_RELEASE
- #define BUTTON8_RELEASE BUTTON_ACTION_NONE
- #endif
-
- #ifndef BUTTON1_CLICK
- #define BUTTON1_CLICK BUTTON_ACTION_TOGGLE
- #endif
- #ifndef BUTTON2_CLICK
- #define BUTTON2_CLICK BUTTON_ACTION_TOGGLE
- #endif
- #ifndef BUTTON3_CLICK
- #define BUTTON3_CLICK BUTTON_ACTION_TOGGLE
- #endif
- #ifndef BUTTON4_CLICK
- #define BUTTON4_CLICK BUTTON_ACTION_TOGGLE
- #endif
- #ifndef BUTTON5_CLICK
- #define BUTTON5_CLICK BUTTON_ACTION_TOGGLE
- #endif
- #ifndef BUTTON6_CLICK
- #define BUTTON6_CLICK BUTTON_ACTION_TOGGLE
- #endif
- #ifndef BUTTON7_CLICK
- #define BUTTON7_CLICK BUTTON_ACTION_TOGGLE
- #endif
- #ifndef BUTTON8_CLICK
- #define BUTTON8_CLICK BUTTON_ACTION_TOGGLE
- #endif
-
- #ifndef BUTTON1_DBLCLICK
- #define BUTTON1_DBLCLICK BUTTON_ACTION_AP
- #endif
- #ifndef BUTTON2_DBLCLICK
- #define BUTTON2_DBLCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON3_DBLCLICK
- #define BUTTON3_DBLCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON4_DBLCLICK
- #define BUTTON4_DBLCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON5_DBLCLICK
- #define BUTTON5_DBLCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON6_DBLCLICK
- #define BUTTON6_DBLCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON7_DBLCLICK
- #define BUTTON7_DBLCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON8_DBLCLICK
- #define BUTTON8_DBLCLICK BUTTON_ACTION_NONE
- #endif
-
- #ifndef BUTTON1_TRIPLECLICK
- #define BUTTON1_TRIPLECLICK BUTTON_ACTION_SMART_CONFIG
- #endif
- #ifndef BUTTON2_TRIPLECLICK
- #define BUTTON2_TRIPLECLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON3_TRIPLECLICK
- #define BUTTON3_TRIPLECLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON4_TRIPLECLICK
- #define BUTTON4_TRIPLECLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON5_TRIPLECLICK
- #define BUTTON5_TRIPLECLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON6_TRIPLECLICK
- #define BUTTON6_TRIPLECLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON7_TRIPLECLICK
- #define BUTTON7_TRIPLECLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON8_TRIPLECLICK
- #define BUTTON8_TRIPLECLICK BUTTON_ACTION_NONE
- #endif
-
- #ifndef BUTTON1_LNGCLICK
- #define BUTTON1_LNGCLICK BUTTON_ACTION_RESET
- #endif
- #ifndef BUTTON2_LNGCLICK
- #define BUTTON2_LNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON3_LNGCLICK
- #define BUTTON3_LNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON4_LNGCLICK
- #define BUTTON4_LNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON5_LNGCLICK
- #define BUTTON5_LNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON6_LNGCLICK
- #define BUTTON6_LNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON7_LNGCLICK
- #define BUTTON7_LNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON8_LNGCLICK
- #define BUTTON8_LNGCLICK BUTTON_ACTION_NONE
- #endif
-
- #ifndef BUTTON1_LNGLNGCLICK
- #define BUTTON1_LNGLNGCLICK BUTTON_ACTION_FACTORY
- #endif
- #ifndef BUTTON2_LNGLNGCLICK
- #define BUTTON2_LNGLNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON3_LNGLNGCLICK
- #define BUTTON3_LNGLNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON4_LNGLNGCLICK
- #define BUTTON4_LNGLNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON5_LNGLNGCLICK
- #define BUTTON5_LNGLNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON6_LNGLNGCLICK
- #define BUTTON6_LNGLNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON7_LNGLNGCLICK
- #define BUTTON7_LNGLNGCLICK BUTTON_ACTION_NONE
- #endif
- #ifndef BUTTON8_LNGLNGCLICK
- #define BUTTON8_LNGLNGCLICK BUTTON_ACTION_NONE
- #endif
-
- #ifndef BUTTON1_RELAY
- #define BUTTON1_RELAY RELAY_NONE
- #endif
- #ifndef BUTTON2_RELAY
- #define BUTTON2_RELAY RELAY_NONE
- #endif
- #ifndef BUTTON3_RELAY
- #define BUTTON3_RELAY RELAY_NONE
- #endif
- #ifndef BUTTON4_RELAY
- #define BUTTON4_RELAY RELAY_NONE
- #endif
- #ifndef BUTTON5_RELAY
- #define BUTTON5_RELAY RELAY_NONE
- #endif
- #ifndef BUTTON6_RELAY
- #define BUTTON6_RELAY RELAY_NONE
- #endif
- #ifndef BUTTON7_RELAY
- #define BUTTON7_RELAY RELAY_NONE
- #endif
- #ifndef BUTTON8_RELAY
- #define BUTTON8_RELAY RELAY_NONE
- #endif
-
- #ifndef BUTTON1_DEBOUNCE_DELAY
- #define BUTTON1_DEBOUNCE_DELAY BUTTON_DEBOUNCE_DELAY
- #endif
- #ifndef BUTTON2_DEBOUNCE_DELAY
- #define BUTTON2_DEBOUNCE_DELAY BUTTON_DEBOUNCE_DELAY
- #endif
- #ifndef BUTTON3_DEBOUNCE_DELAY
- #define BUTTON3_DEBOUNCE_DELAY BUTTON_DEBOUNCE_DELAY
- #endif
- #ifndef BUTTON4_DEBOUNCE_DELAY
- #define BUTTON4_DEBOUNCE_DELAY BUTTON_DEBOUNCE_DELAY
- #endif
- #ifndef BUTTON5_DEBOUNCE_DELAY
- #define BUTTON5_DEBOUNCE_DELAY BUTTON_DEBOUNCE_DELAY
- #endif
- #ifndef BUTTON6_DEBOUNCE_DELAY
- #define BUTTON6_DEBOUNCE_DELAY BUTTON_DEBOUNCE_DELAY
- #endif
- #ifndef BUTTON7_DEBOUNCE_DELAY
- #define BUTTON7_DEBOUNCE_DELAY BUTTON_DEBOUNCE_DELAY
- #endif
- #ifndef BUTTON8_DEBOUNCE_DELAY
- #define BUTTON8_DEBOUNCE_DELAY BUTTON_DEBOUNCE_DELAY
- #endif
-
- #ifndef BUTTON1_REPEAT_DELAY
- #define BUTTON1_REPEAT_DELAY BUTTON_REPEAT_DELAY
- #endif
- #ifndef BUTTON2_REPEAT_DELAY
- #define BUTTON2_REPEAT_DELAY BUTTON_REPEAT_DELAY
- #endif
- #ifndef BUTTON3_REPEAT_DELAY
- #define BUTTON3_REPEAT_DELAY BUTTON_REPEAT_DELAY
- #endif
- #ifndef BUTTON4_REPEAT_DELAY
- #define BUTTON4_REPEAT_DELAY BUTTON_REPEAT_DELAY
- #endif
- #ifndef BUTTON5_REPEAT_DELAY
- #define BUTTON5_REPEAT_DELAY BUTTON_REPEAT_DELAY
- #endif
- #ifndef BUTTON6_REPEAT_DELAY
- #define BUTTON6_REPEAT_DELAY BUTTON_REPEAT_DELAY
- #endif
- #ifndef BUTTON7_REPEAT_DELAY
- #define BUTTON7_REPEAT_DELAY BUTTON_REPEAT_DELAY
- #endif
- #ifndef BUTTON8_REPEAT_DELAY
- #define BUTTON8_REPEAT_DELAY BUTTON_REPEAT_DELAY
- #endif
-
- #ifndef BUTTON1_LNGCLICK_DELAY
- #define BUTTON1_LNGCLICK_DELAY BUTTON_LNGCLICK_DELAY
- #endif
- #ifndef BUTTON2_LNGCLICK_DELAY
- #define BUTTON2_LNGCLICK_DELAY BUTTON_LNGCLICK_DELAY
- #endif
- #ifndef BUTTON3_LNGCLICK_DELAY
- #define BUTTON3_LNGCLICK_DELAY BUTTON_LNGCLICK_DELAY
- #endif
- #ifndef BUTTON4_LNGCLICK_DELAY
- #define BUTTON4_LNGCLICK_DELAY BUTTON_LNGCLICK_DELAY
- #endif
- #ifndef BUTTON5_LNGCLICK_DELAY
- #define BUTTON5_LNGCLICK_DELAY BUTTON_LNGCLICK_DELAY
- #endif
- #ifndef BUTTON6_LNGCLICK_DELAY
- #define BUTTON6_LNGCLICK_DELAY BUTTON_LNGCLICK_DELAY
- #endif
- #ifndef BUTTON7_LNGCLICK_DELAY
- #define BUTTON7_LNGCLICK_DELAY BUTTON_LNGCLICK_DELAY
- #endif
- #ifndef BUTTON8_LNGCLICK_DELAY
- #define BUTTON8_LNGCLICK_DELAY BUTTON_LNGCLICK_DELAY
- #endif
-
- #ifndef BUTTON1_LNGLNGCLICK_DELAY
- #define BUTTON1_LNGLNGCLICK_DELAY BUTTON_LNGLNGCLICK_DELAY
- #endif
- #ifndef BUTTON2_LNGLNGCLICK_DELAY
- #define BUTTON2_LNGLNGCLICK_DELAY BUTTON_LNGLNGCLICK_DELAY
- #endif
- #ifndef BUTTON3_LNGLNGCLICK_DELAY
- #define BUTTON3_LNGLNGCLICK_DELAY BUTTON_LNGLNGCLICK_DELAY
- #endif
- #ifndef BUTTON4_LNGLNGCLICK_DELAY
- #define BUTTON4_LNGLNGCLICK_DELAY BUTTON_LNGLNGCLICK_DELAY
- #endif
- #ifndef BUTTON5_LNGLNGCLICK_DELAY
- #define BUTTON5_LNGLNGCLICK_DELAY BUTTON_LNGLNGCLICK_DELAY
- #endif
- #ifndef BUTTON6_LNGLNGCLICK_DELAY
- #define BUTTON6_LNGLNGCLICK_DELAY BUTTON_LNGLNGCLICK_DELAY
- #endif
- #ifndef BUTTON7_LNGLNGCLICK_DELAY
- #define BUTTON7_LNGLNGCLICK_DELAY BUTTON_LNGLNGCLICK_DELAY
- #endif
- #ifndef BUTTON8_LNGLNGCLICK_DELAY
- #define BUTTON8_LNGLNGCLICK_DELAY BUTTON_LNGLNGCLICK_DELAY
- #endif
-
- #ifndef BUTTON1_MQTT_SEND_ALL_EVENTS
- #define BUTTON1_MQTT_SEND_ALL_EVENTS BUTTON_MQTT_SEND_ALL_EVENTS
- #endif
-
- #ifndef BUTTON2_MQTT_SEND_ALL_EVENTS
- #define BUTTON2_MQTT_SEND_ALL_EVENTS BUTTON_MQTT_SEND_ALL_EVENTS
- #endif
-
- #ifndef BUTTON3_MQTT_SEND_ALL_EVENTS
- #define BUTTON3_MQTT_SEND_ALL_EVENTS BUTTON_MQTT_SEND_ALL_EVENTS
- #endif
-
- #ifndef BUTTON4_MQTT_SEND_ALL_EVENTS
- #define BUTTON4_MQTT_SEND_ALL_EVENTS BUTTON_MQTT_SEND_ALL_EVENTS
- #endif
-
- #ifndef BUTTON5_MQTT_SEND_ALL_EVENTS
- #define BUTTON5_MQTT_SEND_ALL_EVENTS BUTTON_MQTT_SEND_ALL_EVENTS
- #endif
-
- #ifndef BUTTON6_MQTT_SEND_ALL_EVENTS
- #define BUTTON6_MQTT_SEND_ALL_EVENTS BUTTON_MQTT_SEND_ALL_EVENTS
- #endif
-
- #ifndef BUTTON7_MQTT_SEND_ALL_EVENTS
- #define BUTTON7_MQTT_SEND_ALL_EVENTS BUTTON_MQTT_SEND_ALL_EVENTS
- #endif
-
- #ifndef BUTTON8_MQTT_SEND_ALL_EVENTS
- #define BUTTON8_MQTT_SEND_ALL_EVENTS BUTTON_MQTT_SEND_ALL_EVENTS
- #endif
-
- #ifndef BUTTON1_MQTT_RETAIN
- #define BUTTON1_MQTT_RETAIN BUTTON_MQTT_RETAIN
- #endif
-
- #ifndef BUTTON2_MQTT_RETAIN
- #define BUTTON2_MQTT_RETAIN BUTTON_MQTT_RETAIN
- #endif
-
- #ifndef BUTTON3_MQTT_RETAIN
- #define BUTTON3_MQTT_RETAIN BUTTON_MQTT_RETAIN
- #endif
-
- #ifndef BUTTON4_MQTT_RETAIN
- #define BUTTON4_MQTT_RETAIN BUTTON_MQTT_RETAIN
- #endif
-
- #ifndef BUTTON5_MQTT_RETAIN
- #define BUTTON5_MQTT_RETAIN BUTTON_MQTT_RETAIN
- #endif
-
- #ifndef BUTTON6_MQTT_RETAIN
- #define BUTTON6_MQTT_RETAIN BUTTON_MQTT_RETAIN
- #endif
-
- #ifndef BUTTON7_MQTT_RETAIN
- #define BUTTON7_MQTT_RETAIN BUTTON_MQTT_RETAIN
- #endif
-
- #ifndef BUTTON8_MQTT_RETAIN
- #define BUTTON8_MQTT_RETAIN BUTTON_MQTT_RETAIN
- #endif
-
- #ifndef BUTTON1_PROVIDER
- #define BUTTON1_PROVIDER BUTTON_PROVIDER_GPIO
- #endif
- #ifndef BUTTON2_PROVIDER
- #define BUTTON2_PROVIDER BUTTON_PROVIDER_GPIO
- #endif
- #ifndef BUTTON3_PROVIDER
- #define BUTTON3_PROVIDER BUTTON_PROVIDER_GPIO
- #endif
- #ifndef BUTTON4_PROVIDER
- #define BUTTON4_PROVIDER BUTTON_PROVIDER_GPIO
- #endif
- #ifndef BUTTON5_PROVIDER
- #define BUTTON5_PROVIDER BUTTON_PROVIDER_GPIO
- #endif
- #ifndef BUTTON6_PROVIDER
- #define BUTTON6_PROVIDER BUTTON_PROVIDER_GPIO
- #endif
- #ifndef BUTTON7_PROVIDER
- #define BUTTON7_PROVIDER BUTTON_PROVIDER_GPIO
- #endif
- #ifndef BUTTON8_PROVIDER
- #define BUTTON8_PROVIDER BUTTON_PROVIDER_GPIO
- #endif
-
- #ifndef BUTTON1_ANALOG_LEVEL
- #define BUTTON1_ANALOG_LEVEL 0
- #endif
- #ifndef BUTTON2_ANALOG_LEVEL
- #define BUTTON2_ANALOG_LEVEL 0
- #endif
- #ifndef BUTTON3_ANALOG_LEVEL
- #define BUTTON3_ANALOG_LEVEL 0
- #endif
- #ifndef BUTTON4_ANALOG_LEVEL
- #define BUTTON4_ANALOG_LEVEL 0
- #endif
- #ifndef BUTTON5_ANALOG_LEVEL
- #define BUTTON5_ANALOG_LEVEL 0
- #endif
- #ifndef BUTTON6_ANALOG_LEVEL
- #define BUTTON6_ANALOG_LEVEL 0
- #endif
- #ifndef BUTTON7_ANALOG_LEVEL
- #define BUTTON7_ANALOG_LEVEL 0
- #endif
- #ifndef BUTTON8_ANALOG_LEVEL
- #define BUTTON8_ANALOG_LEVEL 0
- #endif
-
- // -----------------------------------------------------------------------------
- // Encoders
- // -----------------------------------------------------------------------------
-
- #ifndef ENCODER1_PIN1
- #define ENCODER1_PIN1 GPIO_NONE
- #endif
- #ifndef ENCODER2_PIN1
- #define ENCODER2_PIN1 GPIO_NONE
- #endif
- #ifndef ENCODER3_PIN1
- #define ENCODER3_PIN1 GPIO_NONE
- #endif
- #ifndef ENCODER4_PIN1
- #define ENCODER4_PIN1 GPIO_NONE
- #endif
- #ifndef ENCODER5_PIN1
- #define ENCODER5_PIN1 GPIO_NONE
- #endif
-
- #ifndef ENCODER1_PIN2
- #define ENCODER1_PIN2 GPIO_NONE
- #endif
- #ifndef ENCODER2_PIN2
- #define ENCODER2_PIN2 GPIO_NONE
- #endif
- #ifndef ENCODER3_PIN2
- #define ENCODER3_PIN2 GPIO_NONE
- #endif
- #ifndef ENCODER4_PIN2
- #define ENCODER4_PIN2 GPIO_NONE
- #endif
- #ifndef ENCODER5_PIN2
- #define ENCODER5_PIN2 GPIO_NONE
- #endif
-
- #ifndef ENCODER1_BUTTON_PIN
- #define ENCODER1_BUTTON_PIN GPIO_NONE
- #endif
- #ifndef ENCODER2_BUTTON_PIN
- #define ENCODER2_BUTTON_PIN GPIO_NONE
- #endif
- #ifndef ENCODER3_BUTTON_PIN
- #define ENCODER3_BUTTON_PIN GPIO_NONE
- #endif
- #ifndef ENCODER4_BUTTON_PIN
- #define ENCODER4_BUTTON_PIN GPIO_NONE
- #endif
- #ifndef ENCODER5_BUTTON_PIN
- #define ENCODER5_BUTTON_PIN GPIO_NONE
- #endif
-
- #ifndef ENCODER1_BUTTON_LOGIC
- #define ENCODER1_BUTTON_LOGIC HIGH
- #endif
- #ifndef ENCODER2_BUTTON_LOGIC
- #define ENCODER2_BUTTON_LOGIC HIGH
- #endif
- #ifndef ENCODER3_BUTTON_LOGIC
- #define ENCODER3_BUTTON_LOGIC HIGH
- #endif
- #ifndef ENCODER4_BUTTON_LOGIC
- #define ENCODER4_BUTTON_LOGIC HIGH
- #endif
- #ifndef ENCODER5_BUTTON_LOGIC
- #define ENCODER5_BUTTON_LOGIC HIGH
- #endif
-
- #ifndef ENCODER1_BUTTON_MODE
- #define ENCODER1_BUTTON_MODE INPUT_PULLUP
- #endif
- #ifndef ENCODER2_BUTTON_MODE
- #define ENCODER2_BUTTON_MODE INPUT_PULLUP
- #endif
- #ifndef ENCODER3_BUTTON_MODE
- #define ENCODER3_BUTTON_MODE INPUT_PULLUP
- #endif
- #ifndef ENCODER4_BUTTON_MODE
- #define ENCODER4_BUTTON_MODE INPUT_PULLUP
- #endif
- #ifndef ENCODER5_BUTTON_MODE
- #define ENCODER5_BUTTON_MODE INPUT_PULLUP
- #endif
-
- #ifndef ENCODER1_MODE
- #define ENCODER1_MODE 1
- #endif
- #ifndef ENCODER2_MODE
- #define ENCODER2_MODE 1
- #endif
- #ifndef ENCODER3_MODE
- #define ENCODER3_MODE 1
- #endif
- #ifndef ENCODER4_MODE
- #define ENCODER4_MODE 1
- #endif
- #ifndef ENCODER5_MODE
- #define ENCODER5_MODE 1
- #endif
-
- #ifndef ENCODER1_CHANNEL1
- #define ENCODER1_CHANNEL1 0
- #endif
- #ifndef ENCODER2_CHANNEL1
- #define ENCODER2_CHANNEL1 0
- #endif
- #ifndef ENCODER3_CHANNEL1
- #define ENCODER3_CHANNEL1 0
- #endif
- #ifndef ENCODER4_CHANNEL1
- #define ENCODER4_CHANNEL1 0
- #endif
- #ifndef ENCODER5_CHANNEL1
- #define ENCODER5_CHANNEL1 0
- #endif
-
- #ifndef ENCODER1_CHANNEL2
- #define ENCODER1_CHANNEL2 1
- #endif
- #ifndef ENCODER2_CHANNEL2
- #define ENCODER2_CHANNEL2 1
- #endif
- #ifndef ENCODER3_CHANNEL2
- #define ENCODER3_CHANNEL2 1
- #endif
- #ifndef ENCODER4_CHANNEL2
- #define ENCODER4_CHANNEL2 1
- #endif
- #ifndef ENCODER5_CHANNEL2
- #define ENCODER5_CHANNEL2 1
- #endif
-
- // -----------------------------------------------------------------------------
- // Relays
- // -----------------------------------------------------------------------------
-
- #ifndef DUMMY_RELAY_COUNT
- #define DUMMY_RELAY_COUNT 0
- #endif
-
- #ifndef RELAY1_PIN
- #define RELAY1_PIN GPIO_NONE
- #endif
- #ifndef RELAY2_PIN
- #define RELAY2_PIN GPIO_NONE
- #endif
- #ifndef RELAY3_PIN
- #define RELAY3_PIN GPIO_NONE
- #endif
- #ifndef RELAY4_PIN
- #define RELAY4_PIN GPIO_NONE
- #endif
- #ifndef RELAY5_PIN
- #define RELAY5_PIN GPIO_NONE
- #endif
- #ifndef RELAY6_PIN
- #define RELAY6_PIN GPIO_NONE
- #endif
- #ifndef RELAY7_PIN
- #define RELAY7_PIN GPIO_NONE
- #endif
- #ifndef RELAY8_PIN
- #define RELAY8_PIN GPIO_NONE
- #endif
-
- #ifndef RELAY1_TYPE
- #define RELAY1_TYPE RELAY_TYPE_NORMAL
- #endif
- #ifndef RELAY2_TYPE
- #define RELAY2_TYPE RELAY_TYPE_NORMAL
- #endif
- #ifndef RELAY3_TYPE
- #define RELAY3_TYPE RELAY_TYPE_NORMAL
- #endif
- #ifndef RELAY4_TYPE
- #define RELAY4_TYPE RELAY_TYPE_NORMAL
- #endif
- #ifndef RELAY5_TYPE
- #define RELAY5_TYPE RELAY_TYPE_NORMAL
- #endif
- #ifndef RELAY6_TYPE
- #define RELAY6_TYPE RELAY_TYPE_NORMAL
- #endif
- #ifndef RELAY7_TYPE
- #define RELAY7_TYPE RELAY_TYPE_NORMAL
- #endif
- #ifndef RELAY8_TYPE
- #define RELAY8_TYPE RELAY_TYPE_NORMAL
- #endif
-
- #ifndef RELAY1_RESET_PIN
- #define RELAY1_RESET_PIN GPIO_NONE
- #endif
- #ifndef RELAY2_RESET_PIN
- #define RELAY2_RESET_PIN GPIO_NONE
- #endif
- #ifndef RELAY3_RESET_PIN
- #define RELAY3_RESET_PIN GPIO_NONE
- #endif
- #ifndef RELAY4_RESET_PIN
- #define RELAY4_RESET_PIN GPIO_NONE
- #endif
- #ifndef RELAY5_RESET_PIN
- #define RELAY5_RESET_PIN GPIO_NONE
- #endif
- #ifndef RELAY6_RESET_PIN
- #define RELAY6_RESET_PIN GPIO_NONE
- #endif
- #ifndef RELAY7_RESET_PIN
- #define RELAY7_RESET_PIN GPIO_NONE
- #endif
- #ifndef RELAY8_RESET_PIN
- #define RELAY8_RESET_PIN GPIO_NONE
- #endif
-
- #ifndef RELAY1_DELAY_ON
- #define RELAY1_DELAY_ON 0
- #endif
- #ifndef RELAY2_DELAY_ON
- #define RELAY2_DELAY_ON 0
- #endif
- #ifndef RELAY3_DELAY_ON
- #define RELAY3_DELAY_ON 0
- #endif
- #ifndef RELAY4_DELAY_ON
- #define RELAY4_DELAY_ON 0
- #endif
- #ifndef RELAY5_DELAY_ON
- #define RELAY5_DELAY_ON 0
- #endif
- #ifndef RELAY6_DELAY_ON
- #define RELAY6_DELAY_ON 0
- #endif
- #ifndef RELAY7_DELAY_ON
- #define RELAY7_DELAY_ON 0
- #endif
- #ifndef RELAY8_DELAY_ON
- #define RELAY8_DELAY_ON 0
- #endif
-
- #ifndef RELAY1_DELAY_OFF
- #define RELAY1_DELAY_OFF 0
- #endif
- #ifndef RELAY2_DELAY_OFF
- #define RELAY2_DELAY_OFF 0
- #endif
- #ifndef RELAY3_DELAY_OFF
- #define RELAY3_DELAY_OFF 0
- #endif
- #ifndef RELAY4_DELAY_OFF
- #define RELAY4_DELAY_OFF 0
- #endif
- #ifndef RELAY5_DELAY_OFF
- #define RELAY5_DELAY_OFF 0
- #endif
- #ifndef RELAY6_DELAY_OFF
- #define RELAY6_DELAY_OFF 0
- #endif
- #ifndef RELAY7_DELAY_OFF
- #define RELAY7_DELAY_OFF 0
- #endif
- #ifndef RELAY8_DELAY_OFF
- #define RELAY8_DELAY_OFF 0
- #endif
-
- #ifndef RELAY1_PROVIDER
- #define RELAY1_PROVIDER RELAY_PROVIDER_GPIO
- #endif
- #ifndef RELAY2_PROVIDER
- #define RELAY2_PROVIDER RELAY_PROVIDER_GPIO
- #endif
- #ifndef RELAY3_PROVIDER
- #define RELAY3_PROVIDER RELAY_PROVIDER_GPIO
- #endif
- #ifndef RELAY4_PROVIDER
- #define RELAY4_PROVIDER RELAY_PROVIDER_GPIO
- #endif
- #ifndef RELAY5_PROVIDER
- #define RELAY5_PROVIDER RELAY_PROVIDER_GPIO
- #endif
- #ifndef RELAY6_PROVIDER
- #define RELAY6_PROVIDER RELAY_PROVIDER_GPIO
- #endif
- #ifndef RELAY7_PROVIDER
- #define RELAY7_PROVIDER RELAY_PROVIDER_GPIO
- #endif
- #ifndef RELAY8_PROVIDER
- #define RELAY8_PROVIDER RELAY_PROVIDER_GPIO
- #endif
-
- #ifndef RELAY1_PIN_TYPE
- #define RELAY1_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef RELAY2_PIN_TYPE
- #define RELAY2_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef RELAY3_PIN_TYPE
- #define RELAY3_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef RELAY4_PIN_TYPE
- #define RELAY4_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef RELAY5_PIN_TYPE
- #define RELAY5_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef RELAY6_PIN_TYPE
- #define RELAY6_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef RELAY7_PIN_TYPE
- #define RELAY7_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
- #ifndef RELAY8_PIN_TYPE
- #define RELAY8_PIN_TYPE GPIO_TYPE_HARDWARE
- #endif
-
- #ifndef RELAY1_BOOT_MODE
- #define RELAY1_BOOT_MODE RELAY_BOOT_MODE
- #endif
- #ifndef RELAY2_BOOT_MODE
- #define RELAY2_BOOT_MODE RELAY_BOOT_MODE
- #endif
- #ifndef RELAY3_BOOT_MODE
- #define RELAY3_BOOT_MODE RELAY_BOOT_MODE
- #endif
- #ifndef RELAY4_BOOT_MODE
- #define RELAY4_BOOT_MODE RELAY_BOOT_MODE
- #endif
- #ifndef RELAY5_BOOT_MODE
- #define RELAY5_BOOT_MODE RELAY_BOOT_MODE
- #endif
- #ifndef RELAY6_BOOT_MODE
- #define RELAY6_BOOT_MODE RELAY_BOOT_MODE
- #endif
- #ifndef RELAY7_BOOT_MODE
- #define RELAY7_BOOT_MODE RELAY_BOOT_MODE
- #endif
- #ifndef RELAY8_BOOT_MODE
- #define RELAY8_BOOT_MODE RELAY_BOOT_MODE
- #endif
-
- #ifndef RELAY1_PULSE_MODE
- #define RELAY1_PULSE_MODE RELAY_PULSE_MODE
- #endif
- #ifndef RELAY2_PULSE_MODE
- #define RELAY2_PULSE_MODE RELAY_PULSE_MODE
- #endif
- #ifndef RELAY3_PULSE_MODE
- #define RELAY3_PULSE_MODE RELAY_PULSE_MODE
- #endif
- #ifndef RELAY4_PULSE_MODE
- #define RELAY4_PULSE_MODE RELAY_PULSE_MODE
- #endif
- #ifndef RELAY5_PULSE_MODE
- #define RELAY5_PULSE_MODE RELAY_PULSE_MODE
- #endif
- #ifndef RELAY6_PULSE_MODE
- #define RELAY6_PULSE_MODE RELAY_PULSE_MODE
- #endif
- #ifndef RELAY7_PULSE_MODE
- #define RELAY7_PULSE_MODE RELAY_PULSE_MODE
- #endif
- #ifndef RELAY8_PULSE_MODE
- #define RELAY8_PULSE_MODE RELAY_PULSE_MODE
- #endif
-
- #ifndef RELAY1_PULSE_TIME
- #define RELAY1_PULSE_TIME RELAY_PULSE_TIME
- #endif
- #ifndef RELAY2_PULSE_TIME
- #define RELAY2_PULSE_TIME RELAY_PULSE_TIME
- #endif
- #ifndef RELAY3_PULSE_TIME
- #define RELAY3_PULSE_TIME RELAY_PULSE_TIME
- #endif
- #ifndef RELAY4_PULSE_TIME
- #define RELAY4_PULSE_TIME RELAY_PULSE_TIME
- #endif
- #ifndef RELAY5_PULSE_TIME
- #define RELAY5_PULSE_TIME RELAY_PULSE_TIME
- #endif
- #ifndef RELAY6_PULSE_TIME
- #define RELAY6_PULSE_TIME RELAY_PULSE_TIME
- #endif
- #ifndef RELAY7_PULSE_TIME
- #define RELAY7_PULSE_TIME RELAY_PULSE_TIME
- #endif
- #ifndef RELAY8_PULSE_TIME
- #define RELAY8_PULSE_TIME RELAY_PULSE_TIME
- #endif
-
- #ifndef RELAY1_MQTT_TOPIC_SUB
- #define RELAY1_MQTT_TOPIC_SUB ""
- #endif
- #ifndef RELAY2_MQTT_TOPIC_SUB
- #define RELAY2_MQTT_TOPIC_SUB ""
- #endif
- #ifndef RELAY3_MQTT_TOPIC_SUB
- #define RELAY3_MQTT_TOPIC_SUB ""
- #endif
- #ifndef RELAY4_MQTT_TOPIC_SUB
- #define RELAY4_MQTT_TOPIC_SUB ""
- #endif
- #ifndef RELAY5_MQTT_TOPIC_SUB
- #define RELAY5_MQTT_TOPIC_SUB ""
- #endif
- #ifndef RELAY6_MQTT_TOPIC_SUB
- #define RELAY6_MQTT_TOPIC_SUB ""
- #endif
- #ifndef RELAY7_MQTT_TOPIC_SUB
- #define RELAY7_MQTT_TOPIC_SUB ""
- #endif
- #ifndef RELAY8_MQTT_TOPIC_SUB
- #define RELAY8_MQTT_TOPIC_SUB ""
- #endif
-
- #ifndef RELAY1_MQTT_TOPIC_PUB
- #define RELAY1_MQTT_TOPIC_PUB ""
- #endif
- #ifndef RELAY2_MQTT_TOPIC_PUB
- #define RELAY2_MQTT_TOPIC_PUB ""
- #endif
- #ifndef RELAY3_MQTT_TOPIC_PUB
- #define RELAY3_MQTT_TOPIC_PUB ""
- #endif
- #ifndef RELAY4_MQTT_TOPIC_PUB
- #define RELAY4_MQTT_TOPIC_PUB ""
- #endif
- #ifndef RELAY5_MQTT_TOPIC_PUB
- #define RELAY5_MQTT_TOPIC_PUB ""
- #endif
- #ifndef RELAY6_MQTT_TOPIC_PUB
- #define RELAY6_MQTT_TOPIC_PUB ""
- #endif
- #ifndef RELAY7_MQTT_TOPIC_PUB
- #define RELAY7_MQTT_TOPIC_PUB ""
- #endif
- #ifndef RELAY8_MQTT_TOPIC_PUB
- #define RELAY8_MQTT_TOPIC_PUB ""
- #endif
-
- #ifndef RELAY1_MQTT_TOPIC_MODE
- #define RELAY1_MQTT_TOPIC_MODE RELAY_MQTT_TOPIC_MODE
- #endif
- #ifndef RELAY2_MQTT_TOPIC_MODE
- #define RELAY2_MQTT_TOPIC_MODE RELAY_MQTT_TOPIC_MODE
- #endif
- #ifndef RELAY3_MQTT_TOPIC_MODE
- #define RELAY3_MQTT_TOPIC_MODE RELAY_MQTT_TOPIC_MODE
- #endif
- #ifndef RELAY4_MQTT_TOPIC_MODE
- #define RELAY4_MQTT_TOPIC_MODE RELAY_MQTT_TOPIC_MODE
- #endif
- #ifndef RELAY5_MQTT_TOPIC_MODE
- #define RELAY5_MQTT_TOPIC_MODE RELAY_MQTT_TOPIC_MODE
- #endif
- #ifndef RELAY6_MQTT_TOPIC_MODE
- #define RELAY6_MQTT_TOPIC_MODE RELAY_MQTT_TOPIC_MODE
- #endif
- #ifndef RELAY7_MQTT_TOPIC_MODE
- #define RELAY7_MQTT_TOPIC_MODE RELAY_MQTT_TOPIC_MODE
- #endif
- #ifndef RELAY8_MQTT_TOPIC_MODE
- #define RELAY8_MQTT_TOPIC_MODE RELAY_MQTT_TOPIC_MODE
- #endif
-
- #ifndef RELAY1_MQTT_DISCONNECT_STATUS
- #define RELAY1_MQTT_DISCONNECT_STATUS RELAY_MQTT_DISCONNECT_STATUS
- #endif
- #ifndef RELAY2_MQTT_DISCONNECT_STATUS
- #define RELAY2_MQTT_DISCONNECT_STATUS RELAY_MQTT_DISCONNECT_STATUS
- #endif
- #ifndef RELAY3_MQTT_DISCONNECT_STATUS
- #define RELAY3_MQTT_DISCONNECT_STATUS RELAY_MQTT_DISCONNECT_STATUS
- #endif
- #ifndef RELAY4_MQTT_DISCONNECT_STATUS
- #define RELAY4_MQTT_DISCONNECT_STATUS RELAY_MQTT_DISCONNECT_STATUS
- #endif
- #ifndef RELAY5_MQTT_DISCONNECT_STATUS
- #define RELAY5_MQTT_DISCONNECT_STATUS RELAY_MQTT_DISCONNECT_STATUS
- #endif
- #ifndef RELAY6_MQTT_DISCONNECT_STATUS
- #define RELAY6_MQTT_DISCONNECT_STATUS RELAY_MQTT_DISCONNECT_STATUS
- #endif
- #ifndef RELAY7_MQTT_DISCONNECT_STATUS
- #define RELAY7_MQTT_DISCONNECT_STATUS RELAY_MQTT_DISCONNECT_STATUS
- #endif
- #ifndef RELAY8_MQTT_DISCONNECT_STATUS
- #define RELAY8_MQTT_DISCONNECT_STATUS RELAY_MQTT_DISCONNECT_STATUS
- #endif
-
- // -----------------------------------------------------------------------------
- // LEDs
- // -----------------------------------------------------------------------------
-
- #ifndef LED1_PIN
- #define LED1_PIN GPIO_NONE
- #endif
- #ifndef LED2_PIN
- #define LED2_PIN GPIO_NONE
- #endif
- #ifndef LED3_PIN
- #define LED3_PIN GPIO_NONE
- #endif
- #ifndef LED4_PIN
- #define LED4_PIN GPIO_NONE
- #endif
- #ifndef LED5_PIN
- #define LED5_PIN GPIO_NONE
- #endif
- #ifndef LED6_PIN
- #define LED6_PIN GPIO_NONE
- #endif
- #ifndef LED7_PIN
- #define LED7_PIN GPIO_NONE
- #endif
- #ifndef LED8_PIN
- #define LED8_PIN GPIO_NONE
- #endif
-
- #ifndef LED1_MODE
- #define LED1_MODE LED_MODE_WIFI
- #endif
- #ifndef LED2_MODE
- #define LED2_MODE LED_MODE_MANUAL
- #endif
- #ifndef LED3_MODE
- #define LED3_MODE LED_MODE_MANUAL
- #endif
- #ifndef LED4_MODE
- #define LED4_MODE LED_MODE_MANUAL
- #endif
- #ifndef LED5_MODE
- #define LED5_MODE LED_MODE_MANUAL
- #endif
- #ifndef LED6_MODE
- #define LED6_MODE LED_MODE_MANUAL
- #endif
- #ifndef LED7_MODE
- #define LED7_MODE LED_MODE_MANUAL
- #endif
- #ifndef LED8_MODE
- #define LED8_MODE LED_MODE_MANUAL
- #endif
-
- #ifndef LED1_RELAY
- #define LED1_RELAY 1
- #endif
- #ifndef LED2_RELAY
- #define LED2_RELAY 2
- #endif
- #ifndef LED3_RELAY
- #define LED3_RELAY 3
- #endif
- #ifndef LED4_RELAY
- #define LED4_RELAY 4
- #endif
- #ifndef LED5_RELAY
- #define LED5_RELAY 5
- #endif
- #ifndef LED6_RELAY
- #define LED6_RELAY 6
- #endif
- #ifndef LED7_RELAY
- #define LED7_RELAY 7
- #endif
- #ifndef LED8_RELAY
- #define LED8_RELAY 8
- #endif
-
- #ifndef LED1_PIN_INVERSE
- #define LED1_PIN_INVERSE 0
- #endif
- #ifndef LED2_PIN_INVERSE
- #define LED2_PIN_INVERSE 0
- #endif
- #ifndef LED3_PIN_INVERSE
- #define LED3_PIN_INVERSE 0
- #endif
- #ifndef LED4_PIN_INVERSE
- #define LED4_PIN_INVERSE 0
- #endif
- #ifndef LED5_PIN_INVERSE
- #define LED5_PIN_INVERSE 0
- #endif
- #ifndef LED6_PIN_INVERSE
- #define LED6_PIN_INVERSE 0
- #endif
- #ifndef LED7_PIN_INVERSE
- #define LED7_PIN_INVERSE 0
- #endif
- #ifndef LED8_PIN_INVERSE
- #define LED8_PIN_INVERSE 0
- #endif
-
- // -----------------------------------------------------------------------------
- // Lights
- // -----------------------------------------------------------------------------
-
- #ifndef LIGHT_ENABLE_PIN
- #define LIGHT_ENABLE_PIN GPIO_NONE
- #endif
-
- #ifndef LIGHT_CH1_PIN
- #define LIGHT_CH1_PIN GPIO_NONE
- #endif
-
- #ifndef LIGHT_CH2_PIN
- #define LIGHT_CH2_PIN GPIO_NONE
- #endif
-
- #ifndef LIGHT_CH3_PIN
- #define LIGHT_CH3_PIN GPIO_NONE
- #endif
-
- #ifndef LIGHT_CH4_PIN
- #define LIGHT_CH4_PIN GPIO_NONE
- #endif
-
- #ifndef LIGHT_CH5_PIN
- #define LIGHT_CH5_PIN GPIO_NONE
- #endif
-
- #ifndef LIGHT_CH1_INVERSE
- #define LIGHT_CH1_INVERSE 0
- #endif
-
- #ifndef LIGHT_CH2_INVERSE
- #define LIGHT_CH2_INVERSE 0
- #endif
-
- #ifndef LIGHT_CH3_INVERSE
- #define LIGHT_CH3_INVERSE 0
- #endif
-
- #ifndef LIGHT_CH4_INVERSE
- #define LIGHT_CH4_INVERSE 0
- #endif
-
- #ifndef LIGHT_CH5_INVERSE
- #define LIGHT_CH5_INVERSE 0
- #endif
-
- // -----------------------------------------------------------------------------
- // my92xx
- // -----------------------------------------------------------------------------
-
- #ifndef MY92XX_CHANNELS
- #define MY92XX_CHANNELS 0
- #endif
-
- #ifndef MY92XX_CH1
- #define MY92XX_CH1 0
- #endif
-
- #ifndef MY92XX_CH2
- #define MY92XX_CH2 1
- #endif
-
- #ifndef MY92XX_CH3
- #define MY92XX_CH3 2
- #endif
-
- #ifndef MY92XX_CH4
- #define MY92XX_CH4 3
- #endif
-
- #ifndef MY92XX_CH5
- #define MY92XX_CH5 4
- #endif
-
- // -----------------------------------------------------------------------------
- // Tuya
- // -----------------------------------------------------------------------------
-
- #ifndef TUYA_CH_STATE_DPID
- #define TUYA_CH_STATE_DPID 0
- #endif
-
- #ifndef TUYA_CH1_DPID
- #define TUYA_CH1_DPID 0
- #endif
-
- #ifndef TUYA_CH2_DPID
- #define TUYA_CH2_DPID 0
- #endif
-
- #ifndef TUYA_CH3_DPID
- #define TUYA_CH3_DPID 0
- #endif
-
- #ifndef TUYA_CH4_DPID
- #define TUYA_CH4_DPID 0
- #endif
-
- #ifndef TUYA_CH5_DPID
- #define TUYA_CH5_DPID 0
- #endif
-
- #ifndef TUYA_SW1_DPID
- #define TUYA_SW1_DPID 0
- #endif
-
- #ifndef TUYA_SW2_DPID
- #define TUYA_SW2_DPID 0
- #endif
-
- #ifndef TUYA_SW3_DPID
- #define TUYA_SW3_DPID 0
- #endif
-
- #ifndef TUYA_SW4_DPID
- #define TUYA_SW4_DPID 0
- #endif
-
- #ifndef TUYA_SW5_DPID
- #define TUYA_SW5_DPID 0
- #endif
-
- #ifndef TUYA_SW6_DPID
- #define TUYA_SW6_DPID 0
- #endif
-
- #ifndef TUYA_SW7_DPID
- #define TUYA_SW7_DPID 0
- #endif
-
- #ifndef TUYA_SW8_DPID
- #define TUYA_SW8_DPID 0
- #endif
-
- // -----------------------------------------------------------------------------
- // General
- // -----------------------------------------------------------------------------
-
- // Device name (DNS, SoftAP SSID, ALEXA etc.)
- // If empty, default will be ESPURNA-XXXXXX, where XXXXXX is last 3 octets of chipID
- // When set, must be 1..31 characters. See:
- // https://github.com/xoseperez/espurna/issues/921
- // https://github.com/xoseperez/espurna/issues/1151
- #ifndef HOSTNAME
- #define HOSTNAME ""
- #endif
|