Seweryn
(Seweryn Śmigielski)
8 Listopad 2023 12:59
1
Cześć, nie mogę się połączyć z R4DCB08 przez modbus który jest wbudowany na płycie KC868-E16S, Przez adapter usb i qmod master odczyt temperatur jest poprawny natomiast przez ESP nie mogę dostać się do konkretnych rejestrów.
Link do dokumentacji:
https://onedrive.live.com/?authkey=!ABatEij5own9VgQ&id=6CB904C24618C03A!29873&cid=6CB904C24618C03A&parId=root&parQt=sharedby&parCid=UnAuth&o=OneUp
macek
8 Listopad 2023 14:47
2
Pokaż co odczytałeś w qmod master a potem jak próbujesz to samo odczytać w ESPHome.
Seweryn
(Seweryn Śmigielski)
11 Listopad 2023 11:46
4
#Modbus RS485
uart:
id: mbus
tx_pin: 32 #TXD
rx_pin: 13 #RDX
baud_rate: 9600
modbus:
id: modbus1
uart_id: mbus
send_wait_time: 200ms
modbus_controller:
- id: mod_bus_A
## the Modbus device addr
address: 1
modbus_id: modbus1
setup_priority: -10
- id: mod_bus_B
## the Modbus device addr
address: 2
modbus_id: modbus1
setup_priority: -10
sensor:
# modbus Sensors
# Data collector mod_bus_A
- platform: modbus_controller
modbus_controller_id: mod_bus_A
id: modbus_temp1
name: "Temperatura #1"
address: 0x0000
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_A
id: modbus_temp2
name: "Temperatura #2"
address: 0x0001
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_A
id: modbus_temp3
name: "Temperatura #3"
address: 0x0002
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_A
id: modbus_temp4
name: "Temperatura #4"
address: 0x0003
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_A
id: modbus_temp5
name: "Temperatura #5"
address: 0x0004
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_A
id: modbus_temp6
name: "Temperatura #6"
address: 0x0005
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_A
id: modbus_temp7
name: "Temperatura #7"
address: 0x0006
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_A
id: modbus_temp8
name: "Temperatura #8"
address: 0x0007
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
# Data collector mod_bus_B
- platform: modbus_controller
modbus_controller_id: mod_bus_B
id: modbus_temp9
name: "Temperatura #9"
address: 0x0000
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_B
id: modbus_temp10
name: "Temperatura #10"
address: 0x0001
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_B
id: modbus_temp11
name: "Temperatura #11"
address: 0x0002
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_B
id: modbus_temp12
name: "Temperatura #12"
address: 0x0003
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_B
id: modbus_temp13
name: "Temperatura #13"
address: 0x0004
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_B
id: modbus_temp14
name: "Temperatura #14"
address: 0x0005
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_B
id: modbus_temp15
name: "Temperatura #15"
address: 0x0006
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: mod_bus_B
id: modbus_temp16
name: "Temperatura #16"
address: 0x0007
device_class: "temperature"
state_class: "measurement"
unit_of_measurement: '°C'
register_type: holding
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
Kod jest dla dwóch modułów R4DCB08.
macek
11 Listopad 2023 21:28
5
@Seweryn brakuje jeszcze tego samego odczytanego w qmod master.
Seweryn
(Seweryn Śmigielski)
13 Listopad 2023 12:15
6
Ok udało się rozwiązać problem.
Jednak przewody modbus muszą być podłączone zgodnie z dokumentacją. Jak podłączyłem odwrotnie i mimo zmiany w kodzie nie przyniosło to efektu. Musiałem zmienić fizyczne podłączenie.
Kod jest poprawy i działa więc zostawię jak by ktoś potrzebował.