Skip to content

Renogy Inverter BLE Sensor

The renogy_inverter_ble sensor platform reads live data from a Renogy inverter with built-in Bluetooth over Bluetooth Low Energy — for example the Renogy PUH 12V 3000W Pure Sine Wave Inverter (with UPS transfer switch, SKU RIV1230PU-126) and other units in the RNGRIU family.

These inverters speak Modbus over BLE, but require a proprietary “wake” read on a vendor characteristic before they answer any request — which is why a generic Modbus Controller over a BLE bridge times out against them. This component performs that handshake, then reads the inverter’s holding registers and publishes the values.

It depends on the BLE Client component, which in turn requires the ESP32 BLE Tracker.

The inverter’s BLE MAC address is not the same as the UUID shown by some operating systems. To find it, flash a temporary tracker build and watch the logs for a device whose name starts with RNGRIU:

logger:
level: DEBUG
esp32_ble_tracker:
on_ble_advertise:
then:
- lambda: |-
ESP_LOGD("scan", "Found %s '%s'", x.address_str().c_str(), x.get_name().c_str());

A phone app such as nRF Connect can also be used. Once you have the MAC, remove the tracker logging and configure the component below.

esp32_ble_tracker:
ble_client:
- mac_address: AA:BB:CC:DD:EE:FF # the inverter's BLE MAC (RNGRIU…)
id: inverter_client
renogy_inverter_ble:
- id: inverter0
ble_client_id: inverter_client
update_interval: 30s
sensor:
- platform: renogy_inverter_ble
renogy_inverter_ble_id: inverter0
ac_output_voltage:
name: "Inverter Output Voltage"
battery_voltage:
name: "Inverter Battery Voltage"
load_active_power:
name: "Inverter Load Power"
temperature:
name: "Inverter Temperature"
  • id (Optional, ID): Manually specify the ID used for code generation.
  • ble_client_id (Required, ID): The ID of the BLE Client to read from.
  • update_interval (Optional, Time): The interval to poll the inverter. Defaults to 30s.
  • renogy_inverter_ble_id (Required, ID): The ID of the renogy_inverter_ble hub to read from.
  • ac_input_voltage (Optional): AC input (grid pass-through) voltage. All options from Sensor.
  • ac_output_voltage (Optional): AC output voltage. All options from Sensor.
  • ac_output_current (Optional): AC output current. All options from Sensor.
  • ac_output_frequency (Optional): AC output frequency. All options from Sensor.
  • input_frequency (Optional): AC input (grid) frequency. All options from Sensor.
  • battery_voltage (Optional): Battery voltage. All options from Sensor.
  • temperature (Optional): Inverter temperature. All options from Sensor.
  • load_current (Optional): Load current. All options from Sensor.
  • load_active_power (Optional): Load active power (W). All options from Sensor.
  • load_apparent_power (Optional): Load apparent power (VA). All options from Sensor.