# GammaHeatingControl
![coverage](https://gitlab.com/Menschel/GammaHeatingControl/badges/master/coverage.svg)
![pipeline](https://gitlab.com/Menschel/GammaHeatingControl/badges/master/pipeline.svg)
[Documentation](https://menschel.gitlab.io/GammaHeatingControl/)
A python 3 interface to EBV Gamma Heating Control.
# Description
Goal of this project is to create a python interface to communicate with EBV Gamma Heating Control Units.
The Company EBV manufactured the Heating Control Unit "Gamma" in the years 2000-2010 (citation needed!).
The system is able to communicate via RS-485 network, linking the main unit with a cascade of satellite units,
so-called room stations, either passive (temperature sensor) or active (display + remote control + temperature sensor).
# Protocol
There have been notes on the protocol by certain developers [1] but none of them actually finished the job.
The RS-485 network used here is a single master bus. The master is the main unit and the master tries something like
time-division-multiplexing.
It sends sync frames with the address of the satellite system that is supposed to send something.
Example:
21 ... 21 ... 21 ... 21 ... 21 (... = ~60-80ms)
is to trigger the first room station controlling the first mixer circuit to send something.
In general almost everything is repeated 5 times for robustness.
The room station answers to that slot announcement.
# Some Notes
This Protocol was reverse engineered on a Rotex Gamma, a software variant of the EBV Gamma 2B, build into Rotex A1 B20i
from 2002.
That device received an active satellite unit RS10 in 2023 as an upgrade, primarily to get a room temperature reference
into the controller to compensate overheating of >2degC due to sun effects. This also presented the chance to reverse
engineer the protocol.
I recommend anyone to upgrade their heating system with a reference room temperature.
If you don't want to buy such a device, build it yourself with a raspberry pi.
The technology is dead cheap, and it saves vast amounts of energy costs!
The company EBV was not willing to share the protocol specification even decades after the production ended!
Therefore, I do not recommend buying any of their products!
# Deprecation of PyPi Packages
Packages on PyPi are no longer updated due to attempts of the Python Software Foundation to enforce new rules and basically flush out
developers who do not consent.
Recent packages can be installed directly from git, i.e.
```pip install git+https://gitlab.com/Menschel/GammaHeatingControl.git --upgrade```
# References
[1] https://github.com/bogeyman/gamma/wiki/Protokoll
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/menschel/GammaHeatingControl",
"name": "GammaHeatingControl",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "",
"author": "Patrick Menschel",
"author_email": "Patrick Menschel <menschel.p@posteo.de>",
"download_url": "https://files.pythonhosted.org/packages/03/6f/a2b356582a32798d922865c9629346ba21782f1eac3f126d36f27fbd8ecc/GammaHeatingControl-0.0.4.tar.gz",
"platform": null,
"description": "# GammaHeatingControl\n\n![coverage](https://gitlab.com/Menschel/GammaHeatingControl/badges/master/coverage.svg)\n![pipeline](https://gitlab.com/Menschel/GammaHeatingControl/badges/master/pipeline.svg)\n\n[Documentation](https://menschel.gitlab.io/GammaHeatingControl/)\n\nA python 3 interface to EBV Gamma Heating Control.\n\n# Description\n\nGoal of this project is to create a python interface to communicate with EBV Gamma Heating Control Units.\n\nThe Company EBV manufactured the Heating Control Unit \"Gamma\" in the years 2000-2010 (citation needed!).\nThe system is able to communicate via RS-485 network, linking the main unit with a cascade of satellite units,\nso-called room stations, either passive (temperature sensor) or active (display + remote control + temperature sensor).\n\n\n# Protocol\nThere have been notes on the protocol by certain developers [1] but none of them actually finished the job.\n\nThe RS-485 network used here is a single master bus. The master is the main unit and the master tries something like\ntime-division-multiplexing.\nIt sends sync frames with the address of the satellite system that is supposed to send something.\n\nExample:\n21 ... 21 ... 21 ... 21 ... 21 (... = ~60-80ms)\n\nis to trigger the first room station controlling the first mixer circuit to send something.\nIn general almost everything is repeated 5 times for robustness.\n\nThe room station answers to that slot announcement.\n\n\n\n\n\n\n# Some Notes\nThis Protocol was reverse engineered on a Rotex Gamma, a software variant of the EBV Gamma 2B, build into Rotex A1 B20i\nfrom 2002.\nThat device received an active satellite unit RS10 in 2023 as an upgrade, primarily to get a room temperature reference\ninto the controller to compensate overheating of >2degC due to sun effects. This also presented the chance to reverse\nengineer the protocol.\n\nI recommend anyone to upgrade their heating system with a reference room temperature.\nIf you don't want to buy such a device, build it yourself with a raspberry pi.\nThe technology is dead cheap, and it saves vast amounts of energy costs!\n\nThe company EBV was not willing to share the protocol specification even decades after the production ended!\nTherefore, I do not recommend buying any of their products!\n\n# Deprecation of PyPi Packages\nPackages on PyPi are no longer updated due to attempts of the Python Software Foundation to enforce new rules and basically flush out \ndevelopers who do not consent. \nRecent packages can be installed directly from git, i.e. \n```pip install git+https://gitlab.com/Menschel/GammaHeatingControl.git --upgrade```\n\n# References\n\n[1] https://github.com/bogeyman/gamma/wiki/Protokoll\n",
"bugtrack_url": null,
"license": "",
"summary": "A python 3 interface to EBV Gamma Heating Control.",
"version": "0.0.4",
"project_urls": {
"Bug Tracker": "https://gitlab.com/menschel/GammaHeatingControl/issues",
"Homepage": "https://gitlab.com/menschel/GammaHeatingControl"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "036fa2b356582a32798d922865c9629346ba21782f1eac3f126d36f27fbd8ecc",
"md5": "246d3427e734a8a525af0ca46097c011",
"sha256": "c6ae2975738b8b14aa57a3cea9fdea048b61105820d17e8bbe987f34a6fd378a"
},
"downloads": -1,
"filename": "GammaHeatingControl-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "246d3427e734a8a525af0ca46097c011",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 22254,
"upload_time": "2023-12-31T20:59:26",
"upload_time_iso_8601": "2023-12-31T20:59:26.058864Z",
"url": "https://files.pythonhosted.org/packages/03/6f/a2b356582a32798d922865c9629346ba21782f1eac3f126d36f27fbd8ecc/GammaHeatingControl-0.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-31 20:59:26",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "menschel",
"gitlab_project": "GammaHeatingControl",
"lcname": "gammaheatingcontrol"
}