Skip to main content

A library for setting FRITZ!DECT thermostat values (e.g. offset, holidays, timer), that can't be set via AHA requests.

Project description

Advanced Fritz Thermostat

A library for setting the values AHA requests won't let you!

For basic settings use Heikos (hthiery) amazing pyfritzhome!

This library will always be hacky and will never leave the "beta state", since it uses undocumented API's. I use this library myself and I give my best to keep it updated.

But with any FritzOS upgrade this library might stop working, don't uses this if you can't live with that!

Remember: I'm doing this for free as a hobby, so be nice!

Requirements

  • Python 3.12.0 or higher

Tested configurations

Device Tested in FritzOS
FRITZ!DECT 301 7.60

If you have a different device or FritzOS version set experimental=True this will disable all checks, but beware there might be dragons!

Setup

Install using pip:

pip install fritz-advanced-thermostat

You will also need to setup a user.

Homeassistant integration

You can integrate this library as a HACS AppDaemon App. For installation and configuration checkout: mietzen/fritz-advanced-thermostat-hacs

Example Usage in Python

from fritz_advanced_thermostat import FritzAdvancedThermostat
from fritz_advanced_thermostat import FritzAdvancedThermostatError

host = '192.168.178.1'
user = 'my-user'
password = 'my-password'

try:
    fat = FritzAdvancedThermostat(host, user, password, ssl_verify=False, experimental=False)

    print('Available thermostats:')
    devices = fat.get_thermostats()
    for dev in devices:
        print('Device name: ' + dev)

    device_name = next(iter(devices))  # Get the first device name
    current_offset = fat.get_thermostat_offset(device_name)
    print(f'Current offset of {device_name}: {current_offset}')

    fat.set_thermostat_offset(device_name, current_offset + 1)
    fat.commit()

    new_offset = fat.get_thermostat_offset(device_name, force_reload=True)
    print(f'New offset of {device_name}: {new_offset}')

except FritzAdvancedThermostatError as err:
    print('An error occurred, check the logs!')
    print(err)

Credits

Thanks to:

Disclaimer

This package is not related to or developed by AVM. No relationship between the developer of this package and AVM exists.

All trademarks, logos and brand names are the property of their respective owners. All company, product and service names used in this package are for identification purposes only. Use of these names,trademarks and brands does not imply endorsement.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fritz_advanced_thermostat-1.4.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file fritz_advanced_thermostat-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fritz_advanced_thermostat-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 415aa64c162dd77ecb32e6ab271f0b3b3b66c0729ccc873745264dfad5466883
MD5 a50cfa1afd22d93d531aad54290f5c5c
BLAKE2b-256 a80bd145d522f570164ea8035187c70666271941537bbfc05fcb76fcef9decd9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page