Getting a "more" dynamic display?

I have a power meter (SDM230), giving me 15 entities. One of these (Active Power) I have displayed as a Gauge in a Dashboard.
Disappointingly, although I know (by watching meter display) that in reality, the power is “dancing around” in response to cooking demands and solar excess, the Gauge display reports that it has not changed/updated for long periods of time?

I note multiple postings with the advice that using “force_update” is very (very) bad! So not tried that yet. If “force_update” were to produce the effect I’m looking for, would it be so bad if it were only for display and not logged to the Home Assistant database?

Should I be able to achieve “near real-time” updates from my SDM230 sensor to the Dashboard Graph display?

Regards, Martin

Try watching the state in Developer Tools → States. Does that change?

Can you show the configuration for this sensor?

Hi Tom,
Watched for 5min. No movement…

This (I think) are the relevent sections of my esphome yaml:

uart:
  - id: uart_2
    # RX/TX are swopped to make PCB layout easer.
    tx_pin: GPIO16 #marked as RX2 on DOIT DEVKIT V1
    rx_pin: GPIO17 #marked as TX2.
    baud_rate: 9600
    stop_bits: 1
    parity: none

modbus:
  uart_id: uart_2
  id: modbus1
  #No flow control required because using UART/RS485 module
  #flow_control_pin: GPIO18 #marked as D18 on DOIT DEVKIT V1

modbus_controller:
  - id: sdm230m
    address: 0x01
    modbus_id: modbus1
    update_interval: 10s

sensor:
  - platform: sdm_meter

    phase_a:
      current:
        name: "ESP32.SDM230M Current"
      voltage:
        name: "ESP32.SDM230M Voltage"
      active_power:
        name: "ESP32.SDM230M Active Power (P)"
        force_update: true
      apparent_power:
        name: "ESP32.SDM230M Apparent Power (S)"
      reactive_power:
        name: "ESP32.SDM230M Reactive Power (Q)"
      power_factor:
        name: "ESP32.SDM230M Power Factor"
      phase_angle:
        name: "ESP32.SDM230M Phase Angle"
        
    frequency:
      name: "ESP32.SDM230M Frequency"
    total_power:
      name: "ESP32.SDM230M Total Power"
    import_active_energy:
      name: "ESP32.SDM230M Import Active Energy"
    export_active_energy:
      name: "ESP32.SDM230M Export Active Energy"
    import_reactive_energy:
      name: "ESP32.SDM230M Import Reactive Energy"
    export_reactive_energy:
      name: "ESP32.SDM230M Export Reactive Energy"
    
    update_interval: 10s

Regards, M.

That should be reporting all the modbus sensor values every ten seconds.

Have a look at the esphome device serial log.

Do you see it sending data?

Errr… Sort of? This is a log I’ve just taken:

INFO Reading configuration /config/esphome/esp32-sdm230m.yaml...
INFO Starting log output from esp32-sdm230m.local using esphome API
INFO Successfully connected to esp32-sdm230m.local
[18:49:23][I][app:102]: ESPHome version 2023.5.2 compiled on May 22 2023, 08:36:32
[18:49:23][C][wifi:505]: WiFi:
[18:49:23][C][wifi:363]:   Local MAC: EC:62:60:9D:B3:48
[18:49:23][C][wifi:364]:   SSID: 'myAP1'[redacted]
[18:49:23][C][wifi:365]:   IP Address: 192.168.0.136
[18:49:23][C][wifi:367]:   BSSID: 44:E9:DD:6E:71:6C[redacted]
[18:49:23][C][wifi:368]:   Hostname: 'esp32-sdm230m'
[18:49:23][C][wifi:370]:   Signal strength: -58 dB ▂▄▆█
[18:49:23][V][wifi:372]:   Priority: 0.0
[18:49:23][C][wifi:374]:   Channel: 6
[18:49:23][C][wifi:375]:   Subnet: 255.255.255.0
[18:49:23][C][wifi:376]:   Gateway: 192.168.0.1
[18:49:23][C][wifi:377]:   DNS1: 192.168.0.1
[18:49:23][C][wifi:378]:   DNS2: 0.0.0.0
[18:49:23][C][logger:301]: Logger:
[18:49:23][C][logger:302]:   Level: VERBOSE
[18:49:23][C][logger:303]:   Log Baud Rate: 0
[18:49:23][C][logger:305]:   Hardware UART: UART0
[18:49:23][C][uart.arduino_esp32:124]: UART Bus 0:
[18:49:23][C][uart.arduino_esp32:125]:   TX Pin: GPIO16
[18:49:23][C][uart.arduino_esp32:126]:   RX Pin: GPIO17
[18:49:23][C][uart.arduino_esp32:128]:   RX Buffer Size: 256
[18:49:23][C][uart.arduino_esp32:130]:   Baud Rate: 9600 baud
[18:49:23][C][uart.arduino_esp32:131]:   Data Bits: 8
[18:49:23][C][uart.arduino_esp32:132]:   Parity: NONE
[18:49:23][C][uart.arduino_esp32:133]:   Stop bits: 1
[18:49:23][C][modbus:143]: Modbus:
[18:49:23][C][modbus:145]:   Send Wait Time: 250 ms
[18:49:23][C][modbus:146]:   CRC Disabled: NO
[18:49:23][C][modbus_controller:275]: ModbusController:
[18:49:23][C][modbus_controller:276]:   Address: 0x01
[18:49:23][C][modbus_controller:278]: sensormap
[18:49:23][C][modbus_controller:284]: ranges
[18:49:23][C][sdm_meter:087]: SDM Meter:
[18:49:23][C][sdm_meter:088]:   Address: 0x01
[18:49:23][C][sdm_meter:093]:   Phase A
[18:49:23][C][sdm_meter:094]:     Voltage 'ESP32.SDM230M Voltage'
[18:49:23][C][sdm_meter:094]:       Device Class: 'voltage'
[18:49:23][C][sdm_meter:094]:       State Class: 'measurement'
[18:49:23][C][sdm_meter:094]:       Unit of Measurement: 'V'
[18:49:23][C][sdm_meter:094]:       Accuracy Decimals: 2
[18:49:23][C][sdm_meter:095]:     Current 'ESP32.SDM230M Current'
[18:49:23][C][sdm_meter:095]:       Device Class: 'current'
[18:49:23][C][sdm_meter:095]:       State Class: 'measurement'
[18:49:23][C][sdm_meter:095]:       Unit of Measurement: 'A'
[18:49:23][C][sdm_meter:095]:       Accuracy Decimals: 3
[18:49:23][C][sdm_meter:096]:     Active Power 'ESP32.SDM230M Active Power (P)'
[18:49:23][C][sdm_meter:096]:       Device Class: 'power'
[18:49:23][C][sdm_meter:096]:       State Class: 'measurement'
[18:49:23][C][restart:068]: Restart Switch 'ESP32_SDM230m Restart'
[18:49:23][C][restart:070]:   Icon: 'mdi:restart'
[18:49:23][C][restart:091]:   Restore Mode: always OFF
[18:49:23][C][mdns:108]: mDNS:
[18:49:23][C][mdns:109]:   Hostname: esp32-sdm230m
[18:49:23][V][mdns:110]:   Services:
[18:49:23][V][mdns:112]:   - _esphomelib, _tcp, 6053
[18:49:23][V][mdns:114]:     TXT: version = 2023.5.2
[18:49:23][V][mdns:114]:     TXT: mac = ec62609db348
[18:49:23][V][mdns:114]:     TXT: platform = ESP32
[18:49:23][V][mdns:114]:     TXT: board = esp32doit-devkit-v1
[18:49:23][V][mdns:114]:     TXT: network = wifi
[18:49:23][C][ota:093]: Over-The-Air Updates:
[18:49:23][C][ota:094]:   Address: esp32-sdm230m.local:3232
[18:49:23][C][ota:097]:   Using Password.
>>>>>>>[18:49:23][V][modbus:199]: Modbus write: 01.04.00.00.00.50.F0.36 (8)
[18:49:23][C][api:138]: API Server:
[18:49:23][C][api:139]:   Address: esp32-sdm230m.local:6053
[18:49:23][C][api:143]:   Using noise encryption: NO
[18:49:24][V][modbus:042]: Modbus received Byte  1 (0X1)
[18:49:24][V][modbus:042]: Modbus received Byte  4 (0X4)
[18:49:24][V][modbus:042]: Modbus received Byte  160 (0Xa0)
[18:49:24][V][modbus:042]: Modbus received Byte  67 (0X43)
[18:49:24][V][modbus:042]: Modbus received Byte  106 (0X6a)
[18:49:24][V][modbus:042]: Modbus received Byte  178 (0Xb2)
[18:49:24][V][modbus:042]: Modbus received Byte  60 (0X3c)
[18:49:24][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:24][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:24][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:24][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:24][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:24][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:24][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:24][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:24][V][modbus:042]: Modbus received Byte  64 (0X40)
[18:49:32][V][modbus_controller:158]: Updating modbus component
>>>>>[18:49:33][V][modbus:199]: Modbus write: 01.04.00.00.00.50.F0.36 (8) # last modbus write was 18:49:23]
[18:49:34][V][modbus:042]: Modbus received Byte  1 (0X1)
[18:49:34][V][modbus:042]: Modbus received Byte  4 (0X4)
[18:49:34][V][modbus:042]: Modbus received Byte  160 (0Xa0)
[18:49:34][V][modbus:042]: Modbus received Byte  67 (0X43)
[18:49:34][V][modbus:042]: Modbus received Byte  107 (0X6b)
[18:49:34][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:34][V][modbus:042]: Modbus received Byte  163 (0Xa3)
[18:49:34][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:34][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:34][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:34][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:34][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:34][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:34][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:34][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:34][V][modbus:042]: Modbus received Byte  64 (0X40)
[18:49:42][V][modbus_controller:158]: Updating modbus component
>>>>>[18:49:43][V][modbus:199]: Modbus write: 01.04.00.00.00.50.F0.36 (8) # Last modbus write was [18:49:33]
[18:49:44][V][modbus:042]: Modbus received Byte  1 (0X1)
[18:49:44][V][modbus:042]: Modbus received Byte  4 (0X4)
[18:49:44][V][modbus:042]: Modbus received Byte  160 (0Xa0)
[18:49:44][V][modbus:042]: Modbus received Byte  67 (0X43)
[18:49:44][V][modbus:042]: Modbus received Byte  107 (0X6b)
[18:49:44][V][modbus:042]: Modbus received Byte  32 (0X20)
[18:49:44][V][modbus:042]: Modbus received Byte  31 (0X1f)
[18:49:44][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:44][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:44][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:44][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:44][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:44][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:44][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:44][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:44][V][modbus:042]: Modbus received Byte  63 (0X3f)
[18:49:44][V][modbus:042]: Modbus received Byte  244 (0Xf4)
**[18:49:44][D][sensor:094]: 'ESP32.SDM230M Export Active Energy': Sending state 909.06403 kWh with 2 decimals of accuracy**
>>>>>>>[18:49:52][V][modbus_controller:158]: Updating modbus component # last modbus write was [18:49:43]
[18:49:53][V][modbus:199]: Modbus write: 01.04.00.00.00.50.F0.36 (8)
[18:49:54][V][modbus:042]: Modbus received Byte  1 (0X1)
[18:49:54][V][modbus:042]: Modbus received Byte  4 (0X4)
[18:49:54][V][modbus:042]: Modbus received Byte  160 (0Xa0)
[18:49:54][V][modbus:042]: Modbus received Byte  67 (0X43)
[18:49:54][V][modbus:042]: Modbus received Byte  106 (0X6a)
[18:49:54][V][modbus:042]: Modbus received Byte  241 (0Xf1)
[18:49:54][V][modbus:042]: Modbus received Byte  45 (0X2d)
[18:49:54][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:54][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:54][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:54][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:54][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:54][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:54][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:54][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:49:54][V][modbus:042]: Modbus received Byte  63 (0X3f)
[18:50:02][V][modbus_controller:158]: Updating modbus component
[18:50:03][V][modbus:199]: Modbus write: 01.04.00.00.00.50.F0.36 (8)
[18:50:04][V][modbus:042]: Modbus received Byte  1 (0X1)
[18:50:04][V][modbus:042]: Modbus received Byte  4 (0X4)
[18:50:04][V][modbus:042]: Modbus received Byte  160 (0Xa0)
[18:50:04][V][modbus:042]: Modbus received Byte  67 (0X43)
[18:50:04][V][modbus:042]: Modbus received Byte  106 (0X6a)
[18:50:04][V][modbus:042]: Modbus received Byte  163 (0Xa3)
[18:50:04][V][modbus:042]: Modbus received Byte  187 (0Xbb)
[18:50:04][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:04][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:04][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:04][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:04][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:04][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:04][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:04][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:04][V][modbus:042]: Modbus received Byte  63 (0X3f)
[18:50:12][V][modbus_controller:158]: Updating modbus component
[18:50:13][V][modbus:199]: Modbus write: 01.04.00.00.00.50.F0.36 (8)
[18:50:14][V][modbus:042]: Modbus received Byte  1 (0X1)
[18:50:14][V][modbus:042]: Modbus received Byte  4 (0X4)
[18:50:14][V][modbus:042]: Modbus received Byte  160 (0Xa0)
[18:50:14][V][modbus:042]: Modbus received Byte  67 (0X43)
[18:50:14][V][modbus:042]: Modbus received Byte  106 (0X6a)
[18:50:14][V][modbus:042]: Modbus received Byte  177 (0Xb1)
[18:50:14][V][modbus:042]: Modbus received Byte  203 (0Xcb)
[18:50:14][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:14][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:14][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:14][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:14][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:14][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:14][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:14][V][modbus:042]: Modbus received Byte  0 (0X0)
[18:50:14][V][modbus:042]: Modbus received Byte  63 (0X3f)

So, as I read it, the UART/Modbus write/read traffic is every 10 seconds. But although some the values returned are differing from the previous read, the only sensor that was sent to Home Assistant during this sample run was for “Export Active Energy” at [18:49:44].

Regards, M.
PS - Although, I think I have 15 entities defined in the yaml, only 4 are listed in the log pre-amble. Is this normal?

It does not look like that ESP component is working as expected.

Okay Tom, thanks for looking.

I have done a hardware replacement - with no change.
Any suggestion on how I can raise a question with the sdm_meter platform maintainer?
Had a hunt around, but the nearest I can find says “Do not post here”?
Regards, M.