Fix for not honouring enabled state for PIR usermod. (#2090)

This commit is contained in:
Blaž Kristan 2021-07-22 14:41:11 +02:00 committed by GitHub
parent 02b6d53544
commit 9ba7e5d567
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -193,16 +193,16 @@ public:
*/
void setup()
{
if (enabled) {
// pin retrieved from cfg.json (readFromConfig()) prior to running setup()
if (!pinManager.allocatePin(PIRsensorPin,false)) {
PIRsensorPin = -1; // allocation failed
enabled = false;
DEBUG_PRINTLN(F("PIRSensorSwitch pin allocation failed."));
} else {
if (PIRsensorPin >= 0 && pinManager.allocatePin(PIRsensorPin,false)) {
// PIR Sensor mode INPUT_PULLUP
pinMode(PIRsensorPin, INPUT_PULLUP);
if (enabled) {
sensorPinState = digitalRead(PIRsensorPin);
} else {
if (PIRsensorPin >= 0) DEBUG_PRINTLN(F("PIRSensorSwitch pin allocation failed."));
PIRsensorPin = -1; // allocation failed
enabled = false;
}
}
initDone = true;
@ -221,8 +221,8 @@ public:
*/
void loop()
{
// only check sensors 10x/s
if (millis() - lastLoop < 100 || strip.isUpdating()) return;
// only check sensors 4x/s
if (!enabled || millis() - lastLoop < 250 || strip.isUpdating()) return;
lastLoop = millis();
if (!updatePIRsensorState()) {
@ -335,6 +335,7 @@ public:
}
PIRsensorPin = top["pin"] | PIRsensorPin;
// PIRsensorPin = min(39,max(-1,(int)PIRsensorPin)); // check bounds
enabled = top[FPSTR(_enabled)] | enabled;