New electric water heater / boiler (integrated with HA)

Alternative link showing both sides of the PCB : Платка Wi-Fi модул от конвектор,Tesy CN-03 250 EIS WiFi,CN-03 200 EIS WiFi

Hi all!

So this is the app i am using:
Screenshot_20221001-230750~2

There is also the other tesy app, Both should work woth your boiler? mine accepted both in any case.

@ValeriGYordanov you should still open the inspect page section and see the network traffic, perhaps its still asking more on the background

@Jjesper How?

once the boiler was at home i opened it up, look at the pcb and see what was doing the wifi. Then setup the boiler with the app and get it to work.

Now that we have a working boiler with app we lookup the IP and connect trough a browser in my case I was lucky and got the gold mine!!

But if you are less lucky you can do 2 things
1 is ask the boiler to connect to a fake wifi network

2 run a proxy server on your pc, make your phone connect to the proxy server in the wifi settings and open the app of the device you are controlling, if you are lucky its http, if you are unlucky you meed some self signed certificate in order to read all the traffic. Its anoying but that is how i figured out the daikin heat pump

Thanks for the suggestion @belastingvormulier. Here’s a fast recap on what I tried during the weekend.

I did a factory reset on the boiler and during setup to the network I connected to the boiler itself and tried to reach it with the IP that Tesy suggested which is 10.0.0.1 (No luck here) After that I tried to reach it from the IP address that was shown in the network settings which was something like 192.168.33.10 (No luck here as well)
Since there wasn’t anything else I can do here I tried following William’s advice and here is how it went.

My HA runs on an old Windows PC connected to the internet via LAN and I had the opportunity to create a mobile hotspot from this device which thankfully had WireShark installed as well.
So I connected the boiler to the PC’s Hotspot which appears to be as a Man in The Middle and tried to sniff the traffic between the boiler and the router from the PC.
Sadly It didn’t really provided me with any decent information I was able to see the request and response between tesy cloud and the boiler itself, but it was sort of weird (Or perhaps that’s just not my thing)

You can see the POST request above, I believe this is the boiler status request, because I only opened the tesyCloud app, nothing more.
Then I tried to create similar request using cURL, but the response in there was the following:

* Mark bundle as not supporting multiuse
< HTTP/1.1 302 Found
< Content-Type: text/plain
< Location: http://192.168.4.1
< Content-Length: 0
< Connection: close
<
* Closing connection 0
type or paste code here

And this is where I got stuck because I ran out of ideas.
I start to believe that my boiler is either an old version(Which is weird because I got it before 2 weeks and was promised that it is a new version)
Or perhaps really a newer version which works with different the REST requests.

I have no idea why Tesy would create smart products which doesn’t have the option to be integrated with GH for example or expose at least a Webinterface for them, but that’s their decision to do.

I’ll continue the struggle and report it here if I finally make it work and perhaps save some time for someone in the future.

Hi Valeri,
Coming back to your question.
I’ve had this boiler for almost 5 years now.
My installation instructions were simple, the boiler was transmitting its own SSID.
I had to connect to it and visit the IP address.
There I would see the webinterface (as in the screenshot the post before my previous post)
Under outdoor control I scanned for wifi, connected it to my wifi and done.
For the app I just had to fill in my email on that same interface, and done.

Hi William,
I can only assume you have a completely different version which might support local communication between your app and the boiler?
There wasn’t anything to sniff for me unfortunately (not like local URL’s, just json).
Tried it with wireshark, didn’t try it with a proxy, should have thought about it since I work in IT :stuck_out_tongue:
It seems like the app is exclusively working through tesy’s cloud for me. Maybe because of my dated firmware.
When internet is down, I also cannot control it (locally through the app) and have to fall back to the physical interface on the boiler.
One of the biggest downsides. So thats why I am happy you were able to find some :slight_smile:
Gives me somewhat of local control.

Planning to automate it when the electricity is at its cheapest (I have dynamic hourly pricing).
I already had the temperature in homekit for years. Super ideal to ask siri how warm the boiler is.
Maybe I will look into getting it to work like Tado does (something of a thermostat) but that depends on the time I have, it might be that I move out / sell my house in the foreseeable future.
I will share it if I have something to share.

1 Like

In here i can get the full status report in the browser by just typing the ip/status in any browser that’s in the same network.

From there it’s rather easy to disect the json that shows up.

Edit: i now see that was mentioned above.

Looks like that post request is to tesy cloud, it will not work for you. The mac adress is its ID so it seems for Tesy

Other than that, that json contains all the info you can get.

Its a shame there are so my variants around.

There must be some way to get this info from the boiler itself

Hope the puzzling results into something!

Hmm, well

I believe its this one that I got the first picture is like 100 percent acurate:

Its not the place I bought it from but cant find that email anymore…

This if yours looks the same, might give you a reason to buy that spare network card that you can buy as a spare part (linked before)

Problem is, what will be the firmware on that thing,

I would download the firmware of mine, but if i break it the misses wont be happy :wink: crowd fund me a few spare boards haha!

Also if you are lucky you might always have a seccond ssid on the boiler, I have one and that always gives me the 10.0.0.1 adress as the webinterface…

There is also the old tesy app… might be worth proxying that one it just requires a new cloud account for some reason :frowning: why make things easy he :wink:

It would help if you can post the url / full json and the model that you have :slight_smile: perhaps I missed it already, its hard to do this on a mobile haha

@ValeriGYordanov

If I understood all the comments correctly, there are some states the boiler can be in:

  • factory reset , providing it’s own Access Point (in the 10.0.0.0 IP range)
  • WiFi configured, but not bound/configured for cloud
  • WiFi configured, cloud enabled

From you attempts, it is not clear if you could use the first 2 steps?
It almost sounds like the factory reset did not work out completely.

If I understood correctly, when cloud is enabled, the Local API is disabled? This would be weird, but could have been programmed on purpose to ease the microcontroller…

While looking through my notes, it seems there is a specific query for requesting the firmware.

I can confirm it from this other project: tesytalk/models.go at d944e68be9a3c83d4d8650168f1b3737bfcc0199 · gummiboll/tesytalk · GitHub

It send the following URL:
"http://%s/devstat"

Looking at other examples, the response should be something including:

type Tesy struct {
	Address    string
	DevID      string `json:"devid"`
	MacAddr    string `json:"macaddr"`
	Status     TesyStatus
	PowerUsage PowerUsage

which in my test lab from @belastingvormulier code shows:

$ curl 192.168.1.9:8080/devstat
{"devid":"2004-3402 FW21.21","macaddr":"01:02:03:04:05:06"}

Hi Ronnie,

its a FW15.2N@M

1 Like

@ronnie_j
Well, as you said there are 3 states on the boiler, maybe the second is a bit different on my side, or perhaps different that I tried.
Factory reset did work as the boiler created it’s wifi hotspot.

  1. Factory Reset - During factory reset the boiler creates it’s wifi hotspot called “TCH_4018” for example
    What I tried here is to connect to the boiler network and try to reach it on the 10.0.0.1 and 10.0.1.1 as I saw both IP addresses were suggested. I was not able to connect to neither of them.
    Then I tried to reach it on 192.168.XX.XX something that was suggested in the wifi settings as what is the router address, could not reach it as well.
  2. Configured for ONLY Local Connect, This is a bit interesting as when this is configured the boiler creates this wifi hotspot “TCH_4018” permanently and you are required to create a password for it.
    When you connect to the boiler in this step, you are able to use tesyCloud app with Local Connection.
    However if you connect to the boiler wifi and try to reach it with the browser on any of the specified addresses or trying with any of the requests, nothing happens.
    I don’t know for sure but I think this might be the option to probably understand what happens with the requests.
  3. WiFi configured and cloud connected. So here I was able to connect the boiler to the PC’s hotspot (Same as mobile hotspot, but on PC) while the PC is connected to the internet with LAN cable.
    I was able to sniff some of the request/responses here(Screenshot from my previous comment) but I was unable to execute them via curl or even in the browser. Also I think I saw some broadcasting on the boiler with it shouting it’s IP address, I am not really sure what this is but I would suggest that it is broadcast the address so the cloud would know where to reach the boiler.
    Anyway I was unable to do anything with the requests I saw there.

Sadly I don’t have any other ideas currently, but as I said if anything successful pops up, I’ll report it.
Also thanks for the suggestions, makes me think what can I check again :smiley:

You can check your network card settings ?
You cant just connect to the hostpot and expect it to work, you need to add a manual IP address in your own wifi card.

I couldn’t quite catch that, but I assume you mean this?

This is the PC’s Hotspot

On mac its this:
Screenshot 2022-10-05 at 16.24.51

Then give your pc 10.0.0.5 or something
subnet can be 255.255.255.0
router would be 10.0.0.1

Then you should be able to connect

http://ip/status

gives me this:

{"heater_state":"READY","mode":"7","err_flag":"0","boost":"0","power_sw":"on","gradus":"68.5","lockB":"off","ref_gradus":"50","volume":"80","watts":"2400","inet":"1","ant_flag":"0","ant_c":"0","date":"2022-10-05 22:08","mix40":"165","tz":"EEST"}

The model seems to be “GCV 80 47 24D C21 ECW” - this one. That’s from 2 years ago, if memory serves.

I while back i had it integrated in SmartThings with calls to the cloud, but every once in a while they were moving things around so it was really annoying.

I tried sniffing with wireshark, but that lead me nowhere.
Now, thanks to the input from u, I have it in ST with a brand new edge driver and local control.

Hi All,

For anyone that wants to do some simple things with debugging I managed to get a pypi module up that is currently at V1.2 (and I ill assume that by the end of the week 1.3 is up).

you can find it here:

There is a full readme for you waiting but a simple one here:

from tesylocal import tesy
# Setup your boiler
# Note that this validates the ip address to be working (we are expecting a json containing inetdev
# you can choose sync or anyother word, but sync will get all the data inmedialtly, you will then need to update it manually if you want. 
boiler = tesy("192.168.2.254", "nosync")
# set the time (gets current date from your machine, and all you need to give is timezone
# Its a wierd tesy thing.
boiler.settime("192.168.2.254", "Europe/Amsterdam")
# Turn boiler on: 
boiler.boileronoff("192.168.2.254", "on")
# turn boost on: 
boiler.boostonoff("192.168.2.254", 0)

Anyway, questions welcome, support / help is wanted

1 Like

Hi,

One month ago I bought a Tesy modeco 150l smart and also missed a rest api.

What a nice job that you are paying attention to find out the api!

I have the same message as Valeri “IoT” on “/status” but found that my api is on “/api”. It’s a good idea to perform a man-in-the-middle. I’m going to do this too. The tesyCloud app indicates that the boiler has version 0.26.

Greatings
Jaap

Ohhh @jaap78, if you find something working I would really be grateful if you could share.
As I promised I will do as well.

@belastingvormulier even the router address setup didn’t do anything.

I am continuing the struggle.