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;
205 bool inputStateCandidatePending =
false;
Definition SuplaDevice.h:167
Definition binary_sensor_channel.h:10
Definition element_with_channel_actions.h:56
Definition binary_base.h:35
bool setSensitivity(uint8_t sensitivity, bool local=true)
Set the sensitivity.
Definition binary_base.cpp:300
bool setLocalAlarmIndication(uint8_t localAlarmIndication, bool local=true)
Set the local alarm indication state.
Definition binary_base.cpp:317
uint16_t getFilteringTimeMs() const
Get the filtering time in ms.
Definition binary_base.cpp:349
void purgeConfig() override
Purge the configuration.
Definition binary_base.cpp:124
bool isServerInvertLogic() const
Get the invert logic setting.
Definition binary_base.cpp:370
void iterateAlways() override
Method called on each SuplaDevice iteration.
Definition binary_base.cpp:210
void setReadIntervalMs(uint32_t intervalMs)
Set the read interval in ms.
Definition binary_base.cpp:374
uint8_t getSensitivity() const
Get the sensitivity.
Definition binary_base.cpp:313
bool setServerInvertLogic(bool invertLogic, bool local=true)
Set the invert logic.
Definition binary_base.cpp:259
uint16_t getTimeoutDs() const
Get the timeout in deciseconds (1 == 0.1 s).
Definition binary_base.cpp:366
bool setFilteringTimeMs(uint16_t filteringTimeMs, bool local=true)
Set the filtering time in ms.
Definition binary_base.cpp:336
void onLoadConfig(SuplaDeviceClass *) override
First method called on element in SuplaDevice.begin().
Definition binary_base.cpp:60
bool setTimeoutDs(uint16_t timeoutDs, bool local=true)
Set the timeout in deciseconds (1 == 0.1 s).
Definition binary_base.cpp:353
void setTurnActionSyncOnStartup(bool enabled=true)
Enable a one-time local turn action after the initial sensor value has become stable.
Definition binary_base.cpp:284
uint8_t getLocalAlarmIndication() const
Get the local alarm indication state.
Definition binary_base.cpp:332
void fillChannelConfig(void *channelConfig, int *size, uint8_t configType) override
Fill the channel config.
Definition binary_base.cpp:381
Definition binary_base.h:17