Ignore interrupts while sending blinds signal
Makes transmission more reliable.
This commit is contained in:
@@ -9,6 +9,9 @@ esphome:
|
||||
includes:
|
||||
- somfy.h
|
||||
|
||||
libraries:
|
||||
- SPI
|
||||
|
||||
packages:
|
||||
device_base: !include templates/esp8266.yaml
|
||||
sensor: !include templates/esp8266-vcc.yaml
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include <SPI.h>
|
||||
#include "esphome.h"
|
||||
|
||||
namespace {
|
||||
@@ -104,6 +105,8 @@ class SomfyRTS : public Component, public Cover {
|
||||
frame[i] ^= frame[i-1];
|
||||
}
|
||||
|
||||
noInterrupts();
|
||||
|
||||
// Wake-up pulse & silence.
|
||||
digitalWrite(rfPin, HIGH);
|
||||
delayMicroseconds(9415);
|
||||
@@ -150,6 +153,8 @@ class SomfyRTS : public Component, public Cover {
|
||||
delayMicroseconds(30415);
|
||||
}
|
||||
|
||||
interrupts();
|
||||
|
||||
// Publish the new rolling code at the end to ensure fast reaction time
|
||||
// when the component is called. This method may be synchronous and
|
||||
// introduces an unpredictable delay.
|
||||
|
||||
Reference in New Issue
Block a user