I think I tried gysmo38 module as well (in 2023) and didn't have any luck (different MQTT topics maybe?), so I just ended up using the SwiCago code per @michaelahess 's post.
I forked @interrobang's driver repo a while back and started adding features. I get the impression that he's busy with other things, so I had my fork added to HPM and will be doing releases through it. If you're interested, here are some features I've added to date:
- Supports
remoteTemperature, because internal heat pump sensors can be inaccurate (all of mine are) - Preference for
Gradual Temperature Adjustmentwith the goal of allowing variable speed heat pumps to run at lower capacity (I'd love real world confirmation of this) - Preference to
Adjust setpoint to avoid an immediate cycle when turned on, which just adjusts the initial setpoint by 2C for one minute
It's also worth noting that I've (mostly) switched the driver to working in half-Celsius increments (so you'll see temps like 67.1 if you speak Fahrenheit), which seems to be what the hardware/SwiCago do natively.
You should be able to find the driver and companion app by searching for "Mitsubishi Heat Pump" in HPM, and please drop any feedback or bugs here or on GitHub.
Yeah, you'll have to use the sketch I mention in the readme; gysmo's is for controlling via that little web interface it exposes!
I can confirm that it works with the Mitsubishi SLZ-KF cassette series. I have the SLZ-KF12NA cassette. It took an oscilloscope to figure out why it wasn’t working, but I realized that the cassette’s TX line on the CN105 UART connector is open-drain and requires a pull-up on the Lolin D1 Mini RX input.
I also had to remove the series resistor between the USB chip and the RX pin of the Lolin to ensure that the cassette UART could pull the line low to a logic ‘0’. If you don’t remove this series resistor, the TX signal driven by the cassette goes from high to mid-rail because the USB chip is always driving a ‘1’ (line contention).
It works like a charm now. From that, I also realize that my wall units, which use the same Lolin D1 Mini, are probably driving TX with a push-pull output that can still achieve a logic ‘0’ at the Lolin RX pin, but they might be sourcing some current to overcome the contention caused by the USB chip. At some point, I may have to remove the series resistor there as well to avoid damaging the wall-mounted unit’s UART on CN105.
Don’t hesitate if you have any questions. Thanks to everyone who developed this — it works very well.