Merge pull request #10892 from curzon01/sdm72

Add SDM72 Modbus energy meter
This commit is contained in:
Theo Arends 2021-02-10 14:19:10 +01:00 committed by GitHub
commit be08ac5a33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 377 additions and 40 deletions

View File

@ -67,6 +67,7 @@
| USE_PZEM_AC | - | - | x | x | x | - | - |
| USE_PZEM_DC | - | - | x | x | x | - | - |
| USE_MCP39F501 | - | x | x | x | x | - | - |
| USE_SDM72 | - | - | - | - | x | - | - |
| USE_SDM120 | - | - | - | - | x | - | - |
| USE_SDM630 | - | - | - | - | x | - | - |
| USE_DDS2382 | - | - | - | - | x | - | - |

View File

@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file.
## [Unreleased] - Development
## [9.2.0.6]
### Added
- Support for Eastron SDM72D-M three phase 100A Modbus energy meter (#10862)
### Changed
- Removed migration support for versions before v8.1.0 (Doris)
- ESP32 Increase number of switch GPIOs from 8 to 28

View File

@ -73,6 +73,7 @@
#define D_JSON_EXPORT "Export"
#define D_JSON_EXPORT_ACTIVE "ExportActive"
#define D_JSON_EXPORT_REACTIVE "ExportReactive"
#define D_JSON_EXPORT_POWER "ExportPower"
#define D_JSON_FAILED "Failed"
#define D_JSON_FALLBACKTOPIC "FallbackTopic"
#define D_JSON_FEATURES "Features"
@ -99,6 +100,7 @@
#define D_JSON_ID "Id"
#define D_JSON_ILLUMINANCE "Illuminance"
#define D_JSON_IMPORT_ACTIVE "ImportActive"
#define D_JSON_IMPORT_POWER "ImportPower"
#define D_JSON_IMPORT_REACTIVE "ImportReactive"
#define D_JSON_INFRARED "Infrared"
#define D_JSON_UNKNOWN "Unknown"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Uitvoer krag"
#define D_IMPORT_POWER "Invoer krag"
#define D_PHASE_ANGLE "Fasehoek"
#define D_IMPORT_ACTIVE "Invoer aktief"
#define D_EXPORT_ACTIVE "Uitvoer aktief"

View File

@ -629,6 +629,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -833,7 +835,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Фазов ъгъл"
#define D_IMPORT_ACTIVE "Входна активна мощност"
#define D_EXPORT_ACTIVE "Изходна активна мощност"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Phase Angle"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Exportiere Leistung"
#define D_IMPORT_POWER "Importiere Leistung"
#define D_PHASE_ANGLE "Phasenwinkel"
#define D_IMPORT_ACTIVE "Importiere Wirk"
#define D_EXPORT_ACTIVE "Exportiere Wirk"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Phase Angle"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Phase Angle"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Ángulo de Fase"
#define D_IMPORT_ACTIVE "P. Activa Entrante"
#define D_EXPORT_ACTIVE "P. Activa Saliente"

View File

@ -626,6 +626,8 @@
#define D_SENSOR_SBR_TX "SerBr TX"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 TX"
#define D_SENSOR_SDM120_RX "SDMx20 RX"
#define D_SENSOR_SDM630_TX "SDM630 TX"
@ -829,7 +831,9 @@
#define D_UNIT_WATT "W"
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Angle de phase"
#define D_IMPORT_ACTIVE "Énergie act conso"
#define D_EXPORT_ACTIVE "Énergie act fournie"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Eksportearje krêft"
#define D_IMPORT_POWER "Ymportearje krêft"
#define D_PHASE_ANGLE "Faze hoeke"
#define D_IMPORT_ACTIVE "Ymportearje echt"
#define D_EXPORT_ACTIVE "Eksportearje echt"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Phase Angle"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Fázisszög"
#define D_IMPORT_ACTIVE "Bejövő aktív"
#define D_EXPORT_ACTIVE "Kimenő aktív"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr - TX"
#define D_SENSOR_SR04_TRIG "SR04 Tri - TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech - RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 - TX"
#define D_SENSOR_SDM120_RX "SDMx20 - RX"
#define D_SENSOR_SDM630_TX "SDM630 - TX"
@ -833,7 +835,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Potenza esportata"
#define D_IMPORT_POWER "Potenza importata"
#define D_PHASE_ANGLE "Angolo Fase"
#define D_IMPORT_ACTIVE "Potenza attiva importata"
#define D_EXPORT_ACTIVE "Potenza attiva esportata"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Phase Angle"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export vermogen"
#define D_IMPORT_POWER "Import vermogen"
#define D_PHASE_ANGLE "Fase hoek"
#define D_IMPORT_ACTIVE "Import werkelijk"
#define D_EXPORT_ACTIVE "Export werkelijk"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Przesunięcie faz"
#define D_IMPORT_ACTIVE "Czynna pobrana"
#define D_EXPORT_ACTIVE "Czynna oddana"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "W/h"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Ângulo de Fase"
#define D_IMPORT_ACTIVE "Importar Ativo"
#define D_EXPORT_ACTIVE "Exportar Ativo"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Ângulo de fase"
#define D_IMPORT_ACTIVE "Ativo importado"
#define D_EXPORT_ACTIVE "Ativo exportado"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Unghi de fază"
#define D_IMPORT_ACTIVE "Import Activ"
#define D_EXPORT_ACTIVE "Export Activ"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "ВтЧ"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Угол фазы"
#define D_IMPORT_ACTIVE "Импорт активной мощности"
#define D_EXPORT_ACTIVE "Экспорт активной мощности"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Phase Angle"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Fasvinkel"
#define D_IMPORT_ACTIVE "Import aktiv"
#define D_EXPORT_ACTIVE "Export aktiv"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Phase Angle"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Вт/г"
#define D_UNIT_WATT_METER_QUADRAT "Вт/м²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Кут фази"
#define D_IMPORT_ACTIVE "Активна вхід"
#define D_EXPORT_ACTIVE "Активна вихід"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "Wh"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "Góc pha"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "瓦时"
#define D_UNIT_WATT_METER_QUADRAT "瓦/平米"
//SDM220, SDM120, LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "相位角"
#define D_IMPORT_ACTIVE "有功输入"
#define D_EXPORT_ACTIVE "有功输出"

View File

@ -630,6 +630,8 @@
#define D_SENSOR_SBR_TX "SerBr Tx"
#define D_SENSOR_SR04_TRIG "SR04 Tri/TX"
#define D_SENSOR_SR04_ECHO "SR04 Ech/RX"
#define D_SENSOR_SDM72_TX "SDM72 Tx"
#define D_SENSOR_SDM72_RX "SDM72 Rx"
#define D_SENSOR_SDM120_TX "SDMx20 Tx"
#define D_SENSOR_SDM120_RX "SDMx20 Rx"
#define D_SENSOR_SDM630_TX "SDM630 Tx"
@ -834,7 +836,9 @@
#define D_UNIT_WATTHOUR "瓦小時"
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
//SDM220、 SDM120、 LE01MR
//SDM220, SDM120, SDM72, LE01MR
#define D_EXPORT_POWER "Export Power"
#define D_IMPORT_POWER "Import Power"
#define D_PHASE_ANGLE "相量(Phase Angle)"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"

View File

@ -682,6 +682,9 @@
#define USE_PZEM_AC // Add support for PZEM014,016 Energy monitor (+1k1 code)
#define USE_PZEM_DC // Add support for PZEM003,017 Energy monitor (+1k1 code)
#define USE_MCP39F501 // Add support for MCP39F501 Energy monitor as used in Shelly 2 (+3k1 code)
//#define USE_SDM72 // Add support for Eastron SDM72-Modbus energy monitor (+0k3 code)
#define SDM72_SPEED 9600 // SDM72-Modbus RS485 serial speed (default: 9600 baud)
// #define SDM72_IMPEXP // Show additonal import/export active energy and power in MQTT and Web (+0k5 code)
//#define USE_SDM120 // Add support for Eastron SDM120-Modbus energy monitor (+1k1 code)
#define SDM120_SPEED 2400 // SDM120-Modbus RS485 serial speed (default: 2400 baud)
//#define USE_SDM630 // Add support for Eastron SDM630-Modbus energy monitor (+0k6 code)

View File

@ -712,7 +712,9 @@ void ResponseAppendFeatures(void)
#if defined(USE_I2C) && defined(USE_TOF10120)
feature7 |= 0x10000000; // xsns_84_tof10120
#endif
// feature7 |= 0x20000000;
#if defined(USE_ENERGY_SENSOR) && defined(USE_SDM72)
feature7 |= 0x20000000; // xnrg_18_sdm72.ino
#endif
// feature7 |= 0x40000000;
// feature7 |= 0x80000000;
}

View File

@ -185,6 +185,7 @@
#define USE_PZEM_AC // Add support for PZEM014,016 Energy monitor (+1k1 code)
#define USE_PZEM_DC // Add support for PZEM003,017 Energy monitor (+1k1 code)
#define USE_MCP39F501 // Add support for MCP39F501 Energy monitor as used in Shelly 2 (+3k1 code)
#define USE_SDM72 // Add support for Eastron SDM72-Modbus energy monitor (+0k3 code)
#define USE_SDM120 // Add support for Eastron SDM120-Modbus energy monitor (+1k1 code)
#define USE_SDM630 // Add support for Eastron SDM630-Modbus energy monitor (+0k6 code)
#define USE_DDS2382 // Add support for Hiking DDS2382 Modbus energy monitor (+0k6 code)
@ -287,6 +288,7 @@
#undef USE_PZEM_AC // Disable PZEM014,016 Energy monitor
#undef USE_PZEM_DC // Disable PZEM003,017 Energy monitor
#undef USE_MCP39F501 // Disable MCP39F501 Energy monitor as used in Shelly 2
#undef USE_SDM72 // Disable support for Eastron SDM72-Modbus energy meter
#undef USE_SDM120 // Disable support for Eastron SDM120-Modbus energy meter
#undef USE_SDM630 // Disable support for Eastron SDM630-Modbus energy monitor (+0k6 code)
#undef USE_DDS2382 // Disable support for Hiking DDS2382 Modbus energy monitor (+0k6 code)
@ -388,6 +390,7 @@
#undef USE_PZEM_AC // Disable PZEM014,016 Energy monitor
#undef USE_PZEM_DC // Disable PZEM003,017 Energy monitor
#undef USE_MCP39F501 // Disable MCP39F501 Energy monitor as used in Shelly 2
#undef USE_SDM72 // Disable support for Eastron SDM72-Modbus energy meter
#undef USE_SDM120 // Disable support for Eastron SDM120-Modbus energy meter
#undef USE_SDM630 // Disable support for Eastron SDM630-Modbus energy monitor (+0k6 code)
#undef USE_DDS2382 // Disable support for Hiking DDS2382 Modbus energy monitor (+0k6 code)
@ -563,6 +566,7 @@
#undef USE_PZEM_AC // Disable PZEM014,016 Energy monitor
#undef USE_PZEM_DC // Disable PZEM003,017 Energy monitor
#undef USE_MCP39F501 // Disable MCP39F501 Energy monitor as used in Shelly 2
#undef USE_SDM72 // Disable support for Eastron SDM72-Modbus energy meter
#undef USE_SDM120 // Disable support for Eastron SDM120-Modbus energy meter
#undef USE_SDM630 // Disable support for Eastron SDM630-Modbus energy monitor (+0k6 code)
#undef USE_DDS2382 // Disable support for Hiking DDS2382 Modbus energy monitor (+0k6 code)
@ -700,6 +704,7 @@
#undef USE_PZEM_AC // Disable PZEM014,016 Energy monitor
#undef USE_PZEM_DC // Disable PZEM003,017 Energy monitor
//#undef USE_MCP39F501 // Disable MCP39F501 Energy monitor as used in Shelly 2
#undef USE_SDM72 // Disable support for Eastron SDM72-Modbus energy meter
#undef USE_SDM120 // Disable support for Eastron SDM120-Modbus energy meter
#undef USE_SDM630 // Disable support for Eastron SDM630-Modbus energy monitor (+0k6 code)
#undef USE_DDS2382 // Disable support for Hiking DDS2382 Modbus energy monitor (+0k6 code)
@ -841,6 +846,7 @@
#undef USE_PZEM_AC // Disable PZEM014,016 Energy monitor
#undef USE_PZEM_DC // Disable PZEM003,017 Energy monitor
#undef USE_MCP39F501 // Disable MCP39F501 Energy monitor as used in Shelly 2
#undef USE_SDM72 // Disable support for Eastron SDM72-Modbus energy meter
#undef USE_SDM120 // Disable support for Eastron SDM120-Modbus energy meter
#undef USE_SDM630 // Disable support for Eastron SDM630-Modbus energy monitor (+0k6 code)
#undef USE_DDS2382 // Disable support for Hiking DDS2382 Modbus energy monitor (+0k6 code)

View File

@ -148,6 +148,7 @@ enum UserSelectablePins {
GPIO_BS814_CLK, GPIO_BS814_DAT, // Holtek BS814A2 touch ctrlr
GPIO_WIEGAND_D0, GPIO_WIEGAND_D1, // Wiegand Data lines
GPIO_NEOPOOL_TX, GPIO_NEOPOOL_RX, // Sugar Valley RS485 interface
GPIO_SDM72_TX, GPIO_SDM72_RX, // SDM72 Serial interface
GPIO_SENSOR_END };
enum ProgramSelectablePins {
@ -316,6 +317,7 @@ const char kSensorNames[] PROGMEM =
D_SENSOR_BS814_CLK "|" D_SENSOR_BS814_DAT "|"
D_SENSOR_WIEGAND_D0 "|" D_SENSOR_WIEGAND_D1 "|"
D_SENSOR_NEOPOOL_TX "|" D_SENSOR_NEOPOOL_RX "|"
D_SENSOR_SDM72_TX "|" D_SENSOR_SDM72_RX "|"
;
const char kSensorNamesFixed[] PROGMEM =
@ -605,6 +607,10 @@ const uint16_t kGpioNiceList[] PROGMEM = {
AGPIO(GPIO_WE517_TX), // WE517 Serial interface
AGPIO(GPIO_WE517_RX), // WE517 Serial interface
#endif
#ifdef USE_SDM72
AGPIO(GPIO_SDM72_TX), // SDM72 Serial interface
AGPIO(GPIO_SDM72_RX), // SDM72 Serial interface
#endif
#endif // USE_ENERGY_SENSOR
/*-------------------------------------------------------------------------------------------*\

View File

@ -80,9 +80,9 @@ struct ENERGY {
float power_factor[3] = { NAN, NAN, NAN }; // 0.12
float frequency[3] = { NAN, NAN, NAN }; // 123.1 Hz
#ifdef SDM630_IMPORT
#if defined(SDM630_IMPORT) || defined(SDM72_IMPEXP)
float import_active[3] = { NAN, NAN, NAN }; // 123.123 kWh
#endif // SDM630_IMPORT
#endif // SDM630_IMPORT || SDM72_IMPEXP
float export_active[3] = { NAN, NAN, NAN }; // 123.123 kWh
float start_energy = 0; // 12345.12345 kWh total previous
@ -919,10 +919,10 @@ const char HTTP_ENERGY_SNS2[] PROGMEM =
const char HTTP_ENERGY_SNS3[] PROGMEM =
"{s}" D_EXPORT_ACTIVE "{m}%s " D_UNIT_KILOWATTHOUR "{e}";
#ifdef SDM630_IMPORT
#if defined(SDM630_IMPORT) || defined(SDM72_IMPEXP)
const char HTTP_ENERGY_SNS4[] PROGMEM =
"{s}" D_IMPORT_ACTIVE "{m}%s " D_UNIT_KILOWATTHOUR "{e}";
#endif // SDM630_IMPORT
#endif // SDM630_IMPORT || SDM72_IMPEXP
#endif // USE_WEBSERVER
void EnergyShow(bool json)
@ -987,17 +987,17 @@ void EnergyShow(bool json)
char voltage_chr[Energy.phase_count][FLOATSZ];
char current_chr[Energy.phase_count][FLOATSZ];
char active_power_chr[Energy.phase_count][FLOATSZ];
#ifdef SDM630_IMPORT
#if defined(SDM630_IMPORT) || defined(SDM72_IMPEXP)
char import_active_chr[Energy.phase_count][FLOATSZ];
#endif // SDM630_IMPORT
#endif // SDM630_IMPORT || SDM72_IMPEXP
char export_active_chr[Energy.phase_count][FLOATSZ];
for (uint32_t i = 0; i < Energy.phase_count; i++) {
dtostrfd(Energy.voltage[i], Settings.flag2.voltage_resolution, voltage_chr[i]);
dtostrfd(Energy.current[i], Settings.flag2.current_resolution, current_chr[i]);
dtostrfd(Energy.active_power[i], Settings.flag2.wattage_resolution, active_power_chr[i]);
#ifdef SDM630_IMPORT
#if defined(SDM630_IMPORT) || defined(SDM72_IMPEXP)
dtostrfd(Energy.import_active[i], Settings.flag2.energy_resolution, import_active_chr[i]);
#endif // SDM630_IMPORT
#endif // SDM630_IMPORT || SDM72_IMPEXP
dtostrfd(Energy.export_active[i], Settings.flag2.energy_resolution, export_active_chr[i]);
}
@ -1040,7 +1040,7 @@ void EnergyShow(bool json)
energy_yesterday_chr,
energy_daily_chr);
#ifdef SDM630_IMPORT
#if defined(SDM630_IMPORT) || defined(SDM72_IMPEXP)
if (!isnan(Energy.import_active[0])) {
ResponseAppend_P(PSTR(",\"" D_JSON_IMPORT_ACTIVE "\":%s"),
EnergyFormat(value_chr, import_active_chr[0], json));
@ -1049,7 +1049,7 @@ void EnergyShow(bool json)
EnergyFormatIndex(value_chr, energy_return_chr[0], json, 2));
}
}
#endif // SDM630_IMPORT
#endif // SDM630_IMPORT || SDM72_IMPEXP
if (!isnan(Energy.export_active[0])) {
ResponseAppend_P(PSTR(",\"" D_JSON_EXPORT_ACTIVE "\":%s"),
@ -1152,11 +1152,11 @@ void EnergyShow(bool json)
if (!isnan(Energy.export_active[0])) {
WSContentSend_PD(HTTP_ENERGY_SNS3, EnergyFormat(value_chr, export_active_chr[0], json));
}
#ifdef SDM630_IMPORT
#if defined(SDM630_IMPORT) || defined(SDM72_IMPEXP)
if (!isnan(Energy.import_active[0])) {
WSContentSend_PD(HTTP_ENERGY_SNS4, EnergyFormat(value_chr, import_active_chr[0], json));
}
#endif // SDM630_IMPORT
#endif // SDM630_IMPORT || SDM72_IMPEXP
XnrgCall(FUNC_WEB_SENSOR);
#endif // USE_WEBSERVER

210
tasmota/xnrg_18_sdm72.ino Normal file
View File

@ -0,0 +1,210 @@
/*
xnrg_18_sdm72.ino - Eastron SDM72D-M Modbus energy meter support for Tasmota
Copyright (C) 2021 Gennaro Tortone, Theo Arends and Norbert Richter
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 <http://www.gnu.org/licenses/>.
*/
#ifdef USE_ENERGY_SENSOR
#ifdef USE_SDM72
/*********************************************************************************************\
* Eastron SDM72 Modbus energy meter
\*********************************************************************************************/
#define XNRG_18 18
// can be user defined in my_user_config.h
#ifndef SDM72_SPEED
#define SDM72_SPEED 9600 // default SDM72 Modbus address
#endif
// can be user defined in my_user_config.h
#ifndef SDM72_ADDR
#define SDM72_ADDR 1 // default SDM72 Modbus address
#endif
#include <TasmotaModbus.h>
TasmotaModbus *Sdm72Modbus;
const uint16_t sdm72_register[] {
0x0034, // 0 SDM72D_POWER [W]
0x0156, // 3 SDM72D_TOTAL_ACTIVE [kWh]
#ifdef SDM72_IMPEXP
0x0500, // 1 SDM72D_IMPORT_POWER [W]
0x0502, // 2 SDM72D_EXPORT_POWER [W]
0x0048, // 4 SDM72D_IMPORT_ACTIVE [kWh]
0x004A // 5 SDM72D_EXPORT_ACTIVE [kWh]
#endif // SDM72_IMPEXP
};
struct SDM72 {
float total_active = NAN;
#ifdef SDM72_IMPEXP
float import_power = 0;
float export_power = 0;
float import_active = 0;
#endif // SDM72_IMPEXP
uint8_t read_state = 0;
uint8_t send_retry = 0;
} Sdm72;
/*********************************************************************************************/
void Sdm72Every250ms(void)
{
bool data_ready = Sdm72Modbus->ReceiveReady();
if (data_ready) {
uint8_t buffer[14]; // At least 5 + (2 * 2) = 9
uint32_t error = Sdm72Modbus->ReceiveBuffer(buffer, 2);
AddLogBuffer(LOG_LEVEL_DEBUG_MORE, buffer, Sdm72Modbus->ReceiveCount());
if (error) {
AddLog(LOG_LEVEL_DEBUG, PSTR("SDM: SDM72 error %d"), error);
} else {
Energy.data_valid[0] = 0;
float value;
((uint8_t*)&value)[3] = buffer[3]; // Get float values
((uint8_t*)&value)[2] = buffer[4];
((uint8_t*)&value)[1] = buffer[5];
((uint8_t*)&value)[0] = buffer[6];
switch(Sdm72.read_state) {
case 0:
Energy.active_power[0] = value; // W
break;
case 1:
Sdm72.total_active = value; // kWh
break;
#ifdef SDM72_IMPEXP
case 2:
Sdm72.import_power = value; // W
break;
case 3:
Sdm72.export_power = value; // W
break;
case 4:
Energy.import_active[0] = value; // kWh
break;
case 5:
Energy.export_active[0] = value; // kWh
break;
#endif // SDM72_IMPEXP
}
++Sdm72.read_state %= ARRAY_SIZE(sdm72_register);
if (0 == Sdm72.read_state && !isnan(Sdm72.total_active)) {
EnergyUpdateTotal(Sdm72.total_active, true);
}
}
} // end data ready
if (0 == Sdm72.send_retry || data_ready) {
Sdm72.send_retry = 5;
Sdm72Modbus->Send(SDM72_ADDR, 0x04, sdm72_register[Sdm72.read_state], 2);
} else {
Sdm72.send_retry--;
}
}
void Sdm72SnsInit(void)
{
Sdm72Modbus = new TasmotaModbus(Pin(GPIO_SDM72_RX), Pin(GPIO_SDM72_TX));
uint8_t result = Sdm72Modbus->Begin(SDM72_SPEED);
if (result) {
if (2 == result) {
ClaimSerial();
}
} else {
TasmotaGlobal.energy_driver = ENERGY_NONE;
}
}
void Sdm72DrvInit(void)
{
if (PinUsed(GPIO_SDM72_RX) && PinUsed(GPIO_SDM72_TX)) {
Energy.voltage_available = false;
Energy.current_available = false;
TasmotaGlobal.energy_driver = XNRG_18;
}
}
#ifdef USE_WEBSERVER
#ifdef SDM72_IMPEXP
const char HTTP_ENERGY_SDM72[] PROGMEM =
"{s}" D_EXPORT_POWER "{m}%*_f " D_UNIT_WATT "{e}"
"{s}" D_IMPORT_POWER "{m}%*_f " D_UNIT_WATT "{e}";
#endif // SDM72_IMPEXP
#endif // USE_WEBSERVER
void Sdm72Show(bool json)
{
if (isnan(Sdm72.total_active)) { return; }
if (json) {
#ifdef SDM72_IMPEXP
ResponseAppend_P(PSTR(",\"" D_JSON_EXPORT_POWER "\":%*_f,\"" D_JSON_IMPORT_POWER "\":%*_f"),
Settings.flag2.wattage_resolution, &Sdm72.export_power,
Settings.flag2.wattage_resolution, &Sdm72.import_power);
#endif // SDM72_IMPEXP
#ifdef USE_WEBSERVER
} else {
#ifdef SDM72_IMPEXP
WSContentSend_PD(HTTP_ENERGY_SDM72,
Settings.flag2.wattage_resolution, &Sdm72.export_power,
Settings.flag2.wattage_resolution, &Sdm72.import_power);
#endif // SDM72_IMPEXP
#endif // USE_WEBSERVER
}
}
/*********************************************************************************************\
* Interface
\*********************************************************************************************/
bool Xnrg18(uint8_t function)
{
bool result = false;
switch (function) {
case FUNC_EVERY_250_MSECOND:
Sdm72Every250ms();
break;
case FUNC_JSON_APPEND:
Sdm72Show(1);
break;
#ifdef USE_WEBSERVER
case FUNC_WEB_SENSOR:
Sdm72Show(0);
break;
#endif // USE_WEBSERVER
case FUNC_INIT:
Sdm72SnsInit();
break;
case FUNC_PRE_INIT:
Sdm72DrvInit();
break;
}
return result;
}
#endif // USE_SDM72
#endif // USE_ENERGY_SENSOR

View File

@ -245,7 +245,7 @@ a_features = [[
"USE_DISPLAY_ILI9488","USE_DISPLAY_SSD1351","USE_DISPLAY_RA8876","USE_DISPLAY_ST7789",
"USE_DISPLAY_SSD1331","USE_UFILESYS","USE_TIMEPROP","USE_PID",
"USE_BS814A2","USE_SEESAW_SOIL","USE_WIEGAND","USE_NEOPOOL",
"USE_TOF10120","","",""
"USE_TOF10120","USE_SDM72","",""
],[
"","","","",
"","","","",