How you recognise it
A Modbus RTU device that has its own power supply (a hybrid or PV inverter, a heat pump, a heat recovery unit, a charger) works, but now and then:
- The device or its module goes into error for a few tens of seconds and then recovers by itself
- Its values have short gaps in the chart
- Registers info of its module shows read failures such as CRCError, SlaveIdMismatch or a broken reply on all registers, not on one
- One device on the line has clearly more failures than another device on the same line
Cause
Only A and B are wired between the Core and the device, without a common ground (GND). The RS-485 bus ports of the Core are not galvanically isolated, and neither are the communication ports of many devices. A device powered from its own source then has its ground floating or shifted against the ground of the Core. An RS-485 receiver only works while A and B stay within −7 V to +12 V of its own ground; beyond that, and with switching noise of an inverter on top, it receives broken frames. Transformerless inverters are especially prone to this.
Solution
Step 1: Find the ground terminals
Service installation partner
- Ground of the Core: the minus (GND) terminal of the 24 V power supply of the Core, the GND pin of its red power connector — the bus ports of the Core have only A and B
- Ground of the device: its RS-485 GND terminal, for example pin 6 of the COM port on a SolaX hybrid inverter
- Measure each device separately, while the devices run and the Core communicates with them
An inverter can carry dangerous voltage inside. Measure only on its communication port and on the terminals of the Core, start AC measurements on the highest range and use a multimeter rated at least CAT III.
Step 2: Measure the voltage between the two grounds
Service installation partner
Nothing needs to be disconnected. A common multimeter (10 MΩ) can show volts or even tens of volts between the grounds even when they are only coupled through the interference capacitors of an inverter, so the last reading under load decides:
- DC voltage: below 1 V is fine, above 7 V is outside the RS-485 range and failures are certain
- AC voltage in the normal mode of the multimeter
- The same voltage again in LoZ mode, or with a 2 to 10 kΩ resistor across the probes
Step 3: Fix it according to the result
Service installation partner
- The voltage collapses to almost zero under load: the ground only floats. Connect the GND terminal of every device on the line to the minus of the Core power supply with a third wire in the same cable, and connect the cable shield to GND only at the Core
- The voltage stays under load: there is a real potential difference, do not connect the grounds directly. Isolate the line galvanically — the RS485 Optical Isolator, or an isolated port (Bus 3 or 4) of the Bus Extender with iGND connected to the GND of the device
If it still does not work
- Watch Registers info of the module for an hour after the change: new read failures should no longer appear
- Check that every device on the line has its own Slave ID and the same baud rate and parity as the interface
- Check that A and B are a twisted pair and do not run next to power or DC cables of the PV system
- Contact TapHome support — they can compare the read failures per hour before and after the change