Skip to main content

This library aims to provide python way to communicate with gardena smart gateway and all smart gardena systems.

Project description

py-smart-gardena

License: MIT PyPI version Build Status Python 3 Maintainability Codacy Badge Codacy Badge Test Coverage codecov Updates Known Vulnerabilities Black PEP8 Downloads

Description

This library aims to provide python way to communicate with gardena smart systems and all gardena smart equipments. Configuration of the equipement and inclusion has still to be done using the Gardena application or web site. For now, this library only supports retrieving information, it should soon be able ot interact with devices to integrate in your automation system.

Support

This project needs your support.
Gardena equipments are expensive, and I need to buy them in order to add support. If you find this library useful and want to help me support more devices (or if you just want to reward me for my spent time), you are very welcome !
Your help is very much appreciated.

Here are the links if you want to show your support :
PayPal donate button

Requirements

  • Python 3.6+

Supported devices

For now, only few devices are supported. I may add new ones in the future :

  • Gateway
  • Smart Mower (not tested yet)
  • Smart water control
  • Smart sensor
  • Power plugs

Installation

$ pip install py-smart-gardena

Usage

Data model

The entrypoint of the library is the the SmartSytem class (in gardena.smart_system package). From there, you can get all locations from your account, and for each of these locations, get the declared devices.

All communications are not done directly with the gateway. This library uses a websocket in order to communicate with gardena systems in order to avoid throttling. There is only one connection to authenticate, and two connections to revoke tokens, everything else is done through websockets.

Authentication

You need to authenticate with your email and passwords created on this [site] (https://developer.1689.cloud/apis) or the IOS/Android application. The library manages the token for you then. An exception is raised if authentication fails.

from gardena.smart_system import SmartSystem

smart_system = SmartSystem(email="email@gmail.com", password="my_password", client_id="client_id")
smart_system.authenticate()

Once authentication is successful, infromations are sent asynchronously from Gardena system to this library.

Locations

Locations are the places where the devices are connected. It can be used to manage different gardens or different places from one garden, or both. Locations are

Here is the list of the current available fields and methods :

for location in smart_system.locations.values():
    print("location : " + location.data["name"] + "(" + location.data["id"] + ")")

Devices

Devices are automatically retrieved from the Websocket.

    for location in smart_system.locations["location_id"].devices.values():
        locations.update_devices()

Development environment

To install the dev environment, you just have to do, in the source code directory :

$ pip install -e .[dev]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py-smart-gardena-0.6.4.tar.gz (7.7 kB view hashes)

Uploaded Source

Built Distribution

py_smart_gardena-0.6.4-py3-none-any.whl (9.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page