New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mitsubishi climate #5265
Mitsubishi climate #5265
Conversation
This reverts commit 5471b6d.
quiet mode is reported as raw fan velocity 6
Hey there @Danny-Dunn, CODEOWNERS = ["@Danny-Dunn"] And run (message by NeedsCodeownersLabel) |
Hey there @martgras, @sjtrny, mind taking a look at this pull request as it has been labeled with an integration ( |
Hey there @trvrnrth, mind taking a look at this pull request as it has been labeled with an integration ( |
Yes, there are a few things I would like help testing with:
In general, the full extent of the capabilities of the protocol are still unknown. The main parts of the protocol: settings, room temp, status, etc. come from previous reverse engineering efforts(see SwiCago's HeatPump Arduino library, and it's predecessors), but I have discovered a few more capabilities: actual fan speed(different from the speed setting), and loop flags(direction conflict and preheat). I believe there is yet more that the protocol can do. I am going to try accessing more status information, I hope to gain access to the coil temperature sensors, as well as the outdoor ambient temperature sensor. |
I'll be happy to help, but my testing will be very different from yours as I have ducted air handlers (PVA-A24AA7 and PVA-A30AA7), so that means there are no vanes and thus no vane control. I've also just installed a CN105 splitter device on one unit (and will install one on the other unit) so I'll have the ESPHome devices connected at the same time as MHK2s on both units. I have no idea yet how the units will react to two controlling devices being connected at once, but the splitters are sold with the intention of them being used to connect 'cloud integration' devices and I'm expecting them to operate just fine. In addition to the things you've mentioned, I've learned that there is an 'energy delivered' report from some units on a daily basis, and I'm very interested in getting those reports so that I can compute energy efficiency (I'm already measuring energy input into the systems). |
do these units have similar settings to the wall-mounted units?
I suspect it won't work(or at least not very well). The protocol relies on polling for status updates. In my testing, when a request is sent, then a second request is sent before the unit can respond to the first request, the unit drops both requests and does nothing. There may be bus collisions between the two devices if they both try a request at the same time. Also not sure if it would work electrically, as the MHK units may pull the bus to one rail while the esphome device tries to pull it to another. Interested to see how it turns out though! A possible solution in this case would be to just monitor the bus, without actually sending the requests, and then just relying on the other connected device to send the request, and parsing the response.
Very interested in this also, if I'm not mistaken I saw it as part of a reverse engineering effort on a Mitsubishi water heater? I'm going to try and find that project again, see if we can get those values out of the units. There seem to be many Mitsubishi climate control systems all operating on the same protocol. |
Yes, I've used them previously with the SwiCago library (via the esphome-mitsubishiheatpump external component).
The splitter I'm using isn't just a passive cable, it's got logic inside to handle two 'accessories' connected at once. I don't know what its behavior will be, but given the way the manufacturer intends it to be used I'm quite hopeful that it will work properly with an ESPHome component too. |
do you have access to a logic analyzer?
In that case, seems like it'll work.
I tried requesting status values 0xA1 and 0xA2 on my units and they didn't respond. Doesn't seem like they support that report. The easiest way to probe additional status values for debug is to add a edit: see the |
I'm a (relatively) happy user of the (I believe) SwiCaGo implementation on ESPHome for my Mitsubishi airco units (SRK 50ZS-W) - The main thing I noticed was that most of the capabilities are optional and therefore not always easily enabled/available. For example, with the current esphome flash I'm using, I have no control over the horizontal/vertical vanes - I can only configure the fan speed and the mode (cooling/heating/off/...). I also can't configure the unit to be in silent mode, etc. I would be happy to contribute to this PR and/or other branches etc, or do some testing with the various options/settings. I'd love to have a more feature-rich air conditioning device available in my Home Assistant. :) |
Yes, I have an 8-channel Salae Logic clone, and I'm somewhat familiar with using PulseView. |
@Danny-Dunn Thanks so much for working on this! I am also happy to help, although I am using the Ecodan Air to water heatpump model with the FTC6 controller. There is already code for communicating with it here: https://github.com/rbroker/ecodan-ha-local I think the protocol is the same, so maybe it would make sense to add it to this lib as well? |
@Danny-Dunn Horizontal vane control does not work. Selecting any horizontal direction resets Vertical vane direction to Auto. Console reports sending 'Horizontal Airflow': Sending state Swing (index 6) regardless of the value requested. Also, it is not swinging. |
I will look at implementing this in a separate PR, as the systems are dissimilar enough that it could warrant a new component. |
Co-authored-by: Konstantin Kopachev <konstantin.kopachev@voxmedia.com>
Vertical vanes are working in my testing, and @kkopachev just submitted a suggestion to hopefully resolve an issue with horizontal vane control.
Could you specify exactly what silent mode this is? The units I have feature a fan speed called 'silent' but we may be thinking of different features. |
In terms of testing I have done, this component has been running on 5 ESP8266 boards connected to 3 MSZ-GE09NA and 2 MSZ-GE12NA units for the past two months. I use remote temperature injection and offsets for certain units(temperature is passed in through a home assistant automation, not ideal but wanted to try using the native API exclusively). |
@Danny-Dunn Setting horizontal vane is mostly working now. I don't know if it's my unit or general problem, but options Additionally, reading value of horizontal vane does not work. It does not match any cases in the switch statement. I am reading through code to see what's going on. C to F conversion is a bit annoying, but maybe it's expected on ESPHome? My HA is using F and I can adjust by 0.5 degree, but obviously it converts to C for the unit and then next read from the unit gets converted again to F and it's a little of from what I just set. For example, starting point 75.2 F, next step is 75.7, but value read from the unit and converted to F shows as 75.5 (for example). |
Does your unit have these options available on the remote control/wall thermostat?
Hmm, the component(and units) work in C and I use HA in C so never noticed this. Seems that any temp conversion is being performed by home assistant, and it seems to be aware that the temperature is in C, and is converting it for the actual value, but not for the step? The temperature step on the units is 0.5C, and sounds like its just taking that without converting it. Seems like a HA bug. |
Figured that swing actually works fine, it's just so slow I didn't notice. And my unit does not have split mode. |
…e 10 with 0x80 Co-authored-by: Konstantin Kopachev <konstantin.kopachev@voxmedia.com>
So nice to see progress on this! Can I be of any assistance with my units? SRK-xx-ZS(X)-W are my units. |
ClimateTraits ClimateMitsubishi::traits() { return traits_; } | ||
|
||
ClimateMode ClimateMitsubishi::mode_to_climate_mode_(uint8_t mode) { | ||
switch (mode) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
switch (mode) { | |
switch (mode > 0x08 ? mode - 0x08 : mode) { |
For devices with iSee sensor and when it is enabled, then mode is shifted by 0x08.
I'm also interested in this component! So far I'm using https://github.com/geoffdavis/esphome-mitsubishiheatpump to integrate it with ESPHome. On an experiment today, I put this component on the ESP32-WROOM that is connected to the AC. Unfortunately, it always tells me that there was a timeout waiting for a response. I tried different baud rates (4800 which I used before) and different TX/RX pin definitions (I am using GPIO16/17), but the AC unit doesn't seem to reply. So I switched back to the old component. Anyway, I noticed compilation warning, maybe that could be fixed?
@henrykuijpers your units are most likely Mitsubishi Heavy (MHI) ones, this component is about Mitsubishi Electric (MEL). I noticed you mentioned https://github.com/SwiCago/HeatPump but you are probably using another library - the MEL communication format seems very different from MHI. |
Have you made sure that you are using even parity on the serial port? If that doesn't work and you have a logic analyzer lying around, you can attach it to the serial lines to see what's going on. |
I had another closer look and finally made it work. Most likely I had a bad physical connection. For level shifting I have a 10k resistor between 5V and RX (aircon side) and a 1.5k resistor in series for TX, to limit the current that is flowing into the protection diodes of the ESP32. I wonder how long that will last, might be better to get a proper 3.3V-5V level shifter! My device doesn't report the compressor frequency (MSZ-HR50VF), but the rest seems to work. Also, I wondered if there is more data that could be retrieved - some hints are in SwiCago/HeatPump#39 (comment) |
There hasn't been any activity on this pull request recently. This pull request has been automatically marked as stale because of that and will be closed if no further activity occurs within 7 days. Thank you for your contributions. |
What does this implement/fix?
This new component implements communication with Mitsubishi Electric Heat Pumps via the RedLINK communication interface(UART).
Types of changes
Pull request in esphome-docs with documentation (if applicable): esphome/esphome-docs#3131
Test Environment
Example entry for
config.yaml
:Checklist:
tests/
folder).If user exposed functionality or configuration variables are added/changed: