Hack my Heat Pump and publish data onto emoncms

@SubOrbit
An altherma ht unit has no flow sensor. Only a switch that’s of no use.
Newer series (CA) have a flow sensor that can be read.

I forgot about the rtd module. Nice to see it supports the HT unit.

@aideen

What is the indoor unit type? Only units from BB generation up can connect to the proprietary interface.
If you have a ekhbx0??BA type you are out of luck. And i don’t think the rtd module will support it either.

Hi, I have a Bosch Greenstore heat pump and have had good success in getting a feed from it. Take a look at the OpenHab forum post here

I’m connecting to the Rego unit inside the pump - pretty common across many heat pumps. It’s basically just a serial feed, so I see no reason why you can’t modify to capture in emoncms.

Hello there…

I have two Daikin HT beauties, which work fine but I reeeeely want to get my fingers in there. They run in leaving water mode and heat both my underfloor and hot water tank (non-Daikin) .

Mostly, I want the ability to adjust flow temperature (and maybe to turn one of the heat pumps on and off) all based on outside temp, wind speed (still too many drafts…) and HW demand. Some of this I can do with built in options, but its all a bit inflexible and sub-optimal at the moment.

Ideally, I’d hack directly into the 2-wire interface between the indoor unit and the little display/remote box, using something based on an Arduino but I can’t find anyone who’s done this. Would love to get my scope out and see what that looks like, but that’s gonna take me a lot of messing about, plus I only dare look at it in the summer months(!)

Any tips…? Is the RTD-W board priced sensibly…? How did you get a hold of one…?

Michael

Hello Michael,

I got the RTD-W interface working. Just connect it to a 2-wire interface on your indoor unit (in parallel to your existing Daikin controller/thermostat).
I have connected an esp8266 with a RS485 interface to it and I can monitor/modify the available parameters via MQTT. The thing has been working perfectly for a little less than a year now, but mainly I just use it to turn the HP on/off or to change the thermostat value and to grab data about leaving/return water temp, DHW temp etc… which I then store in a local emoncms install. I’m not doing any hardcore automation (yet) :slightly_smiling_face:

I bought the RTD-W interface from some guy on ebay. Local Daikin resellers also have them, but they are quite pricey - around 300EUR/piece if I remember correctly.

Thanks Sub, that’s good info.

I have registered a search into Ebay for an RTD-W (there’s a few RTD-10’s and 20’s, but no W’s at the mo).

My other choices are to solder a couple of wires into the existing controllers and use relays from my Arduino to toggle the temp up and down (which is a truly awful hack, but very cheap), or to fit a couple of the Daikin demand PCBs which seem to allow volt-free control of 2 or 3 temp set-points (which is a really dull hack since that’s probably the way you are supposed to do it).

I will probably continue to assimilate info for a bit here, can’t change anything at the mo anyway, since we will be very c-c-cold if I mess up…

Hopefully a cheap RTD will arrive just in time for spring… : )

M

Hello bart.ellast,
could you please share some details of your hack for the Daikin proprietary interface?
I’m currently trying to hack my FTXB-C unit - according to all the documentation it should not be possible, but it does have the S403 connector, so I got a KRP980B1 to convert it to the S21 which should be connectable to the OnlineController devices (only which one of the 4 or 5 available I have no idea). Here are the photos of the adapter board:


I’ve done some reverse engineering on the converter and now I’m able to turn the unit on/off and also check if it’s running through an additional 4-pin JEM-A connector.
I have also found out the pinout of S21, should be “+5V, TX, RX, +12V, GND” (pin 1 is on the top marked by arrow).
Unfortunately I don’t have much idea what the RX and TX are… according to the transistor/optocoupler chain they’re definitely some sort of full-duplex bidirectional asynchronous connection with 5V pull-ups, which would hint at a normal TTL-level UART.
Tracing both pins to S403 (should be pins 2&3) and further on the main board seems to lead them to the UART1 port of the control MCU…
So far so good, looks like it should be a serial port. However there is no activity on it from the unit’s side no matter what I do, and whatever I try sending there is no response.
Have you also dealt with the S21 port in your hack? Was it really an UART? What were the parameters (baud,parity,stop bits,…)? Did you build the RS232 converter yourself, or is it a commercially available unit?
I’m thinking of getting one of the OnlineController devices and try to analyze its communication, or at least see what it’s trying to send if it does not work with my unit… or maybe taking the main board out completely, power it on the test bench and have some real fun with oscilloscope. But it would be nice to have some starting info before that :wink:
Thanks a lot for your answer!

Hi Bart,
In my search for a way to record data from my Daikin Altherma LT heat pump, I came across this post. Could you share the node-red flow you used with me? And the way you connected to the p1p2 port?

Kind regards,
CJ

For anyone interested. It is possible to extract data from a Daikin LT heatpump using the online controller( BRP069A61). It can be communcated with using websocket. I was able to determine how to extract tank/indoor/outdoor temperatuur and some other values(rounded to whole degrees). However, process values like flow, inbound and outbound AWT temperature seem to bu unavailable.
If you need more info, contact me.

On which LT version did you read data,because mine is a 2009 model.Can it be read by the BRP069A61?

It is an EHBX08CB3V. I don’t know what other HP models it is compatible with.

Your inside box is newer and has a x5m conector witch is for dc connection. Mine doesn’t have it .Like @aideen said only newer models from BB series can be read.

Hi,
giving some additional information here - some of the commands I got with Wireshark decoding the tcpdump and listening the BRP069A62 websocket traffic.
Indeed, the websocket is the only option there and sending JSON strings.
As for my case, as the Daikin Altherma is in LWT control mode (not Room Temperature), there are no commands seen to monitor/control LWT configuration. So for my case, I only get to play with my Domestic Hot Water values. Below are some commands I harvested out from the websocket traffic. This is not a final list, there was a lot about as well about DWH schedule etc, yet not being the main interest I omitted it.

{"m2m:rqp":{"op":2,"to":"/[0]/MNAE/1/Sensor/TankTemperature/la","fr":"/TarmoTest","rqi":"xijub"}}	
{"m2m:rqp":{"op":2,"to":"/[0]/MNAE/1/Operation/TargetTemperature/la","fr":"/TarmoTest","rqi":"yssyq"}}
{"m2m:rqp":{"op":2,"to":"/[0]/MNAE/1/Operation/Power/la","fr":"/TarmoTest","rqi":"umufn"}}
{"m2m:rqp":{"op":2,"to":"/[0]/MNAE/1/Operation/OperationMode/la","fr":"/TarmoTest","rqi":"nygjn"}}
{"m2m:rqp":{"op":2,"to":"/[0]/MNAE/1/Operation/TargetTemperature/la","fr":"/TarmoTest","rqi":"yssyq"}}
{"m2m:rqp":{"op":2,"to":"/[0]/MNAE/1/Operation/Powerful/la","fr":"/S3006ad02-d2f5-4cae-9b17-9be43d6f6408","rqi":"bswjp"}}

How to play with it - google for “websocket client”, connect to ws://192.168.2.4/mca (or any other IP your Daikin LAN device is running). Note the /mca in the end

If you are interested in the Python code connceting and gathering some parameter value, let me know.

Br
Tarmo

Hello Tarmo,

I have a BRP069A61 connected to an indoor unit EHVX08S23D6V.
I contacted Daikin and they told me that the communication protocol of the Gateway is DIII-Net (proprietary).
The only thing I have managed to do with the module is to connect it to the Daikin Controller APP, but this is not very useful and provides very little information.
I have unsuccessfully tried the “man in the middle” method with the APP + tPacketCapture. But I have no idea how it works.
I am very interested in your discoveries, and the rest of the parameters that can be obtained or modified.
If you have more information on how to contact the BRP069A61 / 62 I will thank you very much.
I can not understand how the protocol syntax that you comment works, could you give me an example?
Thank you very much in advance!

Luis

If you are interested in the Python code connceting and gathering some parameter value, let me know.

Can it be possible to share your python code ? and a little explanation of each ws query you use ?

Thanks for your work !

Damien

Hello,

I have a BRP069A62 connected to a Altherma LT EHVX16S26CB9W (LWT control too). Thanks to your explanation I can connect to the websocket of the altherma, but then how get sensors values ?

I want to monitor all temperatures (outdoor, leaving and returning temp, DHW) and electric power consomption.

Thanks,
Ed

Hi guys, how defrost energy is caculated ?
For generated energy I use 4200(J/kg K) x 1000(kg/L) x Flow(L/min) / 60000 (m3/s)/(L/min) x DeltaTemp
In defrost it will have negative Delta temperature and real defrost begins a several seconds sooner if I check heats pump stats.
I did some decoding of Panasonic Aquarea H series heat pump and can get all data via CN-CNT connector.

1 Like

I’m able to do some calls in python right now (to get the water temp.) but i still need a explanation of what can do each ws described above.

Thanks in advance,

Dam’

Hi,
couple of months ago I used wireshark to sniff some traffic from BRP069A62. I have spend a lot of time trying to dig more data… I have more or less discovered the whole structure of the websocket server. This is what I found on my Altherma LT.

In the attachment you can find a simple xls table with more or less complete structure of the websocket server I gave up at the end of the second unit (errors, child lock etc.) but the addresses are similar to the ones from the first unit. How to read the table? For example line 25 means that model number of the unit 1 is available at

/[0]/MNAE/1/UnitInfo/ModelNumber/la

As you can see, there are two “units” (just like in the Daikin Control APP).
/[0]/MNAE/1/ is the heating unit
/[0]/MNAE/2/ is the hot water tank

NOTE:
If you operate in LTW mode, the heating unit (/[0]/MNAE/1/) is NOT available (just like in the Daikin Control APP). The hot water tank is available, but in different address (did not check, but I guess it will be /[0]/MNAE/1/)

All values are readable, some are writeable. Sorry, I did not systematically record which of them are writeable, but I think that only addresses within “Operation” are writeable.

I am able to read (sensors like tank temperature, outdoor temp) and write (set target temp, turn on/off heating etc.) from and to the websocket server using Node Red (noides websocket in, websocket out). If you are interested, I can post my flow.

And here are the bad news: Unfortunatelly, additional data like flow, inbound and outbound AWT are nowhere to be found :frowning: Or at least I did not found them. All (or almost all) data (readable sensors from the websocket server) and commands (writeable to the websocket server) available on the BRP069A62 are already available through the Daikin Controller APP.

EDIT:
websocket Daikin.pdf (73.7 KB)

1 Like

You only needed to ask (as per the FAQ). You can now.

1 Like

Many heat pumps just don’t have UARTS (byond JTAG headers). Still, one can get at the operational data with the IR remote and display. The TX/RX pins described above sound like the scheme on my unit (an air to air unit). Also, that wifi connector they sell … dont think it has any more functionality than the remote! Anyhow, thought i’d share my project, it hacks IR protocol and display interface and routes data as MQTT client with ESP8266. It works with Senville, Mr.Cool, Pioneer, Lennox, and some Daiken i expect. Basically, all brands using same hardware (there are a bunch) https://github.com/kpishere/homie_heatPump

Some pics in the wiki https://github.com/kpishere/homie_heatPump/wiki