Hello everyone,
I have an OEG Solar Boiler and control unit (ksw-e).
The control-unit has a mini-usb port and can communicate via Modbus-ASCII.
I would like display the temperature values of the Solar-system in Home-Assistant. (2 sensors on the boiler, 1 outside in the solar collectors).
So far, I was already able to read the Modbus-registers using my laptop and a free software package called Modpoll.
(Address: 128, baudrate: 9600, data-bits: 7, stop-bits: 1, parity: even, (max number of registers to read: 60))
In my case, the registers with the temperature values are: 39, 40, 41.
I want to use a wt32-eth01 board to read registers of interest and send them to HA using ESP-home.
(It’s like an ESP-32 but has an ethernet-port on the board which I use to connect to my network instead of using the wifi-module.)
MQTT is also an option but I prefer to keep everything the same and use esp-home.
Unfortunately, I have not been able to get things up and running.
I’ve tried a number of different configurations but I’ve had no luck so far.
All I can get is this error:
14:43:59 [D] [modbus_controller:032] Modbus command to device=128 register=0x40 countdown=0 no response received - removed from send queue
Any help would be much appreciated.
If my goal is unachievable (for example because Modbus ASCII is an old protocol with too little support), please also let me know.
The relevant part of my current configuration is:
uart:
id: mod_bus
tx_pin: GPIO2
rx_pin: GPIO4
baud_rate: 9600
stop_bits: 1
data_bits: 7
parity: EVEN
modbus:
id: modbus1
send_wait_time: 500ms
setup_priority: -10
modbus_controller:
- id: epever
address: 0x80
modbus_id: modbus1
update_interval: 3s
sensor:
- platform: modbus_controller
modbus_controller_id: epever
name: "Temperature"
id: temperature
register_type: holding
address: 0x40
unit_of_measurement: "°C"
value_type: S_WORD
Additional info:
There are 2 python scripts out there for this exact purpose.
https://github.com/ced2git/oeg_kmsd
https://github.com/Yannicflight/oeg_kmsd
But unfortunately, they need some OS to run it on.
An RPI would suffice, but if possible, I want to stick with my microcontroller (wt32-eth01).
I’ve also heard of micropython, but as far as I can find out, these scripts would not work because some libraries are not supported.
I have not been able to find any libraries (for Modbus ASCII) to replace those used in the scripts.
Thanks in advance for your help, any insights are much appreciated.