-
Notifications
You must be signed in to change notification settings - Fork 502
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
New Device Support Request - eCozy Smart Heating Thermostat #2393
Comments
Can you please also add a screenshot of the node info panel and all available device clusters? |
Thanks! A misunderstanding though regarding the available clusters: I meant the device itself, where all the fancy lines are drawn. For your thermostat, there should be on the top right 2 black bullets. Clicking on the right most one should extend all available clusters. |
jep :) Looks like some work has to be done to resolve the unknown cluster 0204, as this appears to be about the device configuration... |
It seems this issue is resolved. If it is not, please re-open! |
@honzakeller kindly provided me with an eCozy TRV, for integration into Homebridge-hue (see ebaauw/homebridge-hue#728). However, there's also much to improve for REST API support of this device:
|
For reference, to set the real-time clock using the CLI plugin Find the hex
So in little-endian, the value is FCC4AE26. Next, write the time to the TRV (in my case NWK 0x663c):
|
Updated
Exposed Pi Heating Demand as Fixed the hang when processing a schedule with more than one transition. |
Linked the Get Weekly Schedule Response to the Get Weekly Schedule. Thanks to @manup for providing the clue on how to do this. |
I think I cracked syncing the on-device clock. Time cluster is exposed as {
"config": {
"battery": 66,
"on": true,
"reachable": true
},
"ep": 3,
"etag": "b3dfa008d9d6a957bee43567dd291a79",
"lastseen": "2020-07-28T11:02Z",
"manufacturername": "eCozy",
"modelid": "Thermostat",
"name": "Living Room Radiator 1",
"state": {
"lastset": "2020-07-28T11:02:25Z",
"lastupdated": "2020-07-28T11:02:48.605",
"localtime": "2020-07-28T13:02:47",
"utc": "2020-07-28T11:02:46Z"
},
"swversion": "20160824eCozy967",
"type": "ZHATime",
"uniqueid": "70:b3:d5:de:00:00:14:2d-03-000a"
} The API plugin polls the TRV for it's real-time clock and re-syncs it, when it's drifted more than 10 seconds. On sync, I do set the other settable attributes, Time Status, Time Zone, Dst Start, Dst End, Dst Shift_ and Valid Until Time, but I see no use exposing these. |
Now exposing the Thermostat cluster of the eCozy as: {
"config": {
"battery": 33,
"heatsetpoint": 1600,
"lastchange": {
"amount": 200,
"source": "schedule",
"time": "2020-08-10T13:59:01Z"
},
"offset": 0,
"on": true,
"reachable": true,
"schedule": {
"W127": [
{
"heatsetpoint": 1500,
"localtime": "T00:00"
},
{
"heatsetpoint": 800,
"localtime": "T08:00"
},
{
"heatsetpoint": 900,
"localtime": "T09:00"
},
{
"heatsetpoint": 1000,
"localtime": "T10:00"
},
{
"heatsetpoint": 1200,
"localtime": "T12:00"
},
{
"heatsetpoint": 1400,
"localtime": "T14:00"
},
{
"heatsetpoint": 1600,
"localtime": "T16:00"
},
{
"heatsetpoint": 1800,
"localtime": "T18:00"
},
{
"heatsetpoint": 2000,
"localtime": "T20:00"
},
{
"heatsetpoint": 2200,
"localtime": "T22:00"
}
]
},
"schedule_on": true
},
"ep": 3,
"etag": "5eae5cba59e1d9413c931bc1de0da9a4",
"lastseen": "2020-08-10T14:33Z",
"manufacturername": "eCozy",
"modelid": "Thermostat",
"name": "eCozy",
"state": {
"lastupdated": "2020-08-10T14:33:56.570",
"on": false,
"temperature": 3326,
"valve": 0
},
"swversion": "20160826eCozy114",
"type": "ZHAThermostat",
"uniqueid": "70:b3:d5:de:00:00:0c:f0-03-0201"
} I added support for following attributes:
I made sure that all the I don't think it makes sense to expose System Mode (0x001C) as I refactored the logic to expose the on-device schedule as JSON instead of as a string. The code no longer clears the schedule when refreshing it; newly received Get Weekly Schedule Response messages are merged with the cached schedule. It now also handles multiple days in the response correctly. I renamed I'm also polling the schedule, but the code still queues all seven request (one per weekday) at the same time. While that seems to work on my small test network, I keep losing requests on my production network. Still todo: refactor logic to set schedule from the API. I think it makes most sense to expose a POST and DELETE on Note that the eCozy firmware reports the first transitiontime in a schedule as |
Still to do:
|
Getting a segmentation fault in v2.05.80 when reading an old-version schedule from the database. The old-format schedule was stored using a development version of the REST API plugin; I don't think the crash could happen when reading a schedule stored by from v2.05.79 or earlier. Better add some sanity checks anyway.
|
Ok, I think I nailed setting and clearing the schedule through the API. Starting from my favourite test schedule:
Let's clear Mon-Thu:
The schedule now only contains Fri, Sat and Sun:
Let's add Mon-Thu:
And back to the original 7-day schedule.
Let's set a different schedule for Friday:
And we now have to weekly transition lists:
You'll also receive web socket notification for the new schedule:
|
Hello ebaauw, This would be great. |
My Try:
} USING - PUT: OUTPUT: USING -POST: Output: |
You guys need to read carefully :) It requires a POST request to URL |
I'd like to request the integration of a automatic radiator valve (TRV) by eCozy, the 1TST.
Currently the device is visible via VNC, I'd ultimately like to use it in a hassio/deConz add-on/conbee setup.
Thanks in advance!
The text was updated successfully, but these errors were encountered: