diff --git a/devices_jandy.c b/devices_jandy.c index 72c1d99b..12f83d0f 100644 --- a/devices_jandy.c +++ b/devices_jandy.c @@ -201,8 +201,12 @@ bool isSWGDeviceErrorState(unsigned char status) } void setSWGdeviceStatus(struct aqualinkdata *aqdata, emulation_type requester, unsigned char status) { - if (aqdata->ar_swg_device_status == status) + static unsigned char last_status = SWG_STATUS_UNKNOWN; + + if ((aqdata->ar_swg_device_status == status) || (last_status == status)) { return; + } + last_status = status; // If we get (ALLBUTTON, SWG_STATUS_CHECK_PCB), it sends this for many status, like clean cell. // So if we are in one of those states, don't use it. @@ -210,7 +214,7 @@ void setSWGdeviceStatus(struct aqualinkdata *aqdata, emulation_type requester, u if (requester == ALLBUTTON && status == SWG_STATUS_CHECK_PCB ) { if (aqdata->ar_swg_device_status > SWG_STATUS_ON && aqdata->ar_swg_device_status < SWG_STATUS_TURNING_OFF) { - LOG(DJAN_LOG, LOG_DEBUG, "Ignoreing set SWG device state to '0x%02hhx', request from %d\n", aqdata->ar_swg_device_status, requester); + LOG(DJAN_LOG, LOG_DEBUG, "Ignoring set SWG device state to '0x%02hhx', request from %d\n", aqdata->ar_swg_device_status, requester); return; } }