Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    m000c400
    @m000c400
    On Melcloud, it looks like you can setup 'Holiday MOde'
    I was hoping we'd be able to set the heating and hot water between Off/Timer/On, like on the FTC5, but I can's see that
    Have I missed anything major?
    Albert Hakvoort
    @AlbertHakvoort
    image.png
    image.png
    That one you mean?
    m000c400
    @m000c400
    Yes I saw that on the Melclod emulator
    Albert Hakvoort
    @AlbertHakvoort
    I can only enable Holiday with a date, but I can't change any settings
    Nice, I will try it this week ;)
    r0b3rtk
    @r0b3rtk

    Hi all, I saw your thread on tweakers.net and am very interested in getting this running @ my home as well (Mitsubishi Ecodan owner). Currently I'm running a WeMos D1 to force a 10 minute duty cycle on the thermostat input, so adding this to get readings from the heatpump in my OpenHab installation would be very nice :-)

    @BartGijsbers any suggestions on where to get the level shifter? I have a lot of stuff lying around except for that. I would like to play around with your code to implement the homie standard (https://homieiot.github.io) so compatible controllers like OpenHab can automatically recognize it.

    BartGijsbers
    @BartGijsbers
    Welcome to the team Rob! I am using this level shifter: https://www.aliexpress.com/item/32772428392.html?spm=a2g0s.9042311.0.0.27424c4d3Cpscp. I think am level shifter will do to be honest. I am also controlling the thermostat input with a D1 mini already for years. I build my own thermostat/zone control. I don't know if you can get my code running on a D1 mini. The esp8266 has only on hardware serial port which is wired to the usb chip on a D1 mini.
    m000c400
    @m000c400
    As I understand it.. The Ecodan must have an 'Open Collector' output on the TX pin, ( https://en.wikipedia.org/wiki/Open_collector ) That is why you need a pull up, and don't see data if you don't have one. You can 'pull up' to any voltage you like ( within reason ), so if you pullup to 3v3, you get 3v3 logic levels, pull up to 5v0, get 5v0 logic levels. You can add a pull up resistor externally, or as the data rate is so low, and if your cable is short, the ESP8266 ( and others ) allows the option to enable an internal pullup. Using this, as the ESP8266 isn't 5v tolerant, you are sure you only get a 3v3 input to your D1 ( or similar ). For the Ecodan RX pin, it may be 3v3 logic on board, or 5v, but both see a 3v3 signal as logic 1, so there is no problem So my case I have both Rx and Tx directly connected, with "INPUT_PULLUP" set on the ESP8266 Rx pin, and it all seems to work OK
    m000c400
    @m000c400
    Progress of sorts... Starting at the other end of the problem, today I managed to fold my protocol engine into Tasmota!!! Only 1 parameter sent at the moment, but in principle everything else is there, and all the back end it sorted 'for free' !!
    image.png
    Untitled.jpg
    BartGijsbers
    @BartGijsbers
    Impressive! I use tasmota a lot, but never dared to even look at the code, let alone add to it.
    Albert Hakvoort
    @AlbertHakvoort
    Nice, I've got some spare Wemos D1 ( and a spare Ecodan at work ;) ) for testing ...
    BartGijsbers
    @BartGijsbers
    Please check if you can use the RX/TX port on the Wemos D1. They have the USB-to-Serial chip on these pins which could make the RX/TX not usable. There are many hardware versions of the wemos D1, so it might work/not work for you.
    Ron Vossen
    @ronserita_gitlab
    Good job guys. I am also very interested just lacking time. You can use the Rx and Tx (from usb) of the ESP8266. connect a diode from the Tx output" Edocan" to Rx input ESP. (pull only to gnd) I use this myself for ESP8266 to RS485 to MODBUS.
    Normale there is a resistor between USB TX to ESP8266 RX.
    IgorYbema
    @IgorYbema
    Hi guys. I stumbled uppon your project as someone mentioned my name on a forum. You guys are doing the same as me and some others started a year ago with the panasonic heatpump. Now a year later we are very succesfull and have a large user community for the project. I'm reading you are facing the same problems we had before. We now even have our own board which can be easily connected to the panasonic heatpump. See https://www.tindie.com/products/thehognl/heishamon-v31-communication-pcb/ And the thing is, this board is almost 1on1 compatible with your mitsubishi heatpump as it seems. It only uses the older esp8266 instead of the esp32 but that would be no problem. Panasonic is even using the same 5 pin JST connector of the mitshubishi ! So, to conclude, if I can help you in any way let me know. I would be pleased to send one of you guys a heishamon PCB with cable so you can test it out (you only need to switch some pins as the pin order is different).
    BartGijsbers
    @BartGijsbers
    Hi Ron, Welcome! I will make a version the esp8266 so we can test that.
    Hi Igor, welcome as well!. That looks impressive what you have made. I make custom circuit boards, but don't know if I will make it for this project. The idea to include temperature sensors is great. I now have a separate esp for that.
    IgorYbema
    @IgorYbema
    @BartGijsbers I mean, you can use the heishamon pcb without a problem when you install the esp8266 code on it (with some minor changes I will provide, we use gpio5 to enable lever shifting mosfets after boot and use serial.swap so we do not need to use the normal tx/rx). If there is a mitsu user near Arnhem/Nijmegen (Netherlands) I will be happy to come over and test this.
    BartGijsbers
    @BartGijsbers
    I was not aware of the serial.swap function. What I read, this solves potential problems on a D1 mini. Many thanks. Unfortunately I live in near Schiphol.
    IgorYbema
    @IgorYbema
    Yes this is why we did this in the first place. However the replacing GPIO's after swapping need some special care also or else the esp8266 will not boot up. So GPIO5 is used to enable the mosfets for level shifting after boot. This is also described in the esp8266 hardware design guide page 11 and 12 (https://www.espressif.com/sites/default/files/documentation/esp8266_hardware_design_guidelines_en.pdf)
    I am ok to send you a pcb and a cable if you PM me your adres. It however needs a USB-TTL cable to program (or OTA afterwards). Do you have that? Or else I need to program your software first on it so you can OTA update it later.
    BartGijsbers
    @BartGijsbers
    Thank you for all information. On the D1 mini GPIO15 is pulled with a 12K external resistor to ground, so that should work in theory. Let us first test everything with a D1 mini before the next steps.
    IgorYbema
    @IgorYbema
    Ok great, let me know when you want to test. The problem we had with the pana is that they pulled the GPIO15 high (on their side RX while TTL communications state that the TX side (wemos gpio15) is the one who should pull it high and not the RX side). This caused the wemos not to boot while connected to the heatpump so we needed that mosfet enable solution after boot.
    Tim Klingeleers
    @Mardaneus86
    Great project guys, much appreciated. I'd like to help out where I can (I'm a professional software developer), but the hardware part is not really my cup of tea. Would anyone care to give some more pointers on that? And if there is any possibility to ruin the heatpump with this?
    BartGijsbers
    @BartGijsbers
    Welcome Tim. At this moment we have the gateway software running on a "standard" esp32 development board. The next step is to have it run on a standard esp8266 development board (wemos D1 mini). After that we can try if the software runs on the heishamon board. We don't know if we can ruin the heatpump. With setting commands we are very carefully and only write settings which we have reversed engineered. This reverse engineering is done by listening to communication between a melcould interface and the heatpump. Here you can see what we have found so far: https://github.com/m000c400/Mitsubishi-CN105-Protocol-Decode. In my code we have implemented that: https://github.com/BartGijsbers/CN105Gateway-production
    BartGijsbers
    @BartGijsbers
    We found some more details relating to the ForceDHW and the use of set command 0x34 (byte0). Think you have to set byte1 to 0x01 (flag?) and then byte3 : 1=Force or 0=Normal.
    r0b3rtk
    @r0b3rtk

    Hi @BartGijsbers , I've built a board based on a ESP32 just like you to get started :-) I wanted to double check the pinout on the Ecodan, do you happen to have the color/pinout mapping? My cable has the following cables: red/brown/orange/yellow/green. I've read somewhere that pin1 is 12V?

    Also, I'll fork your code on Github to make some changes. I'm using platform.io and it's quite picky regarding C-style forward declarations (whereas the arduino studio works around that in the background).

    BartGijsbers
    @BartGijsbers
    Please look at the picture on my github. That holds the correct pinout. I also using platformio in combination with visual studio code. Just use the ".ino" extension and you don't have the declaration challenges.
    r0b3rtk
    @r0b3rtk
    Alright, I'll use the .ino extension (did not even know that it worked that way!). The colors on the picture on your Github differ from mine, I'll double check it with the connector position to make sure! Would it be an idea to include the platformio.ini so we all share the same config?
    r0b3rtk
    @r0b3rtk
    Thanks Albert. I will try to make the connection to the Ecodan tomorrow, should not be too hard. Meanwhile I've got the code of Bart compiling on my Mac (I've created a tiny pull request to fix an include with Windows path separators). Once I get it up&running I'll make some more major changes because I want to follow the homie specification for MQTT (I'm using OpenHab which has support for Homie). Currently the code is all contained in a single file; maybe it is an idea to split the CN105 logic in a separate library so people can integrate it how they see fit?
    m000c400
    @m000c400

    We found some more details relating to the ForceDHW and the use of set command 0x34 (byte0). Think you have to set byte1 to 0x01 (flag?) and then byte3 : 1=Force or 0=Normal.

    I found this too, bytes 1 and 3 set, I couldn't turn it off though. I also tried byte 1 to 0x01, and tried setting byte 4,5,6,7,8,9... etc in sequence, but didn't seem to find anything

    BartGijsbers
    @BartGijsbers
    I looked at all the logs from melcloud that we have so far, and never saw anything else then 0x00 or 0x01 in all byte for the 0x34 setting
    One thing to mention is that in my first "ForceDHW" code, I also set byte 5 to 0x01 (so 1,3 and 5). This resulted in the HP going in holiday mode when you setting it to standby. This was seen by Albert, I could not reproduce it on my machine.
    m000c400
    @m000c400
    OK, Interesting, I'll try that
    Giacomo
    @gfreccia

    Hi All,

    I've adapted the code for Elegoo Mega 2560 R3 with Ethernet Shield to control MSZ-AP25VG-E1 (I assume the unit is compatible).
    The IP/MQTT side works properly but I don't see communication with the pump.
    I assume that the code uses UART1; or do I've to set something to select the serial port?

    Thank you!

    BartGijsbers
    @BartGijsbers
    Not sure if this will work. The program is written in the Arduino framework, but I am running it on an ESP32 chip. I also think the heatpumps and airco units use a little bit different protocol. Please look at: https://github.com/SwiCago/HeatPump and https://web.archive.org/web/20171007190023/https://nicegear.co.nz/blog/hacking-a-mitsubishi-heat-pump-air-conditioner/
    Christopher Ghormley
    @csghormley
    I think similar to Giacomo, I have wifi/webserver/MQTT all working with the Wemos D1 mini (https://www.amazon.com/gp/product/B081PX9YFV/) but no serial. I've tried with and without pullup resistors (10Kohm from both Tx and Rx to 5V), status report web page still says DISCONNECTED. My indoor units are MSZ-GLxxNA, which seem like they should be supported. I'm using the latest mitsubishi2mqtt (https://github.com/gysmo38/mitsubishi2MQTT).
    Christopher Ghormley
    @csghormley
    Interesting quote from https://github.com/SwiCago/HeatPump: "Note: some people report problems with Wemos D1 due to usb serial pulling RX high when usb idle! Fix is to cut a trace, so maybe use an alternative, if following the above blog links.". Can anybody point me at details? My USB serial definitely will be idle when installed, and I'm using Wemos D1 mini.
    10 replies
    Tyson Clugg
    @tysonclugg
    Hi all. I'm about to have 4 MHI heat pumps installed at my house, and 4 at my parents home. 8 x $200 AUD is a bit much to swallow for the official Mitsubishi WiFi adapters, so I'm dusting off my Diploma of Engineering Computer Systems skills and building a bunch of ESP32 based CN105 controllers.
    My plan is to get some WT32-ETH01 modules with 5V input (eg: https://www.aliexpress.com/item/1005002023196214.html), and hopefully use Tasmota for MQTT integration (https://templates.blakadder.com/wireless_tag_WT32-ETH01.html). Has anyone looked at adding the CN105 protocol as a Tasmota module (https://tasmota.github.io/docs/Modules/)?
    2 replies