pydomotic


Namepydomotic JSON
Version 1.2.0 PyPI version JSON
download
home_pagehttps://github.com/purple4reina/pydomotic
SummaryPython library for home automation execution, enabling seamless control and management of your IoT devices
upload_time2023-07-15 05:52:20
maintainer
docs_urlNone
authorRey Abolofia
requires_python>=3.8,<4
licenseMIT
keywords iot python home automation smart domotic
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pydomotic

[![PyPI version](https://badge.fury.io/py/pydomotic.svg)](https://badge.fury.io/py/pydomotic)

A Python library for home automation execution, enabling seamless control and
management of your IoT devices.

_"Domotics": The automatic control of home appliances by electronic systems.
Contraction of domestic robotics, from the Latin domus ("home"), and robotics._

## Getting Started

1. Install `pydomotic` in your environment.

    ```bash
    $ pip install pydomotic
    ```

1. Create your `pydomotic.yml` configuration file where you will define your
devices and automations.

    ```yaml
    # pydomotic.yml

    devices:
      fan:
        description: fan switch
        provider: noop
        id: '012'
      thermometer:
        description: temperature sensor
        provider: noop
        id: '345'

    automations:
      fan:
        enabled: true
        components:
          - if:
              thermometer:
                temp: '>75'
            then:
              turn-on: fan
            else:
              turn-off: fan
    ```

1. Running the following will check each trigger and execute any actions.

    ```bash
    $ python -m pydomotic
    ```

Note that each configured provider will require separate installation of its specific dependencies. For installing these dependencies and full configuration documentation, see [CONFIGURATION.md](https://github.com/purple4reina/pydomotic/blob/main/docs/CONFIGURATION.md)

For more details on deployment options, see [DEPLOYING.md](https://github.com/purple4reina/pydomotic/blob/main/docs/DEPLOYING.md)

## Glossary

**trigger:** A small piece of code which evaluates to either true or false.
Usually it calls on devices or 3rd party APIs to make this determination.

**action:** A small piece of code which is run when a trigger fires. Usually
this is managing device state like turning a lightbulb on or off. When
configured, it can be designated as a "then" action or an "else" action.

**provider:** The third party which owns the API for a set of devices. The
manufacturer of a device will usually provide this API.

**device:** Any IoT device which can be controled with a 3rd party API managed
by a provider.

**sensor:** A device or 3rd party API which senses information about the
physical world around it. For example, a smart lightbulb or REST based current
weather API.

**component:** A grouping of triggers and actions. When all triggers evaluate
to true, its "then" actions will be run. When any trigger evaluates to false,
its "else" actions will be run.

**handler:** The code used to run a set of components. This is the main
entrypoint to the `pydomotic` system.

**parser:** The code used to read the configuration yaml and transform it into
a list of components.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/purple4reina/pydomotic",
    "name": "pydomotic",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<4",
    "maintainer_email": "",
    "keywords": "iot,python,home,automation,smart,domotic",
    "author": "Rey Abolofia",
    "author_email": "purple4reina@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/93/eb/445d690b6bf325d824f26348cc7fb984cdc2b4c3f4c4f78c6c210bb74133/pydomotic-1.2.0.tar.gz",
    "platform": null,
    "description": "# pydomotic\n\n[![PyPI version](https://badge.fury.io/py/pydomotic.svg)](https://badge.fury.io/py/pydomotic)\n\nA Python library for home automation execution, enabling seamless control and\nmanagement of your IoT devices.\n\n_\"Domotics\": The automatic control of home appliances by electronic systems.\nContraction of domestic robotics, from the Latin domus (\"home\"), and robotics._\n\n## Getting Started\n\n1. Install `pydomotic` in your environment.\n\n    ```bash\n    $ pip install pydomotic\n    ```\n\n1. Create your `pydomotic.yml` configuration file where you will define your\ndevices and automations.\n\n    ```yaml\n    # pydomotic.yml\n\n    devices:\n      fan:\n        description: fan switch\n        provider: noop\n        id: '012'\n      thermometer:\n        description: temperature sensor\n        provider: noop\n        id: '345'\n\n    automations:\n      fan:\n        enabled: true\n        components:\n          - if:\n              thermometer:\n                temp: '>75'\n            then:\n              turn-on: fan\n            else:\n              turn-off: fan\n    ```\n\n1. Running the following will check each trigger and execute any actions.\n\n    ```bash\n    $ python -m pydomotic\n    ```\n\nNote that each configured provider will require separate installation of its specific dependencies. For installing these dependencies and full configuration documentation, see [CONFIGURATION.md](https://github.com/purple4reina/pydomotic/blob/main/docs/CONFIGURATION.md)\n\nFor more details on deployment options, see [DEPLOYING.md](https://github.com/purple4reina/pydomotic/blob/main/docs/DEPLOYING.md)\n\n## Glossary\n\n**trigger:** A small piece of code which evaluates to either true or false.\nUsually it calls on devices or 3rd party APIs to make this determination.\n\n**action:** A small piece of code which is run when a trigger fires. Usually\nthis is managing device state like turning a lightbulb on or off. When\nconfigured, it can be designated as a \"then\" action or an \"else\" action.\n\n**provider:** The third party which owns the API for a set of devices. The\nmanufacturer of a device will usually provide this API.\n\n**device:** Any IoT device which can be controled with a 3rd party API managed\nby a provider.\n\n**sensor:** A device or 3rd party API which senses information about the\nphysical world around it. For example, a smart lightbulb or REST based current\nweather API.\n\n**component:** A grouping of triggers and actions. When all triggers evaluate\nto true, its \"then\" actions will be run. When any trigger evaluates to false,\nits \"else\" actions will be run.\n\n**handler:** The code used to run a set of components. This is the main\nentrypoint to the `pydomotic` system.\n\n**parser:** The code used to read the configuration yaml and transform it into\na list of components.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python library for home automation execution, enabling seamless control and management of your IoT devices",
    "version": "1.2.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/purple4reina/pydomotic/issues",
        "Homepage": "https://github.com/purple4reina/pydomotic",
        "Source": "https://github.com/purple4reina/pydomotic"
    },
    "split_keywords": [
        "iot",
        "python",
        "home",
        "automation",
        "smart",
        "domotic"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "93eb445d690b6bf325d824f26348cc7fb984cdc2b4c3f4c4f78c6c210bb74133",
                "md5": "dae26839a857d271c1c3dcdb496773f2",
                "sha256": "c9e1f2e746b27070d6ac0eda04f57a0b241937ca8c733ed854e0c12fa6e0353b"
            },
            "downloads": -1,
            "filename": "pydomotic-1.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "dae26839a857d271c1c3dcdb496773f2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<4",
            "size": 17207,
            "upload_time": "2023-07-15T05:52:20",
            "upload_time_iso_8601": "2023-07-15T05:52:20.220570Z",
            "url": "https://files.pythonhosted.org/packages/93/eb/445d690b6bf325d824f26348cc7fb984cdc2b4c3f4c4f78c6c210bb74133/pydomotic-1.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-15 05:52:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "purple4reina",
    "github_project": "pydomotic",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pydomotic"
}
        
Elapsed time: 0.08649s