mirror of https://github.com/arendst/Tasmota.git
Updated Smart Meter Interface (markdown)
parent
e62795db13
commit
b981f01177
|
@ -7,11 +7,12 @@ components in the Tasmota Template or Module. If the interface detects that a me
|
||||||
|
|
||||||
The Smart Meter Interface provides a means to connect many kinds of meters to Tasmota. **The following types of meter protocols are supported:**
|
The Smart Meter Interface provides a means to connect many kinds of meters to Tasmota. **The following types of meter protocols are supported:**
|
||||||
- ASCII OBIS telegrams emitted from many smart meters and also from P1 meter interface
|
- ASCII OBIS telegrams emitted from many smart meters and also from P1 meter interface
|
||||||
- binary SML OBIS telegram emitted from many smart meters
|
- Binary SML OBIS telegram emitted from many smart meters
|
||||||
- binary EBUS telegram emitted by many heaters and heat pumps (e.g., Vaillant, Wolf)
|
- Binary EBUS telegram emitted by many heaters and heat pumps (e.g., Vaillant, Wolf)
|
||||||
- binary MODBUS telegram used by many power meters
|
- Binary MODBUS telegram used by many power meters
|
||||||
- binary RAW telegram decodes all kinds of binary data eg EMS heater bus
|
- Binary RAW telegram decodes all kinds of binary data eg EMS heater bus
|
||||||
- counter interface (uses Tasmota counter storage) for e.g., reed contacts either in polling or IRQ mode
|
- Counter interface (uses Tasmota counter storage) for e.g., reed contacts either in polling or IRQ mode
|
||||||
|
- PZEM-004T (v1) ASCII
|
||||||
|
|
||||||
There are many different meters that use the same protocol. There are multitudes of variants and use cases. A meter can be defined by using compilation time `#define` pragmas. This requires recompiling the firmware to make modifications.
|
There are many different meters that use the same protocol. There are multitudes of variants and use cases. A meter can be defined by using compilation time `#define` pragmas. This requires recompiling the firmware to make modifications.
|
||||||
|
|
||||||
|
@ -33,18 +34,18 @@ Declare a script `>M` section with the number of connected meters (n = `1..5`)
|
||||||
- `<M>` - meter number
|
- `<M>` - meter number
|
||||||
- `<rxGPIO>` - meter data receive GPIO
|
- `<rxGPIO>` - meter data receive GPIO
|
||||||
- `<type>` - meter type of meter
|
- `<type>` - meter type of meter
|
||||||
- `o`=obis ASCII type of coding
|
- `o` = OBIS ASCII type of coding
|
||||||
- `s`=sml binary smart message coding
|
- `s` = SML binary smart message coding
|
||||||
- `c`=counter type
|
- `c` = Counter type
|
||||||
- `e`=ebus binary coding
|
- `e` = EBus binary coding
|
||||||
- `m`=modbus binary coding
|
- `m` = MODBus binary coding
|
||||||
- `p` = PZEM
|
- `p` = PZEM
|
||||||
- `r`=raw binary coding (any binary telegram)
|
- `r` = Raw binary coding (any binary telegram)
|
||||||
- `<flag>` - counter flag
|
- `<flag>` - counter flag
|
||||||
- 0=without pullup
|
- 0=without pullup
|
||||||
- 1=with pullup
|
- 1=with pullup
|
||||||
- `<parameter>` - parameters according to meter type
|
- `<parameter>` - parameters according to meter type
|
||||||
- for `o,s,e,m,r`: serial baud rate
|
- for `o,s,e,m,p,r`: serial baud rate
|
||||||
- for `c`:
|
- for `c`:
|
||||||
- positive value = counter poll interval
|
- positive value = counter poll interval
|
||||||
- negative value = debounce time (milliseconds) for irq driven counters
|
- negative value = debounce time (milliseconds) for irq driven counters
|
||||||
|
@ -73,11 +74,11 @@ Each meter typically provides multiple metrics (voltage, power, humidity, etc.)
|
||||||
- `ssss` = extract this signed word
|
- `ssss` = extract this signed word
|
||||||
- `ffffffff` = extract this float value
|
- `ffffffff` = extract this float value
|
||||||
- decoding a 0/1 bit is indicated by a `@` character followed by `bx:` (x = `0..7`) extracting the corresponding bit from a byte.
|
- decoding a 0/1 bit is indicated by a `@` character followed by `bx:` (x = `0..7`) extracting the corresponding bit from a byte.
|
||||||
e.g., 1,xxxx5017xxuu@b0:1,Solarpumpe,,Solarpump,0
|
e.g., 1,xxxx5017xxuu@b0:1,Solarpump,,Solarpump,0
|
||||||
- in the case of modbus, `ix:` designates the index (x = `0..n`) referring to the requested block in the transmit section of the meter definition
|
- in the case of MODBus, `ix:` designates the index (x = `0..n`) referring to the requested block in the transmit section of the meter definition
|
||||||
e.g., 1,010404ffffffffxxxx@i0:1,Voltage P1,V,Voltage_P1,2
|
e.g., 1,010404ffffffffxxxx@i0:1,Voltage P1,V,Voltage_P1,2
|
||||||
- `@` decoding definition termination character
|
- `@` decoding definition termination character
|
||||||
- `<scale> - scaling factor (divisor)
|
- `<scale>` - scaling factor (divisor)
|
||||||
This can be a fraction (e.g., 0.1 => result * 10), or a negative value
|
This can be a fraction (e.g., 0.1 => result * 10), or a negative value
|
||||||
When decoding a string result (e.g., a serial meter), use `#` character for this parameter (only in one line per meter). For OBIS, you need a `)` termination character after the `#` character
|
When decoding a string result (e.g., a serial meter), use `#` character for this parameter (only in one line per meter). For OBIS, you need a `)` termination character after the `#` character
|
||||||
- `<label>` - web UI label (max 23 chars)
|
- `<label>` - web UI label (max 23 chars)
|
||||||
|
|
Loading…
Reference in New Issue