reverse polarity if offset 0

This commit is contained in:
proddy
2024-10-09 09:04:32 +02:00
parent 63f35170c6
commit 0881c574b2

View File

@@ -210,7 +210,7 @@ void AnalogSensor::reload(bool get_nvs) {
sensor.set_offset(EMSESP::nvs_.getChar(sensor.name().c_str())); 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()); sensor.set_value(sensor.offset());
} }
publish_sensor(sensor); publish_sensor(sensor);
@@ -756,7 +756,7 @@ bool AnalogSensor::command_setvalue(const char * value, const int8_t gpio) {
sensor.set_offset(v); sensor.set_offset(v);
sensor.set_value(v); sensor.set_value(v);
pinMode(sensor.gpio(), OUTPUT); 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()) { 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()); EMSESP::nvs_.putChar(sensor.name().c_str(), (int8_t)sensor.offset());
} }