From 08f5c4b674008875407c44129a60fee5e33098d2 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 10 Oct 2024 09:52:54 +0200 Subject: [PATCH] fix digital_out: active_low --- src/analogsensor.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/analogsensor.cpp b/src/analogsensor.cpp index 7b1703f54..dc8e033ad 100644 --- a/src/analogsensor.cpp +++ b/src/analogsensor.cpp @@ -210,7 +210,7 @@ void AnalogSensor::reload(bool get_nvs) { sensor.set_offset(EMSESP::nvs_.getChar(sensor.name().c_str())); } } - digitalWrite(sensor.gpio(), sensor.offset() * sensor.factor() > 0 ? 1 : 0); + digitalWrite(sensor.gpio(), (sensor.offset() == 0) ^ (sensor.factor() != 0)); sensor.set_value(sensor.offset()); } publish_sensor(sensor); @@ -754,7 +754,7 @@ bool AnalogSensor::command_setvalue(const char * value, const int8_t gpio) { sensor.set_offset(v); sensor.set_value(v); pinMode(sensor.gpio(), OUTPUT); - digitalWrite(sensor.gpio(), sensor.offset() * sensor.factor() > 0 ? 1 : 0); + digitalWrite(sensor.gpio(), (sensor.offset() == 0) ^ (sensor.factor() != 0)); if (sensor.uom() == 0 && EMSESP::nvs_.getChar(sensor.name().c_str()) != (int8_t)sensor.offset()) { EMSESP::nvs_.putChar(sensor.name().c_str(), (int8_t)sensor.offset()); }