From be72bde8f566ac2dc6c2a2283864cc54fdc742f5 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sat, 27 Mar 2021 15:15:15 +0100
Subject: [PATCH] Add ESP32 support for internal Hall Effect sensor
Add ESP32 support for internal Hall Effect sensor connected to both GPIO36 and GPIO39 only
---
BUILDS.md | 1 +
CHANGELOG.md | 3 +-
RELEASENOTES.md | 2 +
tasmota/i18n.h | 1 +
tasmota/language/af_AF.h | 2 +
tasmota/language/bg_BG.h | 2 +
tasmota/language/cs_CZ.h | 2 +
tasmota/language/de_DE.h | 2 +
tasmota/language/el_GR.h | 2 +
tasmota/language/en_GB.h | 2 +
tasmota/language/es_ES.h | 2 +
tasmota/language/fr_FR.h | 2 +
tasmota/language/fy_NL.h | 2 +
tasmota/language/he_HE.h | 2 +
tasmota/language/hu_HU.h | 2 +
tasmota/language/it_IT.h | 2 +
tasmota/language/ko_KO.h | 2 +
tasmota/language/nl_NL.h | 2 +
tasmota/language/pl_PL.h | 2 +
tasmota/language/pt_BR.h | 2 +
tasmota/language/pt_PT.h | 2 +
tasmota/language/ro_RO.h | 2 +
tasmota/language/ru_RU.h | 2 +
tasmota/language/sk_SK.h | 2 +
tasmota/language/sv_SE.h | 2 +
tasmota/language/tr_TR.h | 2 +
tasmota/language/uk_UA.h | 2 +
tasmota/language/vi_VN.h | 2 +
tasmota/language/zh_CN.h | 2 +
tasmota/language/zh_TW.h | 2 +
tasmota/my_user_config.h | 1 +
tasmota/support_features.ino | 4 +-
tasmota/tasmota_configurations_ESP32.h | 1 +
tasmota/tasmota_template.h | 10 ++-
tasmota/xdrv_07_domoticz.ino | 2 +-
tasmota/xsns_87_esp32_halleffect.ino | 86 ++++++++++++++++++++++++++
tools/decode-status.py | 4 +-
37 files changed, 161 insertions(+), 6 deletions(-)
create mode 100644 tasmota/xsns_87_esp32_halleffect.ino
diff --git a/BUILDS.md b/BUILDS.md
index 7c8618e39..019ac4045 100644
--- a/BUILDS.md
+++ b/BUILDS.md
@@ -222,6 +222,7 @@
| Feature or Sensor | lite | tasmota | knx | sensors | ir | display | webcam | Remarks
|-----------------------|-------|--------|-----|---------|----|---------|--------|--------
| USE_UFILESYS | x | x | x | x | x | x | x |
+| USE_HALLEFFECT | x | x | x | x | x | x | x |
| USE_MI_ESP32 | - | x | - | x | - | - | - | See SetOption115
| USE_IBEACON_ESP32 | - | - | - | - | - | - | - |
| USE_WEBCAM | - | - | - | - | - | - | x |
diff --git a/CHANGELOG.md b/CHANGELOG.md
index be982f47f..0a1028cd2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,10 +10,11 @@ All notable changes to this project will be documented in this file.
- Support for TM1638 seven segment display by Ajith Vasudevan (#11031)
- Support for MAX7219 seven segment display by Ajith Vasudevan (#11387)
- Support for Frequency monitoring and zero-cross detection on CSE7761 (Sonoff Dual R3)
-- IRremoteESP8266 library from v2.7.15 to v2.7.16
+- ESP32 support for internal Hall Effect sensor connected to both GPIO36 and GPIO39 only
### Changed
- PubSubClient library from EspEasy v2.7.12 to Tasmota v2.8.12
+- IRremoteESP8266 library from v2.7.15 to v2.7.16
## [9.3.1.1]
### Added
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 0efe3c3ef..b0868e87b 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -98,10 +98,12 @@ The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota
- ESP32 Extent BLE [#11212](https://github.com/arendst/Tasmota/issues/11212)
- ESP32 support for WS2812 hardware driver via RMT or I2S
- ESP32 support for secondary I2C controller
+- ESP32 support for internal Hall Effect sensor connected to both GPIO36 and GPIO39 only
### Changed
- TasmotaSerial library from v3.2.0 to v3.3.0
- PubSubClient library from EspEasy v2.7.12 to Tasmota v2.8.12
+- IRremoteESP8266 library from v2.7.15 to v2.7.16
- ESP32 core library from v1.0.5-rc6 to v1.0.5
- TuyaMcu dimmer timeout [#11121](https://github.com/arendst/Tasmota/issues/11121)
- Rename epaper 42 commands [#11222](https://github.com/arendst/Tasmota/issues/11222)
diff --git a/tasmota/i18n.h b/tasmota/i18n.h
index dcdd08445..9b997230f 100644
--- a/tasmota/i18n.h
+++ b/tasmota/i18n.h
@@ -88,6 +88,7 @@
#define D_JSON_GATEWAY "Gateway"
#define D_JSON_GREEN "Green"
#define D_JSON_GROUPS "Groups"
+#define D_JSON_HALLEFFECT "HallEffect"
#define D_JSON_HALTING "Halting"
#define D_JSON_HEAPSIZE "Heap"
#define D_JSON_HIGH "High"
diff --git a/tasmota/language/af_AF.h b/tasmota/language/af_AF.h
index b0775ccbd..989e5636d 100644
--- a/tasmota/language/af_AF.h
+++ b/tasmota/language/af_AF.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Gateway"
#define D_GROUP "Groep"
#define D_HOST "Gasheer"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Gasheername"
#define D_HUMIDITY "Humiditeit"
#define D_ILLUMINANCE "Verligting"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h
index cd59b4466..0dfbe2b13 100644
--- a/tasmota/language/bg_BG.h
+++ b/tasmota/language/bg_BG.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Шлюз"
#define D_GROUP "Група"
#define D_HOST "Хост"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Име на хоста"
#define D_HUMIDITY "Влажност"
#define D_ILLUMINANCE "Осветеност"
@@ -807,6 +808,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h
index 06c038bfd..91929e163 100644
--- a/tasmota/language/cs_CZ.h
+++ b/tasmota/language/cs_CZ.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Výchozí brána"
#define D_GROUP "Skupina"
#define D_HOST "Server"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Název serveru"
#define D_HUMIDITY "Vlhkost"
#define D_ILLUMINANCE "Osvětlení"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h
index 14f5ecbd5..a6bb7e8a6 100644
--- a/tasmota/language/de_DE.h
+++ b/tasmota/language/de_DE.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Gateway"
#define D_GROUP "Gruppe"
#define D_HOST "Host"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Hostname"
#define D_HUMIDITY "Feuchtigkeit"
#define D_ILLUMINANCE "Beleuchtungsstärke"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Puls"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h
index 7edbde4e4..9b694ad22 100644
--- a/tasmota/language/el_GR.h
+++ b/tasmota/language/el_GR.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Πύλη"
#define D_GROUP "Ομάδα"
#define D_HOST "Host"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Hostname"
#define D_HUMIDITY "Υγρασία"
#define D_ILLUMINANCE "Φωτεινότητα"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h
index 52ba3d0db..54c33fec0 100644
--- a/tasmota/language/en_GB.h
+++ b/tasmota/language/en_GB.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Gateway"
#define D_GROUP "Group"
#define D_HOST "Host"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Hostname"
#define D_HUMIDITY "Humidity"
#define D_ILLUMINANCE "Illuminance"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h
index cb9a3841f..74ec56458 100644
--- a/tasmota/language/es_ES.h
+++ b/tasmota/language/es_ES.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Gateway"
#define D_GROUP "Grupo"
#define D_HOST "Host"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Hostname"
#define D_HUMIDITY "Humedad"
#define D_ILLUMINANCE "Luminancia"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "Cruce por cero"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/fr_FR.h b/tasmota/language/fr_FR.h
index a2cf87638..8d5772871 100644
--- a/tasmota/language/fr_FR.h
+++ b/tasmota/language/fr_FR.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Passerelle"
#define D_GROUP "Groupe"
#define D_HOST "Hôte"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Nom d'Hôte"
#define D_HUMIDITY "Humidité"
#define D_ILLUMINANCE "Éclairement"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/fy_NL.h b/tasmota/language/fy_NL.h
index d11523456..594a67785 100644
--- a/tasmota/language/fy_NL.h
+++ b/tasmota/language/fy_NL.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Poarte"
#define D_GROUP "Groep"
#define D_HOST "Host"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Hostnamme"
#define D_HUMIDITY "Feuchte"
#define D_ILLUMINANCE "Beljochting"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h
index f747a56b2..ce16e050f 100644
--- a/tasmota/language/he_HE.h
+++ b/tasmota/language/he_HE.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "שער"
#define D_GROUP "קבוצה"
#define D_HOST "מארח"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "שם מארח"
#define D_HUMIDITY "לחות"
#define D_ILLUMINANCE "רמת חשיפה"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h
index 420bbcefd..905bb4cb4 100644
--- a/tasmota/language/hu_HU.h
+++ b/tasmota/language/hu_HU.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Átjáró"
#define D_GROUP "Csoport"
#define D_HOST "Hoszt"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Hosztnév"
#define D_HUMIDITY "Páratartalom"
#define D_ILLUMINANCE "Megvilágítás"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h
index 1d97bd908..4438dd7ef 100644
--- a/tasmota/language/it_IT.h
+++ b/tasmota/language/it_IT.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Gateway"
#define D_GROUP "Gruppo"
#define D_HOST "Host"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Nome host"
#define D_HUMIDITY "Umidità"
#define D_ILLUMINANCE "Illuminazione"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ - TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ - RX"
#define D_SENSOR_ZEROCROSS "Impulsi ZC"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h
index 7aec21d32..74e3caddc 100644
--- a/tasmota/language/ko_KO.h
+++ b/tasmota/language/ko_KO.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "게이트웨이"
#define D_GROUP "그룹"
#define D_HOST "호스트"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "호스트이름"
#define D_HUMIDITY "습도"
#define D_ILLUMINANCE "조도"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h
index 11fe1075a..618990ea2 100644
--- a/tasmota/language/nl_NL.h
+++ b/tasmota/language/nl_NL.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Gateway"
#define D_GROUP "Groep"
#define D_HOST "Host"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Hostnaam"
#define D_HUMIDITY "Luchtvochtigheid"
#define D_ILLUMINANCE "Verlichtingssterkte"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h
index 08acee488..8db1978fa 100644
--- a/tasmota/language/pl_PL.h
+++ b/tasmota/language/pl_PL.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Brama"
#define D_GROUP "Grupa"
#define D_HOST "Serwer"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Nazwa serwera"
#define D_HUMIDITY "Wilgotność"
#define D_ILLUMINANCE "Podświetlanie"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h
index 9d6060859..e95c48a9b 100644
--- a/tasmota/language/pt_BR.h
+++ b/tasmota/language/pt_BR.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Gateway"
#define D_GROUP "Grupo"
#define D_HOST "Host"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Nome do Host"
#define D_HUMIDITY "Umidade"
#define D_ILLUMINANCE "Luminância"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h
index 2042c747d..fbc55ab05 100644
--- a/tasmota/language/pt_PT.h
+++ b/tasmota/language/pt_PT.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Gateway"
#define D_GROUP "Grupo"
#define D_HOST "Anfitrião"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Nome Anfitrião"
#define D_HUMIDITY "Humidade"
#define D_ILLUMINANCE "Luminâcia"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h
index 1c63fd554..19d1c59e8 100644
--- a/tasmota/language/ro_RO.h
+++ b/tasmota/language/ro_RO.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Gateway"
#define D_GROUP "Grup"
#define D_HOST "Gazdă"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Hostname"
#define D_HUMIDITY "Umiditate"
#define D_ILLUMINANCE "Iluminare"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h
index 4698228ae..7549ce1bb 100644
--- a/tasmota/language/ru_RU.h
+++ b/tasmota/language/ru_RU.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Шлюз"
#define D_GROUP "Группа"
#define D_HOST "Хост"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Имя Хоста"
#define D_HUMIDITY "Влажность"
#define D_ILLUMINANCE "Освещенность"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h
index 589c06301..ab6bf0649 100644
--- a/tasmota/language/sk_SK.h
+++ b/tasmota/language/sk_SK.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Predvolená brána"
#define D_GROUP "Skupina"
#define D_HOST "Server"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Názov servera"
#define D_HUMIDITY "Vlhkosť"
#define D_ILLUMINANCE "Osvetlenie"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h
index e2085e239..5ebdfcd4b 100644
--- a/tasmota/language/sv_SE.h
+++ b/tasmota/language/sv_SE.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Gateway"
#define D_GROUP "Grupp"
#define D_HOST "Värd"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Värdnamn"
#define D_HUMIDITY "Fuktighet"
#define D_ILLUMINANCE "Belysnings"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h
index 2b41e9b9d..2b1660f05 100644
--- a/tasmota/language/tr_TR.h
+++ b/tasmota/language/tr_TR.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Geçit"
#define D_GROUP "Grup"
#define D_HOST "Host"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Host Adresi"
#define D_HUMIDITY "Nem"
#define D_ILLUMINANCE "Aydınlık"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h
index b19d5c82d..816ea4381 100644
--- a/tasmota/language/uk_UA.h
+++ b/tasmota/language/uk_UA.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Шлюз"
#define D_GROUP "Група"
#define D_HOST "Хост"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Назва хосту"
#define D_HUMIDITY "Вологість"
#define D_ILLUMINANCE "Освітленність"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/vi_VN.h b/tasmota/language/vi_VN.h
index cf4000263..993dce616 100644
--- a/tasmota/language/vi_VN.h
+++ b/tasmota/language/vi_VN.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "Cổng kết nối"
#define D_GROUP "Nhóm"
#define D_HOST "Máy chủ"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "Tên máy chủ"
#define D_HUMIDITY "Độ ẩm"
#define D_ILLUMINANCE "Độ sáng"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h
index c317fb724..c7f21781f 100644
--- a/tasmota/language/zh_CN.h
+++ b/tasmota/language/zh_CN.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "网关"
#define D_GROUP "组:"
#define D_HOST "主机"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "主机名"
#define D_HUMIDITY "湿度"
#define D_ILLUMINANCE "照度"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h
index 849ae946d..3af05b2cd 100644
--- a/tasmota/language/zh_TW.h
+++ b/tasmota/language/zh_TW.h
@@ -109,6 +109,7 @@
#define D_GATEWAY "閘道器"
#define D_GROUP "群組:"
#define D_HOST "主機"
+#define D_HALL_EFFECT "Hall Effect"
#define D_HOSTNAME "主機名稱"
#define D_HUMIDITY "濕度"
#define D_ILLUMINANCE "照度"
@@ -808,6 +809,7 @@
#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX"
#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX"
#define D_SENSOR_ZEROCROSS "ZC Pulse"
+#define D_SENSOR_HALLEFFECT "HallEffect"
// Units
diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h
index 822d37860..8c37c1f13 100644
--- a/tasmota/my_user_config.h
+++ b/tasmota/my_user_config.h
@@ -899,6 +899,7 @@
// #define ETH_CLKMODE 0 // [EthClockMode] 0 = ETH_CLOCK_GPIO0_IN, 1 = ETH_CLOCK_GPIO0_OUT, 2 = ETH_CLOCK_GPIO16_OUT, 3 = ETH_CLOCK_GPIO17_OUT
#define USE_ADC // Add support for ADC on GPIO32 to GPIO39
+#define USE_HALLEFFECT // Add support for internal Hall Effcet sensor connected to GPIO36 and GPIO39
//#define USE_SPI // Add support for hardware SPI
//#define USE_MI_ESP32 // Add support for ESP32 as a BLE-bridge (+9k2 mem, +292k flash)
diff --git a/tasmota/support_features.ino b/tasmota/support_features.ino
index cdc864483..a6a7e5b3d 100644
--- a/tasmota/support_features.ino
+++ b/tasmota/support_features.ino
@@ -737,7 +737,9 @@ void ResponseAppendFeatures(void)
#ifdef USE_BERRY
feature8 |= 0x00000008; // xdrv_52_9_berry.ino
#endif
-// feature8 |= 0x00000010;
+#ifdef USE_HALLEFFECT
+ feature8 |= 0x00000010; // xsns_87_esp32_halleffect.ino
+#endif
// feature8 |= 0x00000020;
// feature8 |= 0x00000040;
// feature8 |= 0x00000080;
diff --git a/tasmota/tasmota_configurations_ESP32.h b/tasmota/tasmota_configurations_ESP32.h
index 9a18f43f5..fea1429e1 100644
--- a/tasmota/tasmota_configurations_ESP32.h
+++ b/tasmota/tasmota_configurations_ESP32.h
@@ -183,6 +183,7 @@
#define USE_LIGHT_PALETTE // Add support for color palette (+0k9 code)
+#define USE_HALLEFFECT // Add support for internal Hall Effcet sensor connected to GPIO36 and GPIO39
#define USE_DS18x20 // Add support for DS18x20 sensors with id sort, single scan and read retry (+1k3 code)
#define USE_I2C // I2C using library wire (+10k code, 0k2 mem, 124 iram)
diff --git a/tasmota/tasmota_template.h b/tasmota/tasmota_template.h
index f3d95488a..c7d76279f 100644
--- a/tasmota/tasmota_template.h
+++ b/tasmota/tasmota_template.h
@@ -158,6 +158,9 @@ enum UserSelectablePins {
GPIO_MAX7219CLK, GPIO_MAX7219DIN, GPIO_MAX7219CS, // MAX7219 interface
GPIO_TFMINIPLUS_TX, GPIO_TFMINIPLUS_RX, // TFmini Plus ToF sensor
GPIO_ZEROCROSS,
+#ifdef ESP32
+ GPIO_HALLEFFECT,
+#endif
GPIO_SENSOR_END };
enum ProgramSelectablePins {
@@ -336,6 +339,9 @@ const char kSensorNames[] PROGMEM =
D_SENSOR_MAX7219_CLK "|" D_SENSOR_MAX7219_DIN "|" D_SENSOR_MAX7219_CS "|"
D_SENSOR_TFMINIPLUS_TX "|" D_SENSOR_TFMINIPLUS_RX "|"
D_SENSOR_ZEROCROSS "|"
+#ifdef ESP32
+ D_SENSOR_HALLEFFECT "|"
+#endif
;
const char kSensorNamesFixed[] PROGMEM =
@@ -807,11 +813,13 @@ const uint16_t kGpioNiceList[] PROGMEM = {
AGPIO(GPIO_MAX7219DIN),
AGPIO(GPIO_MAX7219CS),
#endif // USE_DISPLAY_MAX7219
+
/*-------------------------------------------------------------------------------------------*\
* ESP32 specifics
\*-------------------------------------------------------------------------------------------*/
#ifdef ESP32
+ AGPIO(GPIO_HALLEFFECT) + 2, // Hall effect sensor connected to GPIO36 and 39
#ifdef USE_WEBCAM
AGPIO(GPIO_WEBCAM_PWDN),
AGPIO(GPIO_WEBCAM_RESET),
@@ -829,7 +837,7 @@ const uint16_t kGpioNiceList[] PROGMEM = {
#ifdef USE_ETHERNET
AGPIO(GPIO_ETH_PHY_POWER),
AGPIO(GPIO_ETH_PHY_MDC),
- AGPIO(GPIO_ETH_PHY_MDIO), // Ethernet
+ AGPIO(GPIO_ETH_PHY_MDIO), // Ethernet
#endif // USE_ETHERNET
/*-------------------------------------------------------------------------------------------*\
diff --git a/tasmota/xdrv_07_domoticz.ino b/tasmota/xdrv_07_domoticz.ino
index d3a16ed86..5542288dd 100644
--- a/tasmota/xdrv_07_domoticz.ino
+++ b/tasmota/xdrv_07_domoticz.ino
@@ -391,7 +391,7 @@ uint8_t DomoticzHumidityState(float h) {
return (!h) ? 0 : (h < 40) ? 2 : (h > 70) ? 3 : 1;
}
-void DomoticzSensor(uint8_t idx, uint32_t value) {
+void DomoticzSensor(uint8_t idx, int value) {
char data[16];
snprintf_P(data, sizeof(data), PSTR("%d"), value);
DomoticzSensor(idx, data);
diff --git a/tasmota/xsns_87_esp32_halleffect.ino b/tasmota/xsns_87_esp32_halleffect.ino
new file mode 100644
index 000000000..ee4cc1eb2
--- /dev/null
+++ b/tasmota/xsns_87_esp32_halleffect.ino
@@ -0,0 +1,86 @@
+/*
+ xsns_87_esp32_halleffect.ino - ESP32 Hall Effect sensor for Tasmota
+
+ Copyright (C) 2021 Theo Arends
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see