19#ifndef SRC_SUPLA_CONTROL_VALVE_BASE_H_
20#define SRC_SUPLA_CONTROL_VALVE_BASE_H_
22#include <supla/channel_element.h>
23#include <supla-common/proto.h>
24#include <supla/action_handler.h>
29#define SUPLA_VALVE_SENSOR_MAX 20
34 uint8_t sensorData[SUPLA_VALVE_SENSOR_MAX];
35 uint8_t closeValveOnFloodType = 0;
36 uint8_t reserved[31] = {};
52 explicit ValveBase(
bool openClose =
true);
60 bool local =
false)
override;
61 void fillChannelConfig(
void *channelConfig,
63 uint8_t configType)
override;
178 uint32_t lastSensorsCheckTimestamp = 0;
179 uint32_t lastUpdateTimestamp = 0;
180 uint32_t lastCmdTimestamp = 0;
181 uint32_t ignoreManuallyOpenedTimeMs = 30000;
182 uint8_t lastOpenLevelState = 0;
183 uint8_t defaultCloseValveOnFloodType = SUPLA_VALVE_CLOSE_ON_FLOOD_TYPE_NONE;
184 bool previousSensorState[SUPLA_VALVE_SENSOR_MAX] = {};
Definition SuplaDevice.h:96
Definition action_handler.h:21
void closeValve()
Close valve.
Definition valve_base.cpp:351
bool removeSensor(uint8_t channelNumber)
Remove sensor from the channel's configuration.
Definition valve_base.cpp:449
void printConfig() const
Print current configuration in logs (for debug purpose)
Definition valve_base.cpp:187
void iterateAlways() override
Method called on each SuplaDevice iteration.
Definition valve_base.cpp:54
void onLoadConfig(SuplaDeviceClass *) override
First method called on element in SuplaDevice.begin().
Definition valve_base.cpp:156
void onLoadState() override
Second method called on element in SuplaDevice.begin().
Definition valve_base.cpp:200
virtual uint8_t getValueOpenStateFromDevice()
Get value from device or any other interface.
Definition valve_base.cpp:471
bool addSensor(uint8_t channelNumber)
Add sensor to the channel's configuration.
Definition valve_base.cpp:406
void setIgnoreManuallyOpenedTimeMs(uint32_t timeMs)
Set ignore manually opened time in milliseconds.
Definition valve_base.cpp:484
void setDefaultCloseValveOnFloodType(uint8_t type)
Set default close valve on flood type.
Definition valve_base.cpp:510
void onSaveState() override
Method called periodically during SuplaDevice iteration.
Definition valve_base.cpp:227
void setValve(uint8_t openLevel)
Set valve.
Definition valve_base.cpp:359
void handleAction(int event, int action) override
Implementation of ActionHandler::handleAction.
Definition valve_base.cpp:488
void purgeConfig() override
Removes all configration data related to the element from Storage::Config.
Definition valve_base.cpp:177
void saveConfig(bool local=true)
Save current configuration to Config.
Definition valve_base.cpp:378
int32_t handleNewValueFromServer(TSD_SuplaChannelNewValue *newValue) override
Handles "new value" request from server.
Definition valve_base.cpp:133
bool isFloodDetected()
Check all sensors and return true if flood is detected.
Definition valve_base.cpp:88
void openValve()
Open valve.
Definition valve_base.cpp:355
void onInit() override
Third method called on element in SuplaDevice.begin()
Definition valve_base.cpp:50
ValveBase(bool openClose=true)
Constructor.
Definition valve_base.cpp:37
virtual void setValueOnDevice(uint8_t openLevel)
Set value on device or any other interface.
Definition valve_base.cpp:478
Definition valve_base.h:32