English
English
简体中文
日本語

Module13.2 Dual Kmeter ESPHome Component

Module13.2 Dual Kmeter is a dual-channel K-type thermocouple temperature module. It provides two independent thermocouple inputs (Kmeter 1 and Kmeter 2) and one onboard internal temperature sensor over a single I2C bus.

1. Component Overview

Item Information
Product Name Module13.2 Dual Kmeter
SKU M127
Main Function Dual-channel K-type thermocouple and internal temperature measurement
Communication Interface I2C
Default I2C Address 0x11
ESPHome Component dual_kmeter (external component)
ESPHome Version Requirement 2026.4.4 and later

2. Component Description

Including the External Component

external_components:
  - source: github://m5stack/esphome-yaml/components
    components: [dual_kmeter]
    refresh: 0s

Configuration Variables

Add the Sensor component to read thermocouple or internal temperature data from Module13.2 Dual Kmeter.

sensor:
  - platform: dual_kmeter
    name: "Thermocouple Channel 1"
    channel: KMETER_1
    update_interval: 60s

Main parameters:

  • channel (required): Measurement channel to read. Available values:
Value Description
KMETER_1 K-type thermocouple input channel 1
KMETER_2 K-type thermocouple input channel 2
INTERNAL Onboard internal temperature sensor
  • unit (optional): Temperature unit reported by the sensor. Set to CELSIUS or FAHRENHEIT. The default is CELSIUS.

  • update_interval (optional, time): Polling interval for the sensor. The default is 60s.

  • address (optional, int): I2C address of the module. The default is 0x11.

  • For all other options, see the Sensor component.

Measurement Behavior

Thermocouple Channels (KMETER_1 / KMETER_2)

When a thermocouple channel is selected, the component writes the channel selection register (0x20) during each update() cycle, then polls the ready flag register (0x30) until the module indicates that a new conversion is complete. The component waits for up to 300 ms. If the flag is not set within this window, the update is skipped and the following warning is logged:

[W][dual_kmeter]: Kmeter sampling timeout

The module firmware stores the temperature as a signed 32-bit integer in little-endian byte order, with a scale factor of 0.01 (for example, a register value of 2537 represents 25.37 °C).

Internal Channel (INTERNAL)

The internal channel reads the onboard thermistor directly and does not wait for a ready flag. This measurement is always available and is not affected by the thermocouple channel selection register.

I2C Address

The M5Stack Module Dual Kmeter uses a fixed default I2C address of 0x11. If the hardware address has been changed using the module's DIP switch, use the address option to specify the new address.

sensor:
  - platform: dual_kmeter
    name: "Kiln Temperature"
    channel: KMETER_2
    address: 0x12        # Non-default address

3. Reference Example

yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
external_components:
  - source: github://m5stack/esphome-yaml/components
    components: [dual_kmeter]
    refresh: 0s

i2c:
  sda: GPIO21
  scl: GPIO22

sensor:
  # --- Thermocouple channel 1, Celsius ---
  - platform: dual_kmeter
    name: "Kiln Thermocouple"
    channel: KMETER_1
    unit: CELSIUS
    update_interval: 30s
    filters:
      - sliding_window_moving_average:
          window_size: 5
          send_every: 5

  # --- Thermocouple channel 2, Fahrenheit ---
  - platform: dual_kmeter
    name: "Oven Thermocouple (°F)"
    channel: KMETER_2
    unit: FAHRENHEIT
    # Keep the unit consistent; the default unit_of_measurement is Celsius
    unit_of_measurement: "°F"
    update_interval: 30s

  # --- Onboard internal temperature ---
  - platform: dual_kmeter
    name: "Module Internal Temperature"
    channel: INTERNAL
    update_interval: 60s

Example of using CoreS3 with Module13.2 Dual Kmeter:

Page Tools
PDF
On This Page