ramses_rf


Nameramses_rf JSON
Version 0.51.0 PyPI version JSON
download
home_pageNone
SummaryA stateful RAMSES-II protocol decoder & analyser.
upload_time2025-08-09 13:08:32
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords airios chronotherm climarad evohome hometronics honeywell itho nuaire orcon ramses resideo round thermostat sundial vasco
VCS
bugtrack_url
requirements click colorama debugpy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Linting](https://github.com/ramses-rf/ramses_rf/actions/workflows/check-lint.yml/badge.svg)
![Typing](https://github.com/ramses-rf/ramses_rf/actions/workflows/check-type.yml/badge.svg)
![Testing](https://github.com/ramses-rf/ramses_rf/actions/workflows/check-test.yml/badge.svg)

## Overview

**ramses_rf** is a Python client library/CLI utility used to interface with some Honeywell-compatible HVAC & CH/DHW systems that use 868MHz RF, such as:
 - (Heat) **evohome**, **Sundial**, **Hometronic**, **Chronotherm**
 - (HVAC) **Itho**, **Orcon**, **Nuaire**, **Vasco**, **ClimaRad**

It requires a USB-to-RF device, either a Honeywell HGI80 (somewhat rare, expensive) or something running the [evofw3](https://github.com/ghoti57/evofw3) firmware, such as the one from [here](https://indalo-tech.onlineweb.shop/) or your own ESP32-S3-WROOM-1 N16R8 with a CC1100 transponder.

It does four things:
 - decodes RAMSES II-compatible packets and converts them into useful JSON
 - builds a picture (schema, config & state) of evohome-compatible CH/DHW systems - either passively (by eavesdropping), or actively (probing)
 - allows you to send commands to CH/DHW and HVAC systems, or monitor for state changes
 - allows you to emulate some hardware devices

> [!WARNING]
> This integration is not affiliated with Honeywell, Airios nor any final manufacturer. The developers take no responsibility for anything that may happen to your devices because of this library.

For CH/DHW, the simplest way to know if it will work with your system is to identify the box connected to your boiler/HVAC appliance as one of:
 - **R8810A**: OpenTherm Bridge
 - **BDR91A**: Wireless Relay (also BDR91T)
 - **HC60NG**: Wireless Relay (older hardware)

Other systems may well work, such as some Itho Daalderop HVAC systems, use this protocol, YMMV.

It includes a CLI and can be used as a standalone tool, but also is used as a client library by:
 - [ramses_cc](https://github.com/ramses-rf/ramses_cc), a Home Assistant integration
 - [evohome-Listener](https://github.com/smar000/evohome-Listener), an MQTT gateway

## Installation

To use the `ramses_rf` Integration in Home Assistant, just install `Ramses RF` from HACS. It will take care of installing this library. See the [`Ramses_cc wiki`](https://github.com/ramses-rf/ramses_cc/wiki/1.-Installation) for details.

To run the `ramses_rf` client:
```
git clone https://github.com/ramses-rf/ramses_rf
cd ramses_rf
pip install -r requirements.txt
```

For development, more setup is required. Please follow the steps in our [Developer's Resource](README-developers.md)

## Ramses_rf CLI

The CLI is called ``client.py`` and is included in the code root.

For example, to monitor ramses_rf messages picked up by a dongle connected to port USB0, and log them in `packet.log`:
```
python client.py monitor /dev/ttyUSB0 -o packet.log
```
To view the `client.py` help:
```
python client.py --help
```

To send a command to a device, type:
```
python client.py execute /dev/ttyUSB0 -x "_verb [seqn] addr0 [addr1 [addr2]] code payload"
```
Notes:
- Before the `I` verb, add a whitespace inside the opening double quote: [RP]|[RQ]|[ I]
- Skip empty device addresses;
- Don't enter the packet length.

Send command example:
```
python3 client.py execute /dev/cu.usbmodemFD131 -x " I 29:091138 32:022222 22F1 000406"
```
See the [client.py Configuration wiki page](https://github.com/ramses-rf/ramses_rf/wiki/client.py-configuration-file) for more.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ramses_rf",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "Egbert Broerse <dcc2@ebroerse.nl>",
    "keywords": "airios, chronotherm, climarad, evohome, hometronics, honeywell, itho, nuaire, orcon, ramses, resideo, round thermostat, sundial, vasco",
    "author": null,
    "author_email": "David Bonnes <zxdavb@bonnes.me>, Egbert Broerse <dcc2@ebroerse.nl>",
    "download_url": "https://files.pythonhosted.org/packages/6c/0d/fa7cb2f43db1807c695415bd2d35e8cdde45c9e0b28ab657a0c5d43cab76/ramses_rf-0.51.0.tar.gz",
    "platform": null,
    "description": "![Linting](https://github.com/ramses-rf/ramses_rf/actions/workflows/check-lint.yml/badge.svg)\n![Typing](https://github.com/ramses-rf/ramses_rf/actions/workflows/check-type.yml/badge.svg)\n![Testing](https://github.com/ramses-rf/ramses_rf/actions/workflows/check-test.yml/badge.svg)\n\n## Overview\n\n**ramses_rf** is a Python client library/CLI utility used to interface with some Honeywell-compatible HVAC & CH/DHW systems that use 868MHz RF, such as:\n - (Heat) **evohome**, **Sundial**, **Hometronic**, **Chronotherm**\n - (HVAC) **Itho**, **Orcon**, **Nuaire**, **Vasco**, **ClimaRad**\n\nIt requires a USB-to-RF device, either a Honeywell HGI80 (somewhat rare, expensive) or something running the [evofw3](https://github.com/ghoti57/evofw3) firmware, such as the one from [here](https://indalo-tech.onlineweb.shop/) or your own ESP32-S3-WROOM-1 N16R8 with a CC1100 transponder.\n\nIt does four things:\n - decodes RAMSES II-compatible packets and converts them into useful JSON\n - builds a picture (schema, config & state) of evohome-compatible CH/DHW systems - either passively (by eavesdropping), or actively (probing)\n - allows you to send commands to CH/DHW and HVAC systems, or monitor for state changes\n - allows you to emulate some hardware devices\n\n> [!WARNING]\n> This integration is not affiliated with Honeywell, Airios nor any final manufacturer. The developers take no responsibility for anything that may happen to your devices because of this library.\n\nFor CH/DHW, the simplest way to know if it will work with your system is to identify the box connected to your boiler/HVAC appliance as one of:\n - **R8810A**: OpenTherm Bridge\n - **BDR91A**: Wireless Relay (also BDR91T)\n - **HC60NG**: Wireless Relay (older hardware)\n\nOther systems may well work, such as some Itho Daalderop HVAC systems, use this protocol, YMMV.\n\nIt includes a CLI and can be used as a standalone tool, but also is used as a client library by:\n - [ramses_cc](https://github.com/ramses-rf/ramses_cc), a Home Assistant integration\n - [evohome-Listener](https://github.com/smar000/evohome-Listener), an MQTT gateway\n\n## Installation\n\nTo use the `ramses_rf` Integration in Home Assistant, just install `Ramses RF` from HACS. It will take care of installing this library. See the [`Ramses_cc wiki`](https://github.com/ramses-rf/ramses_cc/wiki/1.-Installation) for details.\n\nTo run the `ramses_rf` client:\n```\ngit clone https://github.com/ramses-rf/ramses_rf\ncd ramses_rf\npip install -r requirements.txt\n```\n\nFor development, more setup is required. Please follow the steps in our [Developer's Resource](README-developers.md)\n\n## Ramses_rf CLI\n\nThe CLI is called ``client.py`` and is included in the code root.\n\nFor example, to monitor ramses_rf messages picked up by a dongle connected to port USB0, and log them in `packet.log`:\n```\npython client.py monitor /dev/ttyUSB0 -o packet.log\n```\nTo view the `client.py` help:\n```\npython client.py --help\n```\n\nTo send a command to a device, type:\n```\npython client.py execute /dev/ttyUSB0 -x \"_verb [seqn] addr0 [addr1 [addr2]] code payload\"\n```\nNotes:\n- Before the `I` verb, add a whitespace inside the opening double quote: [RP]|[RQ]|[ I]\n- Skip empty device addresses;\n- Don't enter the packet length.\n\nSend command example:\n```\npython3 client.py execute /dev/cu.usbmodemFD131 -x \" I 29:091138 32:022222 22F1 000406\"\n```\nSee the [client.py Configuration wiki page](https://github.com/ramses-rf/ramses_rf/wiki/client.py-configuration-file) for more.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A stateful RAMSES-II protocol decoder & analyser.",
    "version": "0.51.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/ramses-rf/ramses_rf/issues",
        "Homepage": "https://github.com/ramses-rf/ramses_rf",
        "Wiki": "https://github.com/ramses-rf/ramses_rf/wiki"
    },
    "split_keywords": [
        "airios",
        " chronotherm",
        " climarad",
        " evohome",
        " hometronics",
        " honeywell",
        " itho",
        " nuaire",
        " orcon",
        " ramses",
        " resideo",
        " round thermostat",
        " sundial",
        " vasco"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6de4df7e127cf9789f26c2a05d812d4ec2352e95f1fa1bcaf26e59a9fb996709",
                "md5": "9fabb4a0db032227a66cfd5f4d171780",
                "sha256": "9f4a854af5b365ae58bcc4496181dd9a884640b2f7977bc40bf260d38793925f"
            },
            "downloads": -1,
            "filename": "ramses_rf-0.51.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9fabb4a0db032227a66cfd5f4d171780",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 257366,
            "upload_time": "2025-08-09T13:08:31",
            "upload_time_iso_8601": "2025-08-09T13:08:31.161200Z",
            "url": "https://files.pythonhosted.org/packages/6d/e4/df7e127cf9789f26c2a05d812d4ec2352e95f1fa1bcaf26e59a9fb996709/ramses_rf-0.51.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6c0dfa7cb2f43db1807c695415bd2d35e8cdde45c9e0b28ab657a0c5d43cab76",
                "md5": "9c657cd0a6d496c18cef0269c7b66374",
                "sha256": "fc237265a428b9e265478a8f9a448a6e1ea50a83dd88cbd0e7075d655cdfb6e9"
            },
            "downloads": -1,
            "filename": "ramses_rf-0.51.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9c657cd0a6d496c18cef0269c7b66374",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 460560,
            "upload_time": "2025-08-09T13:08:32",
            "upload_time_iso_8601": "2025-08-09T13:08:32.946860Z",
            "url": "https://files.pythonhosted.org/packages/6c/0d/fa7cb2f43db1807c695415bd2d35e8cdde45c9e0b28ab657a0c5d43cab76/ramses_rf-0.51.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-09 13:08:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ramses-rf",
    "github_project": "ramses_rf",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "click",
            "specs": [
                [
                    ">=",
                    "8.2.1"
                ]
            ]
        },
        {
            "name": "colorama",
            "specs": [
                [
                    ">=",
                    "0.4.6"
                ]
            ]
        },
        {
            "name": "debugpy",
            "specs": [
                [
                    ">=",
                    "1.8.13"
                ]
            ]
        }
    ],
    "lcname": "ramses_rf"
}
        
Elapsed time: 0.86286s