Heater monitoring: isolate heater sensors from arduino

I built a simple heater monitoring to track all temperatures within the heater. That's a complex wood pellet boiler with solar panel and many motors. I have 12 temperatures to get and 8 motors to monitor.
I did a system like attached, connected to a mega. All temperatures are sent using MQTT to a raspberry sending me beautiful grafana graphs.

The boiler has an io board with some opamp to measure resistor sensor. It sends some +5V to the sensor and I could measure voltages in the 1 to 3V range (I don't have the board schema).

At the beginning I saw one flaw: when arduino is not powered, it seems to drain some current from the heater sensors. So if my arduino is going down, some temp are going down, boiler is starting and it could produce crazy situations for the boiler. I saw that disconnecting the +5V from multiplexer would prevent this comportment so I added an optocoupler that is powered by the +5V. When arduino is down, then opto is cutting the power of multiplexer and all looks fine in the boiler screen.

But a nightmare happened. my mega burnt, either because of a short circuit or because it was connected to some ACS712 I was using to monitor my pool pump consumption. I found the current sensor burnt ... and the heater IO board was damaged. (btw It teached me how to sold CMS resistors on the io board to fix it, so I saved a lot of money)

At the end of the day, I want to try this again but in a more controlled way. what would be the best approach to isolate heater sensor from arduino? I was thinking of using opamp to isolate the grounds and add some diode to avoid reverse current flowing back to the heater. Would you have any advices?
The heater is also using RS485 for the comm between the master board and io board. Another option would be to plug to RS485 bus of the heater but it seems I could only read the master's messages. So I didn't use this option. (and hopefully I did not burnt the bus in the heater).

raspberry.pdf (184 KB)

The easiest (digital) isolation is at the I2C interface between the ADC and Arduino. I also would try to power as much as possible from the I/O board, so that the Arduino is up when the heater control is up. Unless the Arduino does more than only measure and transmit the temperatures, I'd choose a smaller Arduino (Pro Mini...), which consumes less power and is cheaper to replace. Or an ESP8266.

A RS-485 sniffer were the cheapest solution. Most probably you forgot to turn on the receiver when the slave transmitter is enabled, not when the slave is listening.