ESPHome 2026.5.0
Loading...
Searching...
No Matches
modbus_output.h
Go to the documentation of this file.
1#pragma once
2
6
7#include <vector>
8
10
12 public:
15 this->start_address = start_address;
16 this->offset = offset;
17 this->bitmask = 0xFFFFFFFF;
18 this->register_count = register_count;
19 this->sensor_value_type = value_type;
20 this->skip_updates = 0;
21 this->start_address += offset;
22 this->offset = 0;
23 }
24 void dump_config() override;
25
26 void set_parent(ModbusController *parent) { this->parent_ = parent; }
27 void set_write_multiply(float factor) { this->multiply_by_ = factor; }
28 // Do nothing
29 void parse_and_publish(const std::vector<uint8_t> &data) override{};
30
31 using write_transform_func_t = optional<float> (*)(ModbusFloatOutput *, float, std::vector<uint16_t> &);
33 void set_use_write_mutiple(bool use_write_multiple) { this->use_write_multiple_ = use_write_multiple; }
34
35 protected:
36 void write_state(float value) override;
37 optional<write_transform_func_t> write_transform_func_{nullopt};
38
40 float multiply_by_{1.0};
42};
43
45 public:
48 this->start_address = start_address;
49 this->bitmask = 0xFFFFFFFF;
51 this->skip_updates = 0;
52 this->register_count = 1;
53 this->start_address += offset;
54 this->offset = 0;
55 }
56 void dump_config() override;
57
58 void set_parent(ModbusController *parent) { this->parent_ = parent; }
59 // Do nothing
60 void parse_and_publish(const std::vector<uint8_t> &data) override{};
61
62 using write_transform_func_t = optional<bool> (*)(ModbusBinaryOutput *, bool, std::vector<uint8_t> &);
64 void set_use_write_mutiple(bool use_write_multiple) { this->use_write_multiple_ = use_write_multiple; }
65
66 protected:
67 void write_state(bool state) override;
68 optional<write_transform_func_t> write_transform_func_{nullopt};
69
72};
73
74} // namespace esphome::modbus_controller
ESPDEPRECATED("set_retry is deprecated and will be removed in 2026.8.0. Use set_timeout or set_interval instead.", "2026.2.0") void set_retry(const std uint32_t uint8_t std::function< RetryResult(uint8_t)> && f
Definition component.h:454
void set_use_write_mutiple(bool use_write_multiple)
void parse_and_publish(const std::vector< uint8_t > &data) override
void set_parent(ModbusController *parent)
optional< write_transform_func_t > write_transform_func_
void set_write_template(write_transform_func_t f)
ModbusBinaryOutput(uint16_t start_address, uint8_t offset)
optional< bool >(*)(ModbusBinaryOutput *, bool, std::vector< uint8_t > &) write_transform_func_t
void write_state(float value) override
Write a value to the device.
optional< write_transform_func_t > write_transform_func_
void set_write_template(write_transform_func_t f)
ModbusFloatOutput(uint16_t start_address, uint8_t offset, SensorValueType value_type, int register_count)
optional< float >(*)(ModbusFloatOutput *, float, std::vector< uint16_t > &) write_transform_func_t
void set_use_write_mutiple(bool use_write_multiple)
void parse_and_publish(const std::vector< uint8_t > &data) override
void set_parent(ModbusController *parent)
Base class for all output components that can output a variable level, like PWM.
bool state
Definition fan.h:2
const std::vector< uint8_t > & data