python-freeathome-local


Namepython-freeathome-local JSON
Version 0.0.6 PyPI version JSON
download
home_pagehttps://github.com/derjoerg/python_freeathome_local
SummaryPython Library to communicate with local Busch-Jaeger Free@Home REST API
upload_time2024-02-01 11:27:19
maintainer
docs_urlNone
authorJoerg Schoppet
requires_python>=3.11
licenseMIT License
keywords freeathome busch-jaeger rest home automation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # python_freeathome_local

![PyPI - Python Version](https://img.shields.io/pypi/pyversions/python_freeathome_local?logo=python)
[![PyPI release](https://img.shields.io/pypi/v/python_freeathome_local)](https://pypi.org/project/python_freeathome_local/)
![Release status](https://img.shields.io/pypi/status/python_freeathome_local)
![Build Pipeline](https://img.shields.io/github/actions/workflow/status/derjoerg/python_freeathome_local/ci.yml)
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
[![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=f8b424)](https://github.com/pre-commit/pre-commit)
![License](https://img.shields.io/github/license/derjoerg/python_freeathome_local)

The datamodel of the Free@Home Rest-API is setup the following way:
- The root-node is a SysAp
- The SysAp contains devices and a floorplan
- Each device has 1 to many channels (the behaviour of a channel is defined by the FunctionID)
- A channel has 0 to many Input- and Output-Datapoints (the behaviour of a datapoint is defined by the PairingID)
- An Input-Datapoint is used to set a value (e.g. turn on a switch)
-- To change the value of an such a datapoint a PUT-call is needed
- An Output-Datapoint shows the current state (e.g. switch is on)
-- All modifications are reported through a websocket-connection
- A device and a channel can have 0 to many parameters (the function of a parameter is defined by the ParameterID)

## Drawback
The major drawback I see so far regarding the Rest-API is that the parameters can't be controlled.
E.g. the WeatherStation has a parameter called 'par0039' (TRANSMISSION_INTERVAL), which defines how often updated values are send. This interval can be changed in the mobile app, but not through the Rest-API, additionally (what is even more worse) any modifications are not reported through the websocket. This means that after the initial load of the configuration any modifications to the parameters through the mobile app are not recognized by this library :(

## Implemented channels
| Name | Inputs | Outputs |
|--|--|--|
| BrightnessSensor | - | brightness_level (float) - state<br>brightness_alarm (bool) |
| RainSensor       | - | rain_alarm (bool) - state<br>rain_sensor_activation_percentage (float)<br>rain_sensor_frequency (float) |
| TemperatureSensor | - | outdoor_temperature (float) - state<br>frost_alarm (bool) |
| WindSensor | - | wind_speed (float) - state<br>wind_alarm (bool)<br>wind_force (float) |
| Trigger | timed_start_stop - press | - |
| SwitchActuator | switch_on_off (bool) - turn_on/turn_off<br>forced (bool)<br>timed_start_stop (bool)<br>timed_movement (bool) | info_on_off (bool) - state<br>info_force (bool)<br>info_error (bool) |
| WindowDoorSensor | - | window_door (bool) - state |
| MovementDetector | info_on_off | info_on_off (bool) - state<br>brightness_level (float)<br>timed_movement (bool)<br>timed_presence (bool) |
| SwitchSensor | - | switch_on_off (bool) - state |
| ForceOnOffSensor | - | forced (bool) - state |
| BlindSensor | - | stop_step_up_down (bool) - state |
| DesDoorRingingSensor | - | timed_start_stop (bool) - state |

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/derjoerg/python_freeathome_local",
    "name": "python-freeathome-local",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "",
    "keywords": "freeathome,busch-jaeger,rest,home,automation",
    "author": "Joerg Schoppet",
    "author_email": "joerg@schoppet.de",
    "download_url": "https://files.pythonhosted.org/packages/0f/4c/28f1429a07e07c449b7c8c5535c304c3e53ca5c4d80affba9125b68a1ab8/python_freeathome_local-0.0.6.tar.gz",
    "platform": "any",
    "description": "# python_freeathome_local\n\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/python_freeathome_local?logo=python)\n[![PyPI release](https://img.shields.io/pypi/v/python_freeathome_local)](https://pypi.org/project/python_freeathome_local/)\n![Release status](https://img.shields.io/pypi/status/python_freeathome_local)\n![Build Pipeline](https://img.shields.io/github/actions/workflow/status/derjoerg/python_freeathome_local/ci.yml)\n[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n[![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=f8b424)](https://github.com/pre-commit/pre-commit)\n![License](https://img.shields.io/github/license/derjoerg/python_freeathome_local)\n\nThe datamodel of the Free@Home Rest-API is setup the following way:\n- The root-node is a SysAp\n- The SysAp contains devices and a floorplan\n- Each device has 1 to many channels (the behaviour of a channel is defined by the FunctionID)\n- A channel has 0 to many Input- and Output-Datapoints (the behaviour of a datapoint is defined by the PairingID)\n- An Input-Datapoint is used to set a value (e.g. turn on a switch)\n-- To change the value of an such a datapoint a PUT-call is needed\n- An Output-Datapoint shows the current state (e.g. switch is on)\n-- All modifications are reported through a websocket-connection\n- A device and a channel can have 0 to many parameters (the function of a parameter is defined by the ParameterID)\n\n## Drawback\nThe major drawback I see so far regarding the Rest-API is that the parameters can't be controlled.\nE.g. the WeatherStation has a parameter called 'par0039' (TRANSMISSION_INTERVAL), which defines how often updated values are send. This interval can be changed in the mobile app, but not through the Rest-API, additionally (what is even more worse) any modifications are not reported through the websocket. This means that after the initial load of the configuration any modifications to the parameters through the mobile app are not recognized by this library :(\n\n## Implemented channels\n| Name | Inputs | Outputs |\n|--|--|--|\n| BrightnessSensor | - | brightness_level (float) - state<br>brightness_alarm (bool) |\n| RainSensor       | - | rain_alarm (bool) - state<br>rain_sensor_activation_percentage (float)<br>rain_sensor_frequency (float) |\n| TemperatureSensor | - | outdoor_temperature (float) - state<br>frost_alarm (bool) |\n| WindSensor | - | wind_speed (float) - state<br>wind_alarm (bool)<br>wind_force (float) |\n| Trigger | timed_start_stop - press | - |\n| SwitchActuator | switch_on_off (bool) - turn_on/turn_off<br>forced (bool)<br>timed_start_stop (bool)<br>timed_movement (bool) | info_on_off (bool) - state<br>info_force (bool)<br>info_error (bool) |\n| WindowDoorSensor | - | window_door (bool) - state |\n| MovementDetector | info_on_off | info_on_off (bool) - state<br>brightness_level (float)<br>timed_movement (bool)<br>timed_presence (bool) |\n| SwitchSensor | - | switch_on_off (bool) - state |\n| ForceOnOffSensor | - | forced (bool) - state |\n| BlindSensor | - | stop_step_up_down (bool) - state |\n| DesDoorRingingSensor | - | timed_start_stop (bool) - state |\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Python Library to communicate with local Busch-Jaeger Free@Home REST API",
    "version": "0.0.6",
    "project_urls": {
        "Download": "https://github.com/derjoerg/python_freeathome_local/tarball/0.0.6",
        "Homepage": "https://github.com/derjoerg/python_freeathome_local"
    },
    "split_keywords": [
        "freeathome",
        "busch-jaeger",
        "rest",
        "home",
        "automation"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "818135e9fe3d2a5d54ffa7bf875b7fcd9cd387c638ce6e2f5d09f9def242ed94",
                "md5": "ebb1dcffb3da217ca372e97f398bcfe4",
                "sha256": "1220aac5aed5834d73fdff0b2251f8d14592462c89cc6697afdbcba6ac73053e"
            },
            "downloads": -1,
            "filename": "python_freeathome_local-0.0.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ebb1dcffb3da217ca372e97f398bcfe4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 62604,
            "upload_time": "2024-02-01T11:27:17",
            "upload_time_iso_8601": "2024-02-01T11:27:17.868416Z",
            "url": "https://files.pythonhosted.org/packages/81/81/35e9fe3d2a5d54ffa7bf875b7fcd9cd387c638ce6e2f5d09f9def242ed94/python_freeathome_local-0.0.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0f4c28f1429a07e07c449b7c8c5535c304c3e53ca5c4d80affba9125b68a1ab8",
                "md5": "f3d806f19d99b74fae8ce7f04d5fd57f",
                "sha256": "53015e2f361255dfcebd1311984dc10685db4a9e9b3d1455eb932f12dde045c6"
            },
            "downloads": -1,
            "filename": "python_freeathome_local-0.0.6.tar.gz",
            "has_sig": false,
            "md5_digest": "f3d806f19d99b74fae8ce7f04d5fd57f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 45037,
            "upload_time": "2024-02-01T11:27:19",
            "upload_time_iso_8601": "2024-02-01T11:27:19.511311Z",
            "url": "https://files.pythonhosted.org/packages/0f/4c/28f1429a07e07c449b7c8c5535c304c3e53ca5c4d80affba9125b68a1ab8/python_freeathome_local-0.0.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-01 11:27:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "derjoerg",
    "github_project": "python_freeathome_local",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "python-freeathome-local"
}
        
Elapsed time: 0.17338s