modbus_controller: - id: modbus_controller1 address: 0x2 modbus_id: modbus_bus on_online: then: logger.log: "Module Online" binary_sensor: - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_binary_sensor1 name: Test Binary Sensor register_type: read address: 0x3200 bitmask: 0x80 - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_binary_sensor2 name: Test Binary Sensor with Lambda register_type: read address: 0x3201 lambda: |- return x; number: - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_number1 name: Test Number address: 0x9001 value_type: U_WORD multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_number2 name: Test Number with Lambda address: 0x9002 value_type: U_WORD lambda: |- return x * 2.0; write_lambda: |- return x / 2.0; output: - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_output1 address: 2048 register_type: holding value_type: U_WORD multiply: 1000 - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_output2 address: 2049 register_type: holding value_type: U_WORD write_lambda: |- return x * 100.0; select: - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_select1 name: Test Select address: 1000 value_type: U_WORD optionsmap: "Zero": 0 "One": 1 "Two": 2 "Three": 3 - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_select2 name: Test Select with Lambda address: 1001 value_type: U_WORD optionsmap: "Off": 0 "On": 1 "Two": 2 lambda: |- ESP_LOGD("Reg1001", "Received value %lld", x); if (x > 1) { return std::string("Two"); } else if (x == 1) { return std::string("On"); } return std::string("Off"); write_lambda: |- ESP_LOGD("Reg1001", "Set option to %s (%lld)", x.c_str(), value); if (x == "On") { return 1; } if (x == "Two") { payload.push_back(0x0002); return 0; } return value; sensor: - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_sensor1 name: Test Sensor register_type: holding address: 0x9001 unit_of_measurement: "AH" value_type: U_WORD - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_sensor2 name: Test Sensor with Lambda register_type: holding address: 0x9002 value_type: U_WORD lambda: |- return x / 10.0; switch: - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_switch1 name: Test Switch register_type: coil address: 0x15 bitmask: 1 - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_switch2 name: Test Switch with Lambda register_type: coil address: 0x16 lambda: |- return !x; write_lambda: |- return !x; text_sensor: - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_text_sensor1 name: Test Text Sensor register_type: holding address: 0x9013 register_count: 3 raw_encode: HEXBYTES response_size: 6 - platform: modbus_controller modbus_controller_id: modbus_controller1 id: modbus_text_sensor2 name: Test Text Sensor with Lambda register_type: holding address: 0x9014 register_count: 2 response_size: 4 lambda: |- return "Modified: " + x;