Replies: 3 comments
|
Hey @Bekkie,
This way we can effectively reverse-engineer Tado's detection algorithm and derive solid default thresholds from real-world data. |
|
In my setup I don't get these notifications from homekit fast enough to do this detection. Happy to see it does work for others... |
|
For now i implemented 1 degree temperature drop within 20 minutes with PR #37 |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary
Add local open window detection to TadoLocal-server (and the HA integration) as a replacement for Tado’s HA original integration.
This would detect open windows based on temperature drop behavior and system mode, without relying on cloud services or paid subscriptions.
Motivation
I really like the TadoLocal-server solution (both as a Home Assistant add-on and via this integration). It already replaces the native HA Tado integration very well and even adds useful extras (e.g. target temperature as a sensor).
One feature I miss, however, is Tado’s open window detection. I don’t miss it enough to pay for Auto Assist, but I do miss it enough to want a local implementation.
Concept
Basic detection principle:
The detection should be:
Algorithm Inputs
System parameters
off | heating | coolingUser-configurable parameters
Window open duration
How long a window remains marked as open
(Tado app default: 30 minutes)
Rest period after closing
Minimum time before another open-window detection is allowed
(Tado default: 15 minutes)
Open Questions
Help is needed to define sensible default thresholds:
How much temperature drop (ΔT) within what timeframe should trigger detection?
Should thresholds differ when heating is ON?
When Cooling mode is ON check for temperature rise
The goal is to detect real open-window events while avoiding false positives.
Proposed Data Model Changes
Extend the existing device_state_history data table with:
window0= closed,1= open,2= restwindow_lastupdateExtend the existing zone data table with:
window_open_timewindow_rest_timeFunctional Behavior
On temperature update events
device_state_historyWhen open window is detected, start timer (window-open duration min.), when the timer expires:
Proposed API Extensions
Read
GET /zonesGET /zones/{id}Add
windowboolean tostatetrue= window openfalse= closed or restAdd 2 fields to zone info:
Write
POST /zones/{id}/windowtimeouts?window_open_time={int}&window_rest_time={int}Set for zone
{id}:Notes
I’m happy to:
Feedback on feasibility, algorithm design, and API shape is very welcome.
All reactions