This commit is contained in:
2017-10-04 15:38:43 +03:00
parent 6b0f8de80a
commit bc74b616b9
2 changed files with 16 additions and 8 deletions

View File

@@ -121,11 +121,11 @@ void Input::Changed (int val)
if (val) if (val)
{ //send set command { //send set command
if (scmd) client.publish(emit->valuestring,scmd->valuestring); else client.publish(emit->valuestring,"ON"); if (!scmd) client.publish(emit->valuestring,"ON"); else if (strlen(scmd->valuestring)) client.publish(emit->valuestring,scmd->valuestring);
} }
else else
{ //send reset command { //send reset command
if (rcmd) client.publish(emit->valuestring,rcmd->valuestring); else client.publish(emit->valuestring,"OFF"); if (!rcmd) client.publish(emit->valuestring,"OFF"); else if (strlen(rcmd->valuestring)) client.publish(emit->valuestring,rcmd->valuestring);
} }
} }
@@ -136,11 +136,11 @@ void Input::Changed (int val)
{ {
if (val) if (val)
{ //send set command { //send set command
if (scmd) it.Ctrl(txt2cmd(scmd->valuestring),0,NULL,true); else it.Ctrl(CMD_ON,0,NULL,true); if (!scmd) it.Ctrl(CMD_ON,0,NULL,true); else if (strlen(scmd->valuestring)) it.Ctrl(txt2cmd(scmd->valuestring),0,NULL,true);
} }
else else
{ //send reset command { //send reset command
if (rcmd) it.Ctrl(txt2cmd(scmd->valuestring),0,NULL,true); else it.Ctrl(CMD_OFF,0,NULL,true); if (!rcmd) it.Ctrl(CMD_OFF,0,NULL,true); else if (strlen(rcmd->valuestring)) it.Ctrl(txt2cmd(rcmd->valuestring),0,NULL,true);
} }
} }
} }

View File

@@ -599,6 +599,9 @@ int Item::VacomSetHeat(int addr, int8_t val, int8_t cmd)
} }
int Item::SendCmd(short cmd,short n, int * Par) int Item::SendCmd(short cmd,short n, int * Par)
{ {
/// ToDo: relative patches, configuration
char addrstr[32]; char addrstr[32];
//char addrbuf[17]; //char addrbuf[17];
char valstr[16]=""; char valstr[16]="";
@@ -801,12 +804,17 @@ int Item::checkModbus(int data)
if (d) if (d)
{ // Actually turned on { // Actually turned on
SendCmd(0,1,&d); //update OH if (cmd==CMD_OFF || cmd==CMD_HALT) SendCmd(CMD_ON); //update OH with ON if it was turned off before
setCmd(CMD_ON); SendCmd(0,1,&d); //update OH with value
setVal(d); //Storing setCmd(CMD_ON); //store command
setVal(d); //store value
} }
else { else {
if (cmd!=CMD_HALT && cmd!=CMD_OFF) {setCmd(CMD_OFF); SendCmd(CMD_OFF); } if (cmd!=CMD_HALT && cmd!=CMD_OFF)
{
setCmd(CMD_OFF); // store command (not value)
SendCmd(CMD_OFF);// update OH
}
} }
} //if data changed } //if data changed
} }