4#ifndef SRC_SUPLA_SENSOR_BINARY_BASE_H_
5#define SRC_SUPLA_SENSOR_BINARY_BASE_H_
7#include <supla/channels/binary_sensor_channel.h>
8#include <supla/element_with_channel_actions.h>
22 uint16_t filteringTimeMs;
25 uint8_t localAlarmIndication;
39 virtual bool getValue() = 0;
42 const Channel *getChannel()
const override;
45 bool local =
false)
override;
92 bool setTimeoutDs(uint16_t timeoutDs,
bool local =
true);
181 uint8_t configType)
override;
184 void beginInitialChannelValueRead();
185 void setInitialChannelValue(
bool value);
186 void notifyInputStateChangeCandidate();
187 void setChannelValueQuietly(
bool value);
192 enum class LocalActionState : uint8_t {
199 uint32_t lastReadTime = 0;
200 uint32_t readIntervalMs = 100;
201 uint32_t startupSyncStartTimeMs = 0;
202 LocalActionState localActionState = LocalActionState::LoadingConfig;
203 bool turnActionSyncOnStartup =
false;
204 bool initialStateCandidatePending =
false;
Definition SuplaDevice.h:167
Definition binary_sensor_channel.h:10
Definition element_with_channel_actions.h:66
Definition binary_base.h:35
bool setSensitivity(uint8_t sensitivity, bool local=true)
Set the sensitivity.
Definition binary_base.cpp:297
bool setLocalAlarmIndication(uint8_t localAlarmIndication, bool local=true)
Set the local alarm indication state.
Definition binary_base.cpp:314
uint16_t getFilteringTimeMs() const
Get the filtering time in ms.
Definition binary_base.cpp:346
void purgeConfig() override
Purge the configuration.
Definition binary_base.cpp:122
bool isServerInvertLogic() const
Get the invert logic setting.
Definition binary_base.cpp:367
void iterateAlways() override
Method called on each SuplaDevice iteration.
Definition binary_base.cpp:208
void setReadIntervalMs(uint32_t intervalMs)
Set the read interval in ms.
Definition binary_base.cpp:371
uint8_t getSensitivity() const
Get the sensitivity.
Definition binary_base.cpp:310
bool setServerInvertLogic(bool invertLogic, bool local=true)
Set the invert logic.
Definition binary_base.cpp:256
uint16_t getTimeoutDs() const
Get the timeout in deciseconds (1 == 0.1 s).
Definition binary_base.cpp:363
bool setFilteringTimeMs(uint16_t filteringTimeMs, bool local=true)
Set the filtering time in ms.
Definition binary_base.cpp:333
void onLoadConfig(SuplaDeviceClass *) override
First method called on element in SuplaDevice.begin().
Definition binary_base.cpp:58
bool setTimeoutDs(uint16_t timeoutDs, bool local=true)
Set the timeout in deciseconds (1 == 0.1 s).
Definition binary_base.cpp:350
void setTurnActionSyncOnStartup(bool enabled=true)
Enable a one-time local turn action after the initial sensor value has become stable.
Definition binary_base.cpp:281
uint8_t getLocalAlarmIndication() const
Get the local alarm indication state.
Definition binary_base.cpp:329
void fillChannelConfig(void *channelConfig, int *size, uint8_t configType) override
Fill the channel config.
Definition binary_base.cpp:378
Definition binary_base.h:17