# python-daikin-altherma
talks to daikin altherma via LAN adapter BRP069A61 or BRP069A62
# How to use
## How to install ?
Simply get it from [pypi](https://pypi.org/project/python-daikin-altherma/) by:
`pip3 install python-daikin-altherma`
## How to run
```python3
>>> from daikin_altherma import DaikinAltherma
>>> d = DaikinAltherma('192.168.10.126')
>>> print(f'My outdoor temperature is {d.outdoor_temperature}°C')
My outdoor temperature is 2.0°C
>>> d.print_all_status()
Daikin adapter: 192.168.11.100 BRP069A61
Daikin unit: EAVH16S23DA6V 0
Daikin time: 2023-10-20 18:56:08
Hot water tank:
Current: 48.0°C (target 49.0°C)
Heating enabled: True (Powerful: False)
Heating:
Outdoor temp:14.0°C
Indoor temp: 21.5°C
Heating target: 24.0°C (is heating enabled: True)
Leaving water: 29.0°C
Heating mode: heating
Schedule: {'Mo': {'0000': 18.0, '0600': 20.0, '1200': 22.0, '1500': 20.0, '1800': 18.0}, 'Tu': {'0000': 18.0, '0600': 20.0, '1800': 18.0}, 'We': {'0000': 18.0, '0600': 20.0, '1800': 18.0}, 'Th': {'0000': 18.0, '0600': 20.0, '1200': 22.0, '1500': 20.0, '1800': 18.0}, 'Fr': {'0000': 18.0, '0600': 20.0, '1200': 22.0, '1500': 20.0, '1800': 18.0}, 'Sa': {'0000': 18.0, '0600': 20.0, '1200': 22.0, '1500': 20.0, '1800': 18.0}, 'Su': {'0000': 18.0, '0600': 20.0, '1200': 22.0, '1500': 20.0, '1800': 18.0}}
```
## Schedules
You can set schedules using `set_heating_schedule(schedule)`. Your best bet is to
look at the [example file](example.py).
# Documentation
```
class DaikinAltherma(builtins.object)
| DaikinAltherma(adapter_ip: str)
|
| Methods defined here:
|
| __init__(self, adapter_ip: str)
| Initialize self. See help(type(self)) for accurate signature.
|
| print_all_status(self)
|
| set_heating_enabled(self, heating_active: bool)
| Whether to turn the heating on(True) or off(False).
| You can confirm that it works by calling self.is_heating_enabled
|
| set_heating_schedule(self, schedule: dict[str, dict[str, float]])
| Sets the heating schedule for the heating.
|
| set_holiday_mode(self, on_holiday: bool)
| Whether to turn the holiday mode on(True) or off(False).
| You can confirm that it works by calling self.is_holiday_mode
|
| set_setpoint_temperature(self, setpoint_temperature_c: float)
| Sets the heating setpoint (target) temperature, in °C
|
| set_tank_heating_enabled(self, powerful_active: bool)
| Whether to turn the water tank heating on(True) or off(False).
| You can confirm that it works by calling self.is_tank_heating_enabled
|
| set_unit_datetime(self, d)
| Sets the datetime of your unit. Does not work on all units
|
| ----------------------------------------------------------------------
| Readonly properties defined here:
|
| adapter_model
| Returns the model of the LAN adapter.
| Ex: BRP069A61
|
| heating_mode
| This function name makes no sense, because it
| returns whether the heat pump is heating or cooling.
|
| heating_schedule
| Returns the HeatingSchedule list heating
|
| heating_schedule_state
| Returns the actual heating schedule state
|
| indoor_setpoint_temperature
| Returns the indoor setpoint (target) temperature, in °C
|
| indoor_temperature
| Returns the indoor temperature, in °C
|
| indoor_unit_software_version
| Returns the unit software version
|
| indoor_unit_version
| Returns the unit version
|
| is_heating_enabled
| Returns if the unit heating is enabled
|
| is_holiday_mode
| Returns if the holiday mode active or not
|
| is_tank_heating_enabled
| Returns if the tank heating is currently enabled
|
| is_tank_powerful
| Returns if the tank is in powerful state
|
| leaving_water_temperature
| Returns the heating leaving water temperature, in °C
|
| outdoor_temperature
| Returns the outdoor temperature, in °C
|
| outdoor_unit_software_version
| Returns the unit software version
|
| pin_code
| Returns the pin code of the LAN adapter
|
| power_consumption
| Returns the energy consumption in kWh per [D]ay, [W]eek, [M]onth
|
| remote_setting_version
| Returns the remote console setting version
|
| remote_software_version
| Returns the remote console setting software version
|
| tank_schedule
| Returns the TankSchedule list heating
|
| tank_schedule_state
| Returns the actual tank schedule state
|
| tank_setpoint_temperature
| Returns the hot water tank setpoint (target) temperature, in °C
|
| tank_temperature
| Returns the hot water tank temperature, in °C
|
| unit_datetime
| Returns the current date of the unit. Is refreshed every minute or so
|
| unit_model
| Returns the model of the heating unit.
| Ex: EAVH16S23DA6V
|
| unit_type
| Returns the type of unit
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| DATETIME_FMT = '%Y%m%dT%H%M%SZ'
|
| DAYS = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']
|
| UserAgent = 'python-daikin-altherma'
```
# Acknowledgments
Many thanks to [william-sy](https://github.com/william-sy/Daikin-BRP069A62) and [KarstenB](https://github.com/KarstenB/DaikinAltherma) for their bootstrap !
# Alternatives
- C# implementation: https://github.com/jbinko/dotnet-daikin-altherma
- Home assistant component: https://github.com/tadasdanielius/daikin_altherma
- ESP32 implementation: https://github.com/raomin/ESPAltherma
Raw data
{
"_id": null,
"home_page": "http://github.com/Frankkkkk/python-daikin-altherma",
"name": "python-daikin-altherma",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "daikin altherma heat pump",
"author": "Frank Villaro-Dixon",
"author_email": "frank@villaro-dixon.eu",
"download_url": "https://files.pythonhosted.org/packages/af/46/df23811f94f1c0b1de557fea11a9e15b4af1c004c223c4d9611a489615dd/python-daikin-altherma-0.3.3.tar.gz",
"platform": null,
"description": "# python-daikin-altherma\ntalks to daikin altherma via LAN adapter BRP069A61 or BRP069A62\n\n# How to use\n## How to install ?\nSimply get it from [pypi](https://pypi.org/project/python-daikin-altherma/) by:\n`pip3 install python-daikin-altherma`\n\n## How to run\n```python3\n>>> from daikin_altherma import DaikinAltherma\n>>> d = DaikinAltherma('192.168.10.126')\n>>> print(f'My outdoor temperature is {d.outdoor_temperature}\u00b0C')\nMy outdoor temperature is 2.0\u00b0C\n>>> d.print_all_status()\nDaikin adapter: 192.168.11.100 BRP069A61\nDaikin unit: EAVH16S23DA6V 0\nDaikin time: 2023-10-20 18:56:08\nHot water tank:\n Current: 48.0\u00b0C (target 49.0\u00b0C)\n Heating enabled: True (Powerful: False)\nHeating:\n Outdoor temp:14.0\u00b0C\n Indoor temp: 21.5\u00b0C\n Heating target: 24.0\u00b0C (is heating enabled: True)\n Leaving water: 29.0\u00b0C\n Heating mode: heating\n Schedule: {'Mo': {'0000': 18.0, '0600': 20.0, '1200': 22.0, '1500': 20.0, '1800': 18.0}, 'Tu': {'0000': 18.0, '0600': 20.0, '1800': 18.0}, 'We': {'0000': 18.0, '0600': 20.0, '1800': 18.0}, 'Th': {'0000': 18.0, '0600': 20.0, '1200': 22.0, '1500': 20.0, '1800': 18.0}, 'Fr': {'0000': 18.0, '0600': 20.0, '1200': 22.0, '1500': 20.0, '1800': 18.0}, 'Sa': {'0000': 18.0, '0600': 20.0, '1200': 22.0, '1500': 20.0, '1800': 18.0}, 'Su': {'0000': 18.0, '0600': 20.0, '1200': 22.0, '1500': 20.0, '1800': 18.0}}\n\n```\n\n## Schedules\nYou can set schedules using `set_heating_schedule(schedule)`. Your best bet is to\nlook at the [example file](example.py).\n\n# Documentation\n```\n class DaikinAltherma(builtins.object)\n | DaikinAltherma(adapter_ip: str)\n | \n | Methods defined here:\n | \n | __init__(self, adapter_ip: str)\n | Initialize self. See help(type(self)) for accurate signature.\n | \n | print_all_status(self)\n | \n | set_heating_enabled(self, heating_active: bool)\n | Whether to turn the heating on(True) or off(False).\n | You can confirm that it works by calling self.is_heating_enabled\n | \n | set_heating_schedule(self, schedule: dict[str, dict[str, float]])\n | Sets the heating schedule for the heating.\n | \n | set_holiday_mode(self, on_holiday: bool)\n | Whether to turn the holiday mode on(True) or off(False).\n | You can confirm that it works by calling self.is_holiday_mode\n | \n | set_setpoint_temperature(self, setpoint_temperature_c: float)\n | Sets the heating setpoint (target) temperature, in \u00b0C\n | \n | set_tank_heating_enabled(self, powerful_active: bool)\n | Whether to turn the water tank heating on(True) or off(False).\n | You can confirm that it works by calling self.is_tank_heating_enabled\n | \n | set_unit_datetime(self, d)\n | Sets the datetime of your unit. Does not work on all units\n | \n | ----------------------------------------------------------------------\n | Readonly properties defined here:\n | \n | adapter_model\n | Returns the model of the LAN adapter.\n | Ex: BRP069A61\n | \n | heating_mode\n | This function name makes no sense, because it\n | returns whether the heat pump is heating or cooling.\n | \n | heating_schedule\n | Returns the HeatingSchedule list heating\n | \n | heating_schedule_state\n | Returns the actual heating schedule state\n | \n | indoor_setpoint_temperature\n | Returns the indoor setpoint (target) temperature, in \u00b0C\n | \n | indoor_temperature\n | Returns the indoor temperature, in \u00b0C\n | \n | indoor_unit_software_version\n | Returns the unit software version\n | \n | indoor_unit_version\n | Returns the unit version\n | \n | is_heating_enabled\n | Returns if the unit heating is enabled\n | \n | is_holiday_mode\n | Returns if the holiday mode active or not\n | \n | is_tank_heating_enabled\n | Returns if the tank heating is currently enabled\n | \n | is_tank_powerful\n | Returns if the tank is in powerful state\n | \n | leaving_water_temperature\n | Returns the heating leaving water temperature, in \u00b0C\n | \n | outdoor_temperature\n | Returns the outdoor temperature, in \u00b0C\n | \n | outdoor_unit_software_version\n | Returns the unit software version\n | \n | pin_code\n | Returns the pin code of the LAN adapter\n | \n | power_consumption\n | Returns the energy consumption in kWh per [D]ay, [W]eek, [M]onth\n | \n | remote_setting_version\n | Returns the remote console setting version\n | \n | remote_software_version\n | Returns the remote console setting software version\n | \n | tank_schedule\n | Returns the TankSchedule list heating\n | \n | tank_schedule_state\n | Returns the actual tank schedule state\n | \n | tank_setpoint_temperature\n | Returns the hot water tank setpoint (target) temperature, in \u00b0C\n | \n | tank_temperature\n | Returns the hot water tank temperature, in \u00b0C\n | \n | unit_datetime\n | Returns the current date of the unit. Is refreshed every minute or so\n | \n | unit_model\n | Returns the model of the heating unit.\n | Ex: EAVH16S23DA6V\n | \n | unit_type\n | Returns the type of unit\n | \n | ----------------------------------------------------------------------\n | Data descriptors defined here:\n | \n | __dict__\n | dictionary for instance variables (if defined)\n | \n | __weakref__\n | list of weak references to the object (if defined)\n | \n | ----------------------------------------------------------------------\n | Data and other attributes defined here:\n | \n | DATETIME_FMT = '%Y%m%dT%H%M%SZ'\n | \n | DAYS = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']\n | \n | UserAgent = 'python-daikin-altherma'\n```\n\n# Acknowledgments\nMany thanks to [william-sy](https://github.com/william-sy/Daikin-BRP069A62) and [KarstenB](https://github.com/KarstenB/DaikinAltherma) for their bootstrap !\n\n# Alternatives\n\n- C# implementation: https://github.com/jbinko/dotnet-daikin-altherma\n- Home assistant component: https://github.com/tadasdanielius/daikin_altherma\n- ESP32 implementation: https://github.com/raomin/ESPAltherma\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Connect to daikin altherma heat pumps",
"version": "0.3.3",
"project_urls": {
"Homepage": "http://github.com/Frankkkkk/python-daikin-altherma"
},
"split_keywords": [
"daikin",
"altherma",
"heat",
"pump"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7f834cbfa69e06d5362886d195bca4690b8a3f22af1f8f17ed0fd5942fd5314b",
"md5": "63e2214b9abbf38985a12b63da022f9a",
"sha256": "36bdaa022ef2d2711006127113b0e837e37874773a4ba3d13d12300d0ec899b8"
},
"downloads": -1,
"filename": "python_daikin_altherma-0.3.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "63e2214b9abbf38985a12b63da022f9a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 6767,
"upload_time": "2023-11-14T11:13:38",
"upload_time_iso_8601": "2023-11-14T11:13:38.801841Z",
"url": "https://files.pythonhosted.org/packages/7f/83/4cbfa69e06d5362886d195bca4690b8a3f22af1f8f17ed0fd5942fd5314b/python_daikin_altherma-0.3.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "af46df23811f94f1c0b1de557fea11a9e15b4af1c004c223c4d9611a489615dd",
"md5": "d2b4c6f997738eb51c667d34723e80c0",
"sha256": "cbb81639bda9ab7473c0e446a5cb0948fd08ddf7515f622e4175935b064edee0"
},
"downloads": -1,
"filename": "python-daikin-altherma-0.3.3.tar.gz",
"has_sig": false,
"md5_digest": "d2b4c6f997738eb51c667d34723e80c0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6040,
"upload_time": "2023-11-14T11:14:02",
"upload_time_iso_8601": "2023-11-14T11:14:02.020034Z",
"url": "https://files.pythonhosted.org/packages/af/46/df23811f94f1c0b1de557fea11a9e15b4af1c004c223c4d9611a489615dd/python-daikin-altherma-0.3.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-14 11:14:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Frankkkkk",
"github_project": "python-daikin-altherma",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "python-daikin-altherma"
}