ac fan mode fix

This commit is contained in:
2019-10-15 03:17:32 +03:00
parent d2915e9ad9
commit 0d3b260bd5

View File

@@ -180,6 +180,20 @@ void SendData(byte req[], size_t size){
AC_Serial.write(req, size - 1); AC_Serial.write(req, size - 1);
AC_Serial.write(getCRC(req, size-1)); AC_Serial.write(getCRC(req, size-1));
AC_Serial.flush(); AC_Serial.flush();
Serial.print("<<");
for (int i=0; i < size-1; i++)
{
if (req[i] < 10){
Serial.print("0");
Serial.print(req[i], HEX);
}
else
{
Serial.print(req[i], HEX);
}
}
Serial.println();
} }
inline unsigned char toHex( char ch ){ inline unsigned char toHex( char ch ){
@@ -245,7 +259,7 @@ int out_AC::Ctrl(short cmd, short n, int * Parameters, boolean send, int suffixC
else if (strcmp_P(subItem, QUIET_P) == 0) suffixCode = S_QUIET; else if (strcmp_P(subItem, QUIET_P) == 0) suffixCode = S_QUIET;
else if (strcmp_P(subItem, RAW_P) == 0) suffixCode = S_RAW; else if (strcmp_P(subItem, RAW_P) == 0) suffixCode = S_RAW;
data[B_POWER] = power; //data[B_POWER] = power;
// debugSerial<<F("."); // debugSerial<<F(".");
switch(suffixCode) switch(suffixCode)
{ {
@@ -264,6 +278,7 @@ int out_AC::Ctrl(short cmd, short n, int * Parameters, boolean send, int suffixC
{ {
case CMD_ON: case CMD_ON:
case CMD_XON: case CMD_XON:
data[B_POWER] = power;
data[B_POWER] |= 1; data[B_POWER] |= 1;
SendData(on, sizeof(on)/sizeof(byte)); SendData(on, sizeof(on)/sizeof(byte));
if (send) publishTopic(item->itemArr->name,"ON","/cmd"); if (send) publishTopic(item->itemArr->name,"ON","/cmd");
@@ -271,6 +286,7 @@ int out_AC::Ctrl(short cmd, short n, int * Parameters, boolean send, int suffixC
break; break;
case CMD_OFF: case CMD_OFF:
case CMD_HALT: case CMD_HALT:
data[B_POWER] = power;
data[B_POWER] &= ~1; data[B_POWER] &= ~1;
SendData(off, sizeof(off)/sizeof(byte)); SendData(off, sizeof(off)/sizeof(byte));
if (send) publishTopic(item->itemArr->name,"OFF","/cmd"); if (send) publishTopic(item->itemArr->name,"OFF","/cmd");
@@ -278,26 +294,32 @@ int out_AC::Ctrl(short cmd, short n, int * Parameters, boolean send, int suffixC
break; break;
case CMD_AUTO: case CMD_AUTO:
data[B_MODE] = 0; data[B_MODE] = 0;
data[B_POWER] = power;
data[B_POWER] |= 1; data[B_POWER] |= 1;
strcpy_P(s_mode,AUTO_P); strcpy_P(s_mode,AUTO_P);
break; break;
case CMD_COOL: case CMD_COOL:
data[B_MODE] = 1; data[B_MODE] = 1;
data[B_POWER] = power;
data[B_POWER] |= 1; data[B_POWER] |= 1;
strcpy_P(s_mode,COOL_P); strcpy_P(s_mode,COOL_P);
break; break;
case CMD_HEAT: case CMD_HEAT:
data[B_MODE] = 2; data[B_MODE] = 2;
data[B_POWER] = power;
data[B_POWER] |= 1; data[B_POWER] |= 1;
strcpy_P(s_mode,HEAT_P); strcpy_P(s_mode,HEAT_P);
break; break;
case CMD_DRY: case CMD_DRY:
data[B_MODE] = 4; data[B_MODE] = 4;
data[B_POWER] = power;
data[B_POWER] |= 1; data[B_POWER] |= 1;
strcpy_P(s_mode,DRY_P); strcpy_P(s_mode,DRY_P);
break; break;
case CMD_FAN: case CMD_FAN:
data[B_MODE] = 3; data[B_MODE] = 3;
debugSerial<<"fan\n";
data[B_POWER] = power;
data[B_POWER] |= 1; data[B_POWER] |= 1;
strcpy_P(s_mode,FAN_ONLY_P); strcpy_P(s_mode,FAN_ONLY_P);
break; break;