# pygruenbeck_cloud
<p align="center">
<a href="https://www.gruenbeck.com/" target="_blank"><img src="https://www.gruenbeck.com/typo3conf/ext/sitepackage_gruenbeck/Resources/Public/Images/gruenbeck-logo.svg" alt="Gruenbeck" /></a>
</p>

[](https://pypi.org/project/pygruenbeck_cloud/)


[](https://codecov.io/gh/p0l0/pygruenbeck_cloud)
[](http://mypy-lang.org/)
[](https://github.com/pre-commit/pre-commit)

`pygruenbeck_cloud` is a Python 3 (>= 3.12) library to communicate with the Grünbeck Cloud based Water softeners.
It is intended to be used in custom_component [hagruenbeck_cloud](https://github.com/p0l0/hagruenbeck_cloud) for [Home Assistant](https://www.home-assistant.io/).
Implementation is based on the [ioBroker gruenbeck adapter](https://github.com/TA2k/ioBroker.gruenbeck) implementation.
### Available configuration parameter
| Parameter | Type | Description |
|--------------------------------------|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| dslt | boolean | Activation of daylight saving time |
| buzzer | boolean | Activation of signal on error |
| buzzer_from | time (HH:MM) | Signal from time |
| buzzer_to | time (HH:MM) | Signal from time |
| push_notification | boolean | Activation of push notifications |
| email_notification | boolean | Activation of email notifications |
| water_hardness_unit | integer | Water hardness Unit (1 = "°dH", 2 = "°fH", 3 = "°e", 4 = "mol/m³", 5 = "ppm") |
| raw_water_hardness | integer | Water hardness value |
| soft_water_hardness | integer | Softwater hardness value |
| mode | integer | Current operation mode (1 = "Eco", 2 = "Comfort", 3 = "Power", 4 = "Individual") |
| mode_individual_monday | integer | Individual mode for Monday |
| mode_individual_tuesday | integer | Individual mode for Tuesday |
| mode_individual_wednesday | integer | Individual mode for Wednesday |
| mode_individual_thursday | integer | Individual mode for Thursday |
| mode_individual_friday | integer | Individual mode for Friday |
| mode_individual_saturday | integer | Individual mode for Saturday |
| mode_individual_sunday | integer | Individual mode for Sunday |
| regeneration_mode | integer | Regeneration mode (0 = "Auto", 1 = "Fixed") |
| regeneration_time_monday_1 | string | Custom regeneration time for Monday 1 (Format: HH:MM) | |
| regeneration_time_monday_2 | string | Custom regeneration time for Monday 2 (Format: HH:MM) |
| regeneration_time_monday_3 | string | Custom regeneration time for Monday 3 (Format: HH:MM) |
| regeneration_time_tuesday_1 | string | Custom regeneration time for Tuesday 1 (Format: HH:MM) | |
| regeneration_time_tuesday_2 | string | Custom regeneration time for Tuesday 2 (Format: HH:MM) |
| regeneration_time_tuesday_3 | string | Custom regeneration time for Tuesday 3 (Format: HH:MM) |
| regeneration_time_wednesday_1 | string | Custom regeneration time for Wednesday 1 (Format: HH:MM) | |
| regeneration_time_wednesday_2 | string | Custom regeneration time for Wednesday 2 (Format: HH:MM) |
| regeneration_time_wednesday_3 | string | Custom regeneration time for Wednesday 3 (Format: HH:MM) |
| regeneration_time_thursday_1 | string | Custom regeneration time for Thursday 1 (Format: HH:MM) | |
| regeneration_time_thursday_2 | string | Custom regeneration time for Thursday 2 (Format: HH:MM) |
| regeneration_time_thursday_3 | string | Custom regeneration time for Thursday 3 (Format: HH:MM) |
| regeneration_time_friday_1 | string | Custom regeneration time for Friday 1 (Format: HH:MM) | |
| regeneration_time_friday_2 | string | Custom regeneration time for Friday 2 (Format: HH:MM) |
| regeneration_time_friday_3 | string | Custom regeneration time for Friday 3 (Format: HH:MM) |
| regeneration_time_saturday_1 | string | Custom regeneration time for Saturday 1 (Format: HH:MM) | |
| regeneration_time_saturday_2 | string | Custom regeneration time for Saturday 2 (Format: HH:MM) |
| regeneration_time_saturday_3 | string | Custom regeneration time for Saturday 3 (Format: HH:MM) |
| regeneration_time_sunday_1 | string | Custom regeneration time for Sunday 1 (Format: HH:MM) | |
| regeneration_time_sunday_2 | string | Custom regeneration time for Sunday 2 (Format: HH:MM) |
| regeneration_time_sunday_3 | string | Custom regeneration time for Sunday 3 (Format: HH:MM) |
| maintenance_interval | integer | Maintenance interval in days |
| installer_name | string | Installer name |
| installer_phone | string | Installer phone |
| installer_email | string | Installer email |
| ntp_sync | bool | Get date/time automatically (NTP) |
| fault_signal_contact | bool | Function fault signal contact |
| knx | bool | KNX connection |
| nominal_flow_monitoring | bool | Monitoring of nominal flow |
| disinfection_monitoring | bool | Disinfection monitoring |
| led_ring_mode | int | Illuminated LED ring mode (0 = "deactivated", 1 = "permanent lightning", 2 = "in case of failure", 3 = "in case of operation by user + failure", 4 = "in case of water treatment + operation by user + failure") |
| led_ring_flash_on_signal | bool | Illuminated LED ring flashes for pre-alarm salt supply |
| led_ring_brightness | int | LED ring Brightness [%] |
| residual_capacity_limit | int | Residual capacity limit value [%] |
| current_setpoint | int | Current setpoint [mA] |
| charge | int | Charge [mAmin] |
| interval_forced_regeneration | int | Interval of forced regeneration [days] |
| end_frequency_regeneration_valve | int | End frequency regeneration valve [Hz] |
| end_frequency_regeneration_valve_2 | int | End frequency regeneration valve 2 [Hz] |
| end_frequency_blending_valve | int | End frequency blending valve [Hz] |
| treatment_volume | int | Treatment volume [m³] |
| soft_water_meter_pulse_rate | float | Soft water meter pulse rate [l/Imp] |
| blending_water_meter_pulse_rate | float | Blending water meter pulse rate [l/Imp] |
| regeneration_water_meter_pulse_rate | float | Regeneration water meter pulse rate [l/Imp] |
| capacity_figure_monday | int | Capacity figure Monday [m³x°dH] |
| capacity_figure_tuesday | int | Capacity figure Tuesday [m³x°dH] |
| capacity_figure_wednesday | int | Capacity figure Wednesday [m³x°dH] |
| capacity_figure_thursday | int | Capacity figure Thursday [m³x°dH] |
| capacity_figure_friday | int | Capacity figure Friday [m³x°dH] |
| capacity_figure_saturday | int | Capacity figure Saturday [m³x°dH] |
| capacity_figure_sundday | int | Capacity figure Sunday [m³x°dH] |
| nominal_flow_rate | float | Nominal flow rate [m³/h] |
| regeneration_monitoring_time | int | Regeneration monitoring time [min] |
| salting_monitoring_time | int | Salting monitoring time [min] |
| slow_rinse | float | Slow rinse [min] |
| backwash | int | Backwash [l] |
| washing_out | int | Washing out [l] |
| minimum_filling_volume_smallest_cap | float | Minimum filling volume smallest cap [l] |
| maximum_filling_volume_smallest_cap | float | Maximum filling volume smallest cap [l] |
| minimum_filling_volume_largest_cap | float | Minimum filling volume largest cap [l] |
| maximum_filling_volume_largest_cap | float | Maximum filling volume largest cap [l] |
| longest_switch_on_time_chlorine_cell | int | Longest switch-on time Cl cell [min] |
| maximum_remaining_time_regeneration | int | Maximum remaining time regeneration [min] |
| language | int | Current language (1 = "German", 2 = "English", 3 = "French", 4 = "Italian", 5 = "Dutch", 6 = "Spanish", 7 = "Russian", 9 = "Danish") |
| programmable_output_function | int | Programmable output function |
| programmable_input_function | int | Programmable input function |
| reaction_to_power_failure | int | Reaction to power failure > 5 min |
| chlorine_cell_mode | int | Activate/deactivate chlorine cell |
| blending_monitoring | int | Blending monitoring |
| system_overloaded | int | System overloaded |
And these are additional parameter which are provided by the API, but their meaning and/or value is not known:
| Parameter | Type |
|--------------------------------------|-------|
| ppressurereg | int |
Feel free to open an [issue](https://github.com/p0l0/pygruenbeck_cloud/issues) if you know the meaning of them and their possible values.
Raw data
{
"_id": null,
"home_page": null,
"name": "pygruenbeck-cloud",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "gruenbeck, gruenbeck-cloud, home, automation",
"author": null,
"author_email": "Marco Neumann <pygruenbeck_cloud@binware.dev>",
"download_url": "https://files.pythonhosted.org/packages/20/b1/2a78a6f71a5a10fdaf1c57003c5384ce27af690520cbe201eb8d2b7034a6/pygruenbeck_cloud-1.3.3.tar.gz",
"platform": null,
"description": "# pygruenbeck_cloud\n\n<p align=\"center\">\n <a href=\"https://www.gruenbeck.com/\" target=\"_blank\"><img src=\"https://www.gruenbeck.com/typo3conf/ext/sitepackage_gruenbeck/Resources/Public/Images/gruenbeck-logo.svg\" alt=\"Gruenbeck\" /></a>\n</p>\n\n\n[](https://pypi.org/project/pygruenbeck_cloud/)\n\n\n[](https://codecov.io/gh/p0l0/pygruenbeck_cloud)\n[](http://mypy-lang.org/)\n[](https://github.com/pre-commit/pre-commit)\n\n\n`pygruenbeck_cloud` is a Python 3 (>= 3.12) library to communicate with the Gr\u00fcnbeck Cloud based Water softeners.\n\nIt is intended to be used in custom_component [hagruenbeck_cloud](https://github.com/p0l0/hagruenbeck_cloud) for [Home Assistant](https://www.home-assistant.io/).\n\nImplementation is based on the [ioBroker gruenbeck adapter](https://github.com/TA2k/ioBroker.gruenbeck) implementation.\n\n### Available configuration parameter\n\n| Parameter | Type | Description |\n|--------------------------------------|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| dslt | boolean | Activation of daylight saving time |\n| buzzer | boolean | Activation of signal on error |\n| buzzer_from | time (HH:MM) | Signal from time |\n| buzzer_to | time (HH:MM) | Signal from time |\n| push_notification | boolean | Activation of push notifications |\n| email_notification | boolean | Activation of email notifications |\n| water_hardness_unit | integer | Water hardness Unit (1 = \"\u00b0dH\", 2 = \"\u00b0fH\", 3 = \"\u00b0e\", 4 = \"mol/m\u00b3\", 5 = \"ppm\") |\n| raw_water_hardness | integer | Water hardness value |\n| soft_water_hardness | integer | Softwater hardness value |\n| mode | integer | Current operation mode (1 = \"Eco\", 2 = \"Comfort\", 3 = \"Power\", 4 = \"Individual\") |\n| mode_individual_monday | integer | Individual mode for Monday |\n| mode_individual_tuesday | integer | Individual mode for Tuesday |\n| mode_individual_wednesday | integer | Individual mode for Wednesday |\n| mode_individual_thursday | integer | Individual mode for Thursday |\n| mode_individual_friday | integer | Individual mode for Friday |\n| mode_individual_saturday | integer | Individual mode for Saturday |\n| mode_individual_sunday | integer | Individual mode for Sunday |\n| regeneration_mode | integer | Regeneration mode (0 = \"Auto\", 1 = \"Fixed\") |\n| regeneration_time_monday_1 | string | Custom regeneration time for Monday 1 (Format: HH:MM) | |\n| regeneration_time_monday_2 | string | Custom regeneration time for Monday 2 (Format: HH:MM) |\n| regeneration_time_monday_3 | string | Custom regeneration time for Monday 3 (Format: HH:MM) |\n| regeneration_time_tuesday_1 | string | Custom regeneration time for Tuesday 1 (Format: HH:MM) | |\n| regeneration_time_tuesday_2 | string | Custom regeneration time for Tuesday 2 (Format: HH:MM) |\n| regeneration_time_tuesday_3 | string | Custom regeneration time for Tuesday 3 (Format: HH:MM) |\n| regeneration_time_wednesday_1 | string | Custom regeneration time for Wednesday 1 (Format: HH:MM) | |\n| regeneration_time_wednesday_2 | string | Custom regeneration time for Wednesday 2 (Format: HH:MM) |\n| regeneration_time_wednesday_3 | string | Custom regeneration time for Wednesday 3 (Format: HH:MM) |\n| regeneration_time_thursday_1 | string | Custom regeneration time for Thursday 1 (Format: HH:MM) | |\n| regeneration_time_thursday_2 | string | Custom regeneration time for Thursday 2 (Format: HH:MM) |\n| regeneration_time_thursday_3 | string | Custom regeneration time for Thursday 3 (Format: HH:MM) |\n| regeneration_time_friday_1 | string | Custom regeneration time for Friday 1 (Format: HH:MM) | |\n| regeneration_time_friday_2 | string | Custom regeneration time for Friday 2 (Format: HH:MM) |\n| regeneration_time_friday_3 | string | Custom regeneration time for Friday 3 (Format: HH:MM) |\n| regeneration_time_saturday_1 | string | Custom regeneration time for Saturday 1 (Format: HH:MM) | |\n| regeneration_time_saturday_2 | string | Custom regeneration time for Saturday 2 (Format: HH:MM) |\n| regeneration_time_saturday_3 | string | Custom regeneration time for Saturday 3 (Format: HH:MM) |\n| regeneration_time_sunday_1 | string | Custom regeneration time for Sunday 1 (Format: HH:MM) | |\n| regeneration_time_sunday_2 | string | Custom regeneration time for Sunday 2 (Format: HH:MM) |\n| regeneration_time_sunday_3 | string | Custom regeneration time for Sunday 3 (Format: HH:MM) |\n| maintenance_interval | integer | Maintenance interval in days |\n| installer_name | string | Installer name |\n| installer_phone | string | Installer phone |\n| installer_email | string | Installer email |\n| ntp_sync | bool | Get date/time automatically (NTP) |\n| fault_signal_contact | bool | Function fault signal contact |\n| knx | bool | KNX connection |\n| nominal_flow_monitoring | bool | Monitoring of nominal flow |\n| disinfection_monitoring | bool | Disinfection monitoring |\n| led_ring_mode | int | Illuminated LED ring mode (0 = \"deactivated\", 1 = \"permanent lightning\", 2 = \"in case of failure\", 3 = \"in case of operation by user + failure\", 4 = \"in case of water treatment + operation by user + failure\") |\n| led_ring_flash_on_signal | bool | Illuminated LED ring flashes for pre-alarm salt supply |\n| led_ring_brightness | int | LED ring Brightness [%] |\n| residual_capacity_limit | int | Residual capacity limit value [%] |\n| current_setpoint | int | Current setpoint [mA] |\n| charge | int | Charge [mAmin] |\n| interval_forced_regeneration | int | Interval of forced regeneration [days] |\n| end_frequency_regeneration_valve | int | End frequency regeneration valve [Hz] |\n| end_frequency_regeneration_valve_2 | int | End frequency regeneration valve 2 [Hz] |\n| end_frequency_blending_valve | int | End frequency blending valve [Hz] |\n| treatment_volume | int | Treatment volume [m\u00b3] |\n| soft_water_meter_pulse_rate | float | Soft water meter pulse rate [l/Imp] |\n| blending_water_meter_pulse_rate | float | Blending water meter pulse rate [l/Imp] |\n| regeneration_water_meter_pulse_rate | float | Regeneration water meter pulse rate [l/Imp] |\n| capacity_figure_monday | int | Capacity figure Monday [m\u00b3x\u00b0dH] |\n| capacity_figure_tuesday | int | Capacity figure Tuesday [m\u00b3x\u00b0dH] |\n| capacity_figure_wednesday | int | Capacity figure Wednesday [m\u00b3x\u00b0dH] |\n| capacity_figure_thursday | int | Capacity figure Thursday [m\u00b3x\u00b0dH] |\n| capacity_figure_friday | int | Capacity figure Friday [m\u00b3x\u00b0dH] |\n| capacity_figure_saturday | int | Capacity figure Saturday [m\u00b3x\u00b0dH] |\n| capacity_figure_sundday | int | Capacity figure Sunday [m\u00b3x\u00b0dH] |\n| nominal_flow_rate | float | Nominal flow rate [m\u00b3/h] |\n| regeneration_monitoring_time | int | Regeneration monitoring time [min] |\n| salting_monitoring_time | int | Salting monitoring time [min] |\n| slow_rinse | float | Slow rinse [min] |\n| backwash | int | Backwash [l] |\n| washing_out | int | Washing out [l] |\n| minimum_filling_volume_smallest_cap | float | Minimum filling volume smallest cap [l] |\n| maximum_filling_volume_smallest_cap | float | Maximum filling volume smallest cap [l] |\n| minimum_filling_volume_largest_cap | float | Minimum filling volume largest cap [l] |\n| maximum_filling_volume_largest_cap | float | Maximum filling volume largest cap [l] |\n| longest_switch_on_time_chlorine_cell | int | Longest switch-on time Cl cell [min] |\n| maximum_remaining_time_regeneration | int | Maximum remaining time regeneration [min] |\n| language | int | Current language (1 = \"German\", 2 = \"English\", 3 = \"French\", 4 = \"Italian\", 5 = \"Dutch\", 6 = \"Spanish\", 7 = \"Russian\", 9 = \"Danish\") |\n| programmable_output_function | int | Programmable output function |\n| programmable_input_function | int | Programmable input function |\n| reaction_to_power_failure | int | Reaction to power failure > 5 min |\n| chlorine_cell_mode | int | Activate/deactivate chlorine cell |\n| blending_monitoring | int | Blending monitoring |\n| system_overloaded | int | System overloaded |\n\nAnd these are additional parameter which are provided by the API, but their meaning and/or value is not known:\n\n| Parameter | Type |\n|--------------------------------------|-------|\n| ppressurereg | int |\n\nFeel free to open an [issue](https://github.com/p0l0/pygruenbeck_cloud/issues) if you know the meaning of them and their possible values.\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Python Library to communicate with Gr\u00fcnbeck Cloud based Water softeners",
"version": "1.3.3",
"project_urls": {
"Homepage": "https://github.com/p0l0/pygruenbeck_cloud",
"Issues": "https://github.com/p0l0/pygruenbeck_cloud/issues"
},
"split_keywords": [
"gruenbeck",
" gruenbeck-cloud",
" home",
" automation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a7dc6cf72234d979827d4f4a2c5580cea079d6d90c677749b85e6cd046680be6",
"md5": "8644c2cf0ae1dcfa22bbe10ad6e3d2ac",
"sha256": "8311f93524f0a3e6bc2a90ff4c3f9babc129e5204f9f3c7feb265414b46070f3"
},
"downloads": -1,
"filename": "pygruenbeck_cloud-1.3.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8644c2cf0ae1dcfa22bbe10ad6e3d2ac",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 23292,
"upload_time": "2025-07-13T12:44:08",
"upload_time_iso_8601": "2025-07-13T12:44:08.504349Z",
"url": "https://files.pythonhosted.org/packages/a7/dc/6cf72234d979827d4f4a2c5580cea079d6d90c677749b85e6cd046680be6/pygruenbeck_cloud-1.3.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "20b12a78a6f71a5a10fdaf1c57003c5384ce27af690520cbe201eb8d2b7034a6",
"md5": "86f53c408a6b75f09478f1c4367bad88",
"sha256": "3f353631755e5cd870db606cd8879a80a132fd612670cd9742a21599584692af"
},
"downloads": -1,
"filename": "pygruenbeck_cloud-1.3.3.tar.gz",
"has_sig": false,
"md5_digest": "86f53c408a6b75f09478f1c4367bad88",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 26732,
"upload_time": "2025-07-13T12:44:09",
"upload_time_iso_8601": "2025-07-13T12:44:09.613194Z",
"url": "https://files.pythonhosted.org/packages/20/b1/2a78a6f71a5a10fdaf1c57003c5384ce27af690520cbe201eb8d2b7034a6/pygruenbeck_cloud-1.3.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-13 12:44:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "p0l0",
"github_project": "pygruenbeck_cloud",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"tox": true,
"lcname": "pygruenbeck-cloud"
}