diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md
index 8eed8f285..b5e690c9a 100644
--- a/CHANGELOG_LATEST.md
+++ b/CHANGELOG_LATEST.md
@@ -17,6 +17,7 @@ For more details go to [emsesp.org](https://emsesp.org/).
- full system backup and restore
- updated version check [#3047](https://github.com/emsesp/EMS-ESP32/issues/3047)
- auto-logic to set ht3/ems+ tx-mode
+- polarity for digital_in sensors [#3070](https://github.com/emsesp/EMS-ESP32/discussions/3070)
## Fixed
diff --git a/interface/src/app/main/SensorsAnalogDialog.tsx b/interface/src/app/main/SensorsAnalogDialog.tsx
index 483d337cc..5073a2490 100644
--- a/interface/src/app/main/SensorsAnalogDialog.tsx
+++ b/interface/src/app/main/SensorsAnalogDialog.tsx
@@ -208,6 +208,23 @@ const SensorsAnalogDialog = ({
)}
+ {editItem.t === AnalogType.DIGITAL_IN && (
+
+
+
+
+
+
+ )}
{editItem.t === AnalogType.ADC && (
= 15 && sensor.poll_ != sensor.last_reading_) {
sensor.last_reading_ = sensor.poll_;
if (sensor.type() == AnalogType::DIGITAL_IN) {
- sensor.set_value(sensor.poll_);
+ sensor.set_value(sensor.factor() == 0 ? !sensor.poll_ : sensor.poll_);
} else if (!sensor.poll_) { // falling edge
if (sensor.type() == AnalogType::COUNTER) {
sensor.set_value(old_value + sensor.factor());
diff --git a/src/emsesp_version.h b/src/emsesp_version.h
index 19dbf2a47..e7d93e24b 100644
--- a/src/emsesp_version.h
+++ b/src/emsesp_version.h
@@ -1 +1 @@
-#define EMSESP_APP_VERSION "3.9.0-dev.5"
+#define EMSESP_APP_VERSION "3.9.0-dev.6"