From 0dfab4d93c9bd0b201af26b07eae8bca9bb3365f Mon Sep 17 00:00:00 2001
From: mtl010957 <mtl010957@users.noreply.github.com>
Date: Wed, 26 Jun 2019 14:42:50 -0500
Subject: [PATCH] Fixed rc_switch dump off by one bit (#652)

* Fixed rc_switch dump off by one bit

* Proper fix per review comments
---
 esphome/components/remote_base/rc_switch_protocol.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/esphome/components/remote_base/rc_switch_protocol.cpp b/esphome/components/remote_base/rc_switch_protocol.cpp
index 029f1fccf2..a05842b3aa 100644
--- a/esphome/components/remote_base/rc_switch_protocol.cpp
+++ b/esphome/components/remote_base/rc_switch_protocol.cpp
@@ -113,7 +113,7 @@ bool RCSwitchBase::decode(RemoteReceiveData &src, uint32_t *out_data, uint8_t *o
   this->expect_sync(src);
 
   *out_data = 0;
-  for (*out_nbits = 1; *out_nbits < 32; *out_nbits += 1) {
+  for (*out_nbits = 0; *out_nbits < 32; *out_nbits += 1) {
     if (this->expect_zero(src)) {
       *out_data <<= 1;
       *out_data |= 0;
@@ -121,7 +121,6 @@ bool RCSwitchBase::decode(RemoteReceiveData &src, uint32_t *out_data, uint8_t *o
       *out_data <<= 1;
       *out_data |= 1;
     } else {
-      *out_nbits -= 1;
       return *out_nbits >= 8;
     }
   }