From 587ad9a733c02877dc40f5387639a640dfcb6cdb Mon Sep 17 00:00:00 2001 From: RaphDaMan Date: Sat, 20 Mar 2021 14:14:07 +0100 Subject: [PATCH 1/6] Squashed commit of the following: commit 6c9c4a83d0076bb9303d65d5435f0d0bf2e81a6b Author: RaphDaMan Date: Sat Mar 20 13:49:36 2021 +0100 v0.7 Final and ready to PR. --- tasmota/i18n.h | 2 + tasmota/language/af_AF.h | 7 + tasmota/language/bg_BG.h | 7 + tasmota/language/cs_CZ.h | 7 + tasmota/language/de_DE.h | 7 + tasmota/language/el_GR.h | 7 + tasmota/language/en_GB.h | 7 + tasmota/language/es_ES.h | 7 + tasmota/language/fr_FR.h | 7 + tasmota/language/fy_NL.h | 7 + tasmota/language/he_HE.h | 7 + tasmota/language/hu_HU.h | 7 + tasmota/language/it_IT.h | 7 + tasmota/language/ko_KO.h | 7 + tasmota/language/nl_NL.h | 7 + tasmota/language/pl_PL.h | 7 + tasmota/language/pt_BR.h | 7 + tasmota/language/pt_PT.h | 7 + tasmota/language/ro_RO.h | 7 + tasmota/language/ru_RU.h | 7 + tasmota/language/sk_SK.h | 7 + tasmota/language/sv_SE.h | 7 + tasmota/language/tr_TR.h | 7 + tasmota/language/uk_UA.h | 7 + tasmota/language/vi_VN.h | 7 + tasmota/language/zh_CN.h | 7 + tasmota/language/zh_TW.h | 7 + tasmota/my_user_config.h | 1 + tasmota/tasmota_configurations.h | 1 + tasmota/tasmota_configurations_ESP32.h | 1 + tasmota/tasmota_template.h | 6 + tasmota/xsns_88_tfminiplus.ino | 251 +++++++++++++++++++++++++ tools/decode-status.py | 2 +- 33 files changed, 445 insertions(+), 1 deletion(-) create mode 100644 tasmota/xsns_88_tfminiplus.ino diff --git a/tasmota/i18n.h b/tasmota/i18n.h index accb88938..841d6e557 100644 --- a/tasmota/i18n.h +++ b/tasmota/i18n.h @@ -211,6 +211,8 @@ #define D_JSON_IMPORT "Import" #define D_JSON_EXPORT "Export" #define D_JSON_TOTAL_ACTIVE "TotalActive" +#define D_JSON_SIGNALSTRENGTH "Signal Strength" +#define D_JSON_CHIPTEMPERATURE "Chip Temperature" #define D_RSLT_ENERGY "ENERGY" #define D_RSLT_HASS_STATE "HASS_STATE" diff --git a/tasmota/language/af_AF.h b/tasmota/language/af_AF.h index b61c82c6e..2954219f1 100644 --- a/tasmota/language/af_AF.h +++ b/tasmota/language/af_AF.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Stroom L1+L2+L3" #define D_SpL1L2L3 "Spanning L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Geen" #define D_SENSOR_USER "Gebruiker" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h index 2061eb460..45fd69563 100644 --- a/tasmota/language/bg_BG.h +++ b/tasmota/language/bg_BG.h @@ -584,6 +584,10 @@ #define D_StL1L2L3 "Ток L1+L2+L3" #define D_SpL1L2L3 "Напрежение L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Няма" #define D_SENSOR_USER "Потребит." @@ -800,6 +804,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h index be329c3e2..837cc91ef 100644 --- a/tasmota/language/cs_CZ.h +++ b/tasmota/language/cs_CZ.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Není" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h index 9eaff2441..ef753b639 100644 --- a/tasmota/language/de_DE.h +++ b/tasmota/language/de_DE.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Ströme L1+L2+L3" #define D_SpL1L2L3 "Spannung L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signalstärke" +#define D_CHIPTEMPERATURE "Chip Temperatur" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "None" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h index ca14da7c1..6bfb44891 100644 --- a/tasmota/language/el_GR.h +++ b/tasmota/language/el_GR.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Κανένα" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h index 12a476a32..5d4641c22 100644 --- a/tasmota/language/en_GB.h +++ b/tasmota/language/en_GB.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "None" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h index 93967a818..c868b06e4 100644 --- a/tasmota/language/es_ES.h +++ b/tasmota/language/es_ES.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Corriente L1+L2+L3" #define D_SpL1L2L3 "Voltaje L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Ninguno" #define D_SENSOR_USER "Por Usuario" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Cambiando dirección a" #define D_OUT_OF_RANGE "Fuera de Rango" #define D_SENSOR_DETECTED "detectado" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/fr_FR.h b/tasmota/language/fr_FR.h index 980b380f7..584c22724 100644 --- a/tasmota/language/fr_FR.h +++ b/tasmota/language/fr_FR.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Courant Ph1+Ph2+Ph3" #define D_SpL1L2L3 "Tension (Ph1+Ph2+Ph3)/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Aucun" #define D_SENSOR_USER "Utilisateur" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/fy_NL.h b/tasmota/language/fy_NL.h index 8b166dd94..d607220ce 100644 --- a/tasmota/language/fy_NL.h +++ b/tasmota/language/fy_NL.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Streame L1+L2+L3" #define D_SpL1L2L3 "Foltaazje L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Gjin" #define D_SENSOR_USER "Brûker" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h index 8bf5e5e97..91f49739c 100644 --- a/tasmota/language/he_HE.h +++ b/tasmota/language/he_HE.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "None" #define D_SENSOR_USER "משתמש" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h index 239239348..fd2b3e075 100644 --- a/tasmota/language/hu_HU.h +++ b/tasmota/language/hu_HU.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Áramerősség L1+L2+L3" #define D_SpL1L2L3 "Feszültség L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Nincs" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h index b8a7d828b..5e43527a4 100644 --- a/tasmota/language/it_IT.h +++ b/tasmota/language/it_IT.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Corrente L1+L2+L3" #define D_SpL1L2L3 "Tensione L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Nessuno" #define D_SENSOR_USER "Utente" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Imposta indirizzo a" #define D_OUT_OF_RANGE "Fuori limite" #define D_SENSOR_DETECTED "rilevato" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h index 964ab46a7..061a93bca 100644 --- a/tasmota/language/ko_KO.h +++ b/tasmota/language/ko_KO.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "없음" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h index bc855e4a8..2be3f71b2 100644 --- a/tasmota/language/nl_NL.h +++ b/tasmota/language/nl_NL.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Stroom L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Geen" #define D_SENSOR_USER "Gebruiker" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h index 78710996f..1648bf058 100644 --- a/tasmota/language/pl_PL.h +++ b/tasmota/language/pl_PL.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Prąd suma" #define D_SpL1L2L3 "Prąd średni" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Brak" #define D_SENSOR_USER "Użytkownik" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h index a2929b529..9eff10649 100644 --- a/tasmota/language/pt_BR.h +++ b/tasmota/language/pt_BR.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Nenhum" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Mudança de endereço para" #define D_OUT_OF_RANGE "Fora de Alcance" #define D_SENSOR_DETECTED "detectou" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h index c5b524875..1d3a0bdf3 100644 --- a/tasmota/language/pt_PT.h +++ b/tasmota/language/pt_PT.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Corrente F1+F2+F3" #define D_SpL1L2L3 "Tensão F1+F2+F3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Nenhum" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Mudança de endereço para" #define D_OUT_OF_RANGE "Fora de Alcance" #define D_SENSOR_DETECTED "detectou" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h index c8182eb75..8098f9fdb 100644 --- a/tasmota/language/ro_RO.h +++ b/tasmota/language/ro_RO.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Fără" #define D_SENSOR_USER "Utilizator" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h index 6d8d0b932..3c56f13a9 100644 --- a/tasmota/language/ru_RU.h +++ b/tasmota/language/ru_RU.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "-нет-" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "А" diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h index b0fbc5c3f..8705a7e9c 100644 --- a/tasmota/language/sk_SK.h +++ b/tasmota/language/sk_SK.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Žiaden" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h index 5ccbc77fe..13079ae46 100644 --- a/tasmota/language/sv_SE.h +++ b/tasmota/language/sv_SE.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Ingen" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h index e6429fed1..17b521ba5 100644 --- a/tasmota/language/tr_TR.h +++ b/tasmota/language/tr_TR.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "None" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h index 286b851dc..9a5ebf98d 100644 --- a/tasmota/language/uk_UA.h +++ b/tasmota/language/uk_UA.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Немає" #define D_SENSOR_USER "Користувач" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "А" diff --git a/tasmota/language/vi_VN.h b/tasmota/language/vi_VN.h index c04e43010..b1be0f94c 100644 --- a/tasmota/language/vi_VN.h +++ b/tasmota/language/vi_VN.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Dòng L1+L2+L3" #define D_SpL1L2L3 "Điện áp L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "Không dùng" #define D_SENSOR_USER "Người Dùng" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "A" diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h index a7e1847ca..1d8bba996 100644 --- a/tasmota/language/zh_CN.h +++ b/tasmota/language/zh_CN.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "无" #define D_SENSOR_USER "User" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "安" diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h index 13cc6e858..41a364d3b 100644 --- a/tasmota/language/zh_TW.h +++ b/tasmota/language/zh_TW.h @@ -585,6 +585,10 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" +// xsns_88_tfminiplus.ino +#define D_SIGNALSTRENGTH "Signal Strength" +#define D_CHIPTEMPERATURE "Chip Temperature" + // tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box #define D_SENSOR_NONE "無" #define D_SENSOR_USER "使用者" @@ -801,6 +805,9 @@ #define D_NEW_ADDRESS "Setting address to" #define D_OUT_OF_RANGE "Out of Range" #define D_SENSOR_DETECTED "detected" +#define D_SENSOR_TFMINIPLUS_TX "TFmini+ TX" +#define D_SENSOR_TFMINIPLUS_RX "TFmini+ RX" + // Units #define D_UNIT_AMPERE "安培" diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h index 51c3999ac..9716f92f2 100644 --- a/tasmota/my_user_config.h +++ b/tasmota/my_user_config.h @@ -699,6 +699,7 @@ // #define USE_PROJECTOR_CTRL_OPTOMA // Use codes for OPTOMA //#define USE_AS608 // Add support for AS608 optical and R503 capacitive fingerprint sensor (+3k code) // #define USE_AS608_MESSAGES // Add verbose error messages (+0k4 code) +//#define USE_TFMINIPLUS // Add suppoer for TFmini Plus (TFmini, TFmini-S) LiDAR modules via UART interface // -- Power monitoring sensors -------------------- #define USE_ENERGY_MARGIN_DETECTION // Add support for Energy Margin detection (+1k6 code) diff --git a/tasmota/tasmota_configurations.h b/tasmota/tasmota_configurations.h index c4956bdbd..7a964b191 100644 --- a/tasmota/tasmota_configurations.h +++ b/tasmota/tasmota_configurations.h @@ -182,6 +182,7 @@ // #define USE_PROJECTOR_CTRL_NEC // Use codes for NEC // #define USE_PROJECTOR_CTRL_OPTOMA // Use codes for OPTOMA //#define USE_AS608 // Add support for AS608 optical and R503 capacitive fingerprint sensor (+3k4 code) +//#define USE_TFMINIPLUS // Add suppoer for TFmini Plus (TFmini, TFmini-S) LiDAR modules via UART interface #define USE_ENERGY_SENSOR // Add energy sensors (-14k code) #define USE_PZEM004T // Add support for PZEM004T Energy monitor (+2k code) diff --git a/tasmota/tasmota_configurations_ESP32.h b/tasmota/tasmota_configurations_ESP32.h index 75cfc5572..b00c65738 100644 --- a/tasmota/tasmota_configurations_ESP32.h +++ b/tasmota/tasmota_configurations_ESP32.h @@ -278,6 +278,7 @@ // #define USE_PROJECTOR_CTRL_NEC // Use codes for NEC // #define USE_PROJECTOR_CTRL_OPTOMA // Use codes for OPTOMA //#define USE_AS608 // Add support for AS608 optical and R503 capacitive fingerprint sensor (+3k4 code) +//#define USE_TFMINIPLUS // Add suppoer for TFmini Plus (TFmini, TFmini-S) LiDAR modules via UART interface #define USE_ENERGY_SENSOR // Add energy sensors (-14k code) #define USE_PZEM004T // Add support for PZEM004T Energy monitor (+2k code) diff --git a/tasmota/tasmota_template.h b/tasmota/tasmota_template.h index 197596b7b..69be04616 100644 --- a/tasmota/tasmota_template.h +++ b/tasmota/tasmota_template.h @@ -155,6 +155,7 @@ enum UserSelectablePins { GPIO_XPT2046_CS, // XPT2046 SPI Chip Select GPIO_CSE7761_TX, GPIO_CSE7761_RX, // CSE7761 Serial interface (Dual R3) GPIO_VL53L0X_XSHUT1, // VL53L0X_XSHUT (the max number of sensors is VL53L0X_MAX_SENSORS)- Used when connecting multiple VL53L0X + GPIO_TFMINIPLUS_TX, GPIO_TFMINIPLUS_RX, // TFmini Plus ToF sensor GPIO_SENSOR_END }; enum ProgramSelectablePins { @@ -330,6 +331,7 @@ const char kSensorNames[] PROGMEM = D_SENSOR_XPT2046_CS "|" D_SENSOR_CSE7761_TX "|" D_SENSOR_CSE7761_RX "|" D_SENSOR_VL53L0X_XSHUT "|" + D_SENSOR_TFMINIPLUS_TX "|" D_SENSOR_TFMINIPLUS_RX "|" ; const char kSensorNamesFixed[] PROGMEM = @@ -561,6 +563,10 @@ const uint16_t kGpioNiceList[] PROGMEM = { AGPIO(GPIO_HX711_SCK), // HX711 Load Cell clock AGPIO(GPIO_HX711_DAT), // HX711 Load Cell data #endif +#ifdef USE_TFMINIPLUS + AGPIO(GPIO_TFMINIPLUS_TX), // TFmini Plus TX pin + AGPIO(GPIO_TFMINIPLUS_RX), // TFmini Plus RX pin +#endif /*-------------------------------------------------------------------------------------------*\ * Energy sensors diff --git a/tasmota/xsns_88_tfminiplus.ino b/tasmota/xsns_88_tfminiplus.ino new file mode 100644 index 000000000..22905ae64 --- /dev/null +++ b/tasmota/xsns_88_tfminiplus.ino @@ -0,0 +1,251 @@ +/* + xsns_88_tfminiplus.ino - TFmini Plus interface for Tasmota + + Created by Raphael Breiting on 12.11.2020. + + Copyright (C) 2021 Raphael Breiting and 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 . +*/ + +// Conditional compilation of driver +#ifdef USE_TFMINIPLUS + +/*****************************************************************************\ + * TFmini, TFmini Plus, TFmini Plus (Indoor Version), TFmini-S - LiDAR Module + * Manufacturer: Benewake (Beijing) Co. Ltd. + * + * Code for Time-Of-Flight (TOF) family single-point short-range LiDAR sensor + * modules with UART interface. + * + * Connection Description for GH1.25-4P (Molex51021-0400) connector: + * No Color Corresponding PIN Function Comment + * 1 RED PIN-1 +5V Power Supply + * 2 WHITE PIN-2 RxD/SDA Receiving/Data + * 3 GREEN PIN-3 TxD/SCL Transmitting/Clock + * 4 BLACK PIN-4 GND Ground + * + * Before connecting module to Tasmota, please prepare module with + * the following sequence through terminal program (e.g. Termite): + * 1. Connect sensor to USB-to-UART (TTL 3.3V) + * 2. Set terminal to 115200bps and 8N1 + * 3. Set frame rate to 0 (zero): + * send -->: 5A0603000000 + * receive <-- (OK): 5A0603000000 + * 4. Set baud rate to 9600bps + * send -->: 5A0806802500000D + * receive <-- (OK): 5A0806802500000D + * 5. Set terminal to 9600bps and 8N1 + * 6. Save settings + * send -->: 5A04116F + * receive <-- (OK): 5A05110070 + * receive <-- (FAIL): 5A05110071 + * 7. When point 6 returned OK, than ready to connect to Tasmota! :) + * When point 6 returned FAIL, start with item 1 and + * - check connection of RX and TX pin are not exchanged + * - check power supply + * - 5V +-0,5V + * - 110mA average + * - 140mA max peak + * + * References: + * - http://en.benewake.com/product + * - https://de.aliexpress.com/item/32852024277.html?spm=a2g0s.9042311.0.0.27424c4d5Edizk + * - https://de.aliexpress.com/item/4001076614996.html?spm=a2g0s.9042311.0.0.27424c4d5Edizk +\*****************************************************************************/ + +#include + +// Define driver ID +#define XSNS_88 88 + +// Use special no wait serial driver, should be always on +#ifndef ESP32 +#define SPECIAL_SS +#endif + +// Default baudrate +#define BAUDRATE 9600 + +// Serial buffer length for incoming data +#define TFMP_MAX_DATA_LEN 9 + +char Tfmp_buffer[TFMP_MAX_DATA_LEN + 1]; + +struct xsns_88_tfminiplus +{ + bool ready = false; + uint16_t distance = 0; + uint16_t sigstrength = 0; + uint16_t chiptemp = 0; +} tfminiplus_sensor; + +// Software and hardware serial pointers +#ifdef ESP8266 +TasmotaSerial *TfmpSerial = nullptr; +#endif // ESP8266 +#ifdef ESP32 +HardwareSerial *TfmpSerial = nullptr; +#endif // ESP32 + +void TfmpInit(void) +{ + if (!tfminiplus_sensor.ready) + { + if (PinUsed(GPIO_TFMINIPLUS_RX) && PinUsed(GPIO_TFMINIPLUS_TX)) + { + TfmpSerial = new TasmotaSerial(Pin(GPIO_TFMINIPLUS_RX), Pin(GPIO_TFMINIPLUS_TX)); + if (TfmpSerial->begin(BAUDRATE)) + { + if (TfmpSerial->hardwareSerial()) + { + ClaimSerial(); + } + tfminiplus_sensor.ready = true; + TfmpSerial->flush(); + } + } + } +} + +void TfmpTrigger(void) +{ + if (TfmpSerial && tfminiplus_sensor.ready) + { + TfmpSerial->write(0x5A); + TfmpSerial->write(0x04); + TfmpSerial->write(0x04); + TfmpSerial->write(0x62); + } +} + +void TfmpProcessData(void) +{ + uint16_t crc = 0; + // distance to object (default in cm) + tfminiplus_sensor.distance = (Tfmp_buffer[3] << 8) + Tfmp_buffer[2]; + // signal strength (between 100 and 65535 fine, otherwise 0 due to out of range of non-reflective surface) + tfminiplus_sensor.sigstrength = (Tfmp_buffer[5] << 8) + Tfmp_buffer[4]; + // chip temperature + tfminiplus_sensor.chiptemp = (((Tfmp_buffer[7] << 8) + Tfmp_buffer[6]) >> 3) - 256; + // check crc sum + for (int i = 0; i < TFMP_MAX_DATA_LEN - 1; ++i) + { + crc += (uint16_t)Tfmp_buffer[i]; + } + if (!(char)(crc & 0xff) != Tfmp_buffer[TFMP_MAX_DATA_LEN]) + { + DEBUG_SENSOR_LOG(PSTR("TFmini Plus: crc error")); + } + DEBUG_SENSOR_LOG(PSTR("TFmini Plus: Distance: %d"), tfminiplus_sensor.distance); + DEBUG_SENSOR_LOG(PSTR("TFmini Plus: Signal: %d"), tfminiplus_sensor.sigstrength); + DEBUG_SENSOR_LOG(PSTR("TFmini Plus: Chip Temp: %d"), tfminiplus_sensor.chiptemp); + TfmpSerial->flush(); +} + +void TfmpProcessSerialData (void) +{ + uint8_t data; + bool dataReady; + if (TfmpSerial && tfminiplus_sensor.ready) + { + while (TfmpSerial->available() > 0) + { + data = TfmpSerial->read(); + dataReady = addData((char)data); + if (dataReady) + { + TfmpProcessData(); + } + } + } +} + +bool addData(char nextChar) +{ + // Buffer position + static uint8_t currentIndex = 0; + // Store data into buffer at position + Tfmp_buffer[currentIndex] = nextChar; + currentIndex++; + // Check for too many data + if (currentIndex >= TFMP_MAX_DATA_LEN) + { + // Terminate buffer and reset position + Tfmp_buffer[TFMP_MAX_DATA_LEN] = '\0'; + currentIndex = 0; + return true; + } + return false; +} + +#ifdef USE_WEBSERVER +// {s} = , {m} = , {e} = +const char HTTP_SNS_DISTANCE_CM[] PROGMEM = "{s} " D_DISTANCE "{m}%d" D_UNIT_CENTIMETER "{e}"; +const char HTTP_SNS_SIGNALSTRENGTH[] PROGMEM = "{s} " D_SIGNALSTRENGTH "{m}%d{e}"; +const char HTTP_SNS_CHIPTEMPERATURE[] PROGMEM = "{s} " D_CHIPTEMPERATURE "{m}%d" D_UNIT_DEGREE D_UNIT_CELSIUS "{e}"; +#endif // USE_WEBSERVER + +void TfmpShow(bool json) +{ + if (json) { + ResponseAppend_P(PSTR(",\"TFmini Plus\":{\"" D_JSON_DISTANCE "\":\"%d\",\"" D_JSON_SIGNALSTRENGTH "\":\"%d\",\"" D_JSON_CHIPTEMPERATURE "\":%d}"), + tfminiplus_sensor.distance, tfminiplus_sensor.sigstrength, tfminiplus_sensor.chiptemp); +#ifdef USE_DOMOTICZ + if (0 == TasmotaGlobal.tele_period) { + DomoticzFloatSensor(DZ_COUNT, tfminiplus_sensor.distance); + } +#endif // USE_DOMOTICZ +#ifdef USE_WEBSERVER + } else { + WSContentSend_P("{s}TFmini Plus"); + WSContentSend_P(HTTP_SNS_DISTANCE_CM, tfminiplus_sensor.distance); + WSContentSend_P(HTTP_SNS_SIGNALSTRENGTH, tfminiplus_sensor.sigstrength); + WSContentSend_P(HTTP_SNS_CHIPTEMPERATURE, tfminiplus_sensor.chiptemp); +#endif // USE_WEBSERVER + } +} + +/*********************************************************************************************\ + * Interface +\*********************************************************************************************/ + +bool Xsns88(byte callback_id) +{ + bool result = false; + switch (callback_id) { + case FUNC_INIT: + TfmpInit(); + break; + case FUNC_EVERY_SECOND: + TfmpTrigger(); + TfmpProcessSerialData(); + result = true; + break; + case FUNC_JSON_APPEND: + TfmpShow(1); + break; +#ifdef USE_WEBSERVER + case FUNC_WEB_SENSOR: + TfmpShow(0); + break; +#endif // USE_WEBSERVER + case FUNC_SAVE_BEFORE_RESTART: + break; + case FUNC_COMMAND: + break; + } + return result; +} +#endif // USE_TFMINIPLUS \ No newline at end of file diff --git a/tools/decode-status.py b/tools/decode-status.py index 4e12be5d5..3f91107e2 100755 --- a/tools/decode-status.py +++ b/tools/decode-status.py @@ -249,7 +249,7 @@ a_features = [[ "USE_BS814A2","USE_SEESAW_SOIL","USE_WIEGAND","USE_NEOPOOL", "USE_TOF10120","USE_SDM72","USE_DISPLAY_TM1637","USE_PROJECTOR_CTRL" ],[ - "","","","", + "USE_TFMINIPLUS","","","", "","","","", "","","","", "","","","", From cc3b0478018b381d8e674dede008c6ede838faab Mon Sep 17 00:00:00 2001 From: RaphDaMan Date: Sat, 20 Mar 2021 16:20:23 +0100 Subject: [PATCH 2/6] Squashed commit of the following: commit ab21a5e25a74a609f4e4ff50e1e723586f28b141 Author: RaphDaMan Date: Sat Mar 20 16:12:11 2021 +0100 v0.8 final with ESP32 build fix. --- tasmota/my_user_config.h | 2 +- tasmota/tasmota_template.h | 3 +++ tasmota/xsns_88_tfminiplus.ino | 9 ++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h index 9716f92f2..10de5d9fc 100644 --- a/tasmota/my_user_config.h +++ b/tasmota/my_user_config.h @@ -699,7 +699,7 @@ // #define USE_PROJECTOR_CTRL_OPTOMA // Use codes for OPTOMA //#define USE_AS608 // Add support for AS608 optical and R503 capacitive fingerprint sensor (+3k code) // #define USE_AS608_MESSAGES // Add verbose error messages (+0k4 code) -//#define USE_TFMINIPLUS // Add suppoer for TFmini Plus (TFmini, TFmini-S) LiDAR modules via UART interface +//#define USE_TFMINIPLUS // Add support for TFmini Plus (TFmini, TFmini-S) LiDAR modules via UART interface (+0k8) // -- Power monitoring sensors -------------------- #define USE_ENERGY_MARGIN_DETECTION // Add support for Energy Margin detection (+1k6 code) diff --git a/tasmota/tasmota_template.h b/tasmota/tasmota_template.h index 69be04616..2fa3882d6 100644 --- a/tasmota/tasmota_template.h +++ b/tasmota/tasmota_template.h @@ -330,7 +330,10 @@ const char kSensorNames[] PROGMEM = D_SENSOR_SSD1351_DC "|" D_SENSOR_XPT2046_CS "|" D_SENSOR_CSE7761_TX "|" D_SENSOR_CSE7761_RX "|" +<<<<<<< HEAD D_SENSOR_VL53L0X_XSHUT "|" +======= +>>>>>>> TFmini+ D_SENSOR_TFMINIPLUS_TX "|" D_SENSOR_TFMINIPLUS_RX "|" ; diff --git a/tasmota/xsns_88_tfminiplus.ino b/tasmota/xsns_88_tfminiplus.ino index 22905ae64..5a7b7e830 100644 --- a/tasmota/xsns_88_tfminiplus.ino +++ b/tasmota/xsns_88_tfminiplus.ino @@ -105,7 +105,8 @@ void TfmpInit(void) { if (PinUsed(GPIO_TFMINIPLUS_RX) && PinUsed(GPIO_TFMINIPLUS_TX)) { - TfmpSerial = new TasmotaSerial(Pin(GPIO_TFMINIPLUS_RX), Pin(GPIO_TFMINIPLUS_TX)); +#ifdef ESP8266 + TfmpSerial = new TasmotaSerial(Pin(GPIO_TFMINIPLUS_RX), Pin(GPIO_TFMINIPLUS_TX), 1); if (TfmpSerial->begin(BAUDRATE)) { if (TfmpSerial->hardwareSerial()) @@ -115,6 +116,12 @@ void TfmpInit(void) tfminiplus_sensor.ready = true; TfmpSerial->flush(); } +#endif // ESP8266 +#ifdef ESP32 + TfmpSerial = new HardwareSerial(2); + TfmpSerial->begin(BAUDRATE, SERIAL_8N1, Pin(GPIO_TFMINIPLUS_RX), Pin(GPIO_TFMINIPLUS_TX)); + TfmpSerial->flush(); +#endif // ESP32 } } } From d8e892a0de4c39f98c8e6a9ca73dc60d44d13553 Mon Sep 17 00:00:00 2001 From: RaphDaMan Date: Sun, 21 Mar 2021 16:16:11 +0100 Subject: [PATCH 3/6] Changes proposed by Theo on PR. --- tasmota/i18n.h | 4 ++-- tasmota/xsns_88_tfminiplus.ino | 16 ++-------------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/tasmota/i18n.h b/tasmota/i18n.h index 841d6e557..13f2c494e 100644 --- a/tasmota/i18n.h +++ b/tasmota/i18n.h @@ -211,8 +211,8 @@ #define D_JSON_IMPORT "Import" #define D_JSON_EXPORT "Export" #define D_JSON_TOTAL_ACTIVE "TotalActive" -#define D_JSON_SIGNALSTRENGTH "Signal Strength" -#define D_JSON_CHIPTEMPERATURE "Chip Temperature" +#define D_JSON_SIGNALSTRENGTH "SignalStrength" +#define D_JSON_CHIPTEMPERATURE "ChipTemperature" #define D_RSLT_ENERGY "ENERGY" #define D_RSLT_HASS_STATE "HASS_STATE" diff --git a/tasmota/xsns_88_tfminiplus.ino b/tasmota/xsns_88_tfminiplus.ino index 5a7b7e830..21be74478 100644 --- a/tasmota/xsns_88_tfminiplus.ino +++ b/tasmota/xsns_88_tfminiplus.ino @@ -92,12 +92,7 @@ struct xsns_88_tfminiplus } tfminiplus_sensor; // Software and hardware serial pointers -#ifdef ESP8266 TasmotaSerial *TfmpSerial = nullptr; -#endif // ESP8266 -#ifdef ESP32 -HardwareSerial *TfmpSerial = nullptr; -#endif // ESP32 void TfmpInit(void) { @@ -105,7 +100,6 @@ void TfmpInit(void) { if (PinUsed(GPIO_TFMINIPLUS_RX) && PinUsed(GPIO_TFMINIPLUS_TX)) { -#ifdef ESP8266 TfmpSerial = new TasmotaSerial(Pin(GPIO_TFMINIPLUS_RX), Pin(GPIO_TFMINIPLUS_TX), 1); if (TfmpSerial->begin(BAUDRATE)) { @@ -116,12 +110,6 @@ void TfmpInit(void) tfminiplus_sensor.ready = true; TfmpSerial->flush(); } -#endif // ESP8266 -#ifdef ESP32 - TfmpSerial = new HardwareSerial(2); - TfmpSerial->begin(BAUDRATE, SERIAL_8N1, Pin(GPIO_TFMINIPLUS_RX), Pin(GPIO_TFMINIPLUS_TX)); - TfmpSerial->flush(); -#endif // ESP32 } } } @@ -170,7 +158,7 @@ void TfmpProcessSerialData (void) while (TfmpSerial->available() > 0) { data = TfmpSerial->read(); - dataReady = addData((char)data); + dataReady = TfmpAddData((char)data); if (dataReady) { TfmpProcessData(); @@ -179,7 +167,7 @@ void TfmpProcessSerialData (void) } } -bool addData(char nextChar) +bool TfmpAddData(char nextChar) { // Buffer position static uint8_t currentIndex = 0; From f6c50e30faee4da7e4f4e60479038279a1b0a1a6 Mon Sep 17 00:00:00 2001 From: RaphDaMan Date: Sun, 21 Mar 2021 19:25:58 +0100 Subject: [PATCH 4/6] Typo correction. --- tasmota/tasmota_configurations_ESP32.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasmota/tasmota_configurations_ESP32.h b/tasmota/tasmota_configurations_ESP32.h index f5d161b38..3fed9cfe2 100644 --- a/tasmota/tasmota_configurations_ESP32.h +++ b/tasmota/tasmota_configurations_ESP32.h @@ -286,7 +286,7 @@ // #define USE_PROJECTOR_CTRL_NEC // Use codes for NEC // #define USE_PROJECTOR_CTRL_OPTOMA // Use codes for OPTOMA //#define USE_AS608 // Add support for AS608 optical and R503 capacitive fingerprint sensor (+3k4 code) -//#define USE_TFMINIPLUS // Add suppoer for TFmini Plus (TFmini, TFmini-S) LiDAR modules via UART interface +//#define USE_TFMINIPLUS // Add support for TFmini Plus (TFmini, TFmini-S) LiDAR modules via UART interface #define USE_ENERGY_SENSOR // Add energy sensors (-14k code) #define USE_PZEM004T // Add support for PZEM004T Energy monitor (+2k code) From 04c0b8d1d737669a8cc172b3757a92da5f686d05 Mon Sep 17 00:00:00 2001 From: RaphDaMan Date: Mon, 22 Mar 2021 21:59:36 +0100 Subject: [PATCH 5/6] Included presence check, changed to XSNS_86 and hopefully solved language file conflicts. --- 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/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 +- ..._tfminiplus.ino => xsns_86_tfminiplus.ino} | 50 ++++++++++--------- 26 files changed, 52 insertions(+), 48 deletions(-) rename tasmota/{xsns_88_tfminiplus.ino => xsns_86_tfminiplus.ino} (90%) diff --git a/tasmota/language/af_AF.h b/tasmota/language/af_AF.h index ada14a2d1..887bd73b5 100644 --- a/tasmota/language/af_AF.h +++ b/tasmota/language/af_AF.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Stroom L1+L2+L3" #define D_SpL1L2L3 "Spanning L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h index 649e00e24..e966f0662 100644 --- a/tasmota/language/bg_BG.h +++ b/tasmota/language/bg_BG.h @@ -584,7 +584,7 @@ #define D_StL1L2L3 "Ток L1+L2+L3" #define D_SpL1L2L3 "Напрежение L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h index acd29ff2d..30c91935f 100644 --- a/tasmota/language/cs_CZ.h +++ b/tasmota/language/cs_CZ.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h index 40afbd61d..7fd63790f 100644 --- a/tasmota/language/de_DE.h +++ b/tasmota/language/de_DE.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Ströme L1+L2+L3" #define D_SpL1L2L3 "Spannung L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signalstärke" #define D_CHIPTEMPERATURE "Chip Temperatur" diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h index d4e8b1bc5..7db3f5f25 100644 --- a/tasmota/language/el_GR.h +++ b/tasmota/language/el_GR.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h index 3dab7a2ba..260b5281f 100644 --- a/tasmota/language/en_GB.h +++ b/tasmota/language/en_GB.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h index c8b3be4c0..ed5d32f31 100644 --- a/tasmota/language/es_ES.h +++ b/tasmota/language/es_ES.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Corriente L1+L2+L3" #define D_SpL1L2L3 "Voltaje L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/fy_NL.h b/tasmota/language/fy_NL.h index 923664689..f0d9ea77a 100644 --- a/tasmota/language/fy_NL.h +++ b/tasmota/language/fy_NL.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Streame L1+L2+L3" #define D_SpL1L2L3 "Foltaazje L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h index d3a7f7fe9..04866263f 100644 --- a/tasmota/language/he_HE.h +++ b/tasmota/language/he_HE.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h index 68185612f..a18f61cea 100644 --- a/tasmota/language/hu_HU.h +++ b/tasmota/language/hu_HU.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Áramerősség L1+L2+L3" #define D_SpL1L2L3 "Feszültség L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h index 540f5e007..58cde05d8 100644 --- a/tasmota/language/it_IT.h +++ b/tasmota/language/it_IT.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Corrente L1+L2+L3" #define D_SpL1L2L3 "Tensione L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h index 0ed01d5b4..07218d28e 100644 --- a/tasmota/language/ko_KO.h +++ b/tasmota/language/ko_KO.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h index 1c46cd6d6..69b33210e 100644 --- a/tasmota/language/nl_NL.h +++ b/tasmota/language/nl_NL.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Stroom L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h index a0d24bd77..86f2bb96c 100644 --- a/tasmota/language/pl_PL.h +++ b/tasmota/language/pl_PL.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Prąd suma" #define D_SpL1L2L3 "Prąd średni" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h index c9ebccf8b..a2190b65a 100644 --- a/tasmota/language/pt_BR.h +++ b/tasmota/language/pt_BR.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h index c897c9208..e56c35c85 100644 --- a/tasmota/language/pt_PT.h +++ b/tasmota/language/pt_PT.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Corrente F1+F2+F3" #define D_SpL1L2L3 "Tensão F1+F2+F3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h index 742665707..93f56aaf8 100644 --- a/tasmota/language/ro_RO.h +++ b/tasmota/language/ro_RO.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h index 678bfa859..41eb8b22a 100644 --- a/tasmota/language/ru_RU.h +++ b/tasmota/language/ru_RU.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h index 6f09c0444..5ddd6216f 100644 --- a/tasmota/language/sk_SK.h +++ b/tasmota/language/sk_SK.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h index df5ed9f0f..6858db33d 100644 --- a/tasmota/language/sv_SE.h +++ b/tasmota/language/sv_SE.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h index 4d83cc49e..d9b98f878 100644 --- a/tasmota/language/tr_TR.h +++ b/tasmota/language/tr_TR.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h index b49d5e6b5..b47c1543d 100644 --- a/tasmota/language/uk_UA.h +++ b/tasmota/language/uk_UA.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/vi_VN.h b/tasmota/language/vi_VN.h index d309431f1..6d12d62a2 100644 --- a/tasmota/language/vi_VN.h +++ b/tasmota/language/vi_VN.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Dòng L1+L2+L3" #define D_SpL1L2L3 "Điện áp L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h index 4b0554dda..7cfc79ac8 100644 --- a/tasmota/language/zh_CN.h +++ b/tasmota/language/zh_CN.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h index 4ec8a94dd..3498ec214 100644 --- a/tasmota/language/zh_TW.h +++ b/tasmota/language/zh_TW.h @@ -585,7 +585,7 @@ #define D_StL1L2L3 "Current L1+L2+L3" #define D_SpL1L2L3 "Voltage L1+L2+L3/3" -// xsns_88_tfminiplus.ino +// xsns_86_tfminiplus.ino #define D_SIGNALSTRENGTH "Signal Strength" #define D_CHIPTEMPERATURE "Chip Temperature" diff --git a/tasmota/xsns_88_tfminiplus.ino b/tasmota/xsns_86_tfminiplus.ino similarity index 90% rename from tasmota/xsns_88_tfminiplus.ino rename to tasmota/xsns_86_tfminiplus.ino index 21be74478..341f097a0 100644 --- a/tasmota/xsns_88_tfminiplus.ino +++ b/tasmota/xsns_86_tfminiplus.ino @@ -1,5 +1,5 @@ /* - xsns_88_tfminiplus.ino - TFmini Plus interface for Tasmota + xsns_86_tfminiplus.ino - TFmini Plus interface for Tasmota Created by Raphael Breiting on 12.11.2020. @@ -68,7 +68,7 @@ #include // Define driver ID -#define XSNS_88 88 +#define XSNS_86 86 // Use special no wait serial driver, should be always on #ifndef ESP32 @@ -83,7 +83,7 @@ char Tfmp_buffer[TFMP_MAX_DATA_LEN + 1]; -struct xsns_88_tfminiplus +struct xsns_86_tfminiplus { bool ready = false; uint16_t distance = 0; @@ -216,30 +216,34 @@ void TfmpShow(bool json) * Interface \*********************************************************************************************/ -bool Xsns88(byte callback_id) +bool Xsns86(byte callback_id) { bool result = false; - switch (callback_id) { - case FUNC_INIT: - TfmpInit(); - break; - case FUNC_EVERY_SECOND: - TfmpTrigger(); - TfmpProcessSerialData(); - result = true; - break; - case FUNC_JSON_APPEND: - TfmpShow(1); - break; + if (FUNC_INIT == callback_id) + { + TfmpInit(); + } + else if (TfmpSerial && tfminiplus_sensor.ready) + { + switch (callback_id) { + case FUNC_EVERY_SECOND: + TfmpTrigger(); + TfmpProcessSerialData(); + result = true; + break; + case FUNC_JSON_APPEND: + TfmpShow(1); + break; #ifdef USE_WEBSERVER - case FUNC_WEB_SENSOR: - TfmpShow(0); - break; + case FUNC_WEB_SENSOR: + TfmpShow(0); + break; #endif // USE_WEBSERVER - case FUNC_SAVE_BEFORE_RESTART: - break; - case FUNC_COMMAND: - break; + case FUNC_SAVE_BEFORE_RESTART: + break; + case FUNC_COMMAND: + break; + } } return result; } From f65f816fcab163be6501b3f99d3801e6562a5bf5 Mon Sep 17 00:00:00 2001 From: Raphael <53603025+RaphDaMan@users.noreply.github.com> Date: Tue, 23 Mar 2021 09:11:46 +0100 Subject: [PATCH 6/6] Merge issue --- tasmota/tasmota_template.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tasmota/tasmota_template.h b/tasmota/tasmota_template.h index 8971e7482..fa937ad05 100644 --- a/tasmota/tasmota_template.h +++ b/tasmota/tasmota_template.h @@ -331,15 +331,9 @@ const char kSensorNames[] PROGMEM = D_SENSOR_SSD1351_DC "|" D_SENSOR_XPT2046_CS "|" D_SENSOR_CSE7761_TX "|" D_SENSOR_CSE7761_RX "|" -<<<<<<< HEAD D_SENSOR_VL53L0X_XSHUT "|" -<<<<<<< HEAD -======= ->>>>>>> TFmini+ D_SENSOR_TFMINIPLUS_TX "|" D_SENSOR_TFMINIPLUS_RX "|" -======= D_SENSOR_MAX7219_CLK "|" D_SENSOR_MAX7219_DIN "|" D_SENSOR_MAX7219_CS "|" ->>>>>>> upstream/development ; const char kSensorNamesFixed[] PROGMEM =