{ "info": { "author": "Thomas Germain", "author_email": "12560542+thomasgermain@users.noreply.github.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Home Automation" ], "description": "# pymultiMATIC\n![PyPI - License](https://img.shields.io/github/license/thomasgermain/pymultiMATIC)\n[![Build Status](https://travis-ci.org/thomasgermain/pymultiMATIC.svg?branch=master)](https://travis-ci.org/thomasgermain/pymultiMATIC)\n[![Coverage Status](https://coveralls.io/repos/github/thomasgermain/pymultiMATIC/badge.svg?branch=master)](https://coveralls.io/github/thomasgermain/pymultiMATIC?branch=master)\n![PyPI](https://img.shields.io/pypi/v/pymultiMATIC)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pymultiMATIC.svg)\n\nPlease note that the project is still in beta state, it means I may do some (un)intentional breaking changes\n\n## Legal Disclaimer\nThis software is not affiliated with Vaillant and the developers take no legal responsibility for the functionality or security of your vaillant devices.\n\n## Install\n```bash\n[sudo] pip3 install pymultimatic \n```\n\n## Tests\nYou can run tests with\n```bash\npytest\n```\n\n## Usages\n\n### Module usage\n \nThe project is separated in two layers:\n\n#### 1. ApiConnector\nThis is the low level connector using the vaillant API and returning raw data directly coming from the API (basically, `json` formatted responses. The connector is handling the login and session.\nThe connector able to reuse an already existing session (cookies). Two files are saved (cookies and serial number of your installation) on the file system. Default location is:\n`~/.pymultimatic` but it can be overridden. Files are named `.cookies` and `.serial`.\n\n\nHere is an example how to use it:\n```python\nfrom pymultimatic.api import ApiConnector, urls\n \nconnector = ApiConnector('user', 'pass')\nconnector.get(urls.facilities_list()) \n```\nto get some information about your installation, this returns the raw response, something like this:\n```json\n{\n \"body\": {\n \"facilitiesList\": [\n {\n \"serialNumber\": \"1234567891234567891234567890\",\n \"name\": \"Name\",\n \"responsibleCountryCode\": \"BE\",\n \"supportedBrand\": \"GREEN_BRAND_COMPATIBLE\",\n \"capabilities\": [\n \"ROOM_BY_ROOM\",\n \"SYSTEMCONTROL_MULTIMATIC\"\n ],\n \"networkInformation\": {\n \"macAddressEthernet\": \"12:34:56:78:9A:BC\",\n \"macAddressWifiAccessPoint\": \"34:56:78:9A:BC:DE\",\n \"macAddressWifiClient\": \"56:78:9A:BC:DE:F0\"\n },\n \"firmwareVersion\": \"1.1.1\"\n }\n ]\n },\n \"meta\": {}\n}\n```\n\nBasically, you can use \n```python\nfrom pymultimatic.api import ApiConnector\n \nconnector = ApiConnector('user', 'pass')\nconnector.get('') \n```\nwith urls from `pymultimatic.api.urls`\n\nI would recommend using this layer if you only want to retrieve basic data (outdoor temperature, current temperature, etc.)\n\n#### 2. SystemManager\nThis layer allows you to interact in a more friendly way with the system and compute some data for you.\nThe underlying `ApiConnector` is hidden and raw responses are mapped to more useful objects.\n\n\nHere is an example:\n```python\nfrom pymultimatic.systemmanager import SystemManager\nfrom pymultimatic.model import OperatingModes\n \nmanager = SystemManager('user', 'pass')\n\n# get the complete system\nsystem = manager.get_system()\n\n# set the hot water target temperature to 55\nmanager.set_hot_water_setpoint_temperature('dhw_id', 55)\n\n# set the zone operation mode to 'AUTO'\nmanager.set_zone_operating_mode('zone_id', OperatingModes.AUTO)\n```\n\nThe main object to manipulate is `pymultimatic.model.System`, which is grouping all the information about your system.\n\nI would recommend using this layer if you want to do more complex things, e.g: if you want to get the target temperature for \na room or a zone, it can become a bit complex since you have to deal with holiday mode, quick mode, quick veto, time program, etc.\nThis layer is hiding you this complexity.\n\n## Documentation\nYou can find a deeper documentation [here](https://thomasgermain.github.io/pymultiMATIC/).\n\n## Todo's\n- Move ApiConnector to async\n- Handling ventilation\n- Handling missing information when VRC700 (and/or boiler) is shutdown \n(e.g. TimeProgram are not coming anymore from the API if boiler is down)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/thomasgermain/pymultiMATIC.git", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pymultiMATIC", "package_url": "https://pypi.org/project/pymultiMATIC/", "platform": "", "project_url": "https://pypi.org/project/pymultiMATIC/", "project_urls": { "Homepage": "https://github.com/thomasgermain/pymultiMATIC.git" }, "release_url": "https://pypi.org/project/pymultiMATIC/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "Python interface with Vaillant multiMATIC", "version": "0.0.2" }, "last_serial": 5968531, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c078498ef7b2d76ad483c8f4b656c6b2", "sha256": "1492e0908cdd40f741c46b8a5ebc67329240e99ef237d770439c0cb8c197d18e" }, "downloads": -1, "filename": "pymultiMATIC-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c078498ef7b2d76ad483c8f4b656c6b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26316, "upload_time": "2019-10-11T09:11:21", "url": "https://files.pythonhosted.org/packages/c1/ad/338a1314e01d459ab924cc52779572b620b4d1c8f5507f67911082e00a25/pymultiMATIC-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "904857ce006b6ba0d64201c7b1176063", "sha256": "7bcda830bb0f3475b9e2ae10c56b4b43c44a0fd3ad50beea4511161637f23a89" }, "downloads": -1, "filename": "pymultiMATIC-0.0.2.tar.gz", "has_sig": false, "md5_digest": "904857ce006b6ba0d64201c7b1176063", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26381, "upload_time": "2019-10-13T19:55:50", "url": "https://files.pythonhosted.org/packages/41/1c/9dc0bb5e1234ca4548c442c2612a18e1d9519ce479d21b8d2e23d4ac8480/pymultiMATIC-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "904857ce006b6ba0d64201c7b1176063", "sha256": "7bcda830bb0f3475b9e2ae10c56b4b43c44a0fd3ad50beea4511161637f23a89" }, "downloads": -1, "filename": "pymultiMATIC-0.0.2.tar.gz", "has_sig": false, "md5_digest": "904857ce006b6ba0d64201c7b1176063", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26381, "upload_time": "2019-10-13T19:55:50", "url": "https://files.pythonhosted.org/packages/41/1c/9dc0bb5e1234ca4548c442c2612a18e1d9519ce479d21b8d2e23d4ac8480/pymultiMATIC-0.0.2.tar.gz" } ] }