-
-
Notifications
You must be signed in to change notification settings - Fork 36
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
EQ3 firmwares 1.20+ not working anymore (requires pairing?) #41
Comments
Also firmware 1.20 does not work. |
It seems that the producer of the thermostats updated their firmware recently. According to ios and Android appstore comments even the original app of the producer (calorBT) is not able to connect anymore. Seems like this issue is NOT a problem with the Bluetooth library in use nor the adapter, it seems like a problem with the firmware itsself. |
I'm not actively maintaining this package, but if someone wants to add support for the newer versions I can try to help however I can by codereviews etc. The first step would be to figure out the new communication protocol, quick googling brought this site which looks like a helpful starting point on how to reverse BTLE devices: https://reverse-engineering-ble-devices.readthedocs.io/en/latest/ |
I don't know if this is problem with protocol. I have checked it with eq3cli and it connect and after writing date it disconnect with exception. Thermostat is now with version 1.46.
With BLE Scanner on my phone when i send date to service then I received:
Problem with btle.py? |
Or maybe a problem with the thermostats new firmware itself, as there is quite a shitstorm on the app store‘s comment sections of the official app (CalorBT) as it cannot connect to the thermostats anymore once they were updated to the new firmware. |
From CalorBT works, also works from BLE Scanner. Problem starts when manufacturer add "pairing" then phone starts asking for pairing code. |
@nakatomi845 if I understand you correctly, the vendor has fixed the security issue where it was possible to control the device without pairing (like this library does)? |
Yes, I think this is the problem. But of course I don't know if it's correct implemented on vendor side. |
Ok, that explains some things. I was already wondering why I was never asked for a PIN when I was setting up the Raspi with the thermostats. In contrast, when pairing with the CalorBT app I had to enter a PIN. |
As I can see btle.py supports pair and unpair method so I think it shouldn't be complicated to implement it. |
Definitely this is problem with pairing. When I paired it manually eq3cli works well. But I don't know how to implement in on library. |
What steps were necessary to pair it? Did you just use the bluepy (and the btle.py interface? so this is a standard btle passcode pairing?), or did you do something else? |
On my environment.
|
firmware 1.20 doesn't ask for pin
I wonder if it is better to upgrade or try to fix this fw version. |
What do you mean fix? I think it is better to upgrade. Because this is fix for security. |
I mean to get eq3bt working fine. My final goal is to have the valve again integrated in home assistant. |
I have 3 thermostats all were with 1.20, now they are working with 1.46 nothing change are needed except pairing. |
Hi nakatomi, do I understand this correct: With the new firmware I need to pair the thermostats via bluetoothctl and then the eq3bt (and other scripts/libraries) should work as before? |
Yes. But it will be nice to see that this library support that. |
Ok, one additional comment. Device remember paired device and only one device can be paired. So, if you pair device with pc then you can't connect with phone and vice versa. |
So we can say that only firmware 1.20 is not working with eq3bt, firmware 1.10 and 1.46 are fine. |
I think 1.20 works well without pairing. 1.46 needs be paired but also works. |
nakatomi, thanks for your comment above. Then the new firmware would be actually a deal breaker for me as I use my phone AND my PC to adjust temperature. And this works pretty well currently as is. |
I confirm that 1.20 don't work with eq3bt, it works only with proprietary app on phone. |
Interesting fun fact: I found a master thesis that is analyzing the eq3 regarding its Bluetooth communication. Unfortunately it is in German. https://www.h-brs.de/files/related/kevin_froehlich-masterthesis.pdf#page74 |
@nakatomi845 thanks for the pairing instructions! Do you mind creating a PR to add simplified instructions to the README file? I think that information is useful as it is, even when it cannot be done programatically for the time being. It may also be worth adding a warning about the fact that these devices can only be paired at the same time to one device => using both this library & the official app will not work on newer fws. @Predator83 interesting, thanks for the link! Google translate can usually do a pretty good (or at least understandable) job with DE-EN translations. |
Well, after upgrading the valve, the library can connect again. |
Not sure which one I have but it’s not the newest one that requires the secure pairing. Also not sure where I can look up the firmware version. |
@Predator83
Restarting the thermostate by removing the battery and put it in again, then it should be displayed in the display as the first information.
|
Just to give an update: |
I have a EQ3 cc-rt-ble-eq. After updating the firmware to the 1.46, I removed the device from the calor BT app to reorganize my rooms better. Unfortunately now I can't pair it again. When I push the wheel for 3 seconds, the device just shuts down (seems to be crashing) and I have to remove the batteries to restart it. Is there a way to recover some old firmware without pairing it? |
I have one that failed like that. I didn't find a way to revive it |
But you can see the device in e.g. nRF Connect? Try connecting there and see what it does. |
I tried to connect via BLE Scanner, but I could do nothing from there. |
So it is advertising? When you try to connect, no pin is shown on the display, right? |
Ok, I will try with nRF Connect, even though I don't know what I can do. I think I would need to update the firmware again (as I have done with the other 5 modules after seeing what happened by deleting this one from the CalorBT app), but I don't see how this could be done via an app that is not the CalorBT. Anyways I've decribed what happens: the thermostat works perfectly when controlled using the buttons, but as soon as I press the wheel for 3 seconds, the device shuts down (meaning no sign at all on the display) and stays like that until I remove the batteries. |
The idea with nRF connect was that it supports sending commands. So if you were lucky, maybe there is a command that allows the user to initiate a reset without entering the menu. And question about motor was because I thought you maybe only tried switching around but not actually running the motor against real resistance. Just to ensure that there was not a battery issue. So, if none of the above is the case then all I can think of is opening up the eQ-3 and checking for a reset soldering point. |
I managed to connect via nRF connect, but still I can't understand how I could use this to reset the device. |
You can factory reset it from the wheel too, but don't put much hope into it. I had the same issue and Bluetooth never revived |
I tried that, but this resets to the factory settings keeping the current firmware version. This does not solve the problem.... |
@Ferrarista |
The app is not trivial at all. I can't really understand how I might send that command to the device. |
I am visiting family so cannot make a picture instruction but if you google how to send custom commands with nrf connect you will find instructions :-) If not, I can check in a week when I'm back home |
I honestly gave up with that problem, but I'm experiencing another issue with all the other devices I have at home. All of them are now on 1.46 firmware and coupled to the Calor BT app. Still every time I try to change the temperature from the app, I get a notification from my phone that I sould couple that device (I'm on Android). Then after few seconds, this message disappears and I can regularly control the device. It's just really annoying having to remove the coupling notification each single time. |
I can only recommend taking the plunge and setting up a Home Automation system like Home Assistant. |
Could you elaborate? Thanks :) |
Well, you can control the eQ-3 from the Android app BTColor or whatever it was called. And if you have other devices like lamps or power sockets etc. you probably have one app per manufacturer. An alternative is to set up e.g. Home Assistant (www.home-assistant.io) on a simple Raspberry Pi or any other mini computer and then control them all from there. Essentially it is a software that allows control over all kinds of hardware, independent of manufacturer. But you will need a Raspberry Pi or similar. |
Ok, that's quite some work that I might do in the future. In the meantime it would be nice to have at least the Calor BT app working :) |
Have not used it in a long time. Not even installed. I saw it was updated recently. And ratings remain very low with lots of connection issues. So all I can think of is uninstall the app and re-install the latest and reregister all devices. Maybe it will help. Fingers crossed :) |
Hi, Well as I'm naturally a bit curious I looked what's inside. Someone else before me already disassembled it and took nice photos: https://commons.wikimedia.org/wiki/Category:Disassembled_EQ-3_CC-RT-BLE-EQ |
Well, I found that the CYW20735 BLE chip doesn't have any flash memory, it just has some internal ROM with BLE stack and RAM. The BLE application have to be loaded in RAM on every power up. It can be done via SPI or I2C from external flash/eeprom. This device doesn't have any ext.memory so it's obvious that BLE FW resides in STM8 MCU internal flashrom. It would be possible to reprogram BLE app there but... I connected to the STM8L052C6 via SWIM with ST-LINK V2 and STVP tool told me that there's read protection so we cannot dump the flash and patch the BLE app there :( The only possibility would be to write a new firmware from a scratch, it doesn't worth... |
That's a pity, i wished there would some day be a way to get the measured temperature from the valve. |
I have found a BLE debug/trace UART output at PRG2 con.pin 2, 115200 baud. There are a lot of interesting messages. I also found that my device can still advertise but due to bad FW update it happened that BLE on/off option on display menu got inverted. So when I set the BLE option to OFF it starts arvertising! And I can connect to it via nRF Connect from my phone. I tried to write 0xF0 byte for factory reset and it performed (same as if I trigger it from LCD menu) but it didn't fix anything. It seems like FW in STM8 MCU was not upgraded and new BLE FW behavior was changed and become incompatible together. If I could temporary connect BLE chip with some I2C EEPROM/SPI flashrom with old BLE FW version and boot it at power on then wiring it back to MCU pairing might work and then reflash it via old calor BT app (to get old BLE FW inside STM8 MCU)... Here's the log of messages when I started pairing by push buttong and LCD goes blank, it's clear that something bad is happening - the unknown message indicates that new BLE FW doesn't understand old STM8 command (this repeats endlessly)... Pack ADV Field perform GPIO-Interrupt detected |
After try to set target temperature at any values it goes at 5.0 Celsius Degree. With Fw 1.10 it is still working. I bought new one and I received it with new FW.
Did you see similar issues?
Thank you
The text was updated successfully, but these errors were encountered: