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:93
Definition action_handler.h:21
void closeValve()
Close valve.
Definition valve_base.cpp:333
bool removeSensor(uint8_t channelNumber)
Remove sensor from the channel's configuration.
Definition valve_base.cpp:431
void printConfig() const
Print current configuration in logs (for debug purpose)
Definition valve_base.cpp:186
void iterateAlways() override
Method called on each SuplaDevice iteration.
Definition valve_base.cpp:53
void onLoadConfig(SuplaDeviceClass *) override
First method called on element in SuplaDevice.begin().
Definition valve_base.cpp:155
void onLoadState() override
Second method called on element in SuplaDevice.begin().
Definition valve_base.cpp:198
virtual uint8_t getValueOpenStateFromDevice()
Get value from device or any other interface.
Definition valve_base.cpp:453
bool addSensor(uint8_t channelNumber)
Add sensor to the channel's configuration.
Definition valve_base.cpp:388
void setIgnoreManuallyOpenedTimeMs(uint32_t timeMs)
Set ignore manually opened time in milliseconds.
Definition valve_base.cpp:466
void setDefaultCloseValveOnFloodType(uint8_t type)
Set default close valve on flood type.
Definition valve_base.cpp:492
void onSaveState() override
Method called periodically during SuplaDevice iteration.
Definition valve_base.cpp:225
void setValve(uint8_t openLevel)
Set valve.
Definition valve_base.cpp:341
void handleAction(int event, int action) override
Implementation of ActionHandler::handleAction.
Definition valve_base.cpp:470
void purgeConfig() override
Removes all configration data related to the element from Storage::Config.
Definition valve_base.cpp:176
void saveConfig(bool local=true)
Save current configuration to Config.
Definition valve_base.cpp:360
int32_t handleNewValueFromServer(TSD_SuplaChannelNewValue *newValue) override
Handles "new value" request from server.
Definition valve_base.cpp:132
bool isFloodDetected()
Check all sensors and return true if flood is detected.
Definition valve_base.cpp:87
void openValve()
Open valve.
Definition valve_base.cpp:337
void onInit() override
Third method called on element in SuplaDevice.begin()
Definition valve_base.cpp:49
ValveBase(bool openClose=true)
Constructor.
Definition valve_base.cpp:36
virtual void setValueOnDevice(uint8_t openLevel)
Set value on device or any other interface.
Definition valve_base.cpp:460
Definition valve_base.h:32