Skip to main content

A python API wrapper for Smappee

Project description

# Smappy
Wrapper for the Smappee API
See https://smappee.atlassian.net/wiki/display/DEVAPI/API+Methods

Local interface to read and control your Smappee over LAN

# Installation
Via pip:

- Mac & Linux: `python3 -m pip install smappy` or `python -m pip install smappy`
- Windows: `python.exe -m pip install smappy`

Via git: `git clone https://github.com/EnergieID/smappy.git`

# API Client Usage

## Create a new client by supplying your Smappee client id and secret
`s = smappy.Smappee(client_id, client_secret)`

## Authenticate using a Smappee username and password
`s.authenticate(username, password)`

Re-authentication using the refresh token is done automatically when the access token has expired.

## API Requests
7 API requests are supported. The methods return the parsed JSON response as a dict.

### Get Service Locations
`s.get_service_locations()`

### Get Service Location Info
`s.get_service_location_info(service_location_id)`

### Get Consumption
- `s.get_consumption(service_location_id, start, end, aggregation)`
- `s.get_sensor_consumption(service_location_id, sensor_id, start, end, aggregation)`

Start & End accept epoch (in milliseconds), datetime and pandas timestamps

Aggregation: 1 = 5 min values (only available for the last 14 days), 2 = hourly values, 3 = daily values, 4 = monthly values, 5 = quarterly values

### Get Events
`s.get_events(service_location_id, appliance_id, start, end, max_number)`

### Actuators

- `s.actuator_on(self, service_location_id, actuator_id, duration)`
- `s.actuator_off(self, service_location_id, actuator_id, duration)`

duration = 300,900,1800 or 3600 - specifying the time in seconds the actuator
should be turned on or off. Any other value results in turning on or off for an
undetermined period of time.

## Consumption as Pandas DataFrame
Get consumption values in a Pandas Data Frame

- To get total Electricity consumption and Solar production, use:
`s.get_consumption_dataframe(service_location_id, start, end, aggregation, localize)`
- To get consumption for a specific sensor, include a sensor id:
`s.get_consumption_dataframe(service_location_id, start, end, aggregation, localize, sensor_id)`

Use the localize flag to get localized timestamps.

# Simple Smappee
If you have no client id, client secret, refresh token etc, for instance if everything concerning oAuth is handed off
to a different process like a web layer. This object only uses a given access token. It has no means of refreshing it
when it expires, in which case the requests will raise errors.

`ss = SimpleSmappee(access_token)`

It has the same methods as the normal Smappee class, except authorization and re-authorization will not work.

# LAN Smappee Client

## Create Client

`ls = smappy.LocalSmappee(ip='192.168.0.50') # fill in local IP-address of your Smappee`

## Log on

`ls.logon(password='admin') # default password is admin`

## Other methods
- `report_instantaneous_values()`
- `load_instantaneous()`
- `active_power()`
- `active_cosfi()`
- `restart()`
- `reset_active_power_peaks()`
- `lreset_ip_scan_cache()`
- `reset_sensor_cache()`
- `reset_data()`
- `clear_appliances()`
- `load_advanced_config()`
- `load_config()`
- `save_config()`
- `load_command_control_config()`
- `send_group()`
- `on_command_control(val_id)`
- `off_command_control(val_id)`
- `delete_command_control(val_id)`
- `delete_command_control_timers(val_id)`
- `add_command_control_timed()`
- `load_logfiles()`
- `select_logfile(logfile)`

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

smappy-0.2.16.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smappy-0.2.16-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file smappy-0.2.16.tar.gz.

File metadata

  • Download URL: smappy-0.2.16.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for smappy-0.2.16.tar.gz
Algorithm Hash digest
SHA256 307ae3dc3f64712341c8c9bf7d478143a317af5fa4dd0e0eb12810a81465439b
MD5 a2c5460a8bd4f5dda8f2315bc6323ced
BLAKE2b-256 3554362941465b1b6f46b49bb8370fde0f1b50d53bb2e72d6e60eea9cc96042d

See more details on using hashes here.

File details

Details for the file smappy-0.2.16-py3-none-any.whl.

File metadata

File hashes

Hashes for smappy-0.2.16-py3-none-any.whl
Algorithm Hash digest
SHA256 13b57b394170fc5ce15ee33bc74c6740cd85fd642522711390c1a985d25ab94b
MD5 941ad421ec6a3390f0b456c276f19587
BLAKE2b-256 d37c92e02741bf2c4dccbf1f22491e1c1a21337a103cc079c22de7da8dc7c13e

See more details on using hashes here.

Supported by

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