mirror of
https://github.com/anklimov/lighthub
synced 2025-12-06 11:49:51 +03:00
pre-sendStatus routine refactoring commit
This commit is contained in:
@@ -8,6 +8,7 @@ public:
|
|||||||
abstractOut(Item * _item):abstractCh(){item=_item;};
|
abstractOut(Item * _item):abstractCh(){item=_item;};
|
||||||
virtual int Ctrl(short cmd, short n=0, int * Parameters=NULL, boolean send=true, int suffixCode=0, char* subItem=NULL) =0;
|
virtual int Ctrl(short cmd, short n=0, int * Parameters=NULL, boolean send=true, int suffixCode=0, char* subItem=NULL) =0;
|
||||||
virtual int isActive(){return 0;};
|
virtual int isActive(){return 0;};
|
||||||
|
virtual int getDefaultOnVal(){return 100;};
|
||||||
protected:
|
protected:
|
||||||
Item * item;
|
Item * item;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -270,10 +270,11 @@ void analogWrite(int pin, int val)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
boolean Item::getEnableCMD(int delta) {
|
boolean Item::getEnableCMD(int delta) {
|
||||||
return ((millis() - lastctrl > (unsigned long) delta));// || ((void *)itemArr != (void *) lastobj));
|
return ((millis() - lastctrl > (unsigned long) delta));// || ((void *)itemArr != (void *) lastobj));
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
#define MAXCTRLPAR 3
|
#define MAXCTRLPAR 3
|
||||||
|
|
||||||
@@ -299,7 +300,7 @@ else
|
|||||||
{
|
{
|
||||||
suffix = subItem;
|
suffix = subItem;
|
||||||
suffixCode = txt2subItem(suffix);
|
suffixCode = txt2subItem(suffix);
|
||||||
if (suffixCode)
|
if (suffixCode) // some known suffix
|
||||||
subItem = NULL;
|
subItem = NULL;
|
||||||
// myhome/dev/item/suffix
|
// myhome/dev/item/suffix
|
||||||
|
|
||||||
@@ -312,7 +313,7 @@ else
|
|||||||
//if (suffixCode==S_SET) isSet = true;
|
//if (suffixCode==S_SET) isSet = true;
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
suffixCode=S_SET; /// no subItem - To be removed - old compatmode
|
//suffixCode=S_SET; /// no subItem - To be removed - old compatmode
|
||||||
setCommand = 0; /// Old-style - turn ON by set value
|
setCommand = 0; /// Old-style - turn ON by set value
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -332,15 +333,15 @@ debugSerial<<F("Txt2Cmd:")<<cmd<<endl;
|
|||||||
while (payload && i < 3)
|
while (payload && i < 3)
|
||||||
Par[i++] = getInt((char **) &payload);
|
Par[i++] = getInt((char **) &payload);
|
||||||
|
|
||||||
return Ctrl(setCommand, i, Par, send, suffixCode, subItem);
|
return Ctrl(setCommand, i, Par, send, suffixCode, subItem);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case -1: //Not known command
|
case CMD_UNKNOWN: //Not known command
|
||||||
case -2: //JSON input (not implemented yet
|
case CMD_JSON: //JSON input (not implemented yet
|
||||||
break;
|
break;
|
||||||
#if not defined(ARDUINO_ARCH_ESP32) and not defined(ESP8266) and not defined(ARDUINO_ARCH_STM32) and not defined(DMX_DISABLE)
|
#if not defined(ARDUINO_ARCH_ESP32) and not defined(ESP8266) and not defined(ARDUINO_ARCH_STM32) and not defined(DMX_DISABLE)
|
||||||
case -3: //RGB color in #RRGGBB notation
|
case CMD_RGB: //RGB color in #RRGGBB notation
|
||||||
{
|
{
|
||||||
suffixCode=S_HSV; //override code for known payload
|
suffixCode=S_HSV; //override code for known payload
|
||||||
CRGB rgb;
|
CRGB rgb;
|
||||||
@@ -355,6 +356,7 @@ debugSerial<<F("Txt2Cmd:")<<cmd<<endl;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
/*
|
||||||
case CMD_ON:
|
case CMD_ON:
|
||||||
|
|
||||||
// if (item.getEnableCMD(500) || lanStatus == 4)
|
// if (item.getEnableCMD(500) || lanStatus == 4)
|
||||||
@@ -363,6 +365,7 @@ debugSerial<<F("Txt2Cmd:")<<cmd<<endl;
|
|||||||
// else debugSerial<<F("on Skipped"));
|
// else debugSerial<<F("on Skipped"));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
default: //some known command
|
default: //some known command
|
||||||
return Ctrl(cmd, 0, NULL, send, suffixCode, subItem);
|
return Ctrl(cmd, 0, NULL, send, suffixCode, subItem);
|
||||||
|
|
||||||
@@ -370,6 +373,14 @@ debugSerial<<F("Txt2Cmd:")<<cmd<<endl;
|
|||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
short Item::cmd2changeActivity(int lastActivity, short defaultCmd)
|
||||||
|
{
|
||||||
|
if (isActive())
|
||||||
|
if (lastActivity) return defaultCmd;
|
||||||
|
else return CMD_ON;
|
||||||
|
else if (lastActivity) return CMD_OFF;
|
||||||
|
else return defaultCmd;
|
||||||
|
}
|
||||||
|
|
||||||
int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode, char *subItem) {
|
int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode, char *subItem) {
|
||||||
|
|
||||||
@@ -384,11 +395,12 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode
|
|||||||
debugSerial<<endl;
|
debugSerial<<endl;
|
||||||
|
|
||||||
int iaddr = getArg();
|
int iaddr = getArg();
|
||||||
|
int chActive =isActive();
|
||||||
HSVstore st;
|
HSVstore st;
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
int t;
|
int t;
|
||||||
case CMD_TOGGLE:
|
case CMD_TOGGLE:
|
||||||
if (isActive()) cmd = CMD_OFF;
|
if (chActive>0) cmd = CMD_OFF;
|
||||||
else cmd = CMD_ON;
|
else cmd = CMD_ON;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -426,7 +438,7 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode
|
|||||||
case 0: // old style SET - with turning ON
|
case 0: // old style SET - with turning ON
|
||||||
case CMD_SET: // new style SET - w/o turning ON
|
case CMD_SET: // new style SET - w/o turning ON
|
||||||
|
|
||||||
// if (itemType !=CH_THERMO) setCmd(CMD_SET); //prevent ON thermostat by semp set ????
|
if (itemType !=CH_THERMO) setCmd(CMD_SET); //prevent ON thermostat by semp set ????
|
||||||
|
|
||||||
switch (itemType) {
|
switch (itemType) {
|
||||||
|
|
||||||
@@ -456,33 +468,35 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode
|
|||||||
Par[2] = st.v;
|
Par[2] = st.v;
|
||||||
n = 3;
|
n = 3;
|
||||||
}
|
}
|
||||||
if (send) SendStatus(cmd,3,Par,true); // Send back triplet ?
|
if (send) SendStatus(cmd2changeActivity(chActive,cmd),3,Par,true); // Send back triplet ?
|
||||||
break;
|
break;
|
||||||
case CH_GROUP: //Save for groups as well
|
case CH_GROUP: //Save for groups as well
|
||||||
st.h = Par[0];
|
st.h = Par[0];
|
||||||
st.s = Par[1];
|
st.s = Par[1];
|
||||||
st.v = Par[2];
|
st.v = Par[2];
|
||||||
setVal(st.aslong);
|
setVal(st.aslong);
|
||||||
|
if (send) SendStatus(cmd2changeActivity(chActive,cmd),n,Par,true); //// Send back triplet for grp?
|
||||||
break;
|
break;
|
||||||
case CH_PWM:
|
case CH_PWM:
|
||||||
case CH_VC:
|
case CH_VC:
|
||||||
case CH_DIMMER:
|
case CH_DIMMER:
|
||||||
case CH_MODBUS:
|
case CH_MODBUS:
|
||||||
case CH_VCTEMP:
|
case CH_VCTEMP:
|
||||||
if (send) SendStatus(cmd, 1, Par,true); // Send back parameter for channel above this line
|
case CH_THERMO: ///? wasnt send before/ now will ///
|
||||||
case CH_THERMO:
|
|
||||||
setVal(Par[0]); // Store value
|
setVal(Par[0]); // Store value
|
||||||
|
if (send) SendStatus(cmd2changeActivity(chActive,cmd), 1, Par,true); // Send back parameter for channel above this line
|
||||||
|
|
||||||
|
|
||||||
}//itemtype
|
}//itemtype
|
||||||
/*
|
/*
|
||||||
lastctrl = millis(); //last controlled object ond timestamp update
|
lastctrl = millis(); //last controlled object ond timestamp update
|
||||||
lastobj = itemArr;
|
lastobj = itemArr;
|
||||||
*/
|
*/
|
||||||
if (cmd == CMD_SET && itemType !=CH_GROUP && !isActive()) return 1; // Parameters are stored, no further action required
|
if (cmd == CMD_SET && itemType !=CH_GROUP && !chActive>0) return 1; // Parameters are stored, no further action required
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_XON:
|
case CMD_XON:
|
||||||
if (!isActive()) //if channel was'nt active before CMD_XON
|
if (!chActive>0) //if channel was'nt active before CMD_XON
|
||||||
{
|
{
|
||||||
debugSerial<<F("Turning XON\n");
|
debugSerial<<F("Turning XON\n");
|
||||||
// setCmd(cmd);
|
// setCmd(cmd);
|
||||||
@@ -505,12 +519,12 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode
|
|||||||
st.v = Par[2];
|
st.v = Par[2];
|
||||||
setVal(st.aslong);
|
setVal(st.aslong);
|
||||||
//Send to OH
|
//Send to OH
|
||||||
if (send) SendStatus(0, 3, Par);
|
if (send) SendStatus(cmd, 3, Par);
|
||||||
break;
|
break;
|
||||||
} // if forcewhite
|
} // if forcewhite
|
||||||
|
|
||||||
// if (itemType!=CH_RGBW || getCmd() != CMD_ON) {
|
// if (itemType!=CH_RGBW || getCmd() != CMD_ON) {
|
||||||
if (isActive()) return 1;
|
if (chActive>0) return 1;
|
||||||
{
|
{
|
||||||
short params = 0;
|
short params = 0;
|
||||||
setCmd(cmd);
|
setCmd(cmd);
|
||||||
@@ -542,7 +556,7 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode
|
|||||||
Par[1] = st.s;
|
Par[1] = st.s;
|
||||||
Par[2] = st.v;
|
Par[2] = st.v;
|
||||||
params = 3;
|
params = 3;
|
||||||
SendStatus(0, params, Par,true); // Send restored triplet. In any cases
|
SendStatus(cmd, params, Par,true); // Send restored triplet. In any cases
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CH_VCTEMP:
|
case CH_VCTEMP:
|
||||||
@@ -552,7 +566,7 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode
|
|||||||
case CH_VC:
|
case CH_VC:
|
||||||
Par[0] = st.aslong;
|
Par[0] = st.aslong;
|
||||||
params = 1;
|
params = 1;
|
||||||
SendStatus(0, params, Par, true); // Send restored parameter, even if send=false - no problem, loop will be supressed at next hop
|
SendStatus(cmd, params, Par, true); // Send restored parameter, even if send=false - no problem, loop will be supressed at next hop
|
||||||
break;
|
break;
|
||||||
case CH_THERMO:
|
case CH_THERMO:
|
||||||
Par[0] = st.aslong;
|
Par[0] = st.aslong;
|
||||||
@@ -570,7 +584,7 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode
|
|||||||
Par[0] = 20; //20 degrees celsium - safe temperature
|
Par[0] = 20; //20 degrees celsium - safe temperature
|
||||||
params = 1;
|
params = 1;
|
||||||
setVal(20);
|
setVal(20);
|
||||||
SendStatus(0, params, Par);
|
SendStatus(cmd, params, Par);
|
||||||
break;
|
break;
|
||||||
case CH_RGBW:
|
case CH_RGBW:
|
||||||
case CH_RGB:
|
case CH_RGB:
|
||||||
@@ -583,7 +597,7 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode
|
|||||||
st.s = Par[1];
|
st.s = Par[1];
|
||||||
st.v = Par[2];
|
st.v = Par[2];
|
||||||
setVal(st.aslong);
|
setVal(st.aslong);
|
||||||
SendStatus(0, params, Par,true);
|
SendStatus(cmd, params, Par,true);
|
||||||
break;
|
break;
|
||||||
case CH_RELAY:
|
case CH_RELAY:
|
||||||
Par[0] = 100;
|
Par[0] = 100;
|
||||||
@@ -595,7 +609,7 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode
|
|||||||
Par[0] = 100;
|
Par[0] = 100;
|
||||||
params = 1;
|
params = 1;
|
||||||
setVal(100);
|
setVal(100);
|
||||||
SendStatus(0, params, Par);
|
SendStatus(cmd, params, Par);
|
||||||
}
|
}
|
||||||
} // default handler
|
} // default handler
|
||||||
for (short i = 0; i < params; i++) {
|
for (short i = 0; i < params; i++) {
|
||||||
@@ -641,7 +655,7 @@ int Item::Ctrl(short cmd, short n, int *Parameters, boolean send, int suffixCode
|
|||||||
|
|
||||||
case CMD_HALT:
|
case CMD_HALT:
|
||||||
|
|
||||||
if (isActive() > 0) {
|
if (chActive>0) {
|
||||||
Par[0] = 0;
|
Par[0] = 0;
|
||||||
Par[1] = 0;
|
Par[1] = 0;
|
||||||
Par[2] = 0;
|
Par[2] = 0;
|
||||||
@@ -1252,7 +1266,7 @@ int Item::checkModbusDimmer(int data) {
|
|||||||
{
|
{
|
||||||
if (d) { // Actually turned on
|
if (d) { // Actually turned on
|
||||||
if (cmd == CMD_OFF || cmd == CMD_HALT) SendStatus(CMD_ON); //update OH with ON if it was turned off before
|
if (cmd == CMD_OFF || cmd == CMD_HALT) SendStatus(CMD_ON); //update OH with ON if it was turned off before
|
||||||
SendStatus(0, 1, &d); //update OH with value
|
SendStatus(CMD_ON, 1, &d); //update OH with value
|
||||||
if (cmd != CMD_XON && cmd != CMD_ON) setCmd(CMD_ON); //store command
|
if (cmd != CMD_XON && cmd != CMD_ON) setCmd(CMD_ON); //store command
|
||||||
setVal(d); //store value
|
setVal(d); //store value
|
||||||
} else {
|
} else {
|
||||||
@@ -1311,7 +1325,7 @@ void Item::sendDelayedStatus(){
|
|||||||
Par[1] = st.s;
|
Par[1] = st.s;
|
||||||
Par[2] = st.v;
|
Par[2] = st.v;
|
||||||
params = 3;
|
params = 3;
|
||||||
SendStatus(0, params, Par); // Send restored triplet.
|
SendStatus(cmd, params, Par); // Send restored triplet.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CH_VCTEMP:
|
case CH_VCTEMP:
|
||||||
@@ -1324,7 +1338,7 @@ void Item::sendDelayedStatus(){
|
|||||||
|
|
||||||
Par[0] = st.aslong;
|
Par[0] = st.aslong;
|
||||||
params = 1;
|
params = 1;
|
||||||
SendStatus(0, params, Par); // Send restored parameter
|
SendStatus(cmd, params, Par); // Send restored parameter
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
SendStatus(cmd); // Just send CMD
|
SendStatus(cmd); // Just send CMD
|
||||||
@@ -1336,14 +1350,11 @@ void Item::sendDelayedStatus(){
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
int Item::SendStatus(short cmd, short n, int *Par, boolean deffered) {
|
int Item::SendStatus(short cmd, short n, int *Par, boolean deffered) {
|
||||||
|
|
||||||
/// ToDo: relative patches, configuration
|
|
||||||
int chancmd=getCmd(true);
|
int chancmd=getCmd(true);
|
||||||
if (deffered) {
|
if (deffered) {
|
||||||
setCmd(chancmd | CMD_REPORT);
|
setCmd(chancmd | CMD_REPORT);
|
||||||
debugSerial<<F("Status deffered\n");
|
debugSerial<<F("Status deffered\n");
|
||||||
// mqttClient.publish("/push", "1");
|
return -1;
|
||||||
return 0;
|
|
||||||
// Todo: Parameters? Now expected that parameters already stored by setVal()
|
// Todo: Parameters? Now expected that parameters already stored by setVal()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -1372,7 +1383,7 @@ int Item::SendStatus(short cmd, short n, int *Par, boolean deffered) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Preparing Command payload //////////////
|
// Preparing Command payload //////////////
|
||||||
switch (cmd) {
|
switch (cmd & CMD_MASK) {
|
||||||
case CMD_ON:
|
case CMD_ON:
|
||||||
case CMD_XON:
|
case CMD_XON:
|
||||||
strcpy(cmdstr, "ON");
|
strcpy(cmdstr, "ON");
|
||||||
@@ -1385,11 +1396,15 @@ int Item::SendStatus(short cmd, short n, int *Par, boolean deffered) {
|
|||||||
break;
|
break;
|
||||||
// TODO send Par
|
// TODO send Par
|
||||||
case 0:
|
case 0:
|
||||||
|
if (isActive())
|
||||||
|
strcpy(cmdstr, "ON");
|
||||||
|
else strcpy(cmdstr, "OFF");
|
||||||
|
isCommand = true;
|
||||||
case CMD_SET:
|
case CMD_SET:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
debugSerial<<F("Unknown cmd \n");
|
debugSerial<<F("Unknown cmd \n");
|
||||||
return -1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//publish to MQTT - OpenHab Legacy style to myhome/s_out/item flat values
|
//publish to MQTT - OpenHab Legacy style to myhome/s_out/item flat values
|
||||||
@@ -1398,7 +1413,7 @@ int Item::SendStatus(short cmd, short n, int *Par, boolean deffered) {
|
|||||||
|
|
||||||
if (mqttClient.connected() && !ethernetIdleCount)
|
if (mqttClient.connected() && !ethernetIdleCount)
|
||||||
|
|
||||||
if (isCommand)
|
if (!isParam) //remake
|
||||||
{
|
{
|
||||||
mqttClient.publish(addrstr, cmdstr, true);
|
mqttClient.publish(addrstr, cmdstr, true);
|
||||||
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<cmdstr<<endl;
|
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<cmdstr<<endl;
|
||||||
@@ -1408,6 +1423,7 @@ int Item::SendStatus(short cmd, short n, int *Par, boolean deffered) {
|
|||||||
mqttClient.publish(addrstr, valstr, true);
|
mqttClient.publish(addrstr, valstr, true);
|
||||||
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<valstr<<endl;
|
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<valstr<<endl;
|
||||||
}
|
}
|
||||||
|
else return 0;
|
||||||
|
|
||||||
// publush to MQTT - New style to
|
// publush to MQTT - New style to
|
||||||
// myhome/s_out/item/cmd
|
// myhome/s_out/item/cmd
|
||||||
@@ -1424,6 +1440,7 @@ int Item::SendStatus(short cmd, short n, int *Par, boolean deffered) {
|
|||||||
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<valstr<<endl;
|
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<valstr<<endl;
|
||||||
if (mqttClient.connected() && !ethernetIdleCount)
|
if (mqttClient.connected() && !ethernetIdleCount)
|
||||||
mqttClient.publish(addrstr, valstr,true);
|
mqttClient.publish(addrstr, valstr,true);
|
||||||
|
else return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1437,9 +1454,8 @@ int Item::SendStatus(short cmd, short n, int *Par, boolean deffered) {
|
|||||||
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<cmdstr<<endl;
|
debugSerial<<F("Pub: ")<<addrstr<<F("->")<<cmdstr<<endl;
|
||||||
if (mqttClient.connected() && !ethernetIdleCount)
|
if (mqttClient.connected() && !ethernetIdleCount)
|
||||||
mqttClient.publish(addrstr, cmdstr,true);
|
mqttClient.publish(addrstr, cmdstr,true);
|
||||||
|
else return 0;
|
||||||
}
|
}
|
||||||
|
return 1;
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ e-mail anklimov@gmail.com
|
|||||||
#include "abstractout.h"
|
#include "abstractout.h"
|
||||||
|
|
||||||
#define S_NOTFOUND 0
|
#define S_NOTFOUND 0
|
||||||
|
#define S_SETnCMD 0
|
||||||
#define S_CMD 1
|
#define S_CMD 1
|
||||||
#define S_SET 2
|
#define S_SET 2
|
||||||
#define S_TEMP 3
|
#define S_TEMP 3
|
||||||
@@ -113,9 +114,9 @@ typedef union
|
|||||||
int8_t r;
|
int8_t r;
|
||||||
int8_t g;
|
int8_t g;
|
||||||
int8_t b;
|
int8_t b;
|
||||||
int8_t v;
|
int8_t w;
|
||||||
};
|
};
|
||||||
} RGBVstore;
|
} RGBWstore;
|
||||||
|
|
||||||
class Item
|
class Item
|
||||||
{
|
{
|
||||||
@@ -135,7 +136,7 @@ class Item
|
|||||||
virtual int Ctrl(char * payload, boolean send=true, char * subItem=NULL);
|
virtual int Ctrl(char * payload, boolean send=true, char * subItem=NULL);
|
||||||
|
|
||||||
int getArg(short n=0);
|
int getArg(short n=0);
|
||||||
boolean getEnableCMD(int delta);
|
//boolean getEnableCMD(int delta);
|
||||||
//int getVal(short n); //From VAL array. Negative if no array
|
//int getVal(short n); //From VAL array. Negative if no array
|
||||||
long int getVal(); //From int val OR array
|
long int getVal(); //From int val OR array
|
||||||
uint8_t getCmd(bool ext = false);
|
uint8_t getCmd(bool ext = false);
|
||||||
@@ -150,6 +151,7 @@ class Item
|
|||||||
int SendStatus(short cmd, short n=0, int * Par=NULL, boolean deferred = false);
|
int SendStatus(short cmd, short n=0, int * Par=NULL, boolean deferred = false);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
short cmd2changeActivity(int lastActivity, short defaultCmd = CMD_SET);
|
||||||
int VacomSetFan (int8_t val, int8_t cmd=0);
|
int VacomSetFan (int8_t val, int8_t cmd=0);
|
||||||
int VacomSetHeat(int addr, int8_t val, int8_t cmd=0);
|
int VacomSetHeat(int addr, int8_t val, int8_t cmd=0);
|
||||||
int modbusDimmerSet(int addr, uint16_t _reg, int _regType, int _mask, uint16_t value);
|
int modbusDimmerSet(int addr, uint16_t _reg, int _regType, int _mask, uint16_t value);
|
||||||
|
|||||||
Reference in New Issue
Block a user