devices.esphome.io

KinCony-M30

KinCony-M30

Device Type: sensor
Electrical Standard: global
Board: esp32

Product

Resources

ESPHome Configuration

Here is an example YAML configuration for the KinCony-KC868-M16v2 board with custom sensor integration.

substitutions:
max_current_range1: "10"
max_current_range2: "10"
max_current_range3: "10"
max_current_range4: "10"
max_current_range5: "10"
max_current_range6: "10"
max_current_range7: "10"
max_current_range8: "10"
max_current_range9: "10"
max_current_range10: "10"
max_current_range11: "10"
max_current_range12: "10"
max_current_range13: "10"
max_current_range14: "10"
max_current_range15: "10"
max_current_range16: "10"
max_current_range17: "10"
max_current_range18: "10"
max_current_range19: "10"
max_current_range20: "10"
max_current_range21: "10"
max_current_range22: "10"
max_current_range23: "10"
max_current_range24: "10"
max_current_range25: "10"
max_current_range26: "10"
max_current_range27: "10"
max_current_range28: "10"
max_current_range29: "10"
max_current_range30: "10"
esphome:
name: m30
friendly_name: m30
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# baud_rate: 0
# Enable Home Assistant API
api:
ota:
- platform: esphome
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO17_OUT
phy_addr: 0
uart:
id: modbus_uart
rx_pin: 32
tx_pin: 33
baud_rate: 115200
stop_bits: 1
data_bits: 8
parity: NONE
modbus:
id: modbus_hub
uart_id: modbus_uart
modbus_controller:
- id: modbus_hub_m30
address: 1
modbus_id: modbus_hub
update_interval: 5s
sensor:
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 100
register_type: holding
name: m30_1_current_1
id: m30_1_current_1
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_1_current_1).state;
float red = (current - 0.0) / ${max_current_range1};
float green = (${max_current_range1} - current) / ${max_current_range1};
float blue = 0.0;
auto call = id(M30_LED1).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 101
register_type: holding
name: m30_1_current_2
id: m30_1_current_2
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_1_current_2).state;
float red = (current - 0.0) / ${max_current_range2};
float green = (${max_current_range2} - current) / ${max_current_range2};
float blue = 0.0;
auto call = id(M30_LED2).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 102
register_type: holding
name: m30_1_current_3
id: m30_1_current_3
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_1_current_3).state;
float red = (current - 0.0) / ${max_current_range3};
float green = (${max_current_range3} - current) / ${max_current_range3};
float blue = 0.0;
auto call = id(M30_LED3).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 103
register_type: holding
name: m30_1_current_4
id: m30_1_current_4
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_1_current_4).state;
float red = (current - 0.0) / ${max_current_range4};
float green = (${max_current_range4} - current) / ${max_current_range4};
float blue = 0.0;
auto call = id(M30_LED4).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 104
register_type: holding
name: m30_1_current_5
id: m30_1_current_5
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_1_current_5).state;
float red = (current - 0.0) / ${max_current_range5};
float green = (${max_current_range5} - current) / ${max_current_range5};
float blue = 0.0;
auto call = id(M30_LED5).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 105
register_type: holding
name: m30_1_current_6
id: m30_1_current_6
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_1_current_6).state;
float red = (current - 0.0) / ${max_current_range6};
float green = (${max_current_range6} - current) / ${max_current_range6};
float blue = 0.0;
auto call = id(M30_LED6).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 106
register_type: holding
name: m30_1_current_7
id: m30_1_current_7
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_1_current_7).state;
float red = (current - 0.0) / ${max_current_range7};
float green = (${max_current_range7} - current) / ${max_current_range7};
float blue = 0.0;
auto call = id(M30_LED7).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 107
register_type: holding
name: m30_1_current_8
id: m30_1_current_8
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_1_current_8).state;
float red = (current - 0.0) / ${max_current_range8};
float green = (${max_current_range8} - current) / ${max_current_range8};
float blue = 0.0;
auto call = id(M30_LED8).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 108
register_type: holding
name: m30_1_current_9
id: m30_1_current_9
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_1_current_9).state;
float red = (current - 0.0) / ${max_current_range9};
float green = (${max_current_range9} - current) / ${max_current_range9};
float blue = 0.0;
auto call = id(M30_LED9).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 109
register_type: holding
name: m30_1_current_10
id: m30_1_current_10
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_1_current_10).state;
float red = (current - 0.0) / ${max_current_range10};
float green = (${max_current_range10} - current) / ${max_current_range10};
float blue = 0.0;
auto call = id(M30_LED10).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 110
register_type: holding
name: m30_1_voltage
id: m30_1_voltage
unit_of_measurement: V
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 111
register_type: holding
name: m30_1_watt_1
id: m30_1_watt_1
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 112
register_type: holding
name: m30_1_watt_2
id: m30_1_watt_2
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 113
register_type: holding
name: m30_1_watt_3
id: m30_1_watt_3
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 114
register_type: holding
name: m30_1_watt_4
id: m30_1_watt_4
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 115
register_type: holding
name: m30_1_watt_5
id: m30_1_watt_5
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 116
register_type: holding
name: m30_1_watt_6
id: m30_1_watt_6
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 117
register_type: holding
name: m30_1_watt_7
id: m30_1_watt_7
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 118
register_type: holding
name: m30_1_watt_8
id: m30_1_watt_8
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 119
register_type: holding
name: m30_1_watt_9
id: m30_1_watt_9
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 120
register_type: holding
name: m30_1_watt_10
id: m30_1_watt_10
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 121
register_type: holding
name: m30_1_energy_1
id: m30_1_energy_1
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 122
register_type: holding
name: m30_1_energy_2
id: m30_1_energy_2
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 123
register_type: holding
name: m30_1_energy_3
id: m30_1_energy_3
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 124
register_type: holding
name: m30_1_energy_4
id: m30_1_energy_4
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 125
register_type: holding
name: m30_1_energy_5
id: m30_1_energy_5
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 126
register_type: holding
name: m30_1_energy_6
id: m30_1_energy_6
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 127
register_type: holding
name: m30_1_energy_7
id: m30_1_energy_7
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 128
register_type: holding
name: m30_1_energy_8
id: m30_1_energy_8
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 129
register_type: holding
name: m30_1_energy_9
id: m30_1_energy_9
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 130
register_type: holding
name: m30_1_energy_10
id: m30_1_energy_10
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 131
register_type: holding
name: m30_1_energy_sum
id: m30_1_energy_sum
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 132
register_type: holding
name: m30_1_period
id: m30_1_period
unit_of_measurement: Hz
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 133
register_type: holding
name: m30_1_tps_1
id: m30_1_tps_1
unit_of_measurement: °C
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
# - platform: modbus_controller
# modbus_controller_id: modbus_hub_m30
# address: 134
# register_type: holding
# name: m30_1_tps_2
# id: m30_1_tps_2
# unit_of_measurement: °C
# accuracy_decimals: 1
# value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 200
register_type: holding
name: m30_2_current_1
id: m30_2_current_1
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_2_current_1).state;
float red = (current - 0.0) / ${max_current_range11};
float green = (${max_current_range11} - current) / ${max_current_range11};
float blue = 0.0;
auto call = id(M30_LED11).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 201
register_type: holding
name: m30_2_current_2
id: m30_2_current_2
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_2_current_2).state;
float red = (current - 0.0) / ${max_current_range12};
float green = (${max_current_range12} - current) / ${max_current_range12};
float blue = 0.0;
auto call = id(M30_LED12).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 202
register_type: holding
name: m30_2_current_3
id: m30_2_current_3
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_2_current_3).state;
float red = (current - 0.0) / ${max_current_range13};
float green = (${max_current_range13} - current) / ${max_current_range13};
float blue = 0.0;
auto call = id(M30_LED13).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 203
register_type: holding
name: m30_2_current_4
id: m30_2_current_4
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_2_current_4).state;
float red = (current - 0.0) / ${max_current_range14};
float green = (${max_current_range14} - current) / ${max_current_range14};
float blue = 0.0;
auto call = id(M30_LED14).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 204
register_type: holding
name: m30_2_current_5
id: m30_2_current_5
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_2_current_5).state;
float red = (current - 0.0) / ${max_current_range15};
float green = (${max_current_range15} - current) / ${max_current_range15};
float blue = 0.0;
auto call = id(M30_LED15).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 205
register_type: holding
name: m30_2_current_6
id: m30_2_current_6
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_2_current_6).state;
float red = (current - 0.0) / ${max_current_range16};
float green = (${max_current_range16} - current) / ${max_current_range16};
float blue = 0.0;
auto call = id(M30_LED16).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 206
register_type: holding
name: m30_2_current_7
id: m30_2_current_7
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_2_current_7).state;
float red = (current - 0.0) / ${max_current_range17};
float green = (${max_current_range17} - current) / ${max_current_range17};
float blue = 0.0;
auto call = id(M30_LED17).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 207
register_type: holding
name: m30_2_current_8
id: m30_2_current_8
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_2_current_8).state;
float red = (current - 0.0) / ${max_current_range18};
float green = (${max_current_range18} - current) / ${max_current_range18};
float blue = 0.0;
auto call = id(M30_LED18).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 208
register_type: holding
name: m30_2_current_9
id: m30_2_current_9
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_2_current_9).state;
float red = (current - 0.0) / ${max_current_range19};
float green = (${max_current_range19} - current) / ${max_current_range19};
float blue = 0.0;
auto call = id(M30_LED19).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 209
register_type: holding
name: m30_2_current_10
id: m30_2_current_10
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_2_current_10).state;
float red = (current - 0.0) / ${max_current_range20};
float green = (${max_current_range20} - current) / ${max_current_range20};
float blue = 0.0;
auto call = id(M30_LED20).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 210
register_type: holding
name: m30_2_voltage
id: m30_2_voltage
unit_of_measurement: V
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 211
register_type: holding
name: m30_2_watt_1
id: m30_2_watt_1
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 212
register_type: holding
name: m30_2_watt_2
id: m30_2_watt_2
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 213
register_type: holding
name: m30_2_watt_3
id: m30_2_watt_3
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 214
register_type: holding
name: m30_2_watt_4
id: m30_2_watt_4
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 215
register_type: holding
name: m30_2_watt_5
id: m30_2_watt_5
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 216
register_type: holding
name: m30_2_watt_6
id: m30_2_watt_6
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 217
register_type: holding
name: m30_2_watt_7
id: m30_2_watt_7
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 218
register_type: holding
name: m30_2_watt_8
id: m30_2_watt_8
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 219
register_type: holding
name: m30_2_watt_9
id: m30_2_watt_9
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 220
register_type: holding
name: m30_2_watt_10
id: m30_2_watt_10
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 221
register_type: holding
name: m30_2_energy_1
id: m30_2_energy_1
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 222
register_type: holding
name: m30_2_energy_2
id: m30_2_energy_2
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 223
register_type: holding
name: m30_2_energy_3
id: m30_2_energy_3
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 224
register_type: holding
name: m30_2_energy_4
id: m30_2_energy_4
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 225
register_type: holding
name: m30_2_energy_5
id: m30_2_energy_5
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 226
register_type: holding
name: m30_2_energy_6
id: m30_2_energy_6
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 227
register_type: holding
name: m30_2_energy_7
id: m30_2_energy_7
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 228
register_type: holding
name: m30_2_energy_8
id: m30_2_energy_8
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 229
register_type: holding
name: m30_2_energy_9
id: m30_2_energy_9
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 230
register_type: holding
name: m30_2_energy_10
id: m30_2_energy_10
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 231
register_type: holding
name: m30_2_energy_sum
id: m30_2_energy_sum
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 232
register_type: holding
name: m30_2_period
id: m30_2_period
unit_of_measurement: Hz
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 233
register_type: holding
name: m30_2_tps_1
id: m30_2_tps_1
unit_of_measurement: °C
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
# - platform: modbus_controller
# modbus_controller_id: modbus_hub_m30
# address: 234
# register_type: holding
# name: m30_2_tps_2
# id: m30_2_tps_2
# unit_of_measurement: °C
# accuracy_decimals: 1
# value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 300
register_type: holding
name: m30_3_current_1
id: m30_3_current_1
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_3_current_1).state;
float red = (current - 0.0) / ${max_current_range21};
float green = (${max_current_range21} - current) / ${max_current_range21};
float blue = 0.0;
auto call = id(M30_LED21).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 301
register_type: holding
name: m30_3_current_2
id: m30_3_current_2
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_3_current_2).state;
float red = (current - 0.0) / ${max_current_range22};
float green = (${max_current_range22} - current) / ${max_current_range22};
float blue = 0.0;
auto call = id(M30_LED22).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 302
register_type: holding
name: m30_3_current_3
id: m30_3_current_3
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_3_current_3).state;
float red = (current - 0.0) / ${max_current_range23};
float green = (${max_current_range23} - current) / ${max_current_range23};
float blue = 0.0;
auto call = id(M30_LED23).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 303
register_type: holding
name: m30_3_current_4
id: m30_3_current_4
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_3_current_4).state;
float red = (current - 0.0) / ${max_current_range24};
float green = (${max_current_range24} - current) / ${max_current_range24};
float blue = 0.0;
auto call = id(M30_LED24).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 304
register_type: holding
name: m30_3_current_5
id: m30_3_current_5
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_3_current_5).state;
float red = (current - 0.0) / ${max_current_range25};
float green = (${max_current_range25} - current) / ${max_current_range25};
float blue = 0.0;
auto call = id(M30_LED25).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 305
register_type: holding
name: m30_3_current_6
id: m30_3_current_6
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_3_current_6).state;
float red = (current - 0.0) / ${max_current_range26};
float green = (${max_current_range26} - current) / ${max_current_range26};
float blue = 0.0;
auto call = id(M30_LED26).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 306
register_type: holding
name: m30_3_current_7
id: m30_3_current_7
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_3_current_7).state;
float red = (current - 0.0) / ${max_current_range27};
float green = (${max_current_range27} - current) / ${max_current_range27};
float blue = 0.0;
auto call = id(M30_LED27).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 307
register_type: holding
name: m30_3_current_8
id: m30_3_current_8
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_3_current_8).state;
float red = (current - 0.0) / ${max_current_range28};
float green = (${max_current_range28} - current) / ${max_current_range28};
float blue = 0.0;
auto call = id(M30_LED28).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 308
register_type: holding
name: m30_3_current_9
id: m30_3_current_9
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_3_current_9).state;
float red = (current - 0.0) / ${max_current_range29};
float green = (${max_current_range29} - current) / ${max_current_range29};
float blue = 0.0;
auto call = id(M30_LED29).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 309
register_type: holding
name: m30_3_current_10
id: m30_3_current_10
unit_of_measurement: A
accuracy_decimals: 3
value_type: U_WORD
filters:
- multiply: 0.00098
on_value:
- then:
- lambda: |-
float current = id(m30_3_current_10).state;
float red = (current - 0.0) / ${max_current_range30};
float green = (${max_current_range30} - current) / ${max_current_range30};
float blue = 0.0;
auto call = id(M30_LED30).turn_on();
call.set_brightness(0.6);
call.set_rgb(red, green, blue);
call.set_color_mode(ColorMode::RGB);
call.perform();
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 310
register_type: holding
name: m30_3_voltage
id: m30_3_voltage
unit_of_measurement: V
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 311
register_type: holding
name: m30_3_watt_1
id: m30_3_watt_1
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 312
register_type: holding
name: m30_3_watt_2
id: m30_3_watt_2
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 313
register_type: holding
name: m30_3_watt_3
id: m30_3_watt_3
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 314
register_type: holding
name: m30_3_watt_4
id: m30_3_watt_4
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 315
register_type: holding
name: m30_3_watt_5
id: m30_3_watt_5
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 316
register_type: holding
name: m30_3_watt_6
id: m30_3_watt_6
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 317
register_type: holding
name: m30_3_watt_7
id: m30_3_watt_7
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 318
register_type: holding
name: m30_3_watt_8
id: m30_3_watt_8
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 319
register_type: holding
name: m30_3_watt_9
id: m30_3_watt_9
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 320
register_type: holding
name: m30_3_watt_10
id: m30_3_watt_10
unit_of_measurement: W
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 321
register_type: holding
name: m30_3_energy_1
id: m30_3_energy_1
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 322
register_type: holding
name: m30_3_energy_2
id: m30_3_energy_2
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 323
register_type: holding
name: m30_3_energy_3
id: m30_3_energy_3
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 324
register_type: holding
name: m30_3_energy_4
id: m30_3_energy_4
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 325
register_type: holding
name: m30_3_energy_5
id: m30_3_energy_5
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 326
register_type: holding
name: m30_3_energy_6
id: m30_3_energy_6
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 327
register_type: holding
name: m30_3_energy_7
id: m30_3_energy_7
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 328
register_type: holding
name: m30_3_energy_8
id: m30_3_energy_8
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 329
register_type: holding
name: m30_3_energy_9
id: m30_3_energy_9
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
state_class: total_increasing
device_class: energy
modbus_controller_id: modbus_hub_m30
address: 330
register_type: holding
name: m30_3_energy_10
id: m30_3_energy_10
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 331
register_type: holding
name: m30_3_energy_sum
id: m30_3_energy_sum
unit_of_measurement: kWh
accuracy_decimals: 1
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 332
register_type: holding
name: m30_3_period
id: m30_3_period
unit_of_measurement: Hz
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: modbus_hub_m30
address: 333
register_type: holding
name: m30_3_tps_1
id: m30_3_tps_1
unit_of_measurement: °C
accuracy_decimals: 1
value_type: U_WORD
filters:
- multiply: 0.1
# - platform: modbus_controller
# modbus_controller_id: modbus_hub_m30
# address: 334
# register_type: holding
# name: m30_3_tps_2
# id: m30_3_tps_2
# unit_of_measurement: °C
# accuracy_decimals: 1
# value_type: U_WORD
light:
- platform: partition
name: "M30_LED1"
id: M30_LED1
segments:
- id: light1
from: 14
to: 14
- platform: partition
name: "M30_LED2"
id: M30_LED2
segments:
- id: light1
from: 13
to: 13
- platform: partition
name: "M30_LED3"
id: M30_LED3
segments:
- id: light1
from: 12
to: 12
- platform: partition
name: "M30_LED4"
id: M30_LED4
segments:
- id: light1
from: 11
to: 11
- platform: partition
name: "M30_LED5"
id: M30_LED5
segments:
- id: light1
from: 10
to: 10
- platform: partition
name: "M30_LED6"
id: M30_LED6
segments:
- id: light1
from: 9
to: 9
- platform: partition
name: "M30_LED7"
id: M30_LED7
segments:
- id: light1
from: 8
to: 8
- platform: partition
name: "M30_LED8"
id: M30_LED8
segments:
- id: light1
from: 7
to: 7
- platform: partition
name: "M30_LED9"
id: M30_LED9
segments:
- id: light1
from: 6
to: 6
- platform: partition
name: "M30_LED10"
id: M30_LED10
segments:
- id: light1
from: 5
to: 5
- platform: partition
name: "M30_LED11"
id: M30_LED11
segments:
- id: light1
from: 4
to: 4
- platform: partition
name: "M30_LED12"
id: M30_LED12
segments:
- id: light1
from: 3
to: 3
- platform: partition
name: "M30_LED13"
id: M30_LED13
segments:
- id: light1
from: 2
to: 2
- platform: partition
name: "M30_LED14"
id: M30_LED14
segments:
- id: light1
from: 1
to: 1
- platform: partition
name: "M30_LED15"
id: M30_LED15
segments:
- id: light1
from: 0
to: 0
- platform: partition
name: "M30_LED16"
id: M30_LED16
segments:
- id: light1
from: 15
to: 15
- platform: partition
name: "M30_LED17"
id: M30_LED17
segments:
- id: light1
from: 16
to: 16
- platform: partition
name: "M30_LED18"
id: M30_LED18
segments:
- id: light1
from: 17
to: 17
- platform: partition
name: "M30_LED19"
id: M30_LED19
segments:
- id: light1
from: 18
to: 18
- platform: partition
name: "M30_LED20"
id: M30_LED20
segments:
- id: light1
from: 19
to: 19
- platform: partition
name: "M30_LED21"
id: M30_LED21
segments:
- id: light1
from: 20
to: 20
- platform: partition
name: "M30_LED22"
id: M30_LED22
segments:
- id: light1
from: 21
to: 21
- platform: partition
name: "M30_LED23"
id: M30_LED23
segments:
- id: light1
from: 22
to: 22
- platform: partition
name: "M30_LED24"
id: M30_LED24
segments:
- id: light1
from: 23
to: 23
- platform: partition
name: "M30_LED25"
id: M30_LED25
segments:
- id: light1
from: 24
to: 24
- platform: partition
name: "M30_LED26"
id: M30_LED26
segments:
- id: light1
from: 25
to: 25
- platform: partition
name: "M30_LED27"
id: M30_LED27
segments:
- id: light1
from: 26
to: 26
- platform: partition
name: "M30_LED28"
id: M30_LED28
segments:
- id: light1
from: 27
to: 27
- platform: partition
name: "M30_LED29"
id: M30_LED29
segments:
- id: light1
from: 28
to: 28
- platform: partition
name: "M30_LED30"
id: M30_LED30
segments:
- id: light1
from: 29
to: 29
# Example for light segment source
- platform: esp32_rmt_led_strip
id: light1
rgb_order: GRB
pin: GPIO12
num_leds: 30
rmt_channel: 0
chipset: ws2812
Edit this page on GitHub