80{
"",
"cmd",
"set",
"val",
"del",
"HSV",
"RGB",
"fan",
"mode",
"ctrl",
"hue",
"sat",
"temp",
"raw"};
81#define suffixNum sizeof(suffix_P)/sizeof(suffixstr)
83#define S_ADDITIONAL 13
130#define CH_UARTBRIDGE 15
133#define CH_MULTIVENT 18
134#define CH_ELEVATOR 19
136#define CH_HUMIDIFIER 21
138#define CH_SPRINKLER 23
148#define POLLING_SLOW 1
149#define POLLING_FAST 2
161#define CTRL_DISABLE_RECURSION 1
162#define CTRL_DISABLE_NON_GRP 2
163#define CTRL_SCHEDULED_CALL_RECURSION (CTRL_DISABLE_RECURSION | CTRL_DISABLE_NON_GRP)
185#define MODBUS_CMD_ARG_ADDR 0
186#define MODBUS_CMD_ARG_REG 1
187#define MODBUS_CMD_ARG_MASK 2
188#define MODBUS_CMD_ARG_MAX_SCALE 3
189#define MODBUS_CMD_ARG_REG_TYPE 4
192#define MODBUS_COIL_REG_TYPE 0
193#define MODBUS_DISCRETE_REG_TYPE 1
194#define MODBUS_HOLDING_REG_TYPE 2
195#define MODBUS_INPUT_REG_TYPE 3
200extern aJsonObject *
items;
247 Item(
char * name, aJsonObject *_items =
items);
252 Item(aJsonObject * obj, aJsonObject *_items =
items);
258 Item(uint16_t num, uint8_t subItem, aJsonObject *_items =
items);
281 int Ctrl(
itemCmd cmd,
char* subItem=NULL, uint8_t flags = 0,
bool authorized=
false);
287 int Ctrl(
char * payload,
char * subItem=NULL,
int remoteID = 0);
293 int remoteCtrl(
itemCmd cmd,
int remoteID,
char* subItem=NULL,
char * authToken=NULL);
310 void setExt(
long int par);
316 void setCmd(uint8_t cmdValue);
324 void setVal(
long int par);
342 int SendStatus(
long sendFlags,
char * subItem=NULL);
379 bool digGroup (aJsonObject *
itemArr,
itemCmd *cmd = NULL,
char* subItem = NULL,
bool authorized =
false, uint8_t ctrlFlags = 0);
389 int modbusDimmerSet(
int addr, uint16_t _reg,
int _regType,
int _mask, uint16_t value);
A single LightHub item (virtual channel).
Definition item.h:232
uint8_t getSubitemId(char *subItem)
Definition item.cpp:390
int checkRetry()
Definition item.cpp:2234
uint32_t getFlag(uint32_t flag=FLAG_MASK)
Definition item.cpp:473
int getArg(short n=0)
Definition item.cpp:507
Item(char *name, aJsonObject *_items=items)
Create an item by name from the items object.
Definition item.cpp:310
int VacomSetFan(itemCmd st)
Definition item.cpp:2356
void setCmd(uint8_t cmdValue)
Definition item.cpp:463
void mb_fail(int result=0)
Definition item.cpp:2216
void setFlag(uint32_t flag)
Definition item.cpp:483
uint8_t getCmd()
Definition item.cpp:455
int isScheduled()
Definition item.cpp:938
int Ctrl(itemCmd cmd, char *subItem=NULL, uint8_t flags=0, bool authorized=false)
Main control entry point: execute a command/value on this item.
Definition item.cpp:1040
aJsonObject * itemExt
Definition item.h:235
boolean isValid()
Definition item.cpp:668
int scheduleCommand(itemCmd cmd, bool authorized)
Definition item.cpp:1003
bool digGroup(aJsonObject *itemArr, itemCmd *cmd=NULL, char *subItem=NULL, bool authorized=false, uint8_t ctrlFlags=0)
Definition item.cpp:892
void setSubtype(uint8_t par)
Definition item.cpp:608
int isActive()
Definition item.cpp:1787
int defaultSuffixCode
Definition item.h:405
void setFloatVal(float par)
Definition item.cpp:599
int Toggle()
Definition item.h:354
int modbusDimmerSet(itemCmd st)
Definition item.cpp:2325
char * getSubItemStrById(uint8_t subItem)
Definition item.cpp:371
int remoteCtrl(itemCmd cmd, int remoteID, char *subItem=NULL, char *authToken=NULL)
Definition item.cpp:869
aJsonObject * itemArr
Definition item.h:235
int SendStatus(long sendFlags, char *subItem=NULL)
Definition item.cpp:1943
int Off()
Definition item.h:352
int checkModbusDimmer()
Definition item.cpp:2639
float getFloatArg(short n=0)
Definition item.cpp:518
abstractOut * driver
Linked output driver instance (shared per channel type) or NULL.
Definition item.h:239
short getArgCount()
Definition item.cpp:537
aJsonObject * rootItems
Pointers into the items JSON tree (root object, item array, its arg/val/ext elements).
Definition item.h:235
long int limitSetValue()
Definition item.cpp:704
char defaultSubItem[16]
Definition item.h:404
int VacomSetHeat(itemCmd st)
Definition item.cpp:2414
int Poll(int cause)
Definition item.cpp:1862
aJsonObject * itemVal
Definition item.h:235
int checkFM()
Definition item.cpp:2523
int SendStatusImmediate(itemCmd st, long sendFlags, char *subItem=NULL, bool tetain=true)
Definition item.cpp:1959
long int getExt()
Definition item.cpp:614
aJsonObject * itemArg
Definition item.h:235
long int getVal()
Definition item.cpp:557
void Parse()
Definition item.cpp:159
void Stop()
Definition item.cpp:293
int scheduleOppositeCommand(itemCmd cmd, short isActiveNow, bool authorized)
Definition item.cpp:948
int On()
Definition item.h:350
uint8_t getSubtype()
Definition item.cpp:568
chPersistent * getPersistent()
Definition item.cpp:641
void setVal(long int par)
Definition item.cpp:590
void setExt(long int par)
Definition item.cpp:625
uint8_t itemType
Channel type (CH_*) resolved from I_TYPE.
Definition item.h:237
boolean Setup()
Definition item.cpp:278
chPersistent * setPersistent(chPersistent *par)
Definition item.cpp:648
int getChanType()
Definition item.cpp:2208
void sendDelayedStatus()
Definition item.cpp:1932
void clearFlag(uint32_t flag)
Definition item.cpp:495
Base class of output driver modules (one per channel type).
Definition abstractout.h:19
Placeholder for driver-persistent data attached to an item (I_EXT field).
Definition abstractout.h:8
Item * getItem(Item *item)
Definition item.cpp:2745
abstractOut * getDriver(Item *item)
Definition item.cpp:2782
driverFactory()
Definition item.h:417
abstractOut * newDriver(uint8_t itemType)
Definition item.cpp:2802
void freeDriver(Item *item)
Definition item.cpp:2768
abstractOut * findDriver(Item *item)
Definition item.cpp:2752
Command + value container passed between items, drivers and MQTT.
Definition itemCmd.h:306
itemCmd(uint8_t _type=ST_VOID, uint8_t _code=CMD_VOID)
Constructor with definition of type and command.
Definition itemCmd.cpp:61
aJsonObject * items
Definition main.cpp:120
int txt2subItem(char *payload)
Definition item.cpp:119
aJsonObject * items
Definition main.cpp:120
int txt2cmd(char *payload)
Definition itemCmd.cpp:19
#define CH_MAX
Definition item.h:139
short thermoSetCurTemp(char *name, float t)
const suffixstr suffix_P[] PROGMEM
Definition item.h:79
char suffixstr[5]
Definition item.h:78
#define CMD_TOGGLE
Definition itemCmd.h:107
#define CMD_OFF
Definition itemCmd.h:105
#define FLAG_MASK
High two bytes of the packed I_CMD int - state flags (FLAG_*).
Definition itemCmd.h:138
#define ST_VOID
Definition of all possible types of argument, contained in class.
Definition itemCmd.h:212
#define CMD_ON
Definition of Commands.
Definition itemCmd.h:104
CH_THERMO runtime state packed into one int32 (stored in I_EXT).
Definition item.h:440
int32_t asint
Definition item.h:446