3#ifndef MULTIVENT_DISABLE
18#define AC_BOOST_HIGH_TEMP 30
19#define AC_PRESET_TEMP 21
20#define AC_BOOST_LOW_TEMP 17
21#define AC_BOOST_TRESHOLD 230
22#define AC_BOOST_DEADBAND 10
23#define AC_HEATCOOL_DEADBAND 1.0
26#define AC_SUPPRESS_FAN 1
27#define AC_SUPPRESS_SET 2
28#define AC_SUPPRESS_CMD 4
29#define AC_SUPPRESS_ALL 7
69 int Poll(
short cause)
override;
78 int Ctrl(
itemCmd cmd,
char* subItem=NULL,
bool toExecute=
true,
bool authorized =
false)
override;
88 uint32_t
getFlag (aJsonObject* zone, uint32_t flag);
89 void setFlag (aJsonObject* zone, uint32_t flag);
90 void clearFlag (aJsonObject* zone, uint32_t flag);
91 void enablePid(aJsonObject* zone,
int enable,
int direction = -1);
A single LightHub item (virtual channel).
Definition item.h:232
abstractOut()
Definition abstractout.h:22
virtual void link(Item *_item)
Definition abstractout.h:24
Command + value container passed between items, drivers and MQTT.
Definition itemCmd.h:306
Multi-zone ventilation controller for a shared AC unit, channel type CH_MULTIVENT = 18.
Definition out_multivent.h:59
void getConfig()
Definition out_multivent.cpp:24
void resetBoost()
Definition out_multivent.cpp:1112
void clearFlag(aJsonObject *zone, uint32_t flag)
Definition out_multivent.cpp:490
int fanCtrl(itemCmd cmd, char *subItem=NULL, bool force=false)
Zone fan/mode/set/val handling with passive mode, freeze and PID interlocks; returns the resulting AC...
Definition out_multivent.cpp:518
int sendACcmd(itemCmd cmd)
Definition out_multivent.cpp:1029
int isActive() override
Returns 1 if any zone requests an active command, 0 otherwise.
Definition out_multivent.cpp:116
aJsonObject * gatesObj
Definition out_multivent.h:100
bool pidEnabled(aJsonObject *pidObj)
Definition out_multivent.cpp:944
void stopAllzones()
Definition out_multivent.cpp:158
int Setup() override
Creates the per-zone state (fan/cmd/out) and allocates the PID controllers.
Definition out_multivent.cpp:33
int Ctrl(itemCmd cmd, char *subItem=NULL, bool toExecute=true, bool authorized=false) override
Applies a command to a zone (or the AC without subitem) and forwards the resulting fan level to the A...
Definition out_multivent.cpp:500
void checkACfan(int acFan)
Definition out_multivent.cpp:991
void checkACset(int acSet)
Definition out_multivent.cpp:1003
void restoreAllzones()
Definition out_multivent.cpp:188
int Poll(short cause) override
Per-zone PID control, airflow redistribution, boost/suppress and AC fan/mode control (see class doc).
Definition out_multivent.cpp:207
void enablePid(aJsonObject *zone, int enable, int direction=-1)
Definition out_multivent.cpp:934
aJsonObject * acObj
Definition out_multivent.h:101
int Stop() override
Deletes the PID controllers and marks the channel as unknown.
Definition out_multivent.cpp:92
int getChanType() override
Returns CH_THERMO (5).
Definition out_multivent.cpp:413
void checkACcmd(int acCmd)
Definition out_multivent.cpp:950
uint32_t getFlag(aJsonObject *zone, uint32_t flag)
Definition out_multivent.cpp:471
void notifyState(itemCmd state)
Definition out_multivent.cpp:1125
void setBoost(itemCmd)
Definition out_multivent.cpp:1102
void setFlag(aJsonObject *zone, uint32_t flag)
Definition out_multivent.cpp:481
void setPassiveMode(aJsonObject *zone, bool mode)
Definition out_multivent.cpp:435
void link(Item *_item)
Links the channel item and reads the zones object from itemArg.
Definition out_multivent.h:65
Item (virtual channel) system of LightHub.