Skip to main content

A python API wrapper for Smappee

Project description

# Smappy
Wrapper for the Smappee API

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`

# 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

### Get Service Location Info

### 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='') # 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.

Files for smappy, version 0.2.16
Filename, size File type Python version Upload date Hashes
Filename, size smappy-0.2.16-py3-none-any.whl (10.0 kB) File type Wheel Python version 3.6 Upload date Hashes View
Filename, size smappy-0.2.16.tar.gz (15.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page