# Seneye Binding

This binding integrates the [Seneye aquarium monitoring system](https://www.seneye.com).

## Introduction

The seneye monitor monitors what is happening inside your aquarium to ensure that the aquatic life remains healthy.
The monitor allows you to continuously track the changes in the water parameters, alerting you to the problems before they affect the fish.

At least one Seneye monitor is required ([Home / pond or reef](https://www.seneye.com/devices/compare)) and the measure results must be synchronized to the seneye cloud by using a seneye web server (see [shop](https://www.seneye.com/store), there is one for Wi-Fi and one for a wired network).
Each monitor is represented by one seneye Thing.

## Supported Things

This binding provides one Thing type: 'seneye'.
You can have multiple seneye devices in your home, just make sure that your aquarium_name is properly set for each seneye Thing.

## Discovery

Discovery is not supported, the seneye monitor must be configured manually.

## Thing Configuration

The following settings must be configured in order to make the seneye binding work:

| Setting       |                                                                                |
|---------------|--------------------------------------------------------------------------------|
| aquarium_name | The name of the aquarium, as specified in [seneye.me](https://www.seneye.me/). |
|               | Useful to distinguish multiple seneye installations.                           |
| username      | Your login name for [seneye.me](https://www.seneye.me/).                       |
| password      | Your password for [seneye.me](https://www.seneye.me/).                         |
| poll_time     | How often (in minutes) the seneye account should be checked.                   |

## Channels

The following channels are supported:

| Channel Type ID | Item Type | Description                                                      |
|-----------------|-----------|------------------------------------------------------------------|
| temperature     | String    | The water temperature.                                           |
| ph              | String    | The PH level of the water.                                       |
| nh3             | String    | The level of Ammonia (NH3) in the water.                         |
| nh4             | String    | The level of Ammonium (NH4) in the water.                        |
| O2              | String    | The level of oxygen in the water.                                |
| lux             | String    | The lux level of your aquarium lighting, if available.           |
| par             | String    | The par level of your aquarium lighting, if available.           |
| kelvin          | String    | The kelvin level of your aquarium lighting, if available.        |
| lastreading     | DateTime  | The moment when the last readings are received from the monitor. |
| slideexpires    | DateTime  | The moment when the current slide will expire.                   |
| wrongslide      | String    | The Slide is not valid (normally expired).                       |
| slideserial     | String    | The serial number of the Slide.                                  |
| outofwater      | String    | The Slide is reporting being out of the water.                   |
| disconnected    | String    | The Seneye has not uploaded any updates recently.                |

## Full example

A manual configuration through a `things/seneye.things` file could look like this:

```java
Thing seneye:monitor:mySeneye "Seneye" @ "Living Room" [aquarium_name="MyAquarium", username="mail@example.com", password="xxx", poll_time=5]
```

A manual configuration through a `demo.items` file could look like this:

```java
String mySeneye_Temperature  "Temp [%s] C"        { channel="seneye:monitor:mySeneye:temperature" }
String mySeneye_PH           "PH [%s]"            { channel="seneye:monitor:mySeneye:ph" }
String mySeneye_NH3          "NH3 [%s]"           { channel="seneye:monitor:mySeneye:nh3" }
```

The sitemap could look like this:

```perl
sitemap home label="My home" {
    Frame label="Aquarium" {
        Text item=mySeneye_Temperature label="Temperature [%.1f °C]" icon="temperature"
        Text item=mySeneye_PH label="PH [%.1f]" icon="water"
        Text item=mySeneye_NH3 label="NH3 [%.1f]" icon="water"
    }
}
```
