logo elektroda
logo elektroda
X
logo elektroda

[Solved] Domoticz and the Vents VUT R 600 VE EC A21 recuperator: communication via Modbus and Raspberry Pi

Daro1003 6090 62
Best answers LABEL_AI_GENERATED

How can I read a Vents VUT R 600 VE EC A21 recuperator's temperatures over Modbus TCP from a Raspberry Pi into Domoticz?

Connect to the recuperator over Modbus TCP on port 502, use the register table from the manual, and first verify that you can read the data with a Modbus master tool or Node-RED before trying Domoticz [#20561989] [#20559769] [#21421375] The thread says the BMS function is Modbus TCP and the A21 module is likely the gateway, so if that module is already in use you should work over Wi‑Fi/Ethernet rather than adding another RS485 master; start by reading InputRegister at address 0 and then other registers from the table [#20559769] [#20560537] [#20561989] For Domoticz, the working approach was to format the values in Node-RED and send them as Domoticz udevice JSON, reusing the same pattern as other devices and changing only the idx and svalue fields [#21454792] If the recuperator returns scaled integers such as 183 for 18.3°C, divide by 10 in the Node-RED flow before sending to Domoticz [#21456187] The Node-RED setup used the recuperator network settings, MQTT broker settings, and Domoticz IDX values, and a temperature-reading flow was later shared as a working example [#21460452] [#21775494]
AI summary based on the discussion. May contain errors.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
  • #31 21065007
    xury
    Automation specialist
    Posts: 7083
    Help: 878
    Rate: 1498
    I could arrange it, as long as it is within 100km of Radom. I do not want to drive further. Not everything can be done remotely, unless you guarantee that everything is physically correct and connected and access is provided via, for example, Anydesk.
  • ADVERTISEMENT
  • #32 21065018
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    A little further than 100km

    I think redirects or Anydesk and would take care of the subject.
  • Remote access via fixed IP and port forwarding

    #33 21065062
    zuhjk
    Level 22  
    Posts: 500
    Help: 28
    Rate: 28
    >>21064990
    I recommend myself because I have a contact with a person who does for me. I also have off grid solar and inverter on rs485. as i wrote there are several ways.
    It can be done on node red - i'm testing, on a gateway (the name doesn't matter for now} it can talk directly to domoticz after mqtt - in the initial setup phase. can be programmed in flprog esp32 - I haven't got around to it yet, need good knowledge of Russian.
    The best programmers are at russian.

    Added after 12 [minutes]:

    Daro1003 wrote:
    A little further like 100km

    I think redirects or Anydesk and would take care of the subject.

    It would be nice to have a fixed IP and be able to write redirects to hardware, internal devices to be able to call them directly
    from the other end of the country. Maintaining a proper network security policy.
  • Helpful post
    #34 21421375
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    This is a standard modbus tcp frame,
    you can try reading the data right away in node-red:
    https://m.youtube.com/watch?v=MY1L8t-10a0

    Configuration similar to the radzio programme.
  • Helpful post
    #35 21451976
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    I can also write a program for rpi that reads the data from the control panel and uploads the json to mosquitto. Only for this I need time, well and testing time at daro.
  • ADVERTISEMENT
  • #36 21451988
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    michal.zd wrote:
    I can also write a program for rpi


    That would be great.

    michal.zd wrote:
    only it needs time for that, and testing time at daro.


    This is the worst thing: people often plan what they will not do, but it is difficult to find the time.

    If you write a programme I will test it.
    Maybe someone will find it useful, by the way, I wonder if anyone is already using your program for the inverter besides me.
  • ADVERTISEMENT
  • C program feeds calculated results to node-red

    #37 21452002
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    Daro1003 wrote:
    I wonder if anyone is already using your inverter program besides me.
    .
    If they have node-red, you can embrace everything in it, no need to make separate programs.
    I wrote in c because with binary data it's simpler for me to do it that way than with node blocks. Basically the same way I have the other pieces of the puzzle done, the calculations in the program and the finished results get node-red.
  • #38 21454728
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    Screenshot of a program with a data table and debug results on the right side. .

    See @michal.zd because I don't believe it myself.

    Now the question of what I managed to read.
    Question how to read other tables from the radzio program ??
  • #39 21454742
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    Apparently so.
    Others have a different starting address. Everything is in the document you sent me.
    In it you will also find the descriptions of the data you read.
  • #40 21454753
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    michal.zd wrote:
    The others have a different starting address. Everything is in the document you sent me.
    In it you will also find the descriptions of the data you read.


    I just can't get it down yet.
  • ADVERTISEMENT
  • #41 21454759
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    Post the flow definitions you used, using the export. I'll take a look at it, maybe someone has already done something similar.
  • #42 21454767
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    I set it up that way and it went:

    Screenshot showing Modbus-Read node configuration in Node-RED with active debugging. .
  • #43 21454776
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    In node-red you can basically embrace everything, but sometimes there will be a complicated flow. It is easier to do the same in a normal program written in c/cpp.
  • #44 21454777
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    I have temperatures like nothing:


    bb647f92a Table of input registers with Modbus functions for temperature. .
  • #45 21454780
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    Daro1003 wrote:
    I set
    .
    There is an address there, you currently have a value of 1. The next address where something is is 21 and 31 and 41.
    Type there and see if the data agrees with the data in the corresponding columns.
  • #46 21454781
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    Now just how to upload to domoticz.

    I wonder if there is a standard layout of what a fellow Domoticz forum member sent or a completely different code.
  • #47 21454785
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    Aa in the program you read 90 registers at once. Set up the same way in node-red.
  • #48 21454789
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    michal.zd wrote:
    The next address where something is at is 21st and 31st and 41st.


    And in the documentation it says 1 - 16


    Table showing Modbus parameters with address column highlighted as 1-16.

    I do not understand why exactly.
  • Helpful post
    #49 21454792
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    Daro1003 wrote:
    Now just how to upload to domoticz
    .
    Same as for sofar.
    Identical json, you can just copy this node and replace idx and svalue.
  • #50 21454795
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    michal.zd wrote:
    Aa in the program you read 90 registers at once. Set up the same in node-red.
    .


    Screenshot of Node-RED editor configured for a Modbus node with the quantity field set to 90. .

    Continues to show 10 as I give here at 90

    Added after 1 [minute]:

    It is ok though:


    Debug interface displaying array values with a ok annotation.
  • #51 21454803
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    Daro1003 wrote:
    I don't understand why exactly.

    Sometimes it's not worth getting into 😉 . Read 90 registers from address 1, you get the same data as you see in the program.
    I don't know the node, for reading modbus, look on the net where it is set up.

    Added after 1 [minute]: .

    Daro1003 wrote:
    It is ok however:
    .
    Oh you see. Next up is the flake...
  • Node-RED function copies identical Domoticz JSON nodes

    #52 21454831
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    michal.zd wrote:
    Identical json, you can just copy this node and replace the idx and svalue.


    So something in the code below needs to be changed:

    
    [
        {
            "id": "9faeea04b2b50403",
            "type": "function",
            "z": "c03666d911c02a8f",
            "name": "Prepare for Domoticz",
            "func": "// Declaration of variables\n\nlet idx1 = 123;\nlet idx2 = 456;\nlet idx3 = 789;\n\nlet msg1 = {};\nlet msg2 = {};\nlet msg3 = {};\n\nmsg1.payload = { \"command\": \"udevice\", \"idx\": idx1, \"svalue\": msg.payload.P.toString() + \";0\"};\nmsg2.payload = { \"command\": \"udevice\", \"idx\": idx2, \"svalue\": msg.payload.GP.toString() + \";0\" };\nmsg3.payload = { \"command\": \"udevice\", \"idx\": idx3, \"svalue\": msg.payload.CP.toString() + \";0\" };\n\nreturn[[msg1,msg2,msg3]];",
            "outputs": 1,
            "timeout": 0,
            "noerr": 0,
            "initialize": "",
            "finalize": "",
            "libs": [],
            "x": 460,
            "y": 180,
            "wires": [
                [
                    "85eb0898c7979634",
                    "5b94fc5b22b41f4e"
                ]
            ]
        },
        {
            "id": "5b94fc5b22b41f4e",
            "type": "mqtt out",
            "z": "c03666d911c02a8f",
            "name": "MQTT Domoticz",
            "topic": "",
            "qos": "",
            "retain": "",
            "respTopic": "",
            "contentType": "",
            "userProps": "",
            "correl": "",
            "expiry": "",
            "broker": "175c3dc01f359e9d",
            "x": 710,
            "y": 180,
            "wires": []
        },
        {
            "id": "175c3dc01f359e9d",
            "type": "mqtt-broker",
            "name": "Raspberry Pi 1B",
            "broker": "192.168.10.51",
            "port": 1883,
            "clientid": "",
            "autoConnect": true,
            "usetls": false,
            "protocolVersion": 4,
            "keepalive": 60,
            "cleansession": true,
            "autoUnsubscribe": true,
            "birthTopic": "",
            "birthQos": "0",
            "birthRetain": "false",
            "birthPayload": "",
            "birthMsg": {},
            "closeTopic": "",
            "closeQos": "0",
            "closeRetain": "false",
            "closePayload": "",
            "closeMsg": {},
            "willTopic": "",
            "willQos": "0",
            "willRetain": "false",
            "willPayload": "",
            "willMsg": {},
            "userProps": "",
            "sessionExpiry": ""
        }
    ]
    
    
    .

    Added after 4 [minutes]:

    You still have to process the data somehow because it is, for example, 183 and that is 18.3 degrees.
  • #53 21454845
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    No. I'll hint tomorrow when I'm at the computer, I'm writing from a tablet.
  • #54 21454877
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    Cool.
    I didn't think it would go so smoothly with that recuperator data I was sure it was a much more complicated affair.

    I wonder if other devices that have modbus can also be read this way.
  • #55 21454900
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    Daro1003 wrote:
    I wonder if other devices that have a modbus can also be read this way
    .
    If you have access to the documentation and the device has a modbus TCP interface, then by all means. The interface itself is a standard, but what you read depends on the system (manufacturer).
  • Scaling Modbus values by dividing by 10

    #56 21456142
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    @michal.zd I already have a feature node from a fellow domoticz forum member.

    The only topic left is how to embrace the data from the recuperator to make it not 199 but 19.9.
    Currently it commands me the data the recuperator sends.

    
    [
        {
            "id": "e03d6e55aef23111",
            "type": "function",
            "z": "972c9476422a46d9",
            "name": "Prepare for Domoticz",
            "func": "// Declaration of variables\n\nlet idx1 = 123;\nlet idx2 = 456;\nlet idx3 = 789;\nlet idx4 = 158;\n\nlet msg1 = {};\nlet msg2 = {};\nlet msg3 = {};\nlet msg4 = {};\n\nmsg1.payload = { \"command\": \"udevice\", \"idx\": idx1, \"svalue\": (msg.payload[1] / 10).toString() };\nmsg2.payload = { \"command\": \"udevice\", \"idx\": idx2, \"svalue\": (msg.payload[2] / 10).toString() };\nmsg3.payload = { \"command\": \"udevice\", \"idx\": idx3, \"svalue\": (msg.payload[3] / 10).toString() };\nmsg4.payload = { \"command\": \"udevice\", \"idx\": idx4, \"svalue\": (msg.payload[4] / 10).toString() };\n\nreturn[[msg1,msg2,msg3,msg4]];",
            "outputs": 1,
            "timeout": 0,
            "noerr": 0,
            "initialize": "",
            "finalize": "",
            "libs": [],
            "x": 1060,
            "y": 180,
            "wires": [
                []
            ]
        }
    ]
    
    .

    What is changing here in this code ?
    If I wanted to add more data ?

    Added after 23 [minutes]:

    I think I've covered:

    
    [
        {
            "id": "e03d6e55aef23111",
            "type": "function",
            "z": "972c9476422a46d9",
            "name": "Rekuperator do Domoticz",
            "func": "// Declaration of variables\n\nlet idx1 = 123;\nlet idx2 = 456;\nlet idx3 = 789;\nlet idx4 = 158;\nlet idx5 = 413;\n\nlet msg1 = {};\nlet msg2 = {};\nlet msg3 = {};\nlet msg4 = {};\nlet msg5 = {};\n\nmsg1.payload = { \"command\": \"udevice\", \"idx\": idx1, \"svalue\": (msg.payload[1] / 10).toString() };\nmsg2.payload = { \"command\": \"udevice\", \"idx\": idx2, \"svalue\": (msg.payload[2] / 10).toString() };\nmsg3.payload = { \"command\": \"udevice\", \"idx\": idx3, \"svalue\": (msg.payload[3] / 10).toString() };\nmsg4.payload = { \"command\": \"udevice\", \"idx\": idx4, \"svalue\": (msg.payload[4] / 10).toString() };\nmsg5.payload = { \"command\": \"udevice\", \"idx\": idx5, \"svalue\": (msg.payload[5] / 10).toString() };\n\nreturn[[msg1,msg2,msg3,msg4,msg5]];",
    		"outputs": 1,
            "timeout": 0,
            "noerr": 0,
            "initialize": "",
            "finalize": "",
            "libs": [],
            "x": 1060,
            "y": 180,
            "wires": [
                []
            ]
        }
    ]
    


    I just don't know what the ID and Z stand for if it's always the same or if it's some unique number.
  • #57 21456187
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    Daro1003 wrote:
    recuperator to make it not 199 just 19.9
    .
    Ee o just plain maths, divide by di before writing to msg.
    Aa you already have I see in the Flow code.

    Added after 10 [hours] 5 [minutes]: .

    Daro1003 wrote:
    I just don't know what ID and Z mean
    .
    This is internal node-red stuff, node ID, don't change it.
  • #58 21456551
    Daro1003
    Level 34  
    Posts: 2716
    Help: 295
    Rate: 608
    michal.zd wrote:
    This is internal node-red business, node ID, don't change it.
    .

    ok but what if i want to create a new node-red flow for another node, what does it say there ?
  • Node-red internal idxes, not domoticz idx

    #59 21456951
    michal.zd
    Level 31  
    Posts: 1703
    Help: 85
    Rate: 276
    Nothing, these are as I wrote, node-red's internal idxes.
    I think you've confused them with domoticz's idx.
    Then that's what you specify in node with the msg formatting function.

    Added after 1 [minute]: .

    And yes, just import into the new flow do:
    Screenshot of Node-RED interface for importing flows with JSON code. .

    and then in
    View of a function node in Node-RED labeled Rekuperator do Domoticz. .
    substitute idx for domoticz.
  • Modbus can feed Domoticz from any compatible device

    #60 21459691
    zuhjk
    Level 22  
    Posts: 500
    Help: 28
    Rate: 28
    Daro1003 wrote:
    Cool.
    I didn't think it would go so smoothly with that recuperator data I was sure it was a much more complicated affair.

    I wonder if other devices that have modbus can also be read this way.

    Cool that you have mastered this node-red, for me it was put together by a colleague and everything worked. Sometimes the read data after MQTT doesn't agree with MQTT what ingests domoticz.
    You need to format it properly which node-red does perfectly. As I wrote, I also sent data from the microtik like received signal strength to domoticz.
    Modbus is the standard for sending data. This data can be sent to domoticz from any device that has a modbus interface. It is a free interface
    It is a free interface, focused on reading rather than writing. It is also limited to a certain number of read devices.

Topic summary

LABEL_AI_GENERATED
The discussion focuses on integrating a Vents VUT R 600 VE EC A21 recuperator with Domoticz on a Raspberry Pi via Modbus/RS485. The device exposes a Modbus TCP interface through the A21 module, and the main task is to read registers such as temperatures and humidity, then pass the values into Domoticz. Initial testing is done with a PC and Modbus tools such as Radzio Master Simulator, using port 502 and reading Input Registers from address 0 or other documented offsets. It is clarified that if communication is already handled through a LAN/ETH converter, the setup should use RTU over TCP; if using USB, only RTU is needed. The thread also covers fixed IP configuration, DHCP issues, and the fact that other Modbus clients must be disabled while Domoticz is reading. Later, Node-RED is introduced as the practical solution: Modbus data is read, scaled in function nodes, and forwarded to Domoticz via MQTT or direct udevice commands. The final setup includes Node-RED installed on Raspberry Pi, imported flows for temperature reading, and a separate flow for sending control commands back to the recuperator.
AI summary based on the discussion. May contain errors.

FAQ LABEL_AI_GENERATED

TL;DR: For 15 FAQ answers, "read 90 registers" is the practical breakthrough for Domoticz users integrating a Vents VUT R 600 VE EC A21 via Raspberry Pi, Node-RED, Modbus TCP on port 502, MQTT, and JSON temperature publishing. [#21454785] Why it matters: This lets a Raspberry Pi turn recuperator data into usable Domoticz temperature devices without relying on unstable Modbus plugins.

Path Thread setting Best use Key limitation
Modbus TCP over LAN/Wi-Fi IP + port 502 Direct A21 network access Needs fixed IP
RTU over TCP LAN converter RS485 converter path Serial defined in converter
USB RS485 RTU USB adapter Direct A+/B- testing More wiring and port setup
Node-RED + MQTT JSON to broker on port 1883 Domoticz integration Needs flow formatting

Key insight: The Vents A21 path works once the network Modbus read returns real registers. Then Node-RED only has to scale values, map Domoticz IDX numbers, and publish JSON.

Quick Facts

  • The working test path used Modbus TCP-style access to the recuperator IP on port 502 before Domoticz integration. [#20561989]
  • A successful Node-RED read used address 1 and later expanded to 90 registers, matching the Radzio program view. [#21454803]
  • Temperature values arrive scaled by 10, so 199 must be divided by 10 to display 19.9 °C. [#21454831]
  • Domoticz publishing used MQTT on broker port 1883 with JSON payloads containing command, idx, and svalue. [#21454831]
  • Remote help was considered feasible with AnyDesk, port redirects, and proper network security, especially beyond 100 km travel distance. [#21065062]

How do I connect a Vents VUT R 600 VE EC A21 recuperator to Domoticz on a Raspberry Pi using Modbus?

Connect it through the A21 network interface, then bridge Modbus data into Domoticz with Node-RED and MQTT. Use the recuperator IP, port 502, and a Raspberry Pi running Node-RED. Then publish JSON messages to Domoticz through the MQTT broker. The thread later confirms a Node-RED flow for temperature reading, requiring adjusted recuperator network data, broker data, and Domoticz IDX values. [#21775494]

What Modbus register documentation is needed to read temperatures from a Vents VUT R 600 VE EC A21 recuperator?

You need the manufacturer’s Modbus register table with register addresses and descriptions. The key requirement is knowing which input registers contain temperatures and other values. One participant states that the linked manufacturer document contains the needed base for testing. Later, another confirms the descriptions of the read data are in the document sent for the recuperator. [#21454742]

How can I test Modbus TCP communication with a Vents recuperator on port 502 using Radzio Modbus Master Simulator?

Test it from Windows by connecting Radzio Modbus Master Simulator to the recuperator IP on port 502. 1. Set Modbus TCP connection to the recuperator IP. 2. Use port 502. 3. Read Input Registers from address 0 or 1 and compare values with the Vents table. A successful read means Domoticz integration can start. [#20561989]

What is Modbus TCP and how is it different from Modbus RTU over TCP when integrating HVAC equipment?

Modbus TCP uses an IP network connection, while RTU over TCP tunnels serial Modbus RTU frames through a network converter. "Modbus TCP is a network protocol that carries Modbus communication over Ethernet or Wi-Fi, using an IP address and port 502 instead of a local serial port." In the thread, the Vents documentation suggested Modbus TCP, but screenshots looked like RTU over TCP. [#20582734]

What is RS485 and why do A+, B-, and GND connections matter when connecting a recuperator or keypad?

RS485 is the two-wire bus used by the recuperator keypad, and A+, B-, plus GND must match the device terminals. "RS485 is a serial communication standard that lets one master poll multiple slave devices over differential A/B wiring, where polarity and shared ground affect reliable frames." The original setup connected in parallel to A+, B-, and GND at the keypad. [#20558215]

How do I find or set a fixed IP address for a Vents A21 recuperator connected over Wi-Fi or Ethernet?

Find the recuperator in the router client list, then reserve a fixed IP by MAC address or set Static instead of DHCP. The thread notes that the IP must be saved somewhere in the router. It also mentions a router MAC filter option for assigning a fixed IP. Wired Ethernet allowed fixed IP setup more clearly than Wi-Fi in this case. [#20562002]

Modbus TCP vs RS485 USB converter: which connection method is better for reading a Vents recuperator in Domoticz?

Use Modbus TCP over LAN when the A21 module exposes the recuperator on the network. It avoids an extra USB RS485 adapter and uses the existing IP path. If using USB, configure RTU only and omit TCP settings. If using a LAN converter, configure RTU over TCP and avoid defining the serial port in Domoticz. [#20582549]

How do I configure Node-RED to read Modbus registers from a Vents VUT R 600 VE EC A21 recuperator?

Configure a Modbus read node for the recuperator address, then read the documented register range. The working setup used address 1 and could read 90 registers. Change the start address to reach other groups, such as 21, 31, or 41. The register descriptions must come from the Vents Modbus document used during testing. [#21454780]

How can Node-RED send temperature readings from a Vents recuperator to Domoticz using MQTT and JSON?

Node-RED sends Domoticz updates by publishing JSON payloads through MQTT. The function node creates messages with command: "udevice", a Domoticz idx, and an svalue. The MQTT broker example used IP 192.168.10.51 and port 1883. For more readings, add more idx variables and return more message objects. [#21454831]

Why do Vents recuperator temperature registers show values like 199 instead of 19.9 in Node-RED or Domoticz?

The recuperator sends temperature as a scaled integer, so divide the value by 10 before publishing it. A value of 199 becomes 19.9 °C. The shown Node-RED function uses (msg.payload[1] / 10).toString() for this conversion. This keeps Domoticz from displaying raw register values instead of real temperatures. [#21456142]

How do I map Modbus register values to Domoticz IDX devices for recuperator temperature sensors?

Map each register value to one Domoticz IDX inside the Node-RED function node. Use one idx variable per Domoticz device, then set svalue from the selected msg.payload array element. For example, idx1, idx2, and idx3 can represent three temperature sensors. Replace placeholder values like 123, 456, and 789 with real Domoticz IDX numbers. [#21454831]

What are Domoticz IDX values and how are they used when publishing MQTT data from Node-RED?

Domoticz IDX values identify the target virtual devices receiving MQTT updates. "Domoticz IDX is a device identifier that tells Domoticz which sensor or switch should receive a JSON update, separate from Node-RED’s internal node IDs." The thread warns not to confuse Node-RED id and z fields with Domoticz IDX values. [#21456951]

How can I read multiple Modbus registers at once, such as 90 registers starting from address 1, in Node-RED?

Set the Modbus read node to start at address 1 and request 90 registers. This matched the earlier Radzio program readout in the thread. When the node still displayed 10, the user adjusted the setup and confirmed the 90-register read worked. Use the resulting payload array to select specific temperature positions. [#21454803]

What should I check when Domoticz freezes or crashes after adding Modbus plugins?

Check whether the plugin matches the real transport: Modbus TCP, RTU over TCP, or USB RTU. Wrong plugin settings can make Domoticz freeze for several minutes, as reported after adding and changing plugin options. Also close other Modbus programs while Domoticz communicates, because simultaneous polling can break the session. [#20582515]

How can the same Modbus and Node-RED approach be used with other devices like a Sofar inverter or Vaillant EcoTEC boiler?

Use the same method if the device exposes Modbus and you have its register documentation. The thread mentions Sofar inverter RS485, Vaillant EcoTEC, and other Modbus devices as candidates. The interface is standard, but the register meanings depend on the manufacturer. Node-RED can then format each value for Domoticz via MQTT JSON. [#21454900]
AI summary based on the discussion. May contain errors.
ADVERTISEMENT