-
Notifications
You must be signed in to change notification settings - Fork 34
Description
Hello,
i'm successfully querying my daikin heatpumps HomeHub modbus TCP interface:
root@srv44:/haus/strom# modbus -s 1 -r /haus/heizung/register 192.168.77.82:502 reg* -v
Parsed 20 registers definitions from 2 files
→ < 15 5c 00 00 00 06 01 03 00 00 00 04 >
→ < e4 26 00 00 00 06 01 03 00 09 00 01 >
→ < a5 63 00 00 00 06 01 03 00 0b 00 01 >
→ < 07 f2 00 00 00 06 01 04 00 1d 00 02 >
→ < d4 3c 00 00 00 06 01 04 00 22 00 01 >
→ < c3 78 00 00 00 06 01 04 00 24 00 02 >
→ < d0 34 00 00 00 06 01 04 00 27 00 06 >
→ < 6f bf 00 00 00 06 01 04 00 30 00 01 >
→ < e4 f8 00 00 00 06 01 04 00 33 00 02 >
← < 15 5c 00 00 00 0b 01 03 08 00 2a 00 12 00 01 00 01 > 17 bytes
← [42, 18, 1, 1]
reg_soll_heizen: 42 0x2a
reg_soll_kuehlen: 18 0x12
reg_hk_mode: 1 0x1 heizen.
reg_hk_status: 1 0x1 ein
← < e4 26 00 00 00 05 01 03 02 00 32 > 11 bytes
← [50]
reg_soll_warmwasser: 50 0x32
← < a5 63 00 00 00 05 01 03 02 00 01 > 11 bytes
← [1]
reg_ww_status: 1 0x1 ein
← < 07 f2 00 00 00 07 01 04 04 00 01 00 01 > 13 bytes
← [1, 1]
reg_pumpe: 1 0x1 ein
reg_verdichter: 1 0x1 ein
← < d4 3c 00 00 00 05 01 04 02 00 00 > 11 bytes
← [0]
reg_abtauen: 0 0x0 aus
← < c3 78 00 00 00 07 01 04 04 00 01 00 01 > 13 bytes
← [1, 1]
reg_dreiwege: 1 0x1 brauchwasser
reg_hk_mode_ist: 1 0x1 heizen.
← < d0 34 00 00 00 0f 01 04 0c 12 3e 12 34 10 54 11 80 01 b8 0e d8 > 21 bytes
← [4670, 4660, 4180, 4480, 440, 3800]
reg_vorlauf_phe: 4670 0x123e
reg_vorlauf_buh: 4660 0x1234
reg_rucklauf: 4180 0x1054
reg_ist_warmwasser: 4480 0x1180
reg_aussentemperatur: 440 0x1b8
reg_kaeltemittel: 3800 0xed8
← < 6f bf 00 00 00 05 01 04 02 0b 04 > 11 bytes
← [2820]
reg_durchfluss: 2820 0xb04
← < e4 f8 00 00 00 07 01 04 04 00 01 00 01 > 13 bytes
← [1, 1]
reg_warmwasser: 1 0x1 betrieb.
reg_raumheizung: 1 0x1 betrieb.
root@srv44:/haus/strom#
This is working perfect, but i need to connect a modbus RTU device the the heatpump und the HomeHub can't use TCP and RTU at the same time. So i tryed to use a Modbus TCP/RTU gareway, but here i can't query all the values:
root@srv44:/haus/strom# modbus -s 1 -r /haus/heizung/register 192.168.77.86:502 reg* -v
Parsed 20 registers definitions from 2 files
→ < a3 4e 00 00 00 06 01 03 00 00 00 04 >
→ < bc be 00 00 00 06 01 03 00 09 00 01 >
→ < a2 ca 00 00 00 06 01 03 00 0b 00 01 >
→ < 8f 3e 00 00 00 06 01 04 00 1d 00 02 >
→ < 3d 1a 00 00 00 06 01 04 00 22 00 01 >
→ < 9e 9e 00 00 00 06 01 04 00 24 00 02 >
→ < 10 08 00 00 00 06 01 04 00 27 00 06 >
→ < de e4 00 00 00 06 01 04 00 30 00 01 >
→ < b5 1f 00 00 00 06 01 04 00 33 00 02 >
← < a3 4e 00 00 00 0b 01 03 08 00 2a 00 12 00 01 00 01 > 17 bytes
← [42, 18, 1, 1]
reg_soll_heizen: 42 0x2a
reg_soll_kuehlen: 18 0x12
reg_hk_mode: 1 0x1 heizen.
reg_hk_status: 1 0x1 ein
Traceback (most recent call last):
File "/usr/local/bin/modbus", line 110, in
main()
File "/usr/local/bin/modbus", line 103, in main
connect_to_device(args).perform_accesses(parse_accesses(args.access, definitions, args.byte_order, args.silent), definitions).close()
File "/usr/local/lib/python3.10/dist-packages/modbus_cli/modbus_tcp.py", line 63, in perform_accesses
access.read_registers_receive(self)
File "/usr/local/lib/python3.10/dist-packages/modbus_cli/access.py", line 146, in read_registers_receive
words = modbus.receive(self.request)
File "/usr/local/lib/python3.10/dist-packages/modbus_cli/modbus_tcp.py", line 29, in receive
header = self.receive_n(6)
File "/usr/local/lib/python3.10/dist-packages/modbus_cli/modbus_tcp.py", line 44, in receive_n
data += self.connection.recv(n - len(data))
TimeoutError: timed out
root@srv44:/haus/strom#
Looks like the gateway is sending only the first packet of the answers...
Have you seen such behavior in the past? Is this a issue of the gateway or in this software?
Kind regards
Stefan