KartoffelToby / better_thermostat

This custom component for Home Assistant will add crucial features to your climate-controlling TRV (Thermostatic Radiator Valves) to save you the work of creating automations to make it smart. It combines a room-temperature sensor, window/door sensors, weather forecasts, or an ambient temperature probe to decide when it should call for heat and automatically calibrate your TRVs to fix the imprecise measurements taken in the radiator's vicinity.
https://better-thermostat.org
GNU Affero General Public License v3.0
838 stars 127 forks source link

Support FRITZ!DECT 301 #236

Closed Schlurcher closed 2 years ago

Schlurcher commented 2 years ago

I'm using FRITZ!DECT 301 TVRs via the AVM FRITZ!SmartHome Integration, would be awesome if they can be supported.

If you can give me a pointer on where to look I may be able to contribute this myself.

{
    "config_entries": [
        "9997fcc52c1a48015fc1eb0afeba3d10"
    ],
    "connections": [],
    "identifiers": [
        [
            "fritzbox",
            "xxxxx xxxxx"
        ]
    ],
    "manufacturer": "AVM",
    "model": "FRITZ!DECT 301",
    "name": "HKR K\u00fcche",
    "sw_version": "04.95",
    "entry_type": null,
    "id": "969eafffff2d11ea86aa1dbc9165807b",
    "via_device_id": null,
    "area_id": "70f0d91eff2d11ea954b9d98a9a05074",
    "name_by_user": "K\u00fcche Heizk\u00f6rper",
    "disabled_by": null,
    "configuration_url": "http://192.168.178.1"
}

image

RubenKelevra commented 2 years ago

Hey @Schlurcher,

thanks for providing the information. There's already a feature freeze on the net version 1.0, so the support is probably landing in 1.1 then.

RubenKelevra commented 2 years ago

Hey @Schlurcher,

as far as I can see this device doesn't have a local temperature calibration field, right?

Schlurcher commented 2 years ago

I don't exactly know what you mean by calibration field? I assume in the attributes "temperature" means the temp that the thermostat is set to and "current_temperature" is the measured temperature. A quirk of the integration seems to be if you set the thermostat to MAX it jumps from 28 to 30 degrees.

I can do some tests tomorrow what gets reported as what.

RubenKelevra commented 2 years ago

Hey @Schlurcher,

sorry for being not that clear.

If you select the device under devices in HA, there are several fields under "Configuration".

Is there one that is called something in the realm of "local_temperature_calibration"?

HA_devices_example_local_temperature_calibration-01 HA_devices_example_local_temperature_calibration-02

RubenKelevra commented 2 years ago

set the thermostat to MAX

Can you show me where you would set it to MAX? In HA or in some FritzBox app?

Schlurcher commented 2 years ago

You can set it in the admin ui of the box: image

Or on a connected handset: IMG_3746

Or directly on the valve: IMG_3747

Behaviour is consistent across those methods. You can dial it in by .5 degrees up to 28 degrees. Then it jumps to MAX, which gets reported by the integration as 30 degrees.

Setting it in HA is a little bit different. There you can control it up to 27,5 degrees. Anything above that gets corrected to to 30 degrees, regardless of what you dial in. This then gets displayed as MAX in the ui, on the valve and on the handset.

Another quirk is that the valve only polls every 15 minutes for changes. Meaning if you set it by any of those methods (except of course directly on the valve, which broadcasts changes immediatly), it can take up to 15 minutes before the valve pulls in the change. I guess thats a limitation inherent to all battery powered Han-Fun devices.

I assume local temperature calibration is the same thing as an offset to correct for the temp sensor being directly connected to the valve and as such being next to useless in actually measuring the room temperature? :)

If so, that can be done in the admin ui of the fritz box: image There you can also specify an external temperature sensor, but it has to be paired via dect to the box.

Either of those methods changes the temperature reported for the TRV by the fritzbox API (https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AHA-HTTP-Interface.pdf). I think there is no way to get a seperate measurement just for the offset.

It sports a "Window Open" detection which works by detecting a temperature drop of 0.7-1.9 degrees within 2 mins. For my case this doesn't work, since all my radiators set up like this image or across the room from a window. As such the valve is nicely shielded from sudden temperature drops, and consequently this feature simply doesn't work 99% of the time. The fritzbox integration only reports the current state of window open, but provides no way to set it, even though the API allows for this (also outlined in the above pdf). Regardless, this would be out of scope for this project and has to be handled by the integration anways.

P.S.: Judging by your name I assume you can read german, but if you need me to provide translations for the screenshots I would be happy to oblige. ;)

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity.