4#ifndef SRC_SUPLA_CONTROL_VALVE_BASE_H_
5#define SRC_SUPLA_CONTROL_VALVE_BASE_H_
7#include <supla/channel_element.h>
8#include <supla-common/proto.h>
9#include <supla/action_handler.h>
14#define SUPLA_VALVE_SENSOR_MAX 20
19 uint8_t sensorData[SUPLA_VALVE_SENSOR_MAX];
20 uint8_t closeValveOnFloodType = 0;
21 uint8_t reserved[31] = {};
37 explicit ValveBase(
bool openClose =
true);
45 bool local =
false)
override;
46 void fillChannelConfig(
void *channelConfig,
48 uint8_t configType)
override;
163 uint32_t lastSensorsCheckTimestamp = 0;
164 uint32_t lastUpdateTimestamp = 0;
165 uint32_t lastCmdTimestamp = 0;
166 uint32_t ignoreManuallyOpenedTimeMs = 30000;
167 uint8_t lastOpenLevelState = 0;
168 uint8_t defaultCloseValveOnFloodType = SUPLA_VALVE_CLOSE_ON_FLOOD_TYPE_NONE;
169 bool previousSensorState[SUPLA_VALVE_SENSOR_MAX] = {};
Definition SuplaDevice.h:167
Definition action_handler.h:8
Definition channel_element.h:15
ValveBase class is used to handle SUPLA_CHANNEL_TYPE_VALVE_OPENCLOSE and SUPLA_CHANNEL_TYPE_VALVE_PER...
Definition valve_base.h:29
void closeValve()
Close valve.
Definition valve_base.cpp:336
bool removeSensor(uint8_t channelNumber)
Remove sensor from the channel's configuration.
Definition valve_base.cpp:434
void printConfig() const
Print current configuration in logs (for debug purpose)
Definition valve_base.cpp:172
void iterateAlways() override
Method called on each SuplaDevice iteration.
Definition valve_base.cpp:39
void onLoadConfig(SuplaDeviceClass *) override
First method called on element in SuplaDevice.begin().
Definition valve_base.cpp:141
void onLoadState() override
Second method called on element in SuplaDevice.begin().
Definition valve_base.cpp:185
virtual uint8_t getValueOpenStateFromDevice()
Get value from device or any other interface.
Definition valve_base.cpp:456
bool addSensor(uint8_t channelNumber)
Add sensor to the channel's configuration.
Definition valve_base.cpp:391
void setIgnoreManuallyOpenedTimeMs(uint32_t timeMs)
Set ignore manually opened time in milliseconds.
Definition valve_base.cpp:469
void setDefaultCloseValveOnFloodType(uint8_t type)
Set default close valve on flood type.
Definition valve_base.cpp:495
void onSaveState() override
Method called periodically during SuplaDevice iteration.
Definition valve_base.cpp:212
void setValve(uint8_t openLevel)
Set valve.
Definition valve_base.cpp:344
void handleAction(int event, int action) override
Implementation of ActionHandler::handleAction.
Definition valve_base.cpp:473
void purgeConfig() override
Removes all configration data related to the element from Storage::Config.
Definition valve_base.cpp:162
void saveConfig(bool local=true)
Save current configuration to Config.
Definition valve_base.cpp:363
int32_t handleNewValueFromServer(TSD_SuplaChannelNewValue *newValue) override
Handles "new value" request from server.
Definition valve_base.cpp:118
bool isFloodDetected()
Check all sensors and return true if flood is detected.
Definition valve_base.cpp:73
void openValve()
Open valve.
Definition valve_base.cpp:340
void onInit() override
Third method called on element in SuplaDevice.begin()
Definition valve_base.cpp:35
ValveBase(bool openClose=true)
Constructor.
Definition valve_base.cpp:22
virtual void setValueOnDevice(uint8_t openLevel)
Set value on device or any other interface.
Definition valve_base.cpp:463
Definition valve_base.h:17